This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb/binutils-2_26-branch] [AArch64] Fix ARMv8.1 and ARMv8.2 feature settings.


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=9fcdf5ec503b82b793cf8c5df486af7c6de1e722

commit 9fcdf5ec503b82b793cf8c5df486af7c6de1e722
Author: Matthew Wahab <matthew.wahab@arm.com>
Date:   Thu Dec 10 13:58:21 2015 +0000

    [AArch64] Fix ARMv8.1 and ARMv8.2 feature settings.
    
    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

Diff:
---
 gas/ChangeLog            | 4 ++++
 gas/doc/c-aarch64.texi   | 2 +-
 include/opcode/ChangeLog | 8 ++++++++
 include/opcode/aarch64.h | 7 +++++--
 4 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/gas/ChangeLog b/gas/ChangeLog
index 3c9a30d..7aed13e 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,9 @@
 2015-12-14  Matthew Wahab  <matthew.wahab@arm.com>
 
+	* doc/c-aarch64.texi (AArch64 Extensions): Update entry for crc.
+
+2015-12-14  Matthew Wahab  <matthew.wahab@arm.com>
+
 	* config/tc-aarch64.c (aarch64_features): Add "fp16".
 	* doc/c-aarch64.texi (Architecture Extensions): Add "fp16".
 
diff --git a/gas/doc/c-aarch64.texi b/gas/doc/c-aarch64.texi
index 2717af2..363366a 100644
--- a/gas/doc/c-aarch64.texi
+++ b/gas/doc/c-aarch64.texi
@@ -128,7 +128,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}.
diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog
index fc766ff..cbcd63d 100644
--- a/include/opcode/ChangeLog
+++ b/include/opcode/ChangeLog
@@ -1,5 +1,13 @@
 2015-12-14  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-12-14  Matthew Wahab  <matthew.wahab@arm.com>
+
 	* aarch64.h (AARCH64_FEATURE_F16): New.
 	(AARCH64_ARCH_V8_2): Add AARCH64_FEATURE_F16 to ARMv8.2
 	features.
diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h
index f1658bc..6654be3 100644
--- a/include/opcode/aarch64.h
+++ b/include/opcode/aarch64.h
@@ -48,7 +48,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, \
@@ -57,6 +57,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	\
@@ -66,7 +67,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	\


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]