[PATCH 1/9] Make const_1_mode print $1 in AT&T syntax

Jan Beulich jbeulich@suse.com
Fri Nov 24 12:14:02 GMT 2023


On 24.11.2023 12:22, Cui, Lili wrote:
>> On 24.11.2023 08:02, Cui, Lili wrote:
>>> Make const_1_mode print $1 in AT&T syntax, otherwise there will be
>>> correctness issues when it is extended to support APX NDD,
>>
>> Looks fine to me, but I could easily imagine this to face H.J.'s opposition (and
>> hence my suggestion in this direction wasn't exactly this way). Since iirc he's
>> going to be back soon, may be best to wait until then. One request
>> though:
>>
> 
>>> --- a/opcodes/i386-dis.c
>>> +++ b/opcodes/i386-dis.c
>>> @@ -12090,6 +12090,8 @@ OP_I (instr_info *ins, int bytemode, int
>> sizeflag)
>>>      case const_1_mode:
>>>        if (ins->intel_syntax)
>>>  	oappend (ins, "1");
>>> +      else
>>> +	oappend (ins, "$1");
>>>        return true;
>>
>> This was already overlooked when output styling was introduced. Please
>> switch to oappend_immediate(ins, 1) here (i.e. replcaing the entire if/else).
>> As per above - from my pov okay with this change.
>>
> 
> If we use oappend_immediate(ins, 1), it will print $0x1 instead of $1, and then Imm1 and Imm8 will be confused.
> 
> regexp "^ +[a-f0-9]+:   d1 f0                   shl    \$1,%eax$"
> line   " a57:   d1 f0                   shl    $0x1,%eax"

Hmm, yes. Albeit I'd like to drop pointless 0x output anyway from
oappend_immediate(). But for now I reduce my request to you then to
just get output correct styling-wise.

Jan


More information about the Binutils mailing list