[PATCH v2] Support APX PUSHP/POPP
Jan Beulich
jbeulich@suse.com
Thu Dec 7 15:12:58 GMT 2023
On 07.12.2023 15:26, Cui, Lili wrote:
>> On 07.12.2023 09:56, Cui, Lili wrote:
>>> --- a/gas/config/tc-i386.c
>>> +++ b/gas/config/tc-i386.c
>>> @@ -3894,7 +3894,8 @@ is_apx_evex_encoding (void) static INLINE bool
>>> is_apx_rex2_encoding (void) {
>>> - return i.rex2 || i.rex2_encoding;
>>> + return i.rex2 || i.rex2_encoding
>>> + || i.tm.opcode_modifier.operandconstraint == REX2_REQUIRED;
>>
>> Nit: Odd indentation.
>>
>
> Sorry, I didn't find the indentation problem you mentioned.
return i.rex2 || i.rex2_encoding
|| i.tm.opcode_modifier.operandconstraint == REX2_REQUIRED;
>>> @@ -10621,6 +10624,19 @@ putop (instr_info *ins, const char
>> *in_template, int sizeflag)
>>> case 'P':
>>> if (l == 0)
>>> {
>>> + if (!cond && ins->last_rex2_prefix >= 0 && (ins->rex & REX_W))
>>> + {
>>> + /* For pushp and popp, p is printed and do not print {rex2}
>>> + for them. */
>>> + *ins->obufp++ = 'p';
>>> + ins->rex2 |= REX2_SPECIAL;
>>
>> Apart from the two minor cosmetic remarks (one above, one below) the
>> dealing with unused REX2 bits is the main thing needing resolution. H.J.,
>> awaiting your input on that matter.
>>
>> The other remark I have to make: Sending individual patches out of context is
>> certainly irritating, at least to me. In this submission you don't even mention
>> any of the dependencies. Yet this also extends to you sending new versions of
>> individual patches of the earlier 9-patch series. I understand you're eager to
>> make progress, but please also consider the recipients'
>> perspective.
>>
>
> H.J is back and I just wanted to update our patch so he can see our latest version. Use this as a point to follow up on the APX patches, I mentioned in another email. Otherwise it would be inconvenient to have so many comments superimposed on the old patch.
> No disrespect intended. This morning I sorted out the issues that were previously discussed but unresolved to facilitate follow-up.
>
>>> + break;
>>> + }
>>> +
>>> + /* If "!p" prints nothing in intel_syntax. */
>>> + if (!cond && ins->intel_syntax)
>>> + break;
>>
>> I'm afraid I can't make sense of the comment here. What is it that you're trying
>> to express?
>
> For example, if the instruction uses "!p", in the case of intel_syntax we will break.
>
> { "push!P", { RMrAX }, 0 },
> { "push!P", { RMrCX }, 0 },
> { "push!P", { RMrDX }, 0 },
So perhaps 'For "!P" print nothing else in Intel syntax.' ?
Jan
More information about the Binutils
mailing list