[06/11] arm: change default FPUs from FPA to none

Message ID 20240604115628.784729-7-rearnsha@arm.com
State Committed
Headers
Series arm: Remove FPA support from gas/binutils |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_binutils_build--master-arm fail Patch failed to apply
linaro-tcwg-bot/tcwg_binutils_build--master-aarch64 fail Patch failed to apply

Commit Message

Richard Earnshaw June 4, 2024, 11:56 a.m. UTC
  Change the cases where the default FPU was FPA to none.  This should
ensure that any code that used settings to pick the floating-point
order will not silently produce a different output.  The options that
explicitly set the FPA remain for the moment.
---
 gas/config/tc-arm.c | 125 ++++++++++++++++++++++----------------------
 1 file changed, 63 insertions(+), 62 deletions(-)
  

Patch

diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 1ba7bb31ac5..12610fd8766 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -118,19 +118,20 @@  static bool out_of_range_p (offsetT value, offsetT bits)
 
 #ifndef FPU_DEFAULT
 # ifdef TE_LINUX
-#  define FPU_DEFAULT FPU_ARCH_FPA
+#  define FPU_DEFAULT FPU_NONE
 # elif defined (TE_NetBSD)
 #  ifdef OBJ_ELF
 #   define FPU_DEFAULT FPU_ARCH_SOFTVFP	/* Soft-float, but VFP order.  */
 #  else
     /* Legacy a.out format.  */
-#   define FPU_DEFAULT FPU_ARCH_FPA	/* Soft-float, but FPA order.  */
+#   define FPU_DEFAULT FPU_NONE	/* Soft-float, no FPU.  */
 #  endif
 # elif defined (TE_VXWORKS)
 #  define FPU_DEFAULT FPU_ARCH_SOFTVFP	/* Soft-float, VFP order.  */
 # else
-   /* For backwards compatibility, default to FPA.  */
-#  define FPU_DEFAULT FPU_ARCH_FPA
+   /* For backwards compatibility, default to no-fpu so that we don't
+      get silent code changes of FP literal data.  */
+#  define FPU_DEFAULT FPU_NONE
 # endif
 #endif /* ifndef FPU_DEFAULT */
 
@@ -31247,142 +31248,142 @@  static const struct arm_cpu_option_table arm_cpus[] =
 {
   ARM_CPU_OPT ("all",		  NULL,		       ARM_ANY,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm1",		  NULL,		       ARM_ARCH_V1,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm2",		  NULL,		       ARM_ARCH_V2,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm250",	  NULL,		       ARM_ARCH_V2S,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm3",		  NULL,		       ARM_ARCH_V2S,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm6",		  NULL,		       ARM_ARCH_V3,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm60",		  NULL,		       ARM_ARCH_V3,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm600",	  NULL,		       ARM_ARCH_V3,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm610",	  NULL,		       ARM_ARCH_V3,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm620",	  NULL,		       ARM_ARCH_V3,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm7",		  NULL,		       ARM_ARCH_V3,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm7m",		  NULL,		       ARM_ARCH_V3M,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm7d",		  NULL,		       ARM_ARCH_V3,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm7dm",	  NULL,		       ARM_ARCH_V3M,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm7di",	  NULL,		       ARM_ARCH_V3,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm7dmi",	  NULL,		       ARM_ARCH_V3M,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm70",		  NULL,		       ARM_ARCH_V3,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm700",	  NULL,		       ARM_ARCH_V3,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm700i",	  NULL,		       ARM_ARCH_V3,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm710",	  NULL,		       ARM_ARCH_V3,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm710t",	  NULL,		       ARM_ARCH_V4T,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm720",	  NULL,		       ARM_ARCH_V3,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm720t",	  NULL,		       ARM_ARCH_V4T,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm740t",	  NULL,		       ARM_ARCH_V4T,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm710c",	  NULL,		       ARM_ARCH_V3,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm7100",	  NULL,		       ARM_ARCH_V3,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm7500",	  NULL,		       ARM_ARCH_V3,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm7500fe",	  NULL,		       ARM_ARCH_V3,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm7t",		  NULL,		       ARM_ARCH_V4T,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm7tdmi",	  NULL,		       ARM_ARCH_V4T,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm7tdmi-s",	  NULL,		       ARM_ARCH_V4T,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm8",		  NULL,		       ARM_ARCH_V4,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm810",	  NULL,		       ARM_ARCH_V4,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("strongarm",	  NULL,		       ARM_ARCH_V4,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("strongarm1",	  NULL,		       ARM_ARCH_V4,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("strongarm110",	  NULL,		       ARM_ARCH_V4,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("strongarm1100",	  NULL,		       ARM_ARCH_V4,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("strongarm1110",	  NULL,		       ARM_ARCH_V4,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm9",		  NULL,		       ARM_ARCH_V4T,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm920",	  "ARM920T",	       ARM_ARCH_V4T,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm920t",	  NULL,		       ARM_ARCH_V4T,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm922t",	  NULL,		       ARM_ARCH_V4T,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm940t",	  NULL,		       ARM_ARCH_V4T,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("arm9tdmi",	  NULL,		       ARM_ARCH_V4T,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("fa526",		  NULL,		       ARM_ARCH_V4,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
   ARM_CPU_OPT ("fa626",		  NULL,		       ARM_ARCH_V4,
 	       ARM_ARCH_NONE,
-	       FPU_ARCH_FPA),
+	       FPU_NONE),
 
   /* For V5 or later processors we default to using VFP; but the user
      should really set the FPU type explicitly.	 */
@@ -31654,7 +31655,7 @@  static const struct arm_cpu_option_table arm_cpus[] =
   /* Maverick extensions are no-longer supported, but we can still
      recognize the CPU name and treat it like an Arm920T.  */
   ARM_CPU_OPT ("ep9312",	  "ARM920T",	       ARM_ARCH_V4T,
-	       ARM_ARCH_NONE, FPU_ARCH_FPA),
+	       ARM_ARCH_NONE, FPU_NONE),
 
   /* Marvell processors.  */
   ARM_CPU_OPT ("marvell-pj4",	  NULL,		       ARM_ARCH_V7A,
@@ -31963,17 +31964,17 @@  static const struct arm_ext_table armv8r_ext_table[] =
 
 static const struct arm_arch_option_table arm_archs[] =
 {
-  ARM_ARCH_OPT ("all",		  ARM_ANY,		FPU_ARCH_FPA),
-  ARM_ARCH_OPT ("armv1",	  ARM_ARCH_V1,		FPU_ARCH_FPA),
-  ARM_ARCH_OPT ("armv2",	  ARM_ARCH_V2,		FPU_ARCH_FPA),
-  ARM_ARCH_OPT ("armv2a",	  ARM_ARCH_V2S,		FPU_ARCH_FPA),
-  ARM_ARCH_OPT ("armv2s",	  ARM_ARCH_V2S,		FPU_ARCH_FPA),
-  ARM_ARCH_OPT ("armv3",	  ARM_ARCH_V3,		FPU_ARCH_FPA),
-  ARM_ARCH_OPT ("armv3m",	  ARM_ARCH_V3M,		FPU_ARCH_FPA),
-  ARM_ARCH_OPT ("armv4",	  ARM_ARCH_V4,		FPU_ARCH_FPA),
-  ARM_ARCH_OPT ("armv4xm",	  ARM_ARCH_V4xM,	FPU_ARCH_FPA),
-  ARM_ARCH_OPT ("armv4t",	  ARM_ARCH_V4T,		FPU_ARCH_FPA),
-  ARM_ARCH_OPT ("armv4txm",	  ARM_ARCH_V4TxM,	FPU_ARCH_FPA),
+  ARM_ARCH_OPT ("all",		  ARM_ANY,		FPU_NONE),
+  ARM_ARCH_OPT ("armv1",	  ARM_ARCH_V1,		FPU_NONE),
+  ARM_ARCH_OPT ("armv2",	  ARM_ARCH_V2,		FPU_NONE),
+  ARM_ARCH_OPT ("armv2a",	  ARM_ARCH_V2S,		FPU_NONE),
+  ARM_ARCH_OPT ("armv2s",	  ARM_ARCH_V2S,		FPU_NONE),
+  ARM_ARCH_OPT ("armv3",	  ARM_ARCH_V3,		FPU_NONE),
+  ARM_ARCH_OPT ("armv3m",	  ARM_ARCH_V3M,		FPU_NONE),
+  ARM_ARCH_OPT ("armv4",	  ARM_ARCH_V4,		FPU_NONE),
+  ARM_ARCH_OPT ("armv4xm",	  ARM_ARCH_V4xM,	FPU_NONE),
+  ARM_ARCH_OPT ("armv4t",	  ARM_ARCH_V4T,		FPU_NONE),
+  ARM_ARCH_OPT ("armv4txm",	  ARM_ARCH_V4TxM,	FPU_NONE),
   ARM_ARCH_OPT ("armv5",	  ARM_ARCH_V5,		FPU_ARCH_SOFTVFP),
   ARM_ARCH_OPT ("armv5t",	  ARM_ARCH_V5T,		FPU_ARCH_SOFTVFP),
   ARM_ARCH_OPT ("armv5txm",	  ARM_ARCH_V5TxM,	FPU_ARCH_SOFTVFP),