12018-11-04 Mark Wielaard <mark@klomp.org> 2 3 * bpf_disasm.c (bpf_disasm): Recognize BPF_JLT, BPF_JLE, BPF_JSLT 4 and BPF_JSLE. 5 62018-02-09 Joshua Watt <JPEWhacker@gmail.com> 7 8 * i386_disasm.c (i386_disasm): Use FALLTHOUGH macro instead of 9 comment. 10 112017-08-18 Ulf Hermann <ulf.hermann@qt.io> 12 13 * memory-access.h: Use attribute_packed. 14 152017-02-27 Ulf Hermann <ulf.hermann@qt.io> 16 17 * Makefile.am: Use fpic_CFLAGS. 18 192017-07-18 Mark Wielaard <mark@klomp.org> 20 21 * Makefile.am: Don't check HAVE_LINUX_BPF_H, just define libcpu_bpf. 22 * bpf_disasm.c: Include bpf.h instead of linux/bpf.h. Don't define 23 BPF_PSEUDO_MAP_FD. 24 252017-04-20 Ulf Hermann <ulf.hermann@qt.io> 26 27 * Makefile.am: Add EXEEXT to gendis. 28 292017-04-20 Ulf Hermann <ulf.hermann@qt.io> 30 31 * i386_parse.y: Eliminate comparison_fn_t. 32 332016-11-02 Mark Wielaard <mjw@redhat.com> 34 35 * i386_disasm.c (i386_disasm): Add fallthrough comment. 36 372016-10-11 Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp> 38 39 * i386_lex.l: Remove system.h include, add libeu.h include. 40 * i386_parse.y: Remove sys/param.h include, add libeu.h include. 41 * i386_disasm.c: Remove sys/param.h. 42 432016-09-05 Mark Wielaard <mjw@redhat.com> 44 45 * bpf_disasm.c: Define BPF_PSEUDO_MAP_FD if undefined. 46 472016-08-10 Richard Henderson <rth@redhat.com> 48 49 * bpf_disasm.c (bpf_disasm): Rearrange the printing of instructions 50 to use exactly the operands required. 51 522016-06-28 Richard Henderson <rth@redhat.com> 53 54 * Makefile.am (noinst_LIBRARIES): Add libcpu_bpf.a. 55 (libcpu_bpf_a_SOURCES, libcpu_bpf_a_CFLAGS): New. 56 * bpf_disasm.c: New file. 57 * i386_disasm.c (i386_disasm): Add ebl parameter. 58 592015-10-05 Josh Stone <jistone@redhat.com> 60 61 * Makefile.am (%_defs): Add AM_V_GEN and AM_V_at silencers. 62 ($(srcdir)/%_dis.h): Ditto. 63 (%.mnemonics): Add AM_V_GEN silencer. 64 652014-10-29 Jose E. Marchesi <jose.marchesi@oracle.com> 66 67 * Makefile.am (AM_CFLAGS): Use -fPIC instead of -fpic to avoid 68 relocation overflows in some platforms. 69 702014-04-13 Mark Wielaard <mjw@redhat.com> 71 72 * Makefile.am (i386_gendis_LDADD): Remove libmudflap. 73 742013-04-24 Mark Wielaard <mjw@redhat.com> 75 76 * Makefile.am: Use AM_CPPFLAGS instead of INCLUDES. 77 782012-10-10 Roland McGrath <roland@hack.frob.com> 79 80 * Makefile.am (%_defs, $(srcdir)/%_dis.h): Redirect to temp file, 81 mv into place with separate command. 82 832012-06-26 Roland McGrath <roland@hack.frob.com> 84 85 * Makefile.am [!MAINTAINER_MODE] ($(srcdir)/%_dis.h): New rule. 86 872012-02-24 Mark Wielaard <mjw@redhat.com> 88 89 * Makefile.am (CLEANFILES): Move %_dis.h to... 90 (MAINTAINERCLEANFILES): here. 91 922012-01-21 Ulrich Drepper <drepper@gmail.com> 93 94 * i386_disasm.c (ADD_NSTRING): Define. 95 (i386_disasm): Print color codes in the appropriate places. 96 972011-10-16 Roland McGrath <roland@hack.frob.com> 98 99 * Makefile.am (libcpu_i386_a_SOURCES): Add i386_dis.h. 100 (libcpu_x86_64_a_SOURCES): Add x86_64_dis.h. 101 (i386_disasm.o, x86_64_disasm.o): Depend on those in $(srcdir). 102 (%_dis.h): Renamed target pattern to ... 103 ($(srcdir)/%_dis.h): ... this. 104 (noinst_HEADERS, noinst_PROGRAMS): Put under [MAINTAINER_MODE]. 105 1062010-08-16 Roland McGrath <roland@redhat.com> 107 108 * Makefile.am (%_defs): New pattern rule. 109 (%_dis.h, %.mnemonics): Define as pattern rules using %_defs input. 110 (CLEANFILES): Include all those files. 111 1122010-02-15 Roland McGrath <roland@redhat.com> 113 114 * Makefile.am: Use config/eu.am for common stuff. 115 1162009-04-14 Roland McGrath <roland@redhat.com> 117 118 * Makefile.am (AM_CFLAGS): Add -fdollars-in-identifiers; it is not the 119 default on every machine. 120 1212009-01-23 Roland McGrath <roland@redhat.com> 122 123 * Makefile.am (i386_parse_CFLAGS): Use quotes around command 124 substitution that can produce leading whitespace. 125 1262009-01-01 Ulrich Drepper <drepper@redhat.com> 127 128 * i386_parse.y (instrtable_out): Optimize match_data table by not 129 emitting 0xff masks for leading bytes. 130 * i386_disasm.c (i386_disasm): Adjust reader of match_data. 131 132 * i386_disasm.c (i386_disasm): Reset bufcnt when not matched. We 133 don't expect snprintf to fail. 134 1352008-12-31 Ulrich Drepper <drepper@redhat.com> 136 137 * defs/i386: Add dppd, dpps, insertps, movntdqa, mpsadbw, packusdw, 138 pblendvb, pblendw, pcmpeqq, pcmpestri, pcmpestrm, pcmpistri, pcmpistrm, 139 pcmpgtq, phminposuw, pinsrb, pinsrd, pmaxsb, pmaxsd, pmaxud, pmaxuw, 140 pminsb, pminsd, pminud, pminuw, pmovsxbw, pmovsxbd, pmovsxbq, pmovsxwd, 141 pmovsxwq, pmovsxdq, pmovzxbw, pmovzxbd, pmovzxbq, pmovzxwd, pmovzxwq, 142 pmovzxdq, pmuldq, pmulld, popcnt, ptest, roundss, roundps, roundpd, 143 and roundsd opcodes. 144 145 * i386_disasm.c (i386_disasm): Correct resizing of buffer. 146 147 * i386_parse.y (struct argstring): Add off element. 148 (off_op_str): New global variable. 149 (print_op_str): Print strings as concatenated strings. Keep track 150 of index and length. Update ->off element. 151 (print_op_str_idx): New function. 152 (instrtable_out): Mark op%d_fct as const. 153 Emit two tables for the strings: the string itself (op%d_str) and the 154 index table (op%d_str_idx). 155 * i386_disasm.c (i386_disasm): Adjust for new op%d_str definition. 156 157 * i386_disasm.c [X86_64] (i386_disasm): Handle rex prefix when 158 printing only prefix. 159 160 * i386_disasm.c (i386_disasm): Minor optimizations. 161 162 * i386_parse.y (instrtable_out): No need to emit index, the reader can 163 keep track. 164 * i386_disasm.c (i386_disasm): The index is not emitted anymore, no 165 need to skip it. 166 167 * i386_disasm.c (amd3dnow): Mark as const. 168 169 * defs/i386: Add blendvpd and blendvps opcodes. 170 1712008-12-30 Ulrich Drepper <drepper@redhat.com> 172 173 * defs/i386: Add blendpd and blendps opcodes. 174 1752008-12-19 Ulrich Drepper <drepper@redhat.com> 176 177 * defs/i386: Add entry for AMD 3DNOW. 178 * i386_disasm.c: Implement AMD 3DNOW disassembly. 179 1802008-12-17 Ulrich Drepper <drepper@redhat.com> 181 182 * i386_disasm.c (i386_disasm): If instruction matches prefix, 183 undoing the prefix match finishes the instruction. 184 1852008-01-21 Roland McGrath <roland@redhat.com> 186 187 * defs/i386: Fix typo in comment. 188 * i386_disasm.c (i386_disasm): Handle cltq, cqto. 189 190 * i386_parse.y: Add sanity check for NMNES macro value. 191 * Makefile.am (i386_parse.o): Fix target in dependency rule. 192 (i386_parse.h): New target with empty commands. 193 (i386_lex.o): Depend on it in place of i386_parse.c. 194 1952008-01-21 Ulrich Drepper <drepper@redhat.com> 196 197 * Makefile.am (EXTRA_DIST): Remove defs/x86_64. 198 1992008-01-14 Ulrich Drepper <drepper@redhat.com> 200 201 * defs/i386: Add fixes for opcodes with register number in opcode, 202 64-bit immediate forms, nop with rex.B. 203 * i386_data.h [X86_64] (FCT_imm64$w): New function. 204 (FCT_oreg): New function. 205 (FCT_oreg$w): New function. 206 * i386_disasm.c (i386_disasm): Reinitialize fmt always before 207 starting the loop to process the string. Handle 0x90 special for 208 x86-64. 209 * i386_parse.y (fillin_arg): Expand synonyms before concatening to 210 form the function name. 211 2122008-01-11 Ulrich Drepper <drepper@redhat.com> 213 214 * i386_disasm.c (struct output_buffer): Remove symcb and symcbarg. 215 (i386_disasm): Remove appropriate initializers. 216 Use symcb to lookup symbol strings. 217 218 * i386_disasm.c (struct output_buffer): Add labelbuf, labelbufsize, 219 symaddr_use, and symaddr fields. 220 (i386_disasm): Remove labelbuf and labelbufsize variables. 221 Add back %e format. Implement %a and %l formats. 222 223 * i386_data.h (general_mod$r_m): Set symaddr_use and symaddr for %rip 224 base addressing. 225 226 * i386_disasm.c (i386_disasm): Resize output buffer if necessary. 227 Optimize output_data initialization. Free buffers before return. 228 (struct output_data): Remove op1str field. Adjust code. 229 (i386_disasm): Store final NUL btye at end of functions. 230 2312008-01-10 Ulrich Drepper <drepper@redhat.com> 232 233 * i386_data.h (FCT_crdb): New function. 234 (FCT_ccc): Use FCT_crdb. 235 (FCT_ddd): Likewise. 236 237 * defs/i386: Fix a few instructions with immediate arguments. 238 239 * i386_disasm.c: Rewrite interface to callback functions for operands 240 to take a single pointer to a structure. 241 * i386_data.h: Adjust all functions. 242 2432008-01-08 Ulrich Drepper <drepper@redhat.com> 244 245 * Makefile.am: Enable x86-64 again. 246 * defs/i386: Lots of changes for x86-64. 247 * i386_data.h: Add support for use in x86-64 disassembler. 248 * i386_disasm.c: Likewise. 249 * i386_parse.y: Likewise. 250 * defs/x86_64: Removed. 251 2522008-01-04 Ulrich Drepper <drepper@redhat.com> 253 254 * defs/i386: Cleanups, remove masks which are not needed. 255 Add remaining Intel opcodes. 256 * i386_data.h (FCT_imm8): Check for input buffer overrun. 257 * i386_disasm.c (i386_disasm): Likewise. 258 * i386_parse.y: Remove suffixes which are not needed anymore. 259 2602008-01-03 Ulrich Drepper <drepper@redhat.com> 261 262 * defs/i386: Add yet more SSE instructions. 263 2642008-01-02 Ulrich Drepper <drepper@redhat.com> 265 266 * i386_disasm.c (i386_disasm): Extend matcher to allow tables to 267 contain instructions with prefixes. 268 * defs/i386: Use for many SSE operations. 269 * i386_data.h (FCT_mmxreg2): Removed. 270 2712008-01-01 Ulrich Drepper <drepper@redhat.com> 272 273 * defs/i386: More 0f prefix support. 274 * i386_data.h (FCT_mmxreg): Implement. 275 (FCT_mmxreg2): Implement. 276 (FCT_mmreg): Remove. 277 * i386_disasm.c (i386_disasm): More special instructions. 278 Fix tttn suffix for cmov. 279 * i386_parse.y: Simplify test for mod/r_m mode. 280 2812007-12-31 Ulrich Drepper <drepper@redhat.com> 282 283 * defs/i386: Fix order or arguments for mov of control/debug registers. 284 * i386_data.h (FCT_ccc): Implement 285 (FCT_ddd): Implement 286 2872007-12-30 Ulrich Drepper <drepper@redhat.com> 288 289 * defs/i386: Fix 0f groups 6 and 7. 290 * i386_data.c (FCT_mod$16r_m): Implement. 291 * i386_disasm.c (i386_disasm): Third parameter can also have string. 292 2932007-12-29 Ulrich Drepper <drepper@redhat.com> 294 295 * defs/i386: Add lots of floating point ops. 296 * i386_data.h (FCT_fmod$fr_m): Removed. 297 (FCT_freg): Implement. 298 * i386_disasm.c (i386_disasm): Implement suffix_D. 299 * i386_parse.y: Emit suffix_D. 300 301 * defs/i386: Use rel instead of dispA. 302 Fix lcall, dec, div, idiv, imul, inc, jmp, ljmp, mul, neg, not, push, 303 test. 304 305 * i386_data.h (FCT_dispA): Removed. 306 (FCT_ds_xx): Add test for end of input buffer. 307 * i386_disasm.c (ABORT_ENTRY): Removed. 308 (i386_disasm): Fix handling of SIB. Pass correct address value to 309 operand callbacks. 310 311 * Makefile.am (*.mnemonics): Filter out INVALID entry. 312 * defs/i386: Define imms8 and use in appropriate places. 313 Add INVALID entries for special opcodes with special mnemonics. 314 Fix int3. Fix typo in shl. Correct xlat. 315 * i386_data.h (FCT_ds_xx): New function. 316 (FCT_ds_si): Use it. 317 (FCT_ds_bx): New function. 318 (FCT_imms8): New function. 319 * i386_disasm.c (MNE_INVALID): Define. 320 (i386_disasm): Handle invalid opcodes in mnemonics printing, not 321 separately. Fix address value passed to operand handlers. 322 * i386_parse.y (bx_reg): Define. 323 (instrtable_out): Handle INVALID entries differently, just use 324 MNE_INVALID value for .mnemonic. 325 3262007-12-28 Ulrich Drepper <drepper@redhat.com> 327 328 * defs/i386: Fix shift and mov immediate instructions. 329 * i386_data.h (FCT_imm16): Implement. 330 331 * defs/i386: Use absval instead of abs of lcall and ljmp. 332 Add parameters for cmps. Fix test and mov immediate. 333 * i386_data.h: Implement FCT_absval. 334 * i386_disasm.c: Handle data16 for suffix_w and FCT_imm. 335 336 * defs/i386: Move entries with 0x9b prefix together. 337 * i386_disasm.c (i386_disasm): Fix recognizing insufficient bytes in 338 input. Handle data16 with suffix_W. 339 340 * i386_data.h (FCT_*): Add end parameter to all functions. Check 341 before using more bytes. 342 (FCT_sel): Implement. 343 * i386_disasm.c (i386_disasm): Better handle end of input buffer. 344 Specal opcode 0x99. 345 346 * Makefile.am: Use m4 to preprocess defs/* files. 347 * defs/i386: Adjust appropriately. 348 * i386_data.c (FCT_ax): Implement. 349 (FCT_ax$w): Use FCT_ax. 350 * i386_disasm.c (ADD_STRING): Use _len instead of len. 351 (i386_disasm): If no instruction can be matched because of lack of 352 input and prefixes have been matched, print prefixes. 353 Recognize abort entries. 354 Handle special cases. 355 * i386_gendis.c: Recognize - input file name. 356 * i386_lex.c: Recognize INVALID token. 357 * i386_parse.y: Handle INVALID token input. 358 359 * defs/i386: Fix mov, pop. 360 * i386_data.h (FCT_sreg3): Implement. 361 3622007-12-27 Ulrich Drepper <drepper@redhat.com> 363 364 * defs/i386: Fix adc, add, cmp, or, sbb, sub, xchg, xor. 365 * i386_data.h (FCT_imms): New function. 366 (FCT_imm$s): Use FCT_imms for handling of signed values. 367 (FCT_imm8): Sign extend values. 368 * i386_disasm.c (i386_disasm): Implement suffix_w0. 369 * i386_parse.y: Emit suffix w0. 370 371 * i386_data.h (FCT_disp8): Add 0x prefix. 372 (FCT_ds_si): Implement. 373 * i386_disasm.c (i386_disasm): Increment addr for invalid prefixes. 374 Implement tttn suffix. 375 * i386_parse.y: Emit tttn suffix definition. 376 3772007-12-26 Ulrich Drepper <drepper@redhat.com> 378 379 * i386_data.h (struct instr_enc): Use suffix field. 380 (FCT_dx): Fill in body. 381 (FCT_es_di): Likewise. 382 (FCT_imm$s): Sign-extended byte values. 383 * i386_disasm.c: Protect ADD_CHAR and ADD_STRING macros. Adjust uses. 384 (i386_disasm): Handle suffix. 385 * i386_parse.y: Emit suffix information. 386 * defs/i386: Remove unnecessary suffixes. 387 388 * Makefile.am: Disable building x86-64 version for now. 389 390 * defs/i386: Fix and, bound, cmp, or, pop, sbb, sub, xor. 391 * i386_data.h: Pass pointer to prefix to functions. If not prefixes 392 are consumed this means invalid input. 393 * i386_disasm.c: Fix prefix printing. Adjust function calls for 394 parameter change. 395 * i386_parse.y: Recognize moda prefix. 396 3972007-12-21 Ulrich Drepper <drepper@redhat.com> 398 399 * i386_data.h: Fix SIB handling. 400 * i386_disasm.c: Likewise. 401 4022007-12-19 Ulrich Drepper <drepper@redhat.com> 403 404 * defs/i386: Fix up 'and' opcode. 405 4062007-10-31 Ulrich Drepper <drepper@redhat.com> 407 408 * Makefile.am: Add dependencies of the generated files on the source 409 files. 410 (i386_lex_CFLAGS): Add -Wno-sign-compare. 411 412 * defs/i386: A lot more data. 413 * defs/x86_64: Likewise. 414 * i386_data.h (struct instr_enc): Add off1_3, off2_3, and off3_3 415 fields. 416 (opfct_t): Add parameter for third operand. 417 (FCT_*): Likewise. 418 (data_prefix): New function. 419 (FCT_abs): Implement. 420 (FCT_ax): Renamed to FCT_ax$w amd implement. 421 (FCT_disp8): Implement. 422 (FCT_dispA): Implement. 423 (FCT_imm): Implement. 424 (FCT_imm$w): Implement. 425 (FCT_imm$s): Don't zero-pad numbers. 426 (FCT_imm8): Likewise. 427 (FCT_rel): Likewise. 428 (general_mod$r_m): New function. 429 (FCT_mod$r_m): Use it. 430 (FCT_mod$r_m$w): New function. 431 (FCT_mod$8r_m): New function. 432 (FCT_reg): Correctly handle 16-bit registers. 433 (FCT_reg$w): New function. 434 * i386_disasm.c (i386_disasm): Handle prefixes better. 435 Pass third parameter to operand functions. 436 * i386_parse.y (struct instruction): Add off3 field. 437 Handle third operand throughout. 438 4392007-02-05 Ulrich Drepper <drepper@redhat.com> 440 441 * i386_disasm.c: New file. 442 * i386_data.h: New file. 443 * i386_gendis.c: New file. 444 * i386_lex.l: New file. 445 * i386_parse.y: New file. 446 * memory-access.h: New file. 447 * x86_64_disasm.c: New file. 448 * defs/i386: New file. 449 * defs/i386.doc: New file. 450 * defs/x86_64: New file. 451 4522005-02-15 Ulrich Drepper <drepper@redhat.com> 453 454 * Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2. 455 4562005-02-05 Ulrich Drepper <drepper@redhat.com> 457 458 * Makefile.am (AM_CFLAGS): Define, instead of adding things to DEFS. 459 4602003-08-11 Ulrich Drepper <drepper@redhat.com> 461 462 * Moved to CVS archive. 463