[PATCH] Add znver3 processor
H.J. Lu
hjl.tools@gmail.com
Wed Oct 14 22:50:23 GMT 2020
On Wed, Oct 14, 2020 at 2:00 PM Gopalasubramanian, Ganesh
<Ganesh.Gopalasubramanian@amd.com> wrote:
>
> [AMD Public Use]
>
> > Please send a proper patch generated by "git format-patch".
> > Please remove i386-init.h and i386-tbl.h from the git output.
>
> Thank you for reviewing. PFA, the revamped patch (BuZnver3.patch).
> Changelog remains the same.
+psmash, 0, 0x0f01ff, None, 3, CpuSNP,
Prefix_0XF3|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
+pvalidate, 0, 0x0f01ff, None, 3, CpuSNP,
Prefix_0XF2|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
+rmpupdate, 0, 0x0f01fe, None, 3, CpuSNP,
Prefix_0XF2|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
+rmpadjust, 0, 0x0f01fe, None, 3, CpuSNP,
Prefix_0XF3|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
Please remove the extra '0' after 0x. OK with this change.
> It passes make check on x86-64. Okay to commit?
>
> Changelog:
>
> 2020-10-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
>
> gas/
>
> * config/tc-i386.c (cpu_arch): Add CPU_ZNVER3_FLAGS flags.
> (i386_align_code): Add PROCESSOR_ZNVER cases.
> * doc/c-i386.texi: Add znver3 and snp, invlpgb and tlbsync.
>
> gas/testsuite/
> * gas/i386/i386.exp: Add new znver3 test cases.
> * gas/i386/arch-14-znver3.d: New.
> * gas/i386/arch-14.d: New.
> * gas/i386/arch-14.s: New.
> * gas/i386/invlpgb.d: New.
> * gas/i386/invlpgb.s: New.
> * gas/i386/snp.d: New.
> * gas/i386/snp.s: New.
> * gas/i386/tlbsync.d: New.
> * gas/i386/tlbsync.s: New.
> * gas/i386/x86-64-arch-4-znver3.d: New.
> * gas/i386/x86-64-arch-4.d: New.
> * gas/i386/x86-64-arch-4.s: New.
>
> opcodes/
> * i386-dis.c (rm_table): Add tlbsync, snp, invlpgb.
> * i386-gen.c (cpu_flag_init): Add new CPU_INVLPGB_FLAGS, CPU_TLBSYNC_FLAGS, and CPU_SNP_FLAGS.
> Add CPU_ZNVER3_FLAGS.
> (cpu_flags): Add CpuINVLPGB, CpuTLBSYNC, CpuSNP.
> * i386-opc.h: Add CpuINVLPGB, CpuTLBSYNC, CpuSNP.
> * i386-opc.tbl: Add invlpgb, tlbsync, SNP (psmash, pvalidate, rmpupdate, rmpadjust).
> * i386-init.h: Re-generated.
> * i386-tbl.h: Re-generated.
>
> Regards
> Ganesh
>
>
>
> -----Original Message-----
> From: H.J. Lu <hjl.tools@gmail.com>
> Sent: Tuesday, October 13, 2020 3:03 AM
> To: Gopalasubramanian, Ganesh <Ganesh.Gopalasubramanian@amd.com>
> Cc: binutils@sourceware.org
> Subject: Re: [PATCH] Add znver3 processor
>
> [CAUTION: External Email]
>
> On Mon, Oct 12, 2020 at 1:56 PM Gopalasubramanian, Ganesh <Ganesh.Gopalasubramanian@amd.com> wrote:
> >
> > [AMD Public Use]
> >
> >
> >
> > <<Corrected the subject line>>
> >
> >
> >
> > Attached patch adds the following.
> >
> > * New AMD znver3 processor (family 25). The architecture has
> > the below features in addition to znver2 features
> >
> > * tlbsync, invlpgb, vaes, invpcid, snp, ospke,
> > vpclmulqdq
> >
> > * Details of the features and instructions are available in public document https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.amd.com%2Fsystem%2Ffiles%2FTechDocs%2F24594.pdf&data=02%7C01%7CGanesh.Gopalasubramanian%40amd.com%7C98a2f9b8934b4d4c6fc308d86ef68c40%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637381352485644043&sdata=Ov7NOvfFf7SX9vXhc56IeS4a7yb7b7wXxET9sUbL1wU%3D&reserved=0.
> >
> > New test files are added.
> >
> > 1. arch-14.s: Lists out the new ISAs that are supported and checks it against the march option.
> >
> > 2. x86-64-arch-4.s: The 64-bit version of the test.
> >
> > 3. invlpgb.s: The test that checks the invlpgb instruction.
> >
> > 4. snp.s: The test that checks the SNP isa instructions.
> >
> > 5. tlbsync.s: The test that checks the tlbsync instruction.
> >
> >
> >
> > It passes make check on x86-64. Okay to commit?
> >
> >
> >
> > Changelog:
> >
> >
> >
> > 2020-10-13 Ganesh Gopalasubramanian
> > <Ganesh.Gopalasubramanian@amd.com>
> >
> >
> >
> > gas/
> >
> >
> >
> > * config/tc-i386.c (cpu_arch): Add CPU_ZNVER3_FLAGS flags.
> >
> > (i386_align_code): Add PROCESSOR_ZNVER cases.
> >
> > * doc/c-i386.texi: Add znver3 and snp, invlpgb and tlbsync.
> >
> >
> >
> > gas/testsuite/
> >
> > * gas/i386/i386.exp: Add new znver3 test cases.
> >
> > * gas/i386/arch-14-znver3.d: New.
> >
> > * gas/i386/arch-14.d: New.
> >
> > * gas/i386/arch-14.s: New.
> >
> > * gas/i386/invlpgb.d: New.
> >
> > * gas/i386/invlpgb.s: New.
> >
> > * gas/i386/snp.d: New.
> >
> > * gas/i386/snp.s: New.
> >
> > * gas/i386/tlbsync.d: New.
> >
> > * gas/i386/tlbsync.s: New.
> >
> > * gas/i386/x86-64-arch-4-znver3.d: New.
> >
> > * gas/i386/x86-64-arch-4.d: New.
> >
> > * gas/i386/x86-64-arch-4.s: New.
> >
> >
> >
> > opcodes/
> >
> > * i386-dis.c (rm_table): Add tlbsync, snp, invlpgb.
> >
> > * i386-gen.c (cpu_flag_init): Add new CPU_INVLPGB_FLAGS, CPU_TLBSYNC_FLAGS, and CPU_SNP_FLAGS.
> >
> > Add CPU_ZNVER3_FLAGS.
> >
> > (cpu_flags): Add CpuINVLPGB, CpuTLBSYNC, CpuSNP.
> >
> > * i386-opc.h: Add CpuINVLPGB, CpuTLBSYNC, CpuSNP.
> >
> > * i386-opc.tbl: Add invlpgb, tlbsync, SNP (psmash, pvalidate, rmpupdate, rmpadjust).
> >
> > * i386-init.h: Re-generated.
> >
> > * i386-tbl.h: Re-generated.
> >
>
> @@ -3096,12 +3098,32 @@ static const struct dis386 prefix_table[][4] = {
> {
> { Bad_Opcode },
> { "saveprevssp", { Skip_MODRM }, PREFIX_OPCODE },
> + { Bad_Opcode },
> + { Bad_Opcode },
>
> Why do you need these?
>
> },
>
> /* PREFIX_0F01_REG_7_MOD_3_RM_2 */
> {
> { "monitorx", { { OP_Monitor, 0 } }, 0 },
> { "mcommit", { Skip_MODRM }, 0 },
> + { Bad_Opcode },
> + { Bad_Opcode },
>
> Why do you need these?
>
> + },
>
> Please send a proper patch generated by "git format-patch".
> Please remove i386-init.h and i386-tbl.h from the git output.
>
> --
> H.J.
--
H.J.
More information about the Binutils
mailing list