*** ../binutils-2.23.2.orig/opcodes/i386-dis.c 2014-01-07 13:47:16.063502965 +0000
--- opcodes/i386-dis.c 2014-01-07 13:54:56.370488407 +0000
*************** get_valid_dis386 (const struct dis386 *d
*** 11250,11260 ****
}
static void
! get_sib (disassemble_info *info)
{
/* If modrm.mod == 3, operand must be register. */
if (need_modrm
! && address_mode != mode_16bit
&& modrm.mod != 3
&& modrm.rm == 4)
{
--- 11250,11260 ----
}
static void
! get_sib (disassemble_info *info, int sizeflag)
{
/* If modrm.mod == 3, operand must be register. */
if (need_modrm
! && ((sizeflag & AFLAG) || address_mode == mode_64bit)
&& modrm.mod != 3
&& modrm.rm == 4)
{
*************** print_insn (bfd_vma pc, disassemble_info
*** 11538,11544 ****
if (dp->name == NULL && dp->op[0].bytemode == FLOATCODE)
{
! get_sib (info);
dofloat (sizeflag);
}
else
--- 11538,11544 ----
if (dp->name == NULL && dp->op[0].bytemode == FLOATCODE)
{
! get_sib (info, sizeflag);
dofloat (sizeflag);
}
else
*************** print_insn (bfd_vma pc, disassemble_info
*** 11546,11552 ****
dp = get_valid_dis386 (dp, info);
if (dp != NULL && putop (dp->name, sizeflag) == 0)
{
! get_sib (info);
for (i = 0; i < MAX_OPERANDS; ++i)
{
obufp = op_out[i];
--- 11546,11552 ----
dp = get_valid_dis386 (dp, info);
if (dp != NULL && putop (dp->name, sizeflag) == 0)
{
! get_sib (info, sizeflag);
for (i = 0; i < MAX_OPERANDS; ++i)
{
obufp = op_out[i];