[PATCH, V4 09/14] opcodes: i386: new marker for insns that implicitly update stack pointer
Indu Bhagat
indu.bhagat@oracle.com
Sat Jan 6 10:08:02 GMT 2024
On 1/5/24 06:05, Jan Beulich wrote:
> On 03.01.2024 08:43, Indu Bhagat wrote:
>> --- a/opcodes/i386-opc.h
>> +++ b/opcodes/i386-opc.h
>> @@ -750,6 +750,9 @@ enum
>> /* No CSPAZO flags update indication. */
>> NF,
>>
>> + /* Instruction updates stack pointer implicitly. */
>> + ImplicitStackOp,
>> +
>> /* The last bitfield in i386_opcode_modifier. */
>> Opcode_Modifier_Num
>> };
>> @@ -796,6 +799,7 @@ typedef struct i386_opcode_modifier
>> unsigned int isa64:2;
>> unsigned int noegpr:1;
>> unsigned int nf:1;
>> + unsigned int implicitstackop:1;
>> } i386_opcode_modifier;
>
> I'm not happy to see a new attribute be introduced for this (a new
> OperandConstraint enumerator would seem more appropriate), while at
> the same time I can see that the Rex2 attribute used in two of the
> affected insns presently makes this impossible. However, with no
> other way out, I'd rather see Rex2 become a standalone attribute,
> and this one be another operand constraint.
>
To be sure I understand clearly, the ask here is to:
- Use unsigned int rex2:1 in struct i386_opcode_modifier instead
- Add a new OperandConstraint=IMPLICIT_STACK_OP
- Remove the OperandConstraint=REX2_REQUIRED
Is this right ?
Indu
More information about the Binutils
mailing list