[PATCHv2] opcodes/x86: fix minor missed styling case

Jiang, Haochen haochen.jiang@intel.com
Thu Jul 25 02:12:44 GMT 2024


> -----Original Message-----
> From: Cui, Lili <lili.cui@intel.com>
> Sent: Thursday, July 25, 2024 9:53 AM
> To: Andrew Burgess <aburgess@redhat.com>; Beulich, Jan <JBeulich@suse.com>
> Cc: H.J. Lu <hjl.tools@gmail.com>; Jiang, Haochen <haochen.jiang@intel.com>;
> binutils@sourceware.org
> Subject: RE: [PATCHv2] opcodes/x86: fix minor missed styling case
> 
> 
> > > On 24.07.2024 04:31, Cui, Lili wrote:
> > >>>> I noticed that the x86 instruction:
> > >>>>
> > >>>>   sar    $0x1,%rsi
> > >>>>
> > >>>> would fail to style the '$0x1' as an immediate.  This commit
> > >>>> fixes that
> > case.
> > >>>>
> > >>
> > >> I'm afraid it is not a bug, it is to distinguish between the two
> > >> formats
> > below.
> > >>
> > >> sar    r/m8, 1
> > >> sar    r/m8, imm8
> > >
> > > It is a bug, but it also is a bug to change 1 to 0x1, as that way
> > > said distinction goes away. (I also don't immediately see how the
> > > code change alone would pass the testsuite; I'm pretty sure we have
> > > expectations which would have required adjustment, which would have
> > > made more obvious that the change wants doing differently.)
> >
> > You are correct, I got sloppy, and I apologise.
> >
> > Thanks to everyone who pointed out the mistake.
> >
> > Here's an update, _fully_ tested patch.
> >
> > Thanks,
> > Andrew
> >
> > ---
> >
> > commit ffe8ab67ab81ae24105433145ca6ee40c3fb92e2
> > Author: Andrew Burgess <aburgess@redhat.com>
> > Date:   Tue Jul 23 17:10:22 2024 +0100
> >
> >     opcodes/x86: fix minor missed styling case
> >
> >     I noticed that the x86 instruction:
> >
> >       sar    $1,%rsi
> >
> >     would fail to style the '$0x1' as an immediate.  This commit fixes
> >     that case.
> >
> > diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index
> > bc141f31770..59ec771369a 100644
> > --- a/opcodes/i386-dis.c
> > +++ b/opcodes/i386-dis.c
> > @@ -12415,9 +12415,9 @@ OP_I (instr_info *ins, int bytemode, int sizeflag)
> >        break;
> >      case const_1_mode:
> >        if (ins->intel_syntax)
> > -	oappend (ins, "1");
> > +	oappend_with_style (ins, "1", dis_style_immediate);
> >        else
> > -	oappend (ins, "$1");
> > +	oappend_with_style (ins, "$1", dis_style_immediate);
> >        return true;
> >      default:
> >        oappend (ins, INTERNAL_DISASSEMBLER_ERROR);
> 
> I am a little confused, how does this patch fix this case in the comment, the
> output is not changed before and after the patch.

Confused +1. It seems Changelog and the current output doesn't match or I
misunderstood something.

Thx,
Haochen

> 
> Thanks,
> Lili.


More information about the Binutils mailing list