From 285963233bc7509edb07c035426ee0096650b0af Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Tue, 18 Oct 2016 09:06:27 -0700 Subject: [PATCH] Check addr32flag instead of sizeflag for rip/eip Since the address size prefix, 0x67, is ignored for MPX instructions in 64-bit mode, we should check addr32flag instead of sizeflag for rip/eip. PR binutis/20699 * i386-dis.c (OP_E_memory): Check addr32flag instead of sizeflag for rip/eip. --- opcodes/ChangeLog | 6 ++++++ opcodes/i386-dis.c | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 2b93ed2286..36ed580618 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,9 @@ +2016-10-18 H.J. Lu + + PR binutis/20699 + * i386-dis.c (OP_E_memory): Check addr32flag in stead of + sizeflag. + 2016-10-18 H.J. Lu PR binutis/20704 diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index cd1321f400..4624a6a660 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -15523,7 +15523,7 @@ OP_E_memory (int bytemode, int sizeflag) if (riprel) { set_op (disp, 1); - oappend (sizeflag & AFLAG ? "(%rip)" : "(%eip)"); + oappend (!addr32flag ? "(%rip)" : "(%eip)"); } } @@ -15538,7 +15538,7 @@ OP_E_memory (int bytemode, int sizeflag) if (intel_syntax && riprel) { set_op (disp, 1); - oappend (sizeflag & AFLAG ? "rip" : "eip"); + oappend (!addr32flag ? "rip" : "eip"); } *obufp = '\0'; if (havebase) -- 2.34.1