From: Alice Carlotti Date: Sat, 12 Jul 2025 07:47:14 +0000 (+0100) Subject: aarch64: Add support for --march=armv9.6-a X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;p=thirdparty%2Fbinutils-gdb.git aarch64: Add support for --march=armv9.6-a --- 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