[binutils-gdb] aarch64: Add support for --march=armv9.6-a

Alice Carlotti acarlotti@sourceware.org
Sat Jul 12 09:07:00 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=3b6b69205c547dd71ac0b92f9d68e1c145ff93bf

commit 3b6b69205c547dd71ac0b92f9d68e1c145ff93bf
Author: Alice Carlotti <alice.carlotti@arm.com>
Date:   Sat Jul 12 08:47:14 2025 +0100

    aarch64: Add support for --march=armv9.6-a

Diff:
---
 gas/config/tc-aarch64.c                  |  1 +
 gas/doc/c-aarch64.texi                   |  1 +
 gas/testsuite/gas/aarch64/cmpbr.d        |  1 +
 gas/testsuite/gas/aarch64/fprcvt.d       |  1 +
 gas/testsuite/gas/aarch64/lsui.d         |  1 +
 gas/testsuite/gas/aarch64/occmo-memtag.d |  1 +
 gas/testsuite/gas/aarch64/occmo.d        |  1 +
 gas/testsuite/gas/aarch64/sve2p2.d       |  1 +
 include/opcode/aarch64.h                 | 10 ++++++++++
 9 files changed, 18 insertions(+)

diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
index 20b3f611c91..7187117f60d 100644
--- a/gas/config/tc-aarch64.c
+++ b/gas/config/tc-aarch64.c
@@ -10733,6 +10733,7 @@ static const struct aarch64_arch_option_table aarch64_archs[] = {
   {"armv9.3-a",	AARCH64_ARCH_FEATURES (V9_3A)},
   {"armv9.4-a",	AARCH64_ARCH_FEATURES (V9_4A)},
   {"armv9.5-a", AARCH64_ARCH_FEATURES (V9_5A)},
+  {"armv9.6-a", AARCH64_ARCH_FEATURES (V9_6A)},
   {NULL, AARCH64_NO_FEATURES}
 };
 
diff --git a/gas/doc/c-aarch64.texi b/gas/doc/c-aarch64.texi
index edd9e9ce818..ba0940c5faf 100644
--- a/gas/doc/c-aarch64.texi
+++ b/gas/doc/c-aarch64.texi
@@ -375,6 +375,7 @@ automatically cause those extensions to be disabled.
 @item @code{armv9.3-a} @tab @code{armv9.2-a}, @code{armv8.8-a}
 @item @code{armv9.4-a} @tab @code{armv9.3-a}, @code{armv8.9-a}
 @item @code{armv9.5-a} @tab @code{armv9.4-a}, @code{cpa}, @code{lut}, @code{faminmax}
+@item @code{armv9.6-a} @tab @code{armv9.5-a}, @code{cmpbr}, @code{fprcvt}, @code{lsui}, @code{occmo}, @code{sve2p2}
 @item @code{armv8-r} @tab @code{armv8.4-a+nolor}
 @end multitable
 
diff --git a/gas/testsuite/gas/aarch64/cmpbr.d b/gas/testsuite/gas/aarch64/cmpbr.d
index 457fdd732cc..9096350d1ce 100644
--- a/gas/testsuite/gas/aarch64/cmpbr.d
+++ b/gas/testsuite/gas/aarch64/cmpbr.d
@@ -1,5 +1,6 @@
 #name: Test for FEAT_CMPBR
 #as: -march=armv8-a+cmpbr
+#as: -march=armv9.6-a
 #objdump: -dr
 
 .*:     file format .*
diff --git a/gas/testsuite/gas/aarch64/fprcvt.d b/gas/testsuite/gas/aarch64/fprcvt.d
index 91298584d00..f44690bf486 100644
--- a/gas/testsuite/gas/aarch64/fprcvt.d
+++ b/gas/testsuite/gas/aarch64/fprcvt.d
@@ -1,5 +1,6 @@
 #name: FPRCVT instructions
 #as: -march=armv8-a+fprcvt
+#as: -march=armv9.6-a
 #objdump: -dr
 
 .*:     file format .*
diff --git a/gas/testsuite/gas/aarch64/lsui.d b/gas/testsuite/gas/aarch64/lsui.d
index 0a052c37c56..7a1d9228307 100644
--- a/gas/testsuite/gas/aarch64/lsui.d
+++ b/gas/testsuite/gas/aarch64/lsui.d
@@ -1,6 +1,7 @@
 #name: FEAT_LSUI Test
 #objdump: -dr
 #as:-march=armv9-a+lsui+fp
+#as:-march=armv9.6-a
 
 .*:     file format .*
 
diff --git a/gas/testsuite/gas/aarch64/occmo-memtag.d b/gas/testsuite/gas/aarch64/occmo-memtag.d
index 0dbbab03565..5a20fd48568 100644
--- a/gas/testsuite/gas/aarch64/occmo-memtag.d
+++ b/gas/testsuite/gas/aarch64/occmo-memtag.d
@@ -1,5 +1,6 @@
 #name: FEAT_OCCMO + MEMTAG Test
 #as: -march=armv8-a+occmo+memtag
+#as: -march=armv9.6-a+memtag
 #objdump: -dr
 
 .*:     file format .*
diff --git a/gas/testsuite/gas/aarch64/occmo.d b/gas/testsuite/gas/aarch64/occmo.d
index 0ec68e85086..426741342cd 100644
--- a/gas/testsuite/gas/aarch64/occmo.d
+++ b/gas/testsuite/gas/aarch64/occmo.d
@@ -1,5 +1,6 @@
 #name: FEAT_OCCMO Test
 #as: -march=armv8-a+occmo
+#as: -march=armv9.6-a
 #objdump: -dr
 
 .*:     file format .*
diff --git a/gas/testsuite/gas/aarch64/sve2p2.d b/gas/testsuite/gas/aarch64/sve2p2.d
index f401cb4fc30..128e35033bc 100644
--- a/gas/testsuite/gas/aarch64/sve2p2.d
+++ b/gas/testsuite/gas/aarch64/sve2p2.d
@@ -1,5 +1,6 @@
 #as: -march=armv8-a+sve2p2
 #as: -march=armv8-a+sme2p2
+#as: -march=armv9.6-a
 #objdump: -dr
 
 .*:     file format .*
diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h
index c715e7b7711..4425dd46a45 100644
--- a/include/opcode/aarch64.h
+++ b/include/opcode/aarch64.h
@@ -304,6 +304,8 @@ enum aarch64_feature_bit {
   AARCH64_FEATURE_V9_4A,
   /* Armv9.5-A processors.  */
   AARCH64_FEATURE_V9_5A,
+  /* Armv9.6-A processors.  */
+  AARCH64_FEATURE_V9_6A,
   /* FPRCVT instructions.  */
   AARCH64_FEATURE_FPRCVT,
   /* Point of Physical Storage.  */
@@ -473,6 +475,12 @@ static_assert ((AA64_REPLICATE (REP_PLUS, AA64_REPVAL,
 					 | AARCH64_FEATBIT (X, SPMU2)	\
 					 | AARCH64_FEATBIT (X, STEP2)	\
 					)
+#define AARCH64_ARCH_V9_6A_FEATURES(X)	(AARCH64_FEATBIT (X, V9_6A)	\
+					 | AARCH64_FEATBIT (X, CMPBR)	\
+					 | AARCH64_FEATBIT (X, FPRCVT)	\
+					 | AARCH64_FEATBIT (X, LSUI)	\
+					 | AARCH64_FEATBIT (X, OCCMO)	\
+					 | AARCH64_FEATBIT (X, SVE2p2))
 
 /* Architectures are the sum of the base and extensions.  */
 #define AARCH64_ARCH_V8A(X)	(AARCH64_FEATBIT (X, V8) \
@@ -512,6 +520,8 @@ static_assert ((AA64_REPLICATE (REP_PLUS, AA64_REPVAL,
 				 | AARCH64_ARCH_V9_4A_FEATURES (X))
 #define AARCH64_ARCH_V9_5A(X)	(AARCH64_ARCH_V9_4A (X) \
 				 | AARCH64_ARCH_V9_5A_FEATURES (X))
+#define AARCH64_ARCH_V9_6A(X)	(AARCH64_ARCH_V9_5A (X) \
+				 | AARCH64_ARCH_V9_6A_FEATURES (X))
 
 #define AARCH64_ARCH_NONE(X)	0


More information about the Binutils-cvs mailing list