[PATCH v2] Support APX PUSHP/POPP
Jan Beulich
jbeulich@suse.com
Thu Dec 7 09:11:13 GMT 2023
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.
> @@ -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.
> + 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?
Jan
More information about the Binutils
mailing list