[binutils-gdb/binutils-2_36-branch] arm: don't treat XScale features as part of the FPU [PR 28031]

Richard Earnshaw rearnsha@sourceware.org
Thu Jul 1 16:49:02 GMT 2021


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

commit 687dd74c9bac7b746ea69e4ea070adff05226b13
Author: Richard Earnshaw <rearnsha@arm.com>
Date:   Thu Jul 1 11:37:13 2021 +0100

    arm: don't treat XScale features as part of the FPU [PR 28031]
    
    Although the XScale and its iwMMX extensions are implemented in the
    Arm co-processor space, they are not considered to be part of the FPU
    specification.  In particular, they cannot be enabled or disabled via
    a .fpu directive.  It's therefore incorrect to strip these properties
    when a new .fpu directive is encountered.
    
    Note that the legacy Maverick co-processor is considered to be a FPU
    and it is possible to control this via the .fpu directive.
    
    include:
    
            PR gas/28031
            * opcode/arm.h (FPU_ANY): Exclude XScale-related features.

Diff:
---
 include/ChangeLog    | 5 +++++
 include/opcode/arm.h | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/include/ChangeLog b/include/ChangeLog
index f692e379026..b4276ec5af0 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,8 @@
+2021-07-01  Richard Earnshaw  <rearnsha@arm.com>
+
+	PR gas/28031
+	* opcode/arm.h (FPU_ANY): Exclude XScale-related features.
+
 2021-02-19  Andreas Krebbel  <krebbel@linux.ibm.com>
 
 	* opcode/s390.h (enum s390_opcode_cpu_val): Add
diff --git a/include/opcode/arm.h b/include/opcode/arm.h
index 03a80712c0a..90c09a70658 100644
--- a/include/opcode/arm.h
+++ b/include/opcode/arm.h
@@ -383,7 +383,7 @@
 #define ARM_ARCH_NONE	ARM_FEATURE_LOW (0, 0)
 #define FPU_NONE	ARM_FEATURE_LOW (0, 0)
 #define ARM_ANY		ARM_FEATURE (-1, -1 & ~ (ARM_EXT2_MVE | ARM_EXT2_MVE_FP), 0)	/* Any basic core.  */
-#define FPU_ANY		ARM_FEATURE_COPROC (-1) /* Any FPU.  */
+#define FPU_ANY		ARM_FEATURE_COPROC (-1 & ~(ARM_CEXT_XSCALE | ARM_CEXT_IWMMXT | ARM_CEXT_IWMMXT2)) /* Any FPU.  */
 #define FPU_ANY_HARD	ARM_FEATURE_COPROC (FPU_FPA | FPU_VFP_HARD | FPU_MAVERICK)
 /* Extensions containing some Thumb-2 instructions.  If any is present, Thumb
    ISA is Thumb-2.  */


More information about the Binutils-cvs mailing list