[PATCH] x86: support APX forms of U{RD,WR}MSR

Jan Beulich jbeulich@suse.com
Mon Jan 15 07:19:18 GMT 2024


On 15.01.2024 07:41, Cui, Lili wrote:
>> @@ -9090,6 +9094,9 @@ get_valid_dis386 (const struct dis386 *d
>>  	case 0x6:
>>  	  vex_table_index = EVEX_MAP6;
>>  	  break;
>> +	case 0x7:
>> +	  vex_table_index = EVEX_MAP7;
>> +	  break;
>>  	}
>>
>>        /* The second byte after 0x62.  */ @@ -9159,7 +9166,12 @@
>> get_valid_dis386 (const struct dis386 *d
>>
>>        ins->codep++;
>>        vindex = *ins->codep++;
>> -      dp = &evex_table[vex_table_index][vindex];
>> +      if (vex_table_index != EVEX_MAP7)
>> +	dp = &evex_table[vex_table_index][vindex];
>> +      else if (vindex == 0xf8)
>> +	dp = &map7_f8_opcode;
>> +      else
>> +	dp = &bad_opcode;
> 
> 
> The processing of this part of MAP7 seems strange. Maybe we can restore it when more map7 instructions appear in the future.

You realize this is simply a copy of what we do for VEX map 7? And yes,
should map 7 end up less sparse in the future, we'll certainly want to
introduce a "proper" table.

Jan


More information about the Binutils mailing list