[PATCH][v6] Support Intel USER_MSR

Jan Beulich jbeulich@suse.com
Tue Oct 31 08:03:30 GMT 2023


On 31.10.2023 03:14, Hu, Lin1 wrote:
> This is the current version.
> 
> BRs,
> Lin
> 
> gas/ChangeLog:
> 
> 	* NEWS: Support Intel USER_MSR.
> 	* config/tc-i386.c (smallest_imm_type): Reject imm32 in 64bit
> 	mode.
> 	(build_vex_prefix): Add VEXMAP7.
> 	(md_assemble): Handling the imm32 of USER_MSR.
> 	(match_template): Handling the unusual immediate.
> 	* doc/c-i386.texi: Document .user_msr.
> 	* testsuite/gas/i386/i386.exp: Run USER_MSR tests.
> 	* testsuite/gas/i386/x86-64.exp: Ditto.
> 	* testsuite/gas/i386/user_msr-inval.l: New test.
> 	* testsuite/gas/i386/user_msr-inval.s: Ditto.
> 	* testsuite/gas/i386/x86-64-user_msr-intel.d: Ditto.
> 	* testsuite/gas/i386/x86-64-user_msr-inval.l: New test.
> 	* testsuite/gas/i386/x86-64-user_msr-inval.s: New test.
> 	* testsuite/gas/i386/x86-64-user_msr.d: Ditto.
> 	* testsuite/gas/i386/x86-64-user_msr.s: Ditto.
> 
> opcodes/ChangeLog:
> 	* i386-dis.c (struct instr_info): Add a new attribute
> 	has_skipped_modrm.
> 	(Gq): New.
> 	(Rq): Ditto.
> 	(q_mm_mode): Ditto.
> 	(Nq): Change mode from q_mode to q_mm_mode.
> 	(VEX_LEN_TABLE):
> 	(get_valid_dis386): Add VEX_MAP7 in VEX prefix.
> 	and handle the map7_f8 for save space.
> 	(OP_Skip_MODRM): Set has_skipped_modrm.
> 	(OP_E): Skip codep++ when has skipped modrm byte.
> 	(OP_R): Support q_mode and q_mm_mode.
> 	(REG_VEX_MAP7_F8_L_0_W_0): New.
> 	(PREFIX_VEX_MAP7_F8_L_0_W_0_R_0_X86_64): Ditto.
> 	(X86_64_VEX_MAP7_F8_L_0_W_0_R_0): Ditto.
> 	(VEX_LEN_MAP7_F8): Ditto.
> 	(VEX_W_MAP7_F8_L_0): Ditto.
> 	(MOD_0F38F8): Ditto.
> 	(PREFIX_0F38F8_M_0): Ditto.
> 	(PREFIX_0F38F8_M_1_X86_64): Ditto.
> 	(X86_64_0F38F8_M_1): Ditto.
> 	(PREFIX_0F38F8): Remove.
> 	(prefix_table): Add PREFIX_0F38F8_M_1_X86_64.
> 	Remove PREFIX_0F38F8.
> 	(reg_table): Add REG_VEX_MAP7_F8_L_0_W_0,
> 	PREFIX_VEX_MAP7_F8_L_0_W_0_R_0_X86_64.
> 	(x86_64_table): Add X86_64_0F38F8_PREFIX_3_M_1,
> 	X86_64_VEX_MAP7_F8_L_0_W_0_R_0 and X86_64_0F38F8_M_1.
> 	(vex_table): Add VEX_MAP7.
> 	(vex_len_table): Add VEX_LEN_MAP7_F8,
> 	VEX_W_MAP7_F8_L_0.
> 	(mod_table): New entry for USER_MSR and
> 	add MOD_0F38F8.
> 	* i386-gen.c (cpu_flag_init): Add CPU_USER_MSR_FLAGS and
> 	CPU_ANY_USER_MSR_FLAGS. Add add VEXMAP7.
> 	* i386-init.h: Regenerated.
> 	* i386-mnem.h: Ditto.
> 	* i386-opc.h (SPACE_VEXMAP7): New.
> 	(CPU_USER_MSR_FLAGS): Ditoo.
> 	(CPU_ANY_USER_MSR_FLAGS): Ditto.
> 	(i386_cpu_flags): Add cpuuser_msr.
> 	* i386-opc.tbl: Add USER_MSR instructions.
> 	* i386-tbl.h: Regenerated.

Okay. Going forward though please make sure that patches have a useful
description (beyond the ChangeLog entries).

Jan


More information about the Binutils mailing list