aboutsummaryrefslogtreecommitdiff
path: root/opcodes/i386-dis.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2005-05-07 13:30:02 +0000
committerH.J. Lu <hjl.tools@gmail.com>2005-05-07 13:30:02 +0000
commit003519a7c29470959d24bbf5a212d29919c40dc7 (patch)
tree47b5c561960f410738d9b4a2b607bd8a3a77c651 /opcodes/i386-dis.c
parent920a34a7b250d714239941480610cc39649968f3 (diff)
downloadgdb-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.c16
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);