[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