diff options
Diffstat (limited to 'opcodes')
-rw-r--r-- | opcodes/ChangeLog | 4 | ||||
-rw-r--r-- | opcodes/i386-dis.c | 4 |
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); |