[PATCH v4 3/9] Support APX GPR32 with extend evex prefix

Jan Beulich jbeulich@suse.com
Thu Jan 4 12:55:25 GMT 2024


On 04.01.2024 13:32, Cui, Lili wrote:
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Thursday, January 4, 2024 5:08 PM
>>
>> On 25.12.2023 13:23, Cui, Lili wrote:
>>>> On 19.12.2023 13:12, Cui, Lili wrote:
>>>>>  #define Vsz256 Vsz=VSZ256
>>>>>  #define Vsz512 Vsz=VSZ512
>>>>>
>>>>> +// The template supports VEX format for cpuid and EVEX format for
>>>>> +cpuid &
>>>> apx_f.
>>>>> +#define APX_F(cpuid) cpuid&(cpuid|APX_F)
>>>>
>>>> I think the comment wants to go into further detail. Please can you
>>>> go back to read what I said when I suggested this construct, in
>>>> particular regarding the stripping then done? However, with you not
>>>> having found a need to fiddle with cpu_flags_match(), I wonder if this
>> construct is needed in the first place.
>>>> The earlier suggestion was entirely based on the assumption that
>>>> stripping similar to that for other combined VEX/EVEX templates would
>>>> be needed here, t
>>>>
>>>
>>> Seeing this, I realized the problem and checked opcodes/i386-tbl.h,
>>> for the following entry, we want to set CpuAPX_F and CpuBMI to 1, but
>>> gen.c doesn't seem to support the format "cpuid&(cpuid|APX_F)",
>>
>> I suppose you mean "cpuid|(cpuid&APX_F)"?
>>
> 
> I tried cpuid|(cpuid&APX_F). Currently this format is not supported.

Right, and it cannot be without adding yet another CPU field to the templates
(which I'd like to avoid). Hence why I thought you mean this form, despite
writing the other (recognized) one in your earlier reply.

Jan


More information about the Binutils mailing list