aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2005-01-12 19:40:20 +0000
committerH.J. Lu <hjl.tools@gmail.com>2005-01-12 19:40:20 +0000
commit9df48ba9fdf995d2d8c082e568010e817ec684fe (patch)
treeeb70c86675889dda98730abdc2e53367daac17b4
parent2033b4b97d6b5205608dd5313a4c352b17036544 (diff)
downloadgdb-9df48ba9fdf995d2d8c082e568010e817ec684fe.zip
gdb-9df48ba9fdf995d2d8c082e568010e817ec684fe.tar.gz
gdb-9df48ba9fdf995d2d8c082e568010e817ec684fe.tar.bz2
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.
-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);