Re: [PATCH v1 1/2] Support AVX10_V2_AUX instructions

Jan Beulich <[email protected]>
Newsgroups gmane.comp.gnu.binutils
Message-ID <[email protected]>
On 29.06.2026 05:41, Jiang, Haochen wrote:
>> From: Ganesh Gopalasubramanian <[email protected]>
>> Sent: Saturday, June 27, 2026 5:56 PM
>> +  /* PREFIX_EVEX_MAP5_3C */
>> +  {
>> +    { Bad_Opcode },
>> +    { "vcvthf82hf6s",	{ XM, EXx }, 0 },
>> +  },
> 
> There are several mod table pass missing throughout
> the implementation. You need restrict MOD.R/M as
> 11 here.
> 
> Also, for non-broadcast operands, please use
> EXEvexXNoBcst instead of EXx.

Except that in cases where memory operands aren't allowed in the first place,
that won't be necessary (nor wanted, for adding clutter).

>> --- a/opcodes/i386-dis-evex-w.h
>> +++ b/opcodes/i386-dis-evex-w.h
>> +  /* EVEX_W_MAP5_3E_P_1 */
>> +  {
>> +    { Bad_Opcode },
>> +    { "vcvtbf82bf6s",	{ XM, EXx }, 0 },
>> +  },
> 
> Please pass W table before prefix table to reduce
> potential tree size.

Judging from the name of the identifier in the comment that's the case already?
With major opcodes 0x3c and 0x3e having only a single code point for now, there
may also be no difference in table size.

>> --- a/opcodes/i386-dis-evex.h
>> +++ b/opcodes/i386-dis-evex.h
>> @@ -652,7 +652,7 @@ static const struct dis386 evex_table[][256] = {
>>      { EVEX_LEN_TABLE (EVEX_LEN_0F3A3A) },
>>      { EVEX_LEN_TABLE (EVEX_LEN_0F3A3B) },
>>      { Bad_Opcode },
>> -    { Bad_Opcode },
>> +    { "vunpackb",	{ XM, EXx, Ib }, 0 },
> 
> Missing W and prefix table pass here.

Going through prefix_table[] shouldn't be needed: NO_PREFIX could be used to
"replace" that.

>> --- a/opcodes/i386-opc.tbl
>> +++ b/opcodes/i386-opc.tbl
>> @@ -3620,6 +3620,95 @@ vucomxs<sdh>, 0x<sdh:spfx>2e, AVX10_2,
>> Modrm|EVexLIG|<sdh:spc1>|<sdh:vexw>|Disp8
>>
>>  // AVX10.2 instructions end.
>>
>> +// AVX10_V2_AUX instructions.

AVX10.2-aux

>> +// VCVTPS2BF8, VCVTPS2BF8S, VCVTPS2HF8, VCVTPS2HF8S - narrowing 2-
>> op (F3.MAP5)
>> +// VCVTROPS2HF8, VCVTROPS2HF8S - narrowing 2-op (66.MAP5)

Please limit such commentary to what you find elsewhere. That is, nothing at
all here. Unexpected aspects, anomalies, etc of course want commenting.

>> +<cvtps8:opc:pfx, +
>> +    bf8:39:f3, +
>> +    bf8s:3b:f3, +
>> +    hf8:38:f3, +
>> +    hf8s:3a:f3>
> 
> Why do you need to put pfx in iterator? They are all f3.
> 
> And we could simply separate them as <fp8> and <sat> here, not <cvtps8>,
> <cvtrops8>, <cvtbiasps8>, where <fp8> has the base opcode 38 and 39,
> <sat> add 2 for them when there is saturation.

Splitting likely won't be a benefit here, and we didn't do so for AVX10.1 (see
<cvt8:...> there.

Jan
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.