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] [ARM] Support for ARMv8.1 command line option


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

commit a5932920ef397c2cbe02efa915686022b78d59a7
Author: Matthew Wahab <matthew.wahab@arm.com>
Date:   Wed Jun 3 10:03:50 2015 +0100

    [ARM] Support for ARMv8.1 command line option
    
    2015-06-03  Matthew Wahab  <matthew.wahab@arm.com>
    
    gas/
    	* config/tc-arm.c (arm_archs): Add "armv8.1-a".
    	* doc/c-arm.texi (ARM Options, -march): Add "armv8.1-a".
    	* NEWS: Mention ARMv8.1 support.
    
    include/opcode/
    	* arm.h (FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_1): New.
    	(ARM_ARCH_V8_1A): New.
    	(ARM_ARCH_V8_1A_FP): New.
    	(ARM_ARCH_V8_1A_SIMD): New.
    	(ARM_ARCH_V8_1A_CRYPTOV1): New.
    	(ARM_FEATURE_CORE): New.

Diff:
---
 gas/ChangeLog                            |  6 ++++++
 gas/NEWS                                 |  4 ++++
 gas/config/tc-arm.c                      |  1 +
 gas/doc/c-arm.texi                       |  1 +
 include/opcode/ChangeLog                 |  9 +++++++++
 include/opcode/arm.h                     | 16 ++++++++++++++++
 ld/testsuite/ld-aarch64/emit-relocs-28.d |  2 +-
 7 files changed, 38 insertions(+), 1 deletion(-)

diff --git a/gas/ChangeLog b/gas/ChangeLog
index eb3fcca..57fc30a 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2015-06-03  Matthew Wahab  <matthew.wahab@arm.com>
+
+	* config/tc-arm.c (arm_archs): Add "armv8.1-a".
+	* doc/c-arm.texi (ARM Options, -march): Add "armv8.1-a".
+	* NEWS: Mention ARMv8.1 support.
+
 2015-06-02  Matthew Wahab  <matthew.wahab@arm.com>
 
 	* config/tc-arm.c (arm_ext_pan): New.
diff --git a/gas/NEWS b/gas/NEWS
index 495bf10..02a434c 100644
--- a/gas/NEWS
+++ b/gas/NEWS
@@ -2,6 +2,10 @@
 
 Changes in 2.26:
 
+* Support for the ARMv8.1 architecture has been added to the ARM port.  Support
+  for the individual ARMv8.1 Adv.SIMD and PAN architecture extensions has also
+  been added to the ARM port.
+
 * Extend --compress-debug-sections option to support
   --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi] for ELF
   targets.
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index c69a942..b57f85c 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -24650,6 +24650,7 @@ static const struct arm_arch_option_table arm_archs[] =
   ARM_ARCH_OPT ("armv7-m",	ARM_ARCH_V7M,	 FPU_ARCH_VFP),
   ARM_ARCH_OPT ("armv7e-m",	ARM_ARCH_V7EM,	 FPU_ARCH_VFP),
   ARM_ARCH_OPT ("armv8-a",	ARM_ARCH_V8A,	 FPU_ARCH_VFP),
+  ARM_ARCH_OPT ("armv8.1-a",	ARM_ARCH_V8_1A,	 FPU_ARCH_VFP),
   ARM_ARCH_OPT ("xscale",	ARM_ARCH_XSCALE, FPU_ARCH_VFP),
   ARM_ARCH_OPT ("iwmmxt",	ARM_ARCH_IWMMXT, FPU_ARCH_VFP),
   ARM_ARCH_OPT ("iwmmxt2",	ARM_ARCH_IWMMXT2,FPU_ARCH_VFP),
diff --git a/gas/doc/c-arm.texi b/gas/doc/c-arm.texi
index afbd9f9..0c3b9f9 100644
--- a/gas/doc/c-arm.texi
+++ b/gas/doc/c-arm.texi
@@ -220,6 +220,7 @@ names are recognized:
 @code{armv7-m},
 @code{armv7e-m},
 @code{armv8-a},
+@code{armv8.1-a},
 @code{iwmmxt}
 @code{iwmmxt2}
 and
diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog
index 969ac70..8a57fac 100644
--- a/include/opcode/ChangeLog
+++ b/include/opcode/ChangeLog
@@ -1,3 +1,12 @@
+2015-06-03  Matthew Wahab  <matthew.wahab@arm.com>
+
+	* arm.h (FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_1): New.
+	(ARM_ARCH_V8_1A): New.
+	(ARM_ARCH_V8_1A_FP): New.
+	(ARM_ARCH_V8_1A_SIMD): New.
+	(ARM_ARCH_V8_1A_CRYPTOV1): New.
+	(ARM_FEATURE_CORE): New.
+
 2015-06-02  Matthew Wahab  <matthew.wahab@arm.com>
 
 	* arm.h (ARM_EXT2_PAN): New.
diff --git a/include/opcode/arm.h b/include/opcode/arm.h
index d88ff27..a5aa3a1 100644
--- a/include/opcode/arm.h
+++ b/include/opcode/arm.h
@@ -208,6 +208,9 @@
   ARM_FEATURE_COPROC (FPU_NEON_ARMV8				 \
 		      | FPU_VFP_ARMV8				 \
 		      | FPU_NEON_EXT_RDMA)
+#define FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_1 \
+  ARM_FEATURE_COPROC (FPU_CRYPTO_ARMV8 | FPU_NEON_ARMV8 | FPU_VFP_ARMV8 \
+		      | FPU_NEON_EXT_RDMA)
 
 
 #define FPU_ARCH_ENDIAN_PURE ARM_FEATURE_COPROC (FPU_ENDIAN_PURE)
@@ -247,6 +250,7 @@
 #define ARM_ARCH_V7M	ARM_FEATURE_CORE_LOW (ARM_AEXT_V7M)
 #define ARM_ARCH_V7EM	ARM_FEATURE_CORE_LOW (ARM_AEXT_V7EM)
 #define ARM_ARCH_V8A	ARM_FEATURE_CORE_LOW (ARM_AEXT_V8A)
+#define ARM_ARCH_V8_1A	ARM_FEATURE_CORE (ARM_AEXT_V8A, ARM_EXT2_PAN)
 
 /* Some useful combinations:  */
 #define ARM_ARCH_NONE	ARM_FEATURE_LOW (0, 0)
@@ -275,6 +279,17 @@
 #define ARM_ARCH_V8A_CRYPTOV1 	ARM_FEATURE_LOW (ARM_AEXT_V8A, \
 					     FPU_ARCH_CRYPTO_NEON_VFP_ARMV8)
 
+/* v8.1-a+fp.  */
+#define ARM_ARCH_V8_1A_FP	ARM_FEATURE (ARM_AEXT_V8A, ARM_EXT2_PAN, \
+				     FPU_ARCH_VFP_ARMV8)
+/* v8.1-a+simd (implies fp).  */
+#define ARM_ARCH_V8_1A_SIMD	ARM_FEATURE (ARM_AEXT_V8A, ARM_EXT2_PAN, \
+				     FPU_ARCH_NEON_VFP_ARMV8_1)
+/* v8.1-a+crypto (implies simd+fp).  */
+#define ARM_ARCH_V8_1A_CRYPTOV1   ARM_FEATURE (ARM_AEXT_V8A, ARM_EXT2_PAN, \
+					       FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_1)
+
+
 /* There are too many feature bits to fit in a single word, so use a
    structure.  For simplicity we put all core features in array CORE
    and everything else in the other.  All the bits in element core[0]
@@ -328,6 +343,7 @@ typedef struct
   ((T1).core[0] == (T2).core[0] && (T1).core[1] == (T2).core[1])
 
 #define ARM_FEATURE_LOW(core, coproc) {{(core), 0}, (coproc)}
+#define ARM_FEATURE_CORE(core1, core2) {{(core1), (core2)}, 0}
 #define ARM_FEATURE_CORE_LOW(core) {{(core), 0}, 0}
 #define ARM_FEATURE_CORE_HIGH(core) {{0, (core)}, 0}
 #define ARM_FEATURE_COPROC(coproc) {{0, 0}, (coproc)}
diff --git a/ld/testsuite/ld-aarch64/emit-relocs-28.d b/ld/testsuite/ld-aarch64/emit-relocs-28.d
index f138fb1..bc8f7d5 100644
--- a/ld/testsuite/ld-aarch64/emit-relocs-28.d
+++ b/ld/testsuite/ld-aarch64/emit-relocs-28.d
@@ -1,6 +1,6 @@
 #source: emit-relocs-28.s
 #as: -mabi=ilp32
-#ld: -m aarch64linux32 --defsym globala=0x11000 --defsym globalb=0x45000 --defsym globalc=0x1234  -e0 --emit-relocs
+#ld: -T relocs-ilp32.ld --defsym globala=0x11000 --defsym globalb=0x45000 --defsym globalc=0x1234  -e0 --emit-relocs
 #objdump: -dr
 
 .*: +file format .*


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