diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2005-05-07 13:30:02 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2005-05-07 13:30:02 +0000 |
commit | 003519a7c29470959d24bbf5a212d29919c40dc7 (patch) | |
tree | 47b5c561960f410738d9b4a2b607bd8a3a77c651 /opcodes/i386-dis.c | |
parent | 920a34a7b250d714239941480610cc39649968f3 (diff) | |
download | gdb-003519a7c29470959d24bbf5a212d29919c40dc7.zip gdb-003519a7c29470959d24bbf5a212d29919c40dc7.tar.gz gdb-003519a7c29470959d24bbf5a212d29919c40dc7.tar.bz2 |
gas/testsuite/
2005-05-07 H.J. Lu <hongjiu.lu@intel.com>
PR 843
* gas/i386/i386.exp: Add x86-64-branch.
* gas/i386/x86-64-branch.d: New.
* gas/i386/x86-64-branch.s: New.
opcodes/
2005-05-07 H.J. Lu <hongjiu.lu@intel.com>
PR 843
* i386-dis.c (branch_v_mode): New.
(indirEv): Use branch_v_mode instead of v_mode.
(OP_E): Handle branch_v_mode.
Diffstat (limited to 'opcodes/i386-dis.c')
-rw-r--r-- | opcodes/i386-dis.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 0014a70..15f43c3 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -197,7 +197,7 @@ fetch_data (struct disassemble_info *info, bfd_byte *addr) #define Eq OP_E, q_mode #define Edq OP_E, dq_mode #define Edqw OP_E, dqw_mode -#define indirEv OP_indirE, v_mode +#define indirEv OP_indirE, branch_v_mode #define indirEp OP_indirE, f_mode #define Ew OP_E, w_mode #define Ma OP_E, v_mode @@ -323,6 +323,7 @@ fetch_data (struct disassemble_info *info, bfd_byte *addr) #define dqw_mode 12 /* registers like dq_mode, memory like w_mode. */ #define f_mode 13 /* 4- or 6-byte pointer operand */ #define const_1_mode 14 +#define branch_v_mode 15 /* v_mode for branch. */ #define es_reg 100 #define cs_reg 101 @@ -3155,6 +3156,18 @@ OP_E (int bytemode, int sizeflag) else oappend (names32[rm + add]); break; + case branch_v_mode: + if (mode_64bit) + oappend (names64[rm + add]); + else + { + if ((sizeflag & DFLAG) || bytemode != branch_v_mode) + oappend (names32[rm + add]); + else + oappend (names16[rm + add]); + used_prefixes |= (prefixes & PREFIX_DATA); + } + break; case v_mode: case dq_mode: case dqw_mode: @@ -3256,6 +3269,7 @@ OP_E (int bytemode, int sizeflag) case dqw_mode: oappend ("WORD PTR "); break; + case branch_v_mode: case v_mode: case dq_mode: USED_REX (REX_MODE64); |