Home | History | Annotate | Download | only in libcpu
      1 2008-12-31  Ulrich Drepper  <drepper (a] redhat.com>
      2 
      3 	* i386_disasm.c (i386_disasm): Correct resizing of buffer.
      4 
      5 	* i386_parse.y (struct argstring): Add off element.
      6 	(off_op_str): New global variable.
      7 	(print_op_str): Print strings as concatenated strings.  Keep track
      8 	of index and length.  Update ->off element.
      9 	(print_op_str_idx): New function.
     10 	(instrtable_out): Mark op%d_fct as const.
     11 	Emit two tables for the strings: the string itself (op%d_str) and the
     12 	index table (op%d_str_idx).
     13 	* i386_disasm.c (i386_disasm): Adjust for new op%d_str definition.
     14 
     15 	* i386_disasm.c [X86_64] (i386_disasm): Handle rex prefix when
     16 	printing only prefix.
     17 
     18 	* i386_disasm.c (i386_disasm): Minor optimizations.
     19 
     20 	* i386_parse.y (instrtable_out): No need to emit index, the reader can
     21 	keep track.
     22 	* i386_disasm.c (i386_disasm): The index is not emitted anymore, no
     23 	need to skip it.
     24 
     25 	* i386_disasm.c (amd3dnow): Mark as const.
     26 
     27 	* defs/i386: Add blendvpd and blendvps opcodes.
     28 
     29 2008-12-30  Ulrich Drepper  <drepper (a] redhat.com>
     30 
     31 	* defs/i386: Add blendpd and blendps opcodes.
     32 
     33 2008-12-19  Ulrich Drepper  <drepper (a] redhat.com>
     34 
     35 	* defs/i386: Add entry for AMD 3DNOW.
     36 	* i386_disasm.c: Implement AMD 3DNOW disassembly.
     37 
     38 2008-12-17  Ulrich Drepper  <drepper (a] redhat.com>
     39 
     40 	* i386_disasm.c (i386_disasm): If instruction matches prefix,
     41 	undoing the prefix match finishes the instruction.
     42 
     43 2008-01-21  Roland McGrath  <roland (a] redhat.com>
     44 
     45 	* defs/i386: Fix typo in comment.
     46 	* i386_disasm.c (i386_disasm): Handle cltq, cqto.
     47 
     48 	* i386_parse.y: Add sanity check for NMNES macro value.
     49 	* Makefile.am (i386_parse.o): Fix target in dependency rule.
     50 	(i386_parse.h): New target with empty commands.
     51 	(i386_lex.o): Depend on it in place of i386_parse.c.
     52 
     53 2008-01-21  Ulrich Drepper  <drepper (a] redhat.com>
     54 
     55 	* Makefile.am (EXTRA_DIST): Remove defs/x86_64.
     56 
     57 2008-01-14  Ulrich Drepper  <drepper (a] redhat.com>
     58 
     59 	* defs/i386: Add fixes for opcodes with register number in opcode,
     60 	64-bit immediate forms, nop with rex.B.
     61 	* i386_data.h [X86_64] (FCT_imm64$w): New function.
     62 	(FCT_oreg): New function.
     63 	(FCT_oreg$w): New function.
     64 	* i386_disasm.c (i386_disasm): Reinitialize fmt always before
     65 	starting the loop to process the string.  Handle 0x90 special for
     66 	x86-64.
     67 	* i386_parse.y (fillin_arg): Expand synonyms before concatening to
     68 	form the function name.
     69 
     70 2008-01-11  Ulrich Drepper  <drepper (a] redhat.com>
     71 
     72 	* i386_disasm.c (struct output_buffer): Remove symcb and symcbarg.
     73 	(i386_disasm): Remove appropriate initializers.
     74 	Use symcb to lookup symbol strings.
     75 
     76 	* i386_disasm.c (struct output_buffer): Add labelbuf, labelbufsize,
     77 	symaddr_use, and symaddr fields.
     78 	(i386_disasm): Remove labelbuf and labelbufsize variables.
     79 	Add back %e format.  Implement %a and %l formats.
     80 
     81 	* i386_data.h (general_mod$r_m): Set symaddr_use and symaddr for %rip
     82 	base addressing.
     83 
     84 	* i386_disasm.c (i386_disasm): Resize output buffer if necessary.
     85 	Optimize output_data initialization.  Free buffers before return.
     86 	(struct output_data): Remove op1str field.  Adjust code.
     87 	(i386_disasm): Store final NUL btye at end of functions.
     88 
     89 2008-01-10  Ulrich Drepper  <drepper (a] redhat.com>
     90 
     91 	* i386_data.h (FCT_crdb): New function.
     92 	(FCT_ccc): Use FCT_crdb.
     93 	(FCT_ddd): Likewise.
     94 
     95 	* defs/i386: Fix a few instructions with immediate arguments.
     96 
     97 	* i386_disasm.c: Rewrite interface to callback functions for operands
     98 	to take a single pointer to a structure.
     99 	* i386_data.h: Adjust all functions.
    100 
    101 2008-01-08  Ulrich Drepper  <drepper (a] redhat.com>
    102 
    103 	* Makefile.am: Enable x86-64 again.
    104 	* defs/i386: Lots of changes for x86-64.
    105 	* i386_data.h: Add support for use in x86-64 disassembler.
    106 	* i386_disasm.c: Likewise.
    107 	* i386_parse.y: Likewise.
    108 	* defs/x86_64: Removed.
    109 
    110 2008-01-04  Ulrich Drepper  <drepper (a] redhat.com>
    111 
    112 	* defs/i386: Cleanups, remove masks which are not needed.
    113 	Add remaining Intel opcodes.
    114 	* i386_data.h (FCT_imm8): Check for input buffer overrun.
    115 	* i386_disasm.c (i386_disasm): Likewise.
    116 	* i386_parse.y: Remove suffixes which are not needed anymore.
    117 
    118 2008-01-03  Ulrich Drepper  <drepper (a] redhat.com>
    119 
    120 	* defs/i386: Add yet more SSE instructions.
    121 
    122 2008-01-02  Ulrich Drepper  <drepper (a] redhat.com>
    123 
    124 	* i386_disasm.c (i386_disasm): Extend matcher to allow tables to
    125 	contain instructions with prefixes.
    126 	* defs/i386: Use for many SSE operations.
    127 	* i386_data.h (FCT_mmxreg2): Removed.
    128 
    129 2008-01-01  Ulrich Drepper  <drepper (a] redhat.com>
    130 
    131 	* defs/i386: More 0f prefix support.
    132 	* i386_data.h (FCT_mmxreg): Implement.
    133 	(FCT_mmxreg2): Implement.
    134 	(FCT_mmreg): Remove.
    135 	* i386_disasm.c (i386_disasm): More special instructions.
    136 	Fix tttn suffix for cmov.
    137 	* i386_parse.y: Simplify test for mod/r_m mode.
    138 
    139 2007-12-31  Ulrich Drepper  <drepper (a] redhat.com>
    140 
    141 	* defs/i386: Fix order or arguments for mov of control/debug registers.
    142 	* i386_data.h (FCT_ccc): Implement
    143 	(FCT_ddd): Implement
    144 
    145 2007-12-30  Ulrich Drepper  <drepper (a] redhat.com>
    146 
    147 	* defs/i386: Fix 0f groups 6 and 7.
    148 	* i386_data.c (FCT_mod$16r_m): Implement.
    149 	* i386_disasm.c (i386_disasm): Third parameter can also have string.
    150 
    151 2007-12-29  Ulrich Drepper  <drepper (a] redhat.com>
    152 
    153 	* defs/i386: Add lots of floating point ops.
    154 	* i386_data.h (FCT_fmod$fr_m): Removed.
    155 	(FCT_freg): Implement.
    156 	* i386_disasm.c (i386_disasm): Implement suffix_D.
    157 	* i386_parse.y: Emit suffix_D.
    158 
    159 	* defs/i386: Use rel instead of dispA.
    160 	Fix lcall, dec, div, idiv, imul, inc, jmp, ljmp, mul, neg, not, push,
    161 	test.
    162 
    163 	* i386_data.h (FCT_dispA): Removed.
    164 	(FCT_ds_xx): Add test for end of input buffer.
    165 	* i386_disasm.c (ABORT_ENTRY): Removed.
    166 	(i386_disasm): Fix handling of SIB.  Pass correct address value to
    167 	operand callbacks.
    168 
    169 	* Makefile.am (*.mnemonics): Filter out INVALID entry.
    170 	* defs/i386: Define imms8 and use in appropriate places.
    171 	Add INVALID entries for special opcodes with special mnemonics.
    172 	Fix int3.  Fix typo in shl.  Correct xlat.
    173 	* i386_data.h (FCT_ds_xx): New function.
    174 	(FCT_ds_si): Use it.
    175 	(FCT_ds_bx): New function.
    176 	(FCT_imms8): New function.
    177 	* i386_disasm.c (MNE_INVALID): Define.
    178 	(i386_disasm): Handle invalid opcodes in mnemonics printing, not
    179 	separately.  Fix address value passed to operand handlers.
    180 	* i386_parse.y (bx_reg): Define.
    181 	(instrtable_out): Handle INVALID entries differently, just use
    182 	MNE_INVALID value for .mnemonic.
    183 
    184 2007-12-28  Ulrich Drepper  <drepper (a] redhat.com>
    185 
    186 	* defs/i386: Fix shift and mov immediate instructions.
    187 	* i386_data.h (FCT_imm16): Implement.
    188 
    189 	* defs/i386: Use absval instead of abs of lcall and ljmp.
    190 	Add parameters for cmps.  Fix test and mov immediate.
    191 	* i386_data.h: Implement FCT_absval.
    192 	* i386_disasm.c: Handle data16 for suffix_w  and FCT_imm.
    193 
    194 	* defs/i386: Move entries with 0x9b prefix together.
    195 	* i386_disasm.c (i386_disasm): Fix recognizing insufficient bytes in
    196 	input.  Handle data16 with suffix_W.
    197 
    198 	* i386_data.h (FCT_*): Add end parameter to all functions.  Check
    199 	before using more bytes.
    200 	(FCT_sel): Implement.
    201 	* i386_disasm.c (i386_disasm): Better handle end of input buffer.
    202 	Specal opcode 0x99.
    203 
    204 	* Makefile.am: Use m4 to preprocess defs/* files.
    205 	* defs/i386: Adjust appropriately.
    206 	* i386_data.c (FCT_ax): Implement.
    207 	(FCT_ax$w): Use FCT_ax.
    208 	* i386_disasm.c (ADD_STRING): Use _len instead of len.
    209 	(i386_disasm): If no instruction can be matched because of lack of
    210 	input and prefixes have been matched, print prefixes.
    211 	Recognize abort entries.
    212 	Handle special cases.
    213 	* i386_gendis.c: Recognize - input file name.
    214 	* i386_lex.c: Recognize INVALID token.
    215 	* i386_parse.y: Handle INVALID token input.
    216 
    217 	* defs/i386: Fix mov, pop.
    218 	* i386_data.h (FCT_sreg3): Implement.
    219 
    220 2007-12-27  Ulrich Drepper  <drepper (a] redhat.com>
    221 
    222 	* defs/i386: Fix adc, add, cmp, or, sbb, sub, xchg, xor.
    223 	* i386_data.h (FCT_imms): New function.
    224 	(FCT_imm$s): Use FCT_imms for handling of signed values.
    225 	(FCT_imm8): Sign extend values.
    226 	* i386_disasm.c (i386_disasm): Implement suffix_w0.
    227 	* i386_parse.y: Emit suffix w0.
    228 
    229 	* i386_data.h (FCT_disp8): Add 0x prefix.
    230 	(FCT_ds_si): Implement.
    231 	* i386_disasm.c (i386_disasm): Increment addr for invalid prefixes.
    232 	Implement tttn suffix.
    233 	* i386_parse.y: Emit tttn suffix definition.
    234 
    235 2007-12-26  Ulrich Drepper  <drepper (a] redhat.com>
    236 
    237 	* i386_data.h (struct instr_enc): Use suffix field.
    238 	(FCT_dx): Fill in body.
    239 	(FCT_es_di): Likewise.
    240 	(FCT_imm$s): Sign-extended byte values.
    241 	* i386_disasm.c: Protect ADD_CHAR and ADD_STRING macros.  Adjust uses.
    242 	(i386_disasm): Handle suffix.
    243 	* i386_parse.y: Emit suffix information.
    244 	* defs/i386: Remove unnecessary suffixes.
    245 
    246 	* Makefile.am: Disable building x86-64 version for now.
    247 
    248 	* defs/i386: Fix and, bound, cmp, or, pop, sbb, sub, xor.
    249 	* i386_data.h: Pass pointer to prefix to functions.  If not prefixes
    250 	are consumed this means invalid input.
    251 	* i386_disasm.c: Fix prefix printing.  Adjust function calls for
    252 	parameter change.
    253 	* i386_parse.y: Recognize moda prefix.
    254 
    255 2007-12-21  Ulrich Drepper  <drepper (a] redhat.com>
    256 
    257 	* i386_data.h: Fix SIB handling.
    258 	* i386_disasm.c: Likewise.
    259 
    260 2007-12-19  Ulrich Drepper  <drepper (a] redhat.com>
    261 
    262 	* defs/i386: Fix up 'and' opcode.
    263 
    264 2007-10-31  Ulrich Drepper  <drepper (a] redhat.com>
    265 
    266 	* Makefile.am: Add dependencies of the generated files on the source
    267 	files.
    268 	(i386_lex_CFLAGS): Add -Wno-sign-compare.
    269 
    270 	* defs/i386: A lot more data.
    271 	* defs/x86_64: Likewise.
    272 	* i386_data.h (struct instr_enc): Add off1_3, off2_3, and off3_3
    273 	fields.
    274 	(opfct_t): Add parameter for third operand.
    275 	(FCT_*): Likewise.
    276 	(data_prefix): New function.
    277 	(FCT_abs): Implement.
    278 	(FCT_ax): Renamed to FCT_ax$w amd implement.
    279 	(FCT_disp8): Implement.
    280 	(FCT_dispA): Implement.
    281 	(FCT_imm): Implement.
    282 	(FCT_imm$w): Implement.
    283 	(FCT_imm$s): Don't zero-pad numbers.
    284 	(FCT_imm8): Likewise.
    285 	(FCT_rel): Likewise.
    286 	(general_mod$r_m): New function.
    287 	(FCT_mod$r_m): Use it.
    288 	(FCT_mod$r_m$w): New function.
    289 	(FCT_mod$8r_m): New function.
    290 	(FCT_reg): Correctly handle 16-bit registers.
    291 	(FCT_reg$w): New function.
    292 	* i386_disasm.c (i386_disasm): Handle prefixes better.
    293 	Pass third parameter to operand functions.
    294 	* i386_parse.y (struct instruction): Add off3 field.
    295 	Handle third operand throughout.
    296 
    297 2007-02-05  Ulrich Drepper  <drepper (a] redhat.com>
    298 
    299 	* i386_disasm.c: New file.
    300 	* i386_data.h: New file.
    301 	* i386_gendis.c: New file.
    302 	* i386_lex.l: New file.
    303 	* i386_parse.y: New file.
    304 	* memory-access.h: New file.
    305 	* x86_64_disasm.c: New file.
    306 	* defs/i386: New file.
    307 	* defs/i386.doc: New file.
    308 	* defs/x86_64: New file.
    309 
    310 2005-02-15  Ulrich Drepper  <drepper (a] redhat.com>
    311 
    312 	* Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.
    313 
    314 2005-02-05  Ulrich Drepper  <drepper (a] redhat.com>
    315 
    316 	* Makefile.am (AM_CFLAGS): Define, instead of adding things to DEFS.
    317 
    318 2003-08-11  Ulrich Drepper  <drepper (a] redhat.com>
    319 
    320 	* Moved to CVS archive.
    321