[binutils-gdb] Fix the ARM assembler to generate a Realtime profile for armv8-r.

gdb-buildbot@sergiodj.net gdb-buildbot@sergiodj.net
Tue May 19 14:02:35 GMT 2020


*** TEST RESULTS FOR COMMIT 164446e04c89c7f5d8fd3efd7874a1af01035d72 ***

commit 164446e04c89c7f5d8fd3efd7874a1af01035d72
Author:     Alexander Fedotov <alfedotov@gmail.com>
AuthorDate: Tue May 19 12:45:42 2020 +0100
Commit:     Nick Clifton <nickc@redhat.com>
CommitDate: Tue May 19 12:45:42 2020 +0100

    Fix the ARM assembler to generate a Realtime profile for armv8-r.
    
            PR 25992
    gas     * config/tc-arm.c : Add arm_ext_v8r feature.
            (it_fsm_post_encode): Check arm_ext_v8r feature.
            (get_aeabi_cpu_arch_from_fset): Check arm_ext_v8r feature.
    
    include * opcode/arm.h (ARM_EXT2_V8R): Define. Modified ARM_AEXT2_V8R.

diff --git a/gas/ChangeLog b/gas/ChangeLog
index 05f5f2385c..67f6174c27 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,10 @@
+2020-05-19  Alexander Fedotov  <alfedotov@gmail.com>
+
+	PR 25992
+	* config/tc-arm.c : Add arm_ext_v8r feature.
+	(it_fsm_post_encode): Check arm_ext_v8r feature.
+	(get_aeabi_cpu_arch_from_fset): Check arm_ext_v8r feature.
+
 2020-05-19  Alan Modra  <amodra@gmail.com>
 
 	* write.c (write_contents): Use bfd_get_filename rather than
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 12ca245cbc..bc0b3a4f6f 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -230,6 +230,7 @@ static const arm_feature_set arm_ext_div = ARM_FEATURE_CORE_LOW (ARM_EXT_DIV);
 static const arm_feature_set arm_ext_v7 = ARM_FEATURE_CORE_LOW (ARM_EXT_V7);
 static const arm_feature_set arm_ext_v7a = ARM_FEATURE_CORE_LOW (ARM_EXT_V7A);
 static const arm_feature_set arm_ext_v7r = ARM_FEATURE_CORE_LOW (ARM_EXT_V7R);
+static const arm_feature_set arm_ext_v8r = ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8R);
 #ifdef OBJ_ELF
 static const arm_feature_set ATTRIBUTE_UNUSED arm_ext_v7m = ARM_FEATURE_CORE_LOW (ARM_EXT_V7M);
 #endif
@@ -23298,7 +23299,8 @@ it_fsm_post_encode (void)
       && warn_on_restrict_it
       && !now_pred.warn_deprecated
       && warn_on_deprecated
-      && ARM_CPU_HAS_FEATURE (cpu_variant, arm_ext_v8)
+      && (ARM_CPU_HAS_FEATURE (cpu_variant, arm_ext_v8)
+          || ARM_CPU_HAS_FEATURE (cpu_variant, arm_ext_v8r))
       && !ARM_CPU_HAS_FEATURE (cpu_variant, arm_ext_m))
     {
       if (inst.instruction >= 0x10000)
@@ -32878,12 +32880,14 @@ get_aeabi_cpu_arch_from_fset (const arm_feature_set *arch_ext_fset,
 
  found:
   /* Tag_CPU_arch_profile.  */
-  if (ARM_CPU_HAS_FEATURE (p_ver_ret->flags, arm_ext_v7a)
-      || ARM_CPU_HAS_FEATURE (p_ver_ret->flags, arm_ext_v8)
-      || (ARM_CPU_HAS_FEATURE (p_ver_ret->flags, arm_ext_atomics)
-	  && !ARM_CPU_HAS_FEATURE (p_ver_ret->flags, arm_ext_v8m_m_only)))
+  if (!ARM_CPU_HAS_FEATURE (p_ver_ret->flags, arm_ext_v8r)
+      && (ARM_CPU_HAS_FEATURE (p_ver_ret->flags, arm_ext_v7a)
+          || ARM_CPU_HAS_FEATURE (p_ver_ret->flags, arm_ext_v8)
+          || (ARM_CPU_HAS_FEATURE (p_ver_ret->flags, arm_ext_atomics)
+              && !ARM_CPU_HAS_FEATURE (p_ver_ret->flags, arm_ext_v8m_m_only))))
     *profile = 'A';
-  else if (ARM_CPU_HAS_FEATURE (p_ver_ret->flags, arm_ext_v7r))
+  else if (ARM_CPU_HAS_FEATURE (p_ver_ret->flags, arm_ext_v7r)
+      || ARM_CPU_HAS_FEATURE (p_ver_ret->flags, arm_ext_v8r))
     *profile = 'R';
   else if (ARM_CPU_HAS_FEATURE (p_ver_ret->flags, arm_ext_m))
     *profile = 'M';
diff --git a/gas/testsuite/gas/arm/attr-march-armv8-r+crypto.d b/gas/testsuite/gas/arm/attr-march-armv8-r+crypto.d
index e2d83a0dbe..5bd0fc5f37 100644
--- a/gas/testsuite/gas/arm/attr-march-armv8-r+crypto.d
+++ b/gas/testsuite/gas/arm/attr-march-armv8-r+crypto.d
@@ -9,7 +9,7 @@ Attribute Section: aeabi
 File Attributes
   Tag_CPU_name: "8-R"
   Tag_CPU_arch: v8-R
-  Tag_CPU_arch_profile: Application
+  Tag_CPU_arch_profile: Realtime
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-2
   Tag_FP_arch: FP for ARMv8
diff --git a/gas/testsuite/gas/arm/attr-march-armv8-r+fp.d b/gas/testsuite/gas/arm/attr-march-armv8-r+fp.d
index e7a8446f9d..afd5a756d0 100644
--- a/gas/testsuite/gas/arm/attr-march-armv8-r+fp.d
+++ b/gas/testsuite/gas/arm/attr-march-armv8-r+fp.d
@@ -9,7 +9,7 @@ Attribute Section: aeabi
 File Attributes
   Tag_CPU_name: "8-R"
   Tag_CPU_arch: v8-R
-  Tag_CPU_arch_profile: Application
+  Tag_CPU_arch_profile: Realtime
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-2
   Tag_FP_arch: FP for ARMv8
diff --git a/gas/testsuite/gas/arm/attr-march-armv8-r+simd.d b/gas/testsuite/gas/arm/attr-march-armv8-r+simd.d
index e09091cb22..8c8578a78f 100644
--- a/gas/testsuite/gas/arm/attr-march-armv8-r+simd.d
+++ b/gas/testsuite/gas/arm/attr-march-armv8-r+simd.d
@@ -9,7 +9,7 @@ Attribute Section: aeabi
 File Attributes
   Tag_CPU_name: "8-R"
   Tag_CPU_arch: v8-R
-  Tag_CPU_arch_profile: Application
+  Tag_CPU_arch_profile: Realtime
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-2
   Tag_FP_arch: FP for ARMv8
diff --git a/gas/testsuite/gas/arm/attr-march-armv8-r.d b/gas/testsuite/gas/arm/attr-march-armv8-r.d
index 820f32beea..cf4b3a51f8 100644
--- a/gas/testsuite/gas/arm/attr-march-armv8-r.d
+++ b/gas/testsuite/gas/arm/attr-march-armv8-r.d
@@ -9,7 +9,7 @@ Attribute Section: aeabi
 File Attributes
   Tag_CPU_name: "8-R"
   Tag_CPU_arch: v8-R
-  Tag_CPU_arch_profile: Application
+  Tag_CPU_arch_profile: Realtime
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-2
   Tag_MPextension_use: Allowed
diff --git a/include/ChangeLog b/include/ChangeLog
index c14cea3bfe..9f2599f81c 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,8 @@
+2020-05-19  Alexander Fedotov  <alfedotov@gmail.com>
+
+	PR 25992
+	* opcode/arm.h (ARM_EXT2_V8R): Define. Modified ARM_AEXT2_V8R.
+
 2020-05-11  Alan Modra  <amodra@gmail.com>
 
 	* opcode/ppc.h (PPC_OPERAND_ACC): Define.  Renumber following
diff --git a/include/opcode/arm.h b/include/opcode/arm.h
index 979bd20885..834edf0a24 100644
--- a/include/opcode/arm.h
+++ b/include/opcode/arm.h
@@ -88,6 +88,7 @@
 #define ARM_EXT2_CDE5	     0x10000000 /* Using CDE coproc 5.	   */
 #define ARM_EXT2_CDE6	     0x20000000 /* Using CDE coproc 6.	   */
 #define ARM_EXT2_CDE7	     0x40000000 /* Using CDE coproc 7.	   */
+#define ARM_EXT2_V8R	     0x80000000	/* Arm V8R.	               */
 
 /* Co-processor space extensions.  */
 #define ARM_CEXT_XSCALE	     0x00000001	/* Allow MIA etc.	 	   */
@@ -191,7 +192,7 @@
 #define ARM_AEXT2_V8M_MAIN	(ARM_AEXT2_V8M_BASE | ARM_EXT2_V8M_MAIN)
 #define ARM_AEXT2_V8M_MAIN_DSP	 ARM_AEXT2_V8M_MAIN
 #define ARM_AEXT_V8R		 ARM_AEXT_V8A
-#define ARM_AEXT2_V8R		 ARM_AEXT2_V8AR
+#define ARM_AEXT2_V8R		 (ARM_EXT2_V8R | ARM_AEXT2_V8AR)
 #define ARM_AEXT_V8_1M_MAIN	 ARM_AEXT_V8M_MAIN
 #define ARM_AEXT2_V8_1M_MAIN	(ARM_AEXT2_V8M_MAIN | ARM_EXT2_V8_1M_MAIN     \
 						    | ARM_EXT2_FP16_INST)


More information about the Gdb-testers mailing list