aboutsummaryrefslogtreecommitdiff
path: root/opcodes
diff options
context:
space:
mode:
Diffstat (limited to 'opcodes')
-rw-r--r--opcodes/ChangeLog4
-rw-r--r--opcodes/i386-dis.c4
2 files changed, 6 insertions, 2 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 1b9fc94..f4edcb3 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,5 +1,9 @@
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.
2005-01-10 Andreas Schwab <schwab@suse.de>
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index c24c656..0e9ce49 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -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);