]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
aarch64: Reorder feature bits
authorAlice Carlotti <alice.carlotti@arm.com>
Tue, 2 Sep 2025 19:45:48 +0000 (20:45 +0100)
committerAlice Carlotti <alice.carlotti@arm.com>
Tue, 23 Sep 2025 18:42:45 +0000 (19:42 +0100)
Group the architecture version bits at the start of the enum, and add a
comment explaining the purpose of AARCH64_FEATURE_V8A.

include/opcode/aarch64.h

index 07418e116d767eb012cdf9e1cce04cf8604253c7..bc5ac363fd85d46b6226c71bbabc8d962c7d3ac8 100644 (file)
@@ -41,30 +41,39 @@ typedef uint32_t aarch64_insn;
 /* An enum containing all known CPU features.  The values act as bit positions
    into aarch64_feature_set.  */
 enum aarch64_feature_bit {
-  /* All processors.  */
+  /* Architecture versions.  */
   AARCH64_FEATURE_V8,
-  /* ARMv8.6 processors.  */
+  AARCH64_FEATURE_V8_1A,
+  AARCH64_FEATURE_V8_2A,
+  AARCH64_FEATURE_V8_3A,
+  AARCH64_FEATURE_V8_4A,
+  AARCH64_FEATURE_V8_5A,
   AARCH64_FEATURE_V8_6A,
+  AARCH64_FEATURE_V8_7A,
+  AARCH64_FEATURE_V8_8A,
+  AARCH64_FEATURE_V8_9A,
+
+  AARCH64_FEATURE_V9A,
+  AARCH64_FEATURE_V9_1A,
+  AARCH64_FEATURE_V9_2A,
+  AARCH64_FEATURE_V9_3A,
+  AARCH64_FEATURE_V9_4A,
+  AARCH64_FEATURE_V9_5A,
+  AARCH64_FEATURE_V9_6A,
+
+  /* Armv8-A processors only - this is unset for Armv8-R.  */
+  AARCH64_FEATURE_V8A,
+  /* Armv8-R processors.  */
+  AARCH64_FEATURE_V8R,
+
   /* Bfloat16 insns.  */
   AARCH64_FEATURE_BFLOAT16,
-  /* Armv8-A processors.  */
-  AARCH64_FEATURE_V8A,
   /* SVE2 instructions.  */
   AARCH64_FEATURE_SVE2,
-  /* ARMv8.2 processors.  */
-  AARCH64_FEATURE_V8_2A,
-  /* ARMv8.3 processors.  */
-  AARCH64_FEATURE_V8_3A,
   AARCH64_FEATURE_SVE2_AES,
   AARCH64_FEATURE_SVE2_BITPERM,
   AARCH64_FEATURE_SVE2_SM4,
   AARCH64_FEATURE_SVE2_SHA3,
-  /* ARMv8.4 processors.  */
-  AARCH64_FEATURE_V8_4A,
-  /* Armv8-R processors.  */
-  AARCH64_FEATURE_V8R,
-  /* Armv8.7 processors.  */
-  AARCH64_FEATURE_V8_7A,
   /* Scalable Matrix Extension.  */
   AARCH64_FEATURE_SME,
   /* Atomic 64-byte load/store.  */
@@ -87,8 +96,6 @@ enum aarch64_feature_bit {
   AARCH64_FEATURE_LOR,
   /* v8.1 SIMD instructions.  */
   AARCH64_FEATURE_RDMA,
-  /* v8.1 features.  */
-  AARCH64_FEATURE_V8_1A,
   /* v8.2 FP16 instructions.  */
   AARCH64_FEATURE_F16,
   /* RAS Extensions.  */
@@ -117,8 +124,6 @@ enum aarch64_feature_bit {
   AARCH64_FEATURE_AES,
   /* v8.2 FP16FML ins.  */
   AARCH64_FEATURE_F16_FML,
-  /* ARMv8.5 processors.  */
-  AARCH64_FEATURE_V8_5A,
   /* v8.5 Flag Manipulation version 2.  */
   AARCH64_FEATURE_FLAGMANIP,
   /* FRINT[32,64][Z,X] insns.  */
@@ -155,18 +160,12 @@ enum aarch64_feature_bit {
   AARCH64_FEATURE_F64MM,
   /* v8.4 Flag Manipulation.  */
   AARCH64_FEATURE_FLAGM,
-  /* Armv9.0-A processors.  */
-  AARCH64_FEATURE_V9A,
   /* SME F64F64.  */
   AARCH64_FEATURE_SME_F64F64,
   /* SME I16I64.  */
   AARCH64_FEATURE_SME_I16I64,
-  /* Armv8.8 processors.  */
-  AARCH64_FEATURE_V8_8A,
   /* Common Short Sequence Compression instructions.  */
   AARCH64_FEATURE_CSSC,
-  /* Armv8.9-A processors.  */
-  AARCH64_FEATURE_V8_9A,
   /* Check Feature Status Extension.  */
   AARCH64_FEATURE_CHK,
   /* Guarded Control Stack.  */
@@ -248,18 +247,6 @@ enum aarch64_feature_bit {
   AARCH64_FEATURE_SVE2p2,
   /* SME2.2.  */
   AARCH64_FEATURE_SME2p2,
-  /* Armv9.1-A processors.  */
-  AARCH64_FEATURE_V9_1A,
-  /* Armv9.2-A processors.  */
-  AARCH64_FEATURE_V9_2A,
-  /* Armv9.3-A processors.  */
-  AARCH64_FEATURE_V9_3A,
-  /* Armv9.4-A processors.  */
-  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.  */