[PATCH V3] Support APX CFCMOV
Jan Beulich
jbeulich@suse.com
Wed Jul 3 14:19:39 GMT 2024
On 01.07.2024 15:29, Cui, Lili wrote:
> Changes in V3
> 1. Renamed CFCMOV_Fixup_op to CFCMOV_Fixup and refined the function.
> 2. Added all cc formats of cfcmove/cmove in SDM order and optimize test cases.
What is "optimize" about here? You don't do any optimization anywhere
afaics?
> 3. Removed `-Msuffix` from x86-64-apx-cfcmov-intel.d and moved the four tests of {load}/{store} to other patch "x86: Add {load}/{store} tests for apx instructions"
> 4. Adjusted some comments.
>
> Thanks,
> Lili.
>
> The CMOVcc instruction proposed by EVEX has four different forms,
> corresponding to the four possible combinations of EVEX.ND and EVEX.NF
> values.
>
> In the encoder part, when the CFCMOV template supports EVEX_NF, it means that
> it requires EVEX.NF to be 1.
>
> In the decoder part, CFCMOV_Fixup is used to reverse source and destination
> operands in the 2-operand case.
>
> gas/ChangeLog:
>
> * config/tc-i386.c (build_apx_evex_prefix): Set NF bit for cfcmov
> when the insn template supports EVEX_NF.
> * testsuite/gas/i386/x86-64-apx-inval.l: Add invalid tests for cfcmov.
> * testsuite/gas/i386/x86-64-apx-inval.s: Ditto.
> * testsuite/gas/i386/x86-64.exp: Add tests for cfcmov and cmov.
> * testsuite/gas/i386/x86-64-apx-cfcmov-intel.d: Ditto.
> * testsuite/gas/i386/x86-64-apx-cfcmov.d: Ditto.
> * testsuite/gas/i386/x86-64-apx-cfcmov.s: Ditto.
>
> opcodes/ChangeLog:
>
> * i386-dis-evex-prefix.h: Add cfcmov instructions.
> * i386-dis.c (CFCMOV_Fixup): Special handling of cfcmov.
> (putop): Print 'cf' for cfcmov instructions.
> * i386-opc.h (EVEX_NF): New.
> * i386-opc.tbl: Add cfcmov instructions.
If the above aspect can be clarified, the change is okay to put in.
Thanks, Jan
More information about the Binutils
mailing list