[PATCH][v6] Support Intel USER_MSR
Hu, Lin1
lin1.hu@intel.com
Tue Oct 31 08:35:21 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).
Thanks, have changed descriptions and upstreamed to the master branch.
BRs,
Lin
More information about the Binutils
mailing list