diff options
-rw-r--r-- | opcodes/ChangeLog | 4 | ||||
-rw-r--r-- | opcodes/i386-dis.c | 11 |
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) |