[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