diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 1b9fc940e0..f4edcb3dca 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,7 @@ +2005-01-12 H.J. Lu + + * i386-dis.c (OP_E): Don't ignore scale in SIB for 64 bit mode. + 2005-01-12 H.J. Lu * i386-dis.c (OP_E): Ignore scale when index == 0x4 in SIB. diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index c24c6561e1..0e9ce49e25 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);