aboutsummaryrefslogtreecommitdiff
path: root/opcodes/i386-dis.c
AgeCommit message (Collapse)AuthorFilesLines
2003-06-23gas/H.J. Lu1-17/+93
2003-06-23 H.J. Lu <hongjiu.lu@intel.com> * gas/config/tc-i386.c (md_assemble): Support Intel Precott New Instructions. * gas/config/tc-i386.h (CpuPNI): New. (CpuUnknownFlags): Add CpuPNI. gas/testsuite/ 2003-06-23 H.J. Lu <hongjiu.lu@intel.com> * gas/i386/i386.exp: Add prescott. * gas/i386/prescott.d: New file. * gas/i386/prescott.s: Likewise. include/opcode/ 2003-06-23 H.J. Lu <hongjiu.lu@intel.com> * i386.h (i386_optab): Support Intel Precott New Instructions. opcodes/ 2003-06-23 H.J. Lu <hongjiu.lu@intel.com> * i386-dis.c (PNI_Fixup): New. Fix up "mwait" and "monitor" in Intel Precott New Instructions. (PREGRP27): New. Added for "addsubpd" and "addsubps". (PREGRP28): New. Added for "haddpd" and "haddps". (PREGRP29): New. Added for "hsubpd" and "hsubps". (PREGRP30): New. Added for "movsldup" and "movddup". (PREGRP31): New. Added for "movshdup" and "movhpd". (PREGRP32): New. Added for "lddqu". (dis386_twobyte): Use PREGRP30 to replace the "movlpX" entry. Use PREGRP31 to replace the "movhpX" entry. Use PREGRP28 for entry 0x7c. Use PREGRP29 for entry 0x7d. Use PREGRP27 for entry 0xd0. Use PREGRP32 for entry 0xf0. (twobyte_has_modrm): Updated. (twobyte_uses_SSE_prefix): Likewise. (grps): Use PNI_Fixup in the "sidtQ" entry. (prefix_user_table): Add PREGRP27, PREGRP28, PREGRP29, PREGRP30, PREGRP31 and PREGRP32. (float_mem): Use "fisttp{l||l|}" in entry 1 in opcode 0xdb. Use "fisttpll" in entry 1 in opcode 0xdd. Use "fisttp" in entry 1 in opcode 0xdf.
2003-05-09 * i386-dis.c (print_insn): Test intel_syntax against (char) -1 inAlan Modra1-1/+1
case char is unsigned.
2003-03-22 * i386-dis.c (dis386): Recognize icebp (0xf1).Doug Evans1-1/+1
2003-02-06 * i386-dis.c (dq_mode, Edq): Define.Alan Modra1-121/+123
(dis386_twobyte): Correct movd operands. (OP_E): Handle dq_mode case.
2002-11-182002-11-18 Klee Dienes <kdienes@apple.com>Klee Dienes1-1/+1
* arc.h (arc_ext_opcodes): Declare as extern. (arc_ext_operands): Declare as extern. * i860.h (i860_opcodes): Declare as const. 2002-11-18 Klee Dienes <kdienes@apple.com> * arc-opc.c (arc_ext_opcodes): Define. (arc_ext_operands): Define. * i386-dis.c (Suffix3DNow): Declare as const. * arm-opc.h (arm_opcodes): Declare as const. (thumb_opcodes): Declare as const. * h8500-opc.h (h8500_table): Declare as const. (h8500_table): Use a NULL for the opcode in the terminator, so that code testing (opcode->name) behaves correctly. * mcore-opc.h (mcore_table): Declare as const. * sh-opc.h (sh_table): Declare as const. * w65-opc.h (optable): Declare as const. * z8k-opc.h (z8k_table): Declare as const.
2002-03-18 * i386-dis.c (prefix_name): Fix handling of 32bit address prefixJan Hubicka1-13/+32
in 64bit mode. (print_insn) Likewise. (putop): Fix handling of 'E' (OP_E, OP_OFF): handle 32bit addressing mode in 64bit. (ptr_reg): Likewise.
2001-11-14 * i386-dis.c (print_insn): Use x86-64 as option.Andreas Jaeger1-1/+1
2001-11-14binutils/ChangeLogAlan Modra1-76/+123
* doc/binutils.texi (objdump): Document x86 -M options. include/ChangeLog * dis-asm.h (print_insn_i386): Declare. opcodes/ChangeLog * disassemble.c (disassembler): Call print_insn_i386. * i386-dis.c (SUFFIX_ALWAYS): Define. (struct dis_private): Add orig_sizeflag. (print_insn_i386): Make it a wrapper, calling.. (print_insn): ..The old body of print_insn_i386. Avoid longjmp warning without using volatile by moving orig_sizeflag to priv, and removing inbuf. Parse disassembler_options. (print_insn_i386_att, print_insn_i386_intel): Move initialisation code to print_insn. (putop): Remove #ifdef SUFFIX_ALWAYS.
2001-11-13 * i386.h (i386_optab): Add entries for "sldr", "smsw" and "str" toAlan Modra1-3/+3
accept WordReg. * i386-dis.c (grps): Change "sldt", "str", and "smsw" entries to "sldtQ", "strQ", "smswQ" respectively; all with Ev operand category instead of Ew.
2001-09-04 * i386-dis.c (grps): Don't print the implicit al/ax/eax registerAlan Modra1-8/+8
for opcode 0xf6 or 0xf7 forms of mul, imul, div, idiv insns.
2001-07-29 * i386-dis.c: Fix formatting.Kazu Hirata1-60/+57
2001-07-28 * i386-dis.c: Change formatting conventions for architectureAlan Modra1-50/+121
i386:intel to better match the format of various intel i386 assemblers, like nasm, tasm or masm.
2001-07-18 * i386-dis.c (grps): Print l or w suffix, and require mem modrmAlan Modra1-9/+9
for lgdt, lidt, sgdt, sidt.
2001-07-092001-07-09 Andreas Jaeger <aj@suse.de>, Karsten Keil <kkeil@suse.de>Andreas Jaeger1-7/+16
* i386-dis.c (set_op): Handle 64 bit and 32 bit mode. (OP_J): Use bfd_vma for mask to work properly with 64 bits. (op_address,op_riprel): Use bfd_vma to handle 64 bits.
2001-06-11Merge insn decode tables, and generally tidy.Alan Modra1-1989/+773
2001-06-10Branch hints for Pentium4 as insn modifiers, and some minor tweaksAlan Modra1-75/+76
to formatting.
2001-06-06 * i386-dis.c (cond_jump_flag, loop_jcxz_flag): Define.Alan Modra1-65/+112
(cond_jump_mode, loop_jcxz_mode): Define. (dis386_att): Add cond_jump_flag and loop_jcxz_flag as appropriate, and 'F' suffix to loop insns. (disx86_64_att): Likewise. (dis386_twobyte_att): Likewise. (print_insn_i386): Don't output addr prefix for loop, jcxz insns. Output data size prefix for long conditional jumps. Output cs and ds branch hints. (putop): Handle 'F', and mark PREFIX_ADDR used for case 'E'. (OP_J): Don't make PREFIX_DATA used.
2001-05-122001-05-12 H.J. Lu <hjl@gnu.org>H.J. Lu1-0/+6
* i386-dis.c (print_insn_i386): Always set `mod', `reg' and `rm'.
2001-05-12 * i386-dis.c (twobyte_has_modrm): Update table.Alan Modra1-8/+20
(need_modrm): Give it file scope. (MODRM_CHECK): Define. (dofloat): Use MODRM_CHECK. (OP_E): Likewise. (OP_EM): Likewise. (OP_EX): Likewise. and fix testsuite yet again now that we are getting correct disassembly.
2001-05-12Correct cvtps2dq, movdq2q, movq2dq, and movq problems.Alan Modra1-3/+3
2001-05-04Assorted fixes to pinsrw, pextrw, pmovmskb, movmskp, maskmovq.Alan Modra1-13/+24
2001-04-06 * i386-dis.c: Add ffreep instruction.Andreas Jaeger1-6/+6
2001-03-24Small tweaks to sse2 instructions.Alan Modra1-9/+25
2001-03-22paddq and psubq support.Alan Modra1-6/+6
2001-03-13Fix typos in ChangeLogs; fix dates in copyright noticesNick Clifton1-1/+2
2001-02-12 * i386.h (i386_optab): SSE integer converison instructions haveJan Hubicka1-6/+16
64bit versions on x86-64. * i386-dis.c (prefix_user_t): Add 'Y' to SSE ineger converison instructions. (putop): Handle 'Y'
2001-02-01 * (dis386_att, grps): Use 'T' for push/popJan Hubicka1-22/+43
(putop): Handle 'T', alphabetize order, fix 'I' handling in Intel syntax
2001-01-13 * i386.c (md_assemble): Check cpu_flags even for nullary instructions.Jan Hubicka1-8/+8
* i386.h (i386_optab): Fix pusha and ret templates. * i386-dis.c (dis386_att, disx86_64_att): Fix ret, lret and iret templates.
2001-01-10 * i386-dis.c (PREGRP15 - PREGRP24): New.Jan Hubicka1-90/+271
(dis386_twobyt): Add SSE2 instructions. (twobyte_uses_SSE_prefix: Rename from ... ; add new SSE instructions. (twobyte_uses_f3_prefix): ... this one. (grps): Add SSE instructions. (prefix_user_table): Add two new slots; add SSE2 instructions. (print_insn_i386): Rename uses_f3_prefix to uses_SSE_prefix; Handle the REPNZ and Data16 prefixes as well; do proper lookup to prefix_user_table. (OP_E): Accept mfence and lfence as well. (OP_MMX): Data16 prefix turns MMX to SSE; support REX extensions. (OP_XMM): Support REX extensions. (OP_EM): Likewise. (OP_EX): Likewise.
2001-01-05 * i386-dis.c: Add x86_64 support.Jan Hubicka1-304/+1456
(rex): New static variable. (REX_MODE64, REX_EXTX, REX_EXTY, REX_EXTZ): New constants. (USED_REX): New macro. (Ev, Ed, Rm, Iq, Iv64, Cm, Dm, Rm*, Ob64, Ov64): New macros. (OP_I64, OP_OFF64, OP_IMREG): New functions. (OP_REG, OP_OFF): Declare. (get64, get32, get32s): New functions. (r??_reg): New constants. (dis386_att): Change templates of instruction implicitly promoted to 64bit; change e?? to RMe?? for unwind RM byte instructions. (grps): Likewise. (dis386_intel): Likewise. (dixx86_64_att): New table based on dis386_att. (dixx86_64_intel): New table based on dis386_intel. (names64, names8rex): New global variable. (names32, names16): Add extended registers. (prefix_user_t): Recognize rex prefixes. (prefix_name): Print REX prefixes nicely. (op_riprel): New global variable. (start_pc): Set type to bfd_vma. (print_insn_i386): Detect the 64bit mode and use proper table; move ckprefix after initializing the buffer; output unused rex prefixes; output information about target of RIP relative addresses. (putop): Support 'O' and 'I'. Update handling of "P', 'Q', 'R' and 'S'; (print_operand_value): New function. (OP_E, OP_G, OP_REG, OP_I, OP_J, OP_DIR, OP_OFF, OP_D): Add support for REX prefix and new modes. (get64, get32s): New. (get32): Return bfd_signed_vma type. (set_op): Initialize the op_riprel. * disassemble.c (disassembler): Recognize the x86-64 disassembly.
1999-12-27x86 indirect jump/call syntax fixes. Disassembly fix for lcall.Alan Modra1-1/+1
1999-09-041999-09-04 H.J. Lu <hjl@gnu.org>Ian Lance Taylor1-2/+2
* i386-dis.c (print_insn_i386): Set bytes_per_line to 7.
1999-08-21Add AMD athlon support to x86 assembler and disassembler.Alan Modra1-5/+5
1999-07-11 * dis-buf.c: Add ATTRIBUTE_UNUSED as appropriate.Ian Lance Taylor1-1182/+1253
(generic_strcat_address): Add cast to avoid warning. * i386-dis.c: Initialize all structure fields to avoid warnings. Add ATTRIBUTE_UNUSED as appropriate.
1999-06-23PAlan Modra1-2/+2
include/opcode/i386.h: Allow bswapl, arplw, and other dodgy insns. opcodes/i386-dis.c: Fix a comment
1999-06-13Rework last checkin to the following:Ian Lance Taylor1-39/+142
* i386-dis.c (FWAIT_OPCODE): Define. (used_prefixes): New static variable. (fetch_data): Don't print an error message if we have already fetched some bytes successfully. (ckprefix): Clear used_prefixes. Use FWAIT_OPCODE, not 0x9b. (prefix_name): New static function. (print_insn_i386): If setjmp fails, indicating a data error, but we have managed to fetch some bytes, print the first one as a prefix or a .byte pseudo-op. If fwait is followed by a non floating point instruction, print the first prefix. Set used_prefixes when prefixes are used. If any prefixes were not used after disassembling the instruction, print the first prefix instead of printing the instruction. (putop): Set used_prefixes when prefixes are used. (append_seg, OP_E, OP_G, OP_REG, OP_I, OP_sI, OP_J): Likewise. (OP_DIR, OP_SIMD_Suffix): Likewise.
1999-06-13 * i386-dis.c (FWAIT_OPCODE): Define.Ian Lance Taylor1-21/+60
(fetch_data): Don't print an error message if we have already found an fwait prefix. (ckprefix): Use FWAIT_OPCODE rather than 0x9b. (print_insn_i386): If setjmp fails, indicating a data error, but we have found an fwait prefix, then print it as an fwait instruction. In any case, return the number of bytes consumed, if any, rather than always returning -1.
1999-05-17รจAlan Modra1-133/+108
Add missing files from last change in gas/testsuite. i386-dis.c: Catch a number of cases where an invalid modrm would result in bogus disassembly. const lots of places.
1999-05-13PAlan Modra1-382/+685
i386 PIII SIMD support, remove ReverseRegRegmem kludge tidy a few things in i386 intel mode disassembly
1999-05-0319990502 sourceware importbinu_ss_19990502Richard Henderson1-0/+3268