[committed] aarch64: Add support for FEAT_SME_FA64

Alice Carlotti <[email protected]>
Newsgroups gmane.comp.gnu.binutils
Message-ID <[email protected]>
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.  */
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.