arm: Add support for Neoverse N2 CPU
authorAlex Coplan <alex.coplan@arm.com>
Thu, 24 Sep 2020 16:22:44 +0000 (17:22 +0100)
committerAlex Coplan <alex.coplan@arm.com>
Thu, 24 Sep 2020 16:22:44 +0000 (17:22 +0100)
This adds support for Arm's Neoverse N2 CPU to the AArch32 backend.
Neoverse N2 builds AArch32 at EL0 and therefore needs support in AArch32
GCC.

gcc/ChangeLog:

* config/arm/arm-cpus.in (neoverse-n2): New.
* config/arm/arm-tables.opt: Regenerate.
* config/arm/arm-tune.md: Regenerate.
* doc/invoke.texi: Document support for Neoverse N2.

gcc/config/arm/arm-cpus.in
gcc/config/arm/arm-tables.opt
gcc/config/arm/arm-tune.md
gcc/doc/invoke.texi

index 4550694e138ecbfedb1f91645b9722cb52242f1d..be563b7f807a021397d0d43c73844bbbaf8a8d94 100644 (file)
@@ -1459,6 +1459,17 @@ begin cpu neoverse-n1
  part d0c
 end cpu neoverse-n1
 
+begin cpu neoverse-n2
+  cname neoversen2
+  tune for cortex-a57
+  tune flags LDSCHED
+  architecture armv8.5-a+fp16+bf16+i8mm
+  option crypto add FP_ARMv8 CRYPTO
+  costs cortex_a57
+  vendor 41
+  part 0xd49
+end cpu neoverse-n2
+
 # ARMv8.2 A-profile ARM DynamIQ big.LITTLE implementations
 begin cpu cortex-a75.cortex-a55
  cname cortexa75cortexa55
index 1a7c31917844173f91581aa138df6a93d191fb60..b57206313e20a60511670533a6f002caccc5f252 100644 (file)
@@ -243,6 +243,9 @@ Enum(processor_type) String(cortex-a77) Value( TARGET_CPU_cortexa77)
 EnumValue
 Enum(processor_type) String(neoverse-n1) Value( TARGET_CPU_neoversen1)
 
+EnumValue
+Enum(processor_type) String(neoverse-n2) Value( TARGET_CPU_neoversen2)
+
 EnumValue
 Enum(processor_type) String(cortex-a75.cortex-a55) Value( TARGET_CPU_cortexa75cortexa55)
 
index 3874f42a26b7eee64fe85bc3b158abca3fa85912..2377037bf7dcf7a6951474b7b0b5e746a73d307d 100644 (file)
@@ -45,7 +45,8 @@
        cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,
        cortexa73cortexa53,cortexa55,cortexa75,
        cortexa76,cortexa76ae,cortexa77,
-       neoversen1,cortexa75cortexa55,cortexa76cortexa55,
-       neoversev1,cortexm23,cortexm33,
-       cortexm35p,cortexm55,cortexr52"
+       neoversen1,neoversen2,cortexa75cortexa55,
+       cortexa76cortexa55,neoversev1,cortexm23,
+       cortexm33,cortexm35p,cortexm55,
+       cortexr52"
        (const (symbol_ref "((enum attr_tune) arm_tune)")))
index 3dc25532249d303b3d70520fc417b6c5ec77cb81..2091e0cd23b95fc6c2ae34ce90bd555b7c012e44 100644 (file)
@@ -19385,9 +19385,9 @@ Permissible names are: @samp{arm7tdmi}, @samp{arm7tdmi-s}, @samp{arm710t},
 @samp{cortex-m35p}, @samp{cortex-m55},
 @samp{cortex-m1.small-multiply}, @samp{cortex-m0.small-multiply},
 @samp{cortex-m0plus.small-multiply}, @samp{exynos-m1}, @samp{marvell-pj4},
-@samp{neoverse-n1}, @samp{neoverse-v1}, @samp{xscale}, @samp{iwmmxt},
-@samp{iwmmxt2}, @samp{ep9312}, @samp{fa526}, @samp{fa626}, @samp{fa606te},
-@samp{fa626te}, @samp{fmp626}, @samp{fa726te}, @samp{xgene1}.
+@samp{neoverse-n1}, @samp{neoverse-n2}, @samp{neoverse-v1}, @samp{xscale},
+@samp{iwmmxt}, @samp{iwmmxt2}, @samp{ep9312}, @samp{fa526}, @samp{fa626},
+@samp{fa606te}, @samp{fa626te}, @samp{fmp626}, @samp{fa726te}, @samp{xgene1}.
 
 Additionally, this option can specify that GCC should tune the performance
 of the code for a big.LITTLE system.  Permissible names are: