This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
PATCH: Call OP_E_memory instead of OP_E
- From: "H.J. Lu" <hongjiu dot lu at intel dot com>
- To: binutils at sources dot redhat dot com
- Date: Fri, 27 Feb 2009 12:12:24 -0800
- Subject: PATCH: Call OP_E_memory instead of OP_E
- Reply-to: "H.J. Lu" <hjl dot tools at gmail dot com>
Hi,
OP_EX can call OP_E_memory directly. I am checking in this patch.
H.J.
---
Index: ChangeLog
===================================================================
RCS file: /cvs/src/src/opcodes/ChangeLog,v
retrieving revision 1.1361
diff -u -p -r1.1361 ChangeLog
--- ChangeLog 26 Feb 2009 22:07:33 -0000 1.1361
+++ ChangeLog 27 Feb 2009 20:11:23 -0000
@@ -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
Index: i386-dis.c
===================================================================
RCS file: /cvs/src/src/opcodes/i386-dis.c,v
retrieving revision 1.191
diff -u -p -r1.191 i386-dis.c
--- i386-dis.c 4 Feb 2009 16:03:31 -0000 1.191
+++ i386-dis.c 27 Feb 2009 20:11:24 -0000
@@ -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)