]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
[AArch64] Add ARMv8.2 command line option and feature flag.
authorMatthew Wahab <matthew.wahab@arm.com>
Thu, 19 Nov 2015 09:12:49 +0000 (09:12 +0000)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Thu, 24 Aug 2017 12:46:27 +0000 (09:46 -0300)
ARMv8.2 is an architectural extension of ARMv8. This patch adds an
architecture feature macro for ARMv8.2 to the binutils AArch64 target
with GAS command line option -march=armv8.2-a.

gas/
2015-11-19  Matthew Wahab  <matthew.wahab@arm.com>

* config/tc-aarch64.c (aarch64_archs): Add "armv8.2-a".
* doc/c-aarch64.texi (-march): Likewise.

include/opcode/
2015-11-19  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64.h (AARCH64_FEATURE_V8_2): New.
(AARCH64_ARCH_V8_2): New.

Change-Id: I129232ab00234a07d18ce4b619607344acb3cbaf

gas/ChangeLog
gas/config/tc-aarch64.c
gas/doc/c-aarch64.texi
include/opcode/ChangeLog
include/opcode/aarch64.h

index ccb8b2ba5e4d0bc1e168279fb7dc248b11496348..bb94e21c1e7b046f61f2c279699cc0c37d82bb06 100644 (file)
@@ -1,3 +1,8 @@
+2015-11-19  Matthew Wahab  <matthew.wahab@arm.com>
+
+       * config/tc-aarch64.c (aarch64_archs): Add "armv8.2-a".
+       * doc/c-aarch64.texi (-march): Likewise.
+
 2015-07-16  Matthew Wahab  <matthew.wahab@arm.com>
 
        * config/tc-arm.c (arm_fpus): Add crypto-neon-fp-armv8.1.
index b3d432c0494b183725b14877fdb67735de4b66c0..454db7281fcf4bf26a0050eaa7758a26774bbe7c 100644 (file)
@@ -7226,6 +7226,7 @@ static const struct aarch64_arch_option_table aarch64_archs[] = {
   {"all", AARCH64_ANY},
   {"armv8-a", AARCH64_ARCH_V8},
   {"armv8.1-a", AARCH64_ARCH_V8_1},
+  {"armv8.2-a", AARCH64_ARCH_V8_2},
   {NULL, AARCH64_ARCH_NONE}
 };
 
index 8d757ee06633ef8d2160a29d7cb79bd57fc61fe8..0acae3b0cde420430c6528823da39ee6ba60486b 100644 (file)
@@ -78,8 +78,8 @@ extensions.
 This option specifies the target architecture.  The assembler will
 issue an error message if an attempt is made to assemble an
 instruction which will not execute on the target architecture.  The
-following architecture names are recognized: @code{armv8-a} and
-@code{armv8.1-a}.
+following architecture names are recognized: @code{armv8-a},
+@code{armv8.1-a} and @code{armv8.2-a}.
 
 If both @option{-mcpu} and @option{-march} are specified, the
 assembler will use the setting for @option{-mcpu}.  If neither are
index 30c3907ffaa06b8ff6bf8a2e78e968d193eaf61d..cf0879d81b76273e8e40a6ef585c320f532d2ea1 100644 (file)
@@ -1,3 +1,8 @@
+2015-11-19  Matthew Wahab  <matthew.wahab@arm.com>
+
+       * aarch64.h (AARCH64_FEATURE_V8_2): New.
+       (AARCH64_ARCH_V8_2): New.
+
 2015-06-04  Matthew Wahab  <matthew.wahab@arm.com>
 
        * aarch64.h (AARCH64_V8_1): New.
index 3813019d13f46e14b867a560a8978094a6ca59e4..20dd25e0fd189159d103a4f186769eb982afbe1d 100644 (file)
@@ -34,6 +34,7 @@ typedef uint32_t aarch64_insn;
 
 /* The following bitmasks control CPU features.  */
 #define AARCH64_FEATURE_V8     0x00000001      /* All processors.  */
+#define AARCH64_FEATURE_V8_2   0x00000020      /* ARMv8.2 processors.  */
 #define AARCH64_FEATURE_CRYPTO 0x00010000      /* Crypto instructions.  */
 #define AARCH64_FEATURE_FP     0x00020000      /* FP instructions.  */
 #define AARCH64_FEATURE_SIMD   0x00040000      /* SIMD instructions.  */
@@ -54,7 +55,14 @@ typedef uint32_t aarch64_insn;
                                                 | AARCH64_FEATURE_PAN  \
                                                 | AARCH64_FEATURE_LOR  \
                                                 | AARCH64_FEATURE_RDMA)
-
+#define AARCH64_ARCH_V8_2      AARCH64_FEATURE (AARCH64_FEATURE_V8,    \
+                                                AARCH64_FEATURE_V8_2   \
+                                                | AARCH64_FEATURE_FP   \
+                                                | AARCH64_FEATURE_SIMD \
+                                                | AARCH64_FEATURE_LSE  \
+                                                | AARCH64_FEATURE_PAN  \
+                                                | AARCH64_FEATURE_LOR  \
+                                                | AARCH64_FEATURE_RDMA)
 
 #define AARCH64_ARCH_NONE      AARCH64_FEATURE (0, 0)
 #define AARCH64_ANY            AARCH64_FEATURE (-1, 0) /* Any basic core.  */