aboutsummaryrefslogtreecommitdiff
path: root/opcodes/i386-dis.c
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2008-02-13 13:29:31 +0000
committerJan Beulich <jbeulich@novell.com>2008-02-13 13:29:31 +0000
commit34b772a65111bf68ff0771283dc3b6ad9a175672 (patch)
tree13e2e7884ccf9b82d59ef719f21f62515b065843 /opcodes/i386-dis.c
parenta60de03c6170ebd45927e318164e2306028df86d (diff)
downloadfsf-binutils-gdb-34b772a65111bf68ff0771283dc3b6ad9a175672.zip
fsf-binutils-gdb-34b772a65111bf68ff0771283dc3b6ad9a175672.tar.gz
fsf-binutils-gdb-34b772a65111bf68ff0771283dc3b6ad9a175672.tar.bz2
gas/
2008-02-13 Jan Beulich <jbeulich@novell.com> * config/tc-i386.c (intel_e09): Also special-case 'bound'. gas/testsuite/ 2008-02-13 Jan Beulich <jbeulich@novell.com> * gas/i386/intelbad.s, gas/i386/intelok.s: Add 'bound' tests. * gas/i386/intelbad.l, gas/i386/intelok.l, gas/i386/intelok.e, gas/i386/opcode-intel.d: Adjust. opcodes/ 2008-02-13 Jan Beulich <jbeulich@novell.com> * i386-dis.c (a_mode): New. (cond_jump_mode): Adjust. (Ma): Change to a_mode. (intel_operand_size): Handle a_mode. * i386-opc.tbl: Allow Dword and Qword for bound. * i386-tbl.h: Re-generate.
Diffstat (limited to 'opcodes/i386-dis.c')
-rw-r--r--opcodes/i386-dis.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 149bafb..cb6a171 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -231,7 +231,7 @@ fetch_data (struct disassemble_info *info, bfd_byte *addr)
#define Em { OP_E, m_mode }
#define Ew { OP_E, w_mode }
#define M { OP_M, 0 } /* lea, lgdt, etc. */
-#define Ma { OP_M, v_mode }
+#define Ma { OP_M, a_mode }
#define Mb { OP_M, b_mode }
#define Md { OP_M, d_mode }
#define Mp { OP_M, f_mode } /* 32 or 48 bit memory operand for LDS, LES etc */
@@ -378,7 +378,9 @@ fetch_data (struct disassemble_info *info, bfd_byte *addr)
#define x_mode (t_mode + 1)
/* d_mode in 32bit, q_mode in 64bit mode. */
#define m_mode (x_mode + 1)
-#define cond_jump_mode (m_mode + 1)
+/* pair of v_mode operands */
+#define a_mode (m_mode + 1)
+#define cond_jump_mode (a_mode + 1)
#define loop_jcxz_mode (cond_jump_mode + 1)
/* operand size depends on REX prefixes. */
#define dq_mode (loop_jcxz_mode + 1)
@@ -6544,6 +6546,13 @@ intel_operand_size (int bytemode, int sizeflag)
if (!(rex & REX_W))
used_prefixes |= (prefixes & PREFIX_DATA);
break;
+ case a_mode:
+ if (sizeflag & DFLAG)
+ oappend ("QWORD PTR ");
+ else
+ oappend ("DWORD PTR ");
+ used_prefixes |= (prefixes & PREFIX_DATA);
+ break;
case d_mode:
case dqd_mode:
oappend ("DWORD PTR ");