Check addr32flag instead of sizeflag for rip/eip
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 18 Oct 2016 16:06:27 +0000 (09:06 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 18 Oct 2016 16:06:27 +0000 (09:06 -0700)
Since the address size prefix, 0x67, is ignored for MPX instructions in
64-bit mode, we should check addr32flag instead of sizeflag for rip/eip.

PR binutis/20699
* i386-dis.c (OP_E_memory): Check addr32flag instead of sizeflag
for rip/eip.

opcodes/ChangeLog
opcodes/i386-dis.c

index 2b93ed22864789bedf7cb5a4681cf62294c04788..36ed58061866b56d33dbb1aa9706625934c65344 100644 (file)
@@ -1,3 +1,9 @@
+2016-10-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR binutis/20699
+       * i386-dis.c (OP_E_memory): Check addr32flag in stead of
+       sizeflag.
+
 2016-10-18  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR binutis/20704
index cd1321f40050bf635b7dd4e77608622cabacc4d9..4624a6a6600fc095c1d226be7ccdcfe0acd056e8 100644 (file)
@@ -15523,7 +15523,7 @@ OP_E_memory (int bytemode, int sizeflag)
            if (riprel)
              {
                set_op (disp, 1);
-               oappend (sizeflag & AFLAG ? "(%rip)" : "(%eip)");
+               oappend (!addr32flag ? "(%rip)" : "(%eip)");
              }
          }
 
@@ -15538,7 +15538,7 @@ OP_E_memory (int bytemode, int sizeflag)
          if (intel_syntax && riprel)
            {
              set_op (disp, 1);
-             oappend (sizeflag & AFLAG ? "rip" : "eip");
+             oappend (!addr32flag ? "rip" : "eip");
            }
          *obufp = '\0';
          if (havebase)