]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
[AArch64] Fix ARMv8.1 and ARMv8.2 feature settings.
authorMatthew Wahab <matthew.wahab@arm.com>
Thu, 10 Dec 2015 13:58:21 +0000 (13:58 +0000)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Thu, 24 Aug 2017 12:46:29 +0000 (09:46 -0300)
ARMv8.1 includes CRC as a required extension but this isn't reflected in
the features enabled by -march=armv8.1-a. The FP16 feature modifier also
clashes with AARCH64_FEATURE_V8_1 and the list of features for ARMv8.2
is missing ARMv8.1 features.

This patch enables +crc for -march values of armv8.1-a and later. It
also fixes the values for AARCH64_FEATURE_F16 and makes
AARCH64_ARCH_V8_2 and superset of AARCH64_ARCH_V8_2.

gas/
2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>

* doc/c-aarch64.texi (AArch64 Extensions): Update entry for crc.

include/opcode
2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64.h (AARCH64_FEATURE_F16): Fix clash with
AARCH64_FEATURE_V8_1.
(AARCH64_ARCH_V8_1): Add AARCH64_FEATURE_CRC.
(AARCH64_ARCH_V8_2): Add AARCH64_FEATURE_CRC and
AARCH64_FEATURE_V8_1.

Change-Id: I8af5369f6df2430b28f6cec92870d2a4d14a7431

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

index 1e4df989437a9f61dcda88cc1174a9f1b74da0b0..d8adf95e94124ddd405820d56b360f144ca25dc4 100644 (file)
@@ -1,3 +1,7 @@
+2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>
+
+       * doc/c-aarch64.texi (AArch64 Extensions): Update entry for crc.
+
 2015-11-27  Matthew Wahab  <matthew.wahab@arm.com>
 
        * config/tc-aarch64.c (aarch64_features): Add "fp16".
index de456735491cfe8d1c1c29e0d8ad3fbb69944b86..6cd050d98b0880b689c08bfd71329d8fe19b61e2 100644 (file)
@@ -123,7 +123,7 @@ automatically cause those extensions to be disabled.
 @multitable @columnfractions .12 .17 .17 .54
 @headitem Extension @tab Minimum Architecture @tab Enabled by default
  @tab Description
-@item @code{crc} @tab ARMv8-A @tab No
+@item @code{crc} @tab ARMv8-A @tab ARMv8.1-A or later
  @tab Enable CRC instructions.
 @item @code{crypto} @tab ARMv8-A @tab No
  @tab Enable cryptographic extensions.  This implies @code{fp} and @code{simd}.
index 556e256d3714f4807d76fd0c838eb66a4fca5ee0..85cd81b2ab27556869af8f387d9af57f20ad4e21 100644 (file)
@@ -1,3 +1,11 @@
+2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>
+
+       * aarch64.h (AARCH64_FEATURE_F16): Fix clash with
+       AARCH64_FEATURE_V8_1.
+       (AARCH64_ARCH_V8_1): Add AARCH64_FEATURE_CRC.
+       (AARCH64_ARCH_V8_2): Add AARCH64_FEATURE_CRC and
+       AARCH64_FEATURE_V8_1.
+
 2015-11-27  Matthew Wahab  <matthew.wahab@arm.com>
 
        * aarch64.h (aarch64_op): Add OP_BFC.
index 6bf2a87672588cedc3fbb10bb27742b9cf6a4bfb..31d2bb9f40d04a00d4eac00ed770018ca966f4dd 100644 (file)
@@ -44,7 +44,7 @@ typedef uint32_t aarch64_insn;
 #define AARCH64_FEATURE_LOR    0x00400000      /* LOR instructions.  */
 #define AARCH64_FEATURE_RDMA   0x00800000      /* v8.1 SIMD instructions.  */
 #define AARCH64_FEATURE_V8_1   0x01000000      /* v8.1 features.  */
-#define AARCH64_FEATURE_F16    0x01000000      /* v8.2 FP16 instructions.  */
+#define AARCH64_FEATURE_F16    0x02000000      /* v8.2 FP16 instructions.  */
 
 /* Architectures are the sum of the base and extensions.  */
 #define AARCH64_ARCH_V8                AARCH64_FEATURE (AARCH64_FEATURE_V8, \
@@ -53,6 +53,7 @@ typedef uint32_t aarch64_insn;
 #define AARCH64_ARCH_V8_1      AARCH64_FEATURE (AARCH64_FEATURE_V8, \
                                                 AARCH64_FEATURE_FP  \
                                                 | AARCH64_FEATURE_SIMD \
+                                                | AARCH64_FEATURE_CRC  \
                                                 | AARCH64_FEATURE_V8_1 \
                                                 | AARCH64_FEATURE_LSE  \
                                                 | AARCH64_FEATURE_PAN  \
@@ -62,7 +63,9 @@ typedef uint32_t aarch64_insn;
                                                 AARCH64_FEATURE_V8_2   \
                                                 | AARCH64_FEATURE_F16  \
                                                 | AARCH64_FEATURE_FP   \
-                                                | AARCH64_FEATURE_SIMD \
+                                                | AARCH64_FEATURE_SIMD \
+                                                | AARCH64_FEATURE_CRC  \
+                                                | AARCH64_FEATURE_V8_1 \
                                                 | AARCH64_FEATURE_LSE  \
                                                 | AARCH64_FEATURE_PAN  \
                                                 | AARCH64_FEATURE_LOR  \