aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--opcodes/ChangeLog4
-rw-r--r--opcodes/i386-dis.c11
2 files changed, 11 insertions, 4 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index ce7b57a..ca35ba7 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,7 @@
+2009-02-27 H.J. Lu <hongjiu.lu@intel.com>
+
+ * i386-dis.c (OP_EX): Call OP_E_memory instead of OP_E.
+
2009-02-26 Peter Bergner <bergner@vnet.ibm.com>
* ppc-dis.c (powerpc_init_dialect): Extend -Mpower7 to disassemble
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 83de1f7..2e44ed0 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -12676,11 +12676,17 @@ static void
OP_EX (int bytemode, int sizeflag)
{
int add;
+
+ /* Skip mod/rm byte. */
+ MODRM_CHECK;
+ codep++;
+
if (modrm.mod != 3)
{
- OP_E (bytemode, sizeflag);
+ OP_E_memory (bytemode, sizeflag, 0);
return;
}
+
USED_REX (REX_B);
if (rex & REX_B)
add = 8;
@@ -12693,9 +12699,6 @@ OP_EX (int bytemode, int sizeflag)
|| bytemode == q_swap_mode))
swap_operand ();
- /* Skip mod/rm byte. */
- MODRM_CHECK;
- codep++;
if (need_vex
&& bytemode != xmm_mode
&& bytemode != xmmq_mode)