]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
arm: change default FPUs from FPA to none
authorRichard Earnshaw <rearnsha@arm.com>
Tue, 4 Jun 2024 11:56:23 +0000 (12:56 +0100)
committerRichard Earnshaw <rearnsha@arm.com>
Wed, 5 Jun 2024 16:45:45 +0000 (17:45 +0100)
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

index 1ba7bb31ac519d92ea31eb6236b8fb3cdd530415..12610fd876659c5244ba3944f9995bcdfa9e2be4 100644 (file)
@@ -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),