aarch64: Enable Cortex-X4 CPU

Message ID 0fd3707c-65e9-4c39-b588-1e9ff678605d@arm.com
State Superseded
Headers
Series aarch64: Enable Cortex-X4 CPU |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_binutils_build--master-arm fail Patch failed to apply
linaro-tcwg-bot/tcwg_binutils_build--master-aarch64 fail Patch failed to apply
linaro-tcwg-bot/tcwg_binutils_check--master-aarch64 fail Patch failed to apply
linaro-tcwg-bot/tcwg_binutils_check--master-arm fail Patch failed to apply

Commit Message

Saurabh Jha Oct. 3, 2023, 9:35 a.m. UTC
  Hey,


This patch adds support for the Cortex-X4 CPU to binutils.


Regression testing for aarch64-none-elf target and found no regressions.


Okay for binutils-master? I don't have commit access so if it looks 
okay, could someone please help me commit this?


Thanks, Saurabh


bfd/ChangeLog * cpu-aarch64.c (processors): Add cortex-x4 core in 
processors array.


gas/ChangeLog * NEWS (Changes in current release): Add documentation for 
Cortex-X4. * config/tc-aarch64.c (aarch64_cpus): Add features of 
Cortex-X4. * doc/c-aarch64.texi (Options): Add mention of Cortex-X4. * 
testsuite/gas/aarch64/cpu-cortex-x4.d: New test for Cortex-X4.
  

Patch

diff --git a/bfd/cpu-aarch64.c b/bfd/cpu-aarch64.c
index df0d8c8c0dd..269177821bb 100644
--- a/bfd/cpu-aarch64.c
+++ b/bfd/cpu-aarch64.c
@@ -74,7 +74,8 @@  processors[] =
   { bfd_mach_aarch64,	  "cortex-a65ae"    },
   { bfd_mach_aarch64,	  "cortex-a76ae"    },
   { bfd_mach_aarch64,	  "cortex-a77"	    },
-  { bfd_mach_aarch64,	  "cortex-a720"	    }
+  { bfd_mach_aarch64,	  "cortex-a720"	    },
+  { bfd_mach_aarch64,     "cortex-x4"       },
 };
 
 static bool
diff --git a/gas/NEWS b/gas/NEWS
index 730ffad9bc9..71a1269b893 100644
--- a/gas/NEWS
+++ b/gas/NEWS
@@ -16,6 +16,8 @@ 
 
 * Add support for Cortex-A720 for AArch64.
 
+* Add support for Cortex-X4 for AArch64.
+
 Changes in 2.41:
 
 * Add support for the KVX instruction set.
diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
index 4458f6dd663..5469a2acba1 100644
--- a/gas/config/tc-aarch64.c
+++ b/gas/config/tc-aarch64.c
@@ -10310,6 +10310,11 @@  static const struct aarch64_cpu_option_table aarch64_cpus[] = {
                 | AARCH64_FEATURE_MEMTAG
                 | AARCH64_FEATURE_SVE2_BITPERM),
                 "Cortex-X2"},
+  {"cortex-x4", AARCH64_FEATURE (AARCH64_ARCH_V9_2A,
+                AARCH64_FEATURE_MEMTAG
+                | AARCH64_FEATURE_PROFILE
+                | AARCH64_FEATURE_SVE2_BITPERM),
+                "Cortex-X4"},
   {"generic", AARCH64_ARCH_V8A, NULL},
 
   {NULL, AARCH64_ARCH_NONE, NULL}
diff --git a/gas/doc/c-aarch64.texi b/gas/doc/c-aarch64.texi
index 5e8ac0b4e7c..fd67c77bbf8 100644
--- a/gas/doc/c-aarch64.texi
+++ b/gas/doc/c-aarch64.texi
@@ -90,8 +90,9 @@  on the target processor.  The following processor names are recognized:
 @code{xgene2},
 @code{cortex-r82},
 @code{cortex-x1},
+@code{cortex-x2},
 and
-@code{cortex-x2}.
+@code{cortex-x4}.
 The special name @code{all} may be used to allow the assembler to accept
 instructions valid for any supported processor, including all optional
 extensions.