[committed] aarch64: Add support for FEAT_SME_FA64
Alice Carlotti
alice.carlotti@arm.com
Fri Jul 10 15:20:18 GMT 2026
Add "+sme-f64" to the list of architecture extensions. This has already
been supported in LLVM for several years.
We don't need to update the feature requirements for any opcodes,
because FEAT_SME_FA64 only enables instructions that were already
available in non-streaming mode, and the feature checks don't know what
mode an instruction will be run under.
diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
index 86e7ea63e70e572245616d9caf9bec5f9d53935f..4c643892525f2689e7a837684e8ba2fff7f64d1f 100644
--- a/gas/config/tc-aarch64.c
+++ b/gas/config/tc-aarch64.c
@@ -11147,6 +11147,7 @@ static const struct aarch64_option_cpu_value_table aarch64_features[] = {
{"sve-b16mm", AARCH64_FEATURE (SVE_B16MM), AARCH64_FEATURE (SVE)},
{"mtetc", AARCH64_FEATURE (MTETC), AARCH64_FEATURE (MEMTAG)},
{"tlbid", AARCH64_FEATURE (TLBID), AARCH64_NO_FEATURES},
+ {"sme-fa64", AARCH64_FEATURE (SME_FA64), AARCH64_FEATURES (2, SVE2, SME)},
{NULL, AARCH64_NO_FEATURES, AARCH64_NO_FEATURES},
};
diff --git a/gas/doc/c-aarch64.texi b/gas/doc/c-aarch64.texi
index 62744d36aa298a1344fa2bb43576255fc78211aa..6a9fa2f98f3d15b1978b0e967efd7df7486b7867 100644
--- a/gas/doc/c-aarch64.texi
+++ b/gas/doc/c-aarch64.texi
@@ -324,6 +324,8 @@ automatically cause those extensions to be disabled.
@tab Enable the SME2 F16F16 Extension.
@item @code{sme-f64f64} @tab @code{sme}
@tab Enable SME F64F64 Extension.
+@item @code{sme-fa64} @tab @code{sme}, @code{sve2}
+ @tab Enable SME F64F64 Extension.
@item @code{sme-i16i64} @tab @code{sme}
@tab Enable SME I16I64 Extension.
@item @code{sme-lutv2} @tab
diff --git a/gas/testsuite/gas/aarch64/sme.d b/gas/testsuite/gas/aarch64/sme.d
index 9317163790af853ef04e55925edd3e9b1e27d5f1..68f4baf2189aeb535d75f12ac2b4e6de88333021 100644
--- a/gas/testsuite/gas/aarch64/sme.d
+++ b/gas/testsuite/gas/aarch64/sme.d
@@ -1,5 +1,6 @@
#name: SME extension
#as: -march=armv8-a+sme
+#as: -march=armv8-a+sme-fa64
#objdump: -dr
.*: file format .*
diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h
index 81bdf3377866c39a60c47afd9bd6ff27b914f40f..e07cbb35a3c1843bde7938de0815d66ebfcb4172 100644
--- a/include/opcode/aarch64.h
+++ b/include/opcode/aarch64.h
@@ -288,6 +288,8 @@ enum aarch64_feature_bit {
AARCH64_FEATURE_MTETC,
/* TLBI Domains. */
AARCH64_FEATURE_TLBID,
+ /* SME_FA64. */
+ AARCH64_FEATURE_SME_FA64,
/* Virtual features. These are used to gate instructions that are enabled
by either of two (or more) sets of command line flags. */
More information about the Binutils
mailing list