2005-01-12 H.J. Lu <hongjiu.lu@intel.com>
authorH.J. Lu <hjl.tools@gmail.com>
Wed, 12 Jan 2005 19:40:20 +0000 (19:40 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 12 Jan 2005 19:40:20 +0000 (19:40 +0000)
* i386-dis.c (OP_E): Don't ignore scale in SIB for 64 bit mode.

opcodes/ChangeLog
opcodes/i386-dis.c

index 1b9fc940e04ba45050273b6139ac164a5aab8580..f4edcb3dcadf5f435629807fbff418aaa834bd77 100644 (file)
@@ -1,3 +1,7 @@
+2005-01-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * i386-dis.c (OP_E): Don't ignore scale in SIB for 64 bit mode.
+
 2005-01-12  H.J. Lu  <hongjiu.lu@intel.com>
 
        * i386-dis.c (OP_E): Ignore scale when index == 0x4 in SIB.
index c24c6561e1af1d831d2871c93b2494369348234e..0e9ce49e2536807cc29b30a3917713a3a8fff2ac 100644 (file)
@@ -3192,8 +3192,8 @@ OP_E (int bytemode, int sizeflag)
          havesib = 1;
          FETCH_DATA (the_info, codep + 1);
          index = (*codep >> 3) & 7;
-         if (index != 0x4)
-           /* When INDEX == 0x4, scale is ignored.  */
+         if (mode_64bit || index != 0x4)
+           /* When INDEX == 0x4 in 32 bit mode, SCALE is ignored.  */
            scale = (*codep >> 6) & 3;
          base = *codep & 7;
          USED_REX (REX_EXTY);