aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Wahab <matthew.wahab@arm.com>2016-03-04 14:16:48 +0000
committerMatthew Wahab <matthew.wahab@arm.com>2016-03-04 14:16:48 +0000
commit9411fd44aa4adfb0caeebd9e4355a3441d9bc104 (patch)
treedde212e1886ca1e6694f4792694d0c409857b54c
parent643afb90da9066e9d3c6dc721920b14ed343bec9 (diff)
downloadgdb-9411fd44aa4adfb0caeebd9e4355a3441d9bc104.zip
gdb-9411fd44aa4adfb0caeebd9e4355a3441d9bc104.tar.gz
gdb-9411fd44aa4adfb0caeebd9e4355a3441d9bc104.tar.bz2
[ARM] Build attributes for ARMv8.1-A AdvSIMD
binutils/ 2016-03-04 Matthew Wahab <matthew.wahab@arm.com> * readelf.c (arm_attry_tag_FP_arch): Add "NEON for ARMv8.1". gas/ 2016-03-04 Matthew Wahab <matthew.wahab@arm.com> * config/tc-arm.c (aeabi_set_public_attributes): Emit attribute for ARMv8.1 AdvSIMD use. * testsuite/gas/arm/attr-march-armv8-a+rdma.d: New. * testsuite/gas/arm/attr-march-armv8_1-a+simd.d: New. Change-Id: I3c356e0681b97df2f9c0dabd7c0fd1b441cc2755
-rw-r--r--binutils/ChangeLog4
-rw-r--r--binutils/readelf.c3
-rw-r--r--gas/ChangeLog7
-rw-r--r--gas/config/tc-arm.c4
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv8-a+rdma.d18
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv8_1-a+simd.d18
6 files changed, 52 insertions, 2 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 56c8adc..7ba4aec 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,7 @@
+2016-03-04 Matthew Wahab <matthew.wahab@arm.com>
+
+ * readelf.c (arm_attry_tag_FP_arch): Add "NEON for ARMv8.1".
+
2016-02-26 H.J. Lu <hongjiu.lu@intel.com>
PR ld/19645
diff --git a/binutils/readelf.c b/binutils/readelf.c
index a40453d..7deac04 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -12775,7 +12775,8 @@ static const char * arm_attr_tag_FP_arch[] =
"FP for ARMv8", "FPv5/FP-D16 for ARMv8"};
static const char * arm_attr_tag_WMMX_arch[] = {"No", "WMMXv1", "WMMXv2"};
static const char * arm_attr_tag_Advanced_SIMD_arch[] =
- {"No", "NEONv1", "NEONv1 with Fused-MAC", "NEON for ARMv8"};
+ {"No", "NEONv1", "NEONv1 with Fused-MAC", "NEON for ARMv8",
+ "NEON for ARMv8.1"};
static const char * arm_attr_tag_PCS_config[] =
{"None", "Bare platform", "Linux application", "Linux DSO", "PalmOS 2004",
"PalmOS (reserved)", "SymbianOS 2004", "SymbianOS (reserved)"};
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 1bdc9e5..14868ac 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,12 @@
2016-03-04 Matthew Wahab <matthew.wahab@arm.com>
+ * config/tc-arm.c (aeabi_set_public_attributes): Emit attribute
+ for ARMv8.1 AdvSIMD use.
+ * testsuite/gas/arm/attr-march-armv8-a+rdma.d: New.
+ * testsuite/gas/arm/attr-march-armv8_1-a+simd.d: New.
+
+2016-03-04 Matthew Wahab <matthew.wahab@arm.com>
+
* config/gas/tc-arm.c (fpu_neon_ext_v8_1): Restrict to the ARMv8.1 RDMA
feature.
(record_feature_use): New.
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index e725f41..6930220 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -26158,7 +26158,9 @@ aeabi_set_public_attributes (void)
aeabi_set_attribute_int (Tag_WMMX_arch, 1);
/* Tag_Advanced_SIMD_arch (formerly Tag_NEON_arch). */
- if (ARM_CPU_HAS_FEATURE (flags, fpu_neon_ext_armv8))
+ if (ARM_CPU_HAS_FEATURE (flags, fpu_neon_ext_v8_1))
+ aeabi_set_attribute_int (Tag_Advanced_SIMD_arch, 4);
+ else if (ARM_CPU_HAS_FEATURE (flags, fpu_neon_ext_armv8))
aeabi_set_attribute_int (Tag_Advanced_SIMD_arch, 3);
else if (ARM_CPU_HAS_FEATURE (flags, fpu_neon_ext_v1))
{
diff --git a/gas/testsuite/gas/arm/attr-march-armv8-a+rdma.d b/gas/testsuite/gas/arm/attr-march-armv8-a+rdma.d
new file mode 100644
index 0000000..76414d0
--- /dev/null
+++ b/gas/testsuite/gas/arm/attr-march-armv8-a+rdma.d
@@ -0,0 +1,18 @@
+# name: attributes for -march=armv8-a+rdma
+# source: blank.s
+# as: -march=armv8-a+rdma
+# readelf: -A
+# This test is only valid on EABI based ports.
+# target: *-*-*eabi* *-*-nacl*
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "8-A"
+ Tag_CPU_arch: v8
+ Tag_CPU_arch_profile: Application
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-2
+ Tag_FP_arch: FP for ARMv8
+ Tag_Advanced_SIMD_arch: NEON for ARMv8.1
+ Tag_MPextension_use: Allowed
+ Tag_Virtualization_use: TrustZone and Virtualization Extensions
diff --git a/gas/testsuite/gas/arm/attr-march-armv8_1-a+simd.d b/gas/testsuite/gas/arm/attr-march-armv8_1-a+simd.d
new file mode 100644
index 0000000..de002a6
--- /dev/null
+++ b/gas/testsuite/gas/arm/attr-march-armv8_1-a+simd.d
@@ -0,0 +1,18 @@
+# name: attributes for -march=armv8.1-a+simd
+# source: blank.s
+# as: -march=armv8.1-a+simd
+# readelf: -A
+# This test is only valid on EABI based ports.
+# target: *-*-*eabi* *-*-nacl*
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "8.1-A"
+ Tag_CPU_arch: v8
+ Tag_CPU_arch_profile: Application
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-2
+ Tag_FP_arch: FP for ARMv8
+ Tag_Advanced_SIMD_arch: NEON for ARMv8.1
+ Tag_MPextension_use: Allowed
+ Tag_Virtualization_use: TrustZone and Virtualization Extensions