aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorsrinath <srinath.parvathaneni@arm.com>2023-11-02 12:40:29 +0000
committersrinath <srinath.parvathaneni@arm.com>2023-11-02 12:43:03 +0000
commit8cee11caccde36068ba1184f2a65f3c170f5a04c (patch)
tree695f74e082bd49a2760d6051e0df9c048925370c /include
parentbf77f42f6708d8b5ba92336d876042826d8d29c1 (diff)
downloadbinutils-8cee11caccde36068ba1184f2a65f3c170f5a04c.zip
binutils-8cee11caccde36068ba1184f2a65f3c170f5a04c.tar.gz
binutils-8cee11caccde36068ba1184f2a65f3c170f5a04c.tar.bz2
aarch64: Add support for Armv8.9-A and Armv9.4-A Architectures.
This patch adds AArch64 support for Armv8.9-A architecture (-march=armv8.9-a) and Armv9.4-A architecture (-march=armv9.4-a).
Diffstat (limited to 'include')
-rw-r--r--include/opcode/aarch64.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h
index d4ec60c..631ecf1 100644
--- a/include/opcode/aarch64.h
+++ b/include/opcode/aarch64.h
@@ -157,11 +157,12 @@ enum aarch64_feature_bit {
AARCH64_FEATURE_V8_8A,
/* Common Short Sequence Compression instructions. */
AARCH64_FEATURE_CSSC,
+ /* Armv8.9-A processors. */
+ AARCH64_FEATURE_V8_9A,
/* SME2. */
AARCH64_FEATURE_SME2,
DUMMY1,
DUMMY2,
- DUMMY3,
AARCH64_NUM_FEATURES
};
@@ -216,6 +217,7 @@ enum aarch64_feature_bit {
#define AARCH64_ARCH_V8_8A_FEATURES(X) (AARCH64_FEATBIT (X, V8_8A) \
| AARCH64_FEATBIT (X, MOPS) \
| AARCH64_FEATBIT (X, HBC))
+#define AARCH64_ARCH_V8_9A_FEATURES(X) (AARCH64_FEATBIT (X, V8_9A))
#define AARCH64_ARCH_V9A_FEATURES(X) (AARCH64_FEATBIT (X, V9A) \
| AARCH64_FEATBIT (X, F16) \
@@ -224,6 +226,7 @@ enum aarch64_feature_bit {
#define AARCH64_ARCH_V9_1A_FEATURES(X) AARCH64_ARCH_V8_6A_FEATURES (X)
#define AARCH64_ARCH_V9_2A_FEATURES(X) AARCH64_ARCH_V8_7A_FEATURES (X)
#define AARCH64_ARCH_V9_3A_FEATURES(X) AARCH64_ARCH_V8_8A_FEATURES (X)
+#define AARCH64_ARCH_V9_4A_FEATURES(X) AARCH64_ARCH_V8_9A_FEATURES (X)
/* Architectures are the sum of the base and extensions. */
#define AARCH64_ARCH_V8A(X) (AARCH64_FEATBIT (X, V8) \
@@ -244,6 +247,8 @@ enum aarch64_feature_bit {
| AARCH64_ARCH_V8_7A_FEATURES (X))
#define AARCH64_ARCH_V8_8A(X) (AARCH64_ARCH_V8_7A (X) \
| AARCH64_ARCH_V8_8A_FEATURES (X))
+#define AARCH64_ARCH_V8_9A(X) (AARCH64_ARCH_V8_8A (X) \
+ | AARCH64_ARCH_V8_9A_FEATURES (X))
#define AARCH64_ARCH_V8R(X) ((AARCH64_ARCH_V8_4A (X) \
| AARCH64_FEATBIT (X, V8R)) \
& ~AARCH64_FEATBIT (X, V8A) \
@@ -257,6 +262,8 @@ enum aarch64_feature_bit {
| AARCH64_ARCH_V9_2A_FEATURES (X))
#define AARCH64_ARCH_V9_3A(X) (AARCH64_ARCH_V9_2A (X) \
| AARCH64_ARCH_V9_3A_FEATURES (X))
+#define AARCH64_ARCH_V9_4A(X) (AARCH64_ARCH_V9_3A (X) \
+ | AARCH64_ARCH_V9_4A_FEATURES (X))
#define AARCH64_ARCH_NONE(X) 0