]> 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>
Wed, 9 Dec 2015 13:10:59 +0000 (13:10 +0000)
committerMatthew Wahab <matthew.wahab@arm.com>
Wed, 9 Dec 2015 13:10:59 +0000 (13:10 +0000)
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-12-09  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-12-09  Matthew Wahab  <matthew.wahab@arm.com>

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

Change-Id: I79fb1b61cdd24acb1d55e29dfa84cfb86615603a

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

index 88c20d9bd3447d9f19921b31089097c9d07c0df6..07104826e1b5c8fa5af49f74e53c7d9bfbd188c5 100644 (file)
@@ -1,3 +1,8 @@
+2015-12-09  Matthew Wahab  <matthew.wahab@arm.com>
+
+       * config/tc-aarch64.c (aarch64_archs): Add "armv8.2-a".
+       * doc/c-aarch64.texi (-march): Likewise.
+
 2015-11-20  Nick Clifton  <nickc@redhat.com>
 
        * po/fr.po: Updated French translation.
index e854b966f0b8a5464fbd0b0ab37830fd3714812f..0fd644392fd33525382bfd7195968f06517ab525 100644 (file)
@@ -7717,6 +7717,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 e7e6ba449bddab2d7f507101dbf96d40fc9abe47..bfd41c31ef6a60b4145e52bda18875d354f2659c 100644 (file)
@@ -83,8 +83,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 38a8e76c6cb895b72a47296107495bd843008b85..6201661c66b186f771b2ee14a2a22ffb213f48c4 100644 (file)
@@ -1,3 +1,8 @@
+2015-12-09  Matthew Wahab  <matthew.wahab@arm.com>
+
+       * aarch64.h (AARCH64_FEATURE_V8_2): New.
+       (AARCH64_ARCH_V8_2): New.
+
 2015-12-08  Matthew Wahab  <matthew.wahab@arm.com>
 
        * aarch64.h (AARCH64_FEATURE_V8_1): New.
index e30bb61552077f853a0d9fde901bf7a8a60f5867..9addf40d8c48828e6d704064bf01bb960ca5b055 100644 (file)
@@ -38,6 +38,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.  */
@@ -60,7 +61,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.  */