This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH, BINUTILS, ARM] Add Armv8.5-A to select_arm_features and update macros.
- From: Sudakshina Das <sudi dot das at arm dot com>
- To: "binutils at sourceware dot org" <binutils at sourceware dot org>
- Cc: nd <nd at arm dot com>, Richard Earnshaw <Richard dot Earnshaw at arm dot com>, Ramana Radhakrishnan <Ramana dot Radhakrishnan at arm dot com>, Nick Clifton <nickc at redhat dot com>, Thomas Preudhomme <thomas dot preudhomme at linaro dot org>
- Date: Mon, 22 Oct 2018 18:18:25 +0100
- Subject: [PATCH, BINUTILS, ARM] Add Armv8.5-A to select_arm_features and update macros.
Hi
Since my patches for ARMv8.5-A have gone in Thomas has pointed out a
couple of things I missed. This patch is to address those.
1) Adding ARMv8.5-A in select_arm_features.
2) Updating the feature macro so that the new ARM_EXT2_* features for
Armv8.5-A are moved to ARM_AEXT2_V8_5A.
Builds and reg tests all pass on arm-none-linux-gnueabi.
Is this ok for trunk?
Thanks
Sudi
*** opcodes/ChangeLog ***
2018-xx-xx Sudakshina Das <sudi.das@arm.com>
* arm-dis.c (select_arm_features): Update bfd_mach_arm_8
with Armv8.5-A. Remove reduntant ARM_EXT2_FP16_FML.
*** include/ChangeLog ***
2018-xx-xx Sudakshina Das <sudi.das@arm.com>
* opcode/arm.h (ARM_ARCH_V8_5A): Move ARM_EXT2_PREDRES and
ARM_EXT2_SB to ...
(ARM_AEXT2_V8_5A): Here.
diff --git a/include/opcode/arm.h b/include/opcode/arm.h
index 71c430638b1af3785721f789a2fc7a476370da6d..6f43abb3030185471873b51406dcfefc11135c8d 100644
--- a/include/opcode/arm.h
+++ b/include/opcode/arm.h
@@ -162,7 +162,8 @@
#define ARM_AEXT2_V8_2A (ARM_AEXT2_V8_1A | ARM_EXT2_V8_2A | ARM_EXT2_RAS)
#define ARM_AEXT2_V8_3A (ARM_AEXT2_V8_2A | ARM_EXT2_V8_3A)
#define ARM_AEXT2_V8_4A (ARM_AEXT2_V8_3A | ARM_EXT2_FP16_FML | ARM_EXT2_V8_4A)
-#define ARM_AEXT2_V8_5A (ARM_AEXT2_V8_4A | ARM_EXT2_V8_5A)
+#define ARM_AEXT2_V8_5A (ARM_AEXT2_V8_4A | ARM_EXT2_V8_5A | ARM_EXT2_SB \
+ | ARM_EXT2_PREDRES)
#define ARM_AEXT_V8M_BASE (ARM_AEXT_V6SM | ARM_EXT_DIV)
#define ARM_AEXT_V8M_MAIN ARM_AEXT_V7M
#define ARM_AEXT_V8M_MAIN_DSP ARM_AEXT_V7EM
@@ -297,9 +298,7 @@
#define ARM_ARCH_V8_4A ARM_FEATURE (ARM_AEXT_V8A, ARM_AEXT2_V8_4A, \
CRC_EXT_ARMV8 | FPU_NEON_EXT_RDMA \
| FPU_NEON_EXT_DOTPROD)
-#define ARM_ARCH_V8_5A ARM_FEATURE (ARM_AEXT_V8A, \
- ARM_AEXT2_V8_5A | ARM_EXT2_SB \
- | ARM_EXT2_PREDRES, \
+#define ARM_ARCH_V8_5A ARM_FEATURE (ARM_AEXT_V8A, ARM_AEXT2_V8_5A, \
CRC_EXT_ARMV8 | FPU_NEON_EXT_RDMA \
| FPU_NEON_EXT_DOTPROD)
#define ARM_ARCH_V8M_BASE ARM_FEATURE_CORE (ARM_AEXT_V8M_BASE, ARM_AEXT2_V8M)
diff --git a/opcodes/arm-dis.c b/opcodes/arm-dis.c
index f22a78f70d551bf8033a2d2b5b9b44243fd020c0..a4b1281f5dbefe4f13f50e2dcfca7117168f4154 100644
--- a/opcodes/arm-dis.c
+++ b/opcodes/arm-dis.c
@@ -6447,11 +6447,11 @@ select_arm_features (unsigned long mach,
case bfd_mach_arm_7EM: ARM_SET_FEATURES (ARM_ARCH_V7EM); break;
case bfd_mach_arm_8:
{
- /* Add bits for extensions that Armv8.4-A recognizes. */
- arm_feature_set armv8_4_ext_fset
- = ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_FP16_FML);
- ARM_SET_FEATURES (ARM_ARCH_V8_4A);
- ARM_MERGE_FEATURE_SETS (arch_fset, arch_fset, armv8_4_ext_fset);
+ /* Add bits for extensions that Armv8.5-A recognizes. */
+ arm_feature_set armv8_5_ext_fset
+ = ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST);
+ ARM_SET_FEATURES (ARM_ARCH_V8_5A);
+ ARM_MERGE_FEATURE_SETS (arch_fset, arch_fset, armv8_5_ext_fset);
break;
}
case bfd_mach_arm_8R: ARM_SET_FEATURES (ARM_ARCH_V8R); break;