[PATCH] Add znver3 processor

Gopalasubramanian, Ganesh Ganesh.Gopalasubramanian@amd.com
Wed Oct 14 21:00:21 GMT 2020


[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. 

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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: BuZnver3.patch
Type: application/octet-stream
Size: 18510 bytes
Desc: BuZnver3.patch
URL: <https://sourceware.org/pipermail/binutils/attachments/20201014/a1f0e8b6/attachment-0001.obj>


More information about the Binutils mailing list