diff options
author | H.J. Lu <hjl@lucon.org> | 2009-02-27 20:13:04 +0000 |
---|---|---|
committer | H.J. Lu <hjl@lucon.org> | 2009-02-27 20:13:04 +0000 |
commit | 0cc2a6d8c11b5203e4accce3ca5bda2a5f601dc8 (patch) | |
tree | cc51674f062bf8ea39729ad6c72728c5b931589c /opcodes | |
parent | 0b3cd54adac8ba885a0a5f99de4367788049d903 (diff) | |
download | binutils-redhat-0cc2a6d8c11b5203e4accce3ca5bda2a5f601dc8.tar.gz |
2009-02-27 H.J. Lu <hongjiu.lu@intel.com>
* i386-dis.c (OP_EX): Call OP_E_memory instead of OP_E.
Diffstat (limited to 'opcodes')
-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 ce7b57af42..ca35ba7051 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 83de1f7253..2e44ed0a8a 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) |