This is the mail archive of the binutils@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]

[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;

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