public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
From: Richard Earnshaw <rearnsha@arm.com>
To: <binutils@sourceware.org>
Cc: <nickc@redhat.com>, Richard Earnshaw <rearnsha@arm.com>
Subject: [PATCH 06/11] arm: change default FPUs from FPA to none
Date: Mon, 3 Jun 2024 12:49:07 +0100	[thread overview]
Message-ID: <20240603114912.4065598-7-rearnsha@arm.com> (raw)
In-Reply-To: <20240603114912.4065598-1-rearnsha@arm.com>

[-- Attachment #1: Type: text/plain, Size: 381 bytes --]


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(-)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0006-arm-change-default-FPUs-from-FPA-to-none.patch --]
[-- Type: text/x-patch; name="0006-arm-change-default-FPUs-from-FPA-to-none.patch", Size: 8965 bytes --]

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),

  parent reply	other threads:[~2024-06-03 11:49 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-03 11:49 [PATCH 00/11] arm: Remove FPA support from gas/binutils Richard Earnshaw
2024-06-03 11:49 ` [PATCH 01/11] arm: remove FPA related tests Richard Earnshaw
2024-06-03 11:49 ` [PATCH 02/11] arm: rename FPU_ARCH_VFP to FPU_ARCH_SOFTVFP Richard Earnshaw
2024-06-03 11:49 ` [PATCH 03/11] arm: default to softvfp on armv6 or later cores Richard Earnshaw
2024-06-03 11:49 ` [PATCH 04/11] arm: adjust FPU selection logic Richard Earnshaw
2024-06-03 11:49 ` [PATCH 05/11] arm: redirect fp constant data directives through a wrapper Richard Earnshaw
2024-06-03 11:49 ` Richard Earnshaw [this message]
2024-06-03 11:49 ` [PATCH 07/11] arm: remove options to select the FPA Richard Earnshaw
2024-06-03 11:49 ` [PATCH 08/11] arm: remove FPA instructions from assembler Richard Earnshaw
2024-06-03 11:49 ` [PATCH 09/11] arm: remove disassembly support for the FPA co-processor Richard Earnshaw
2024-06-03 11:49 ` [PATCH 10/11] arm: minor documentation cleanup given removal of FPA Richard Earnshaw
2024-06-03 11:49 ` [PATCH 11/11] NEWS: arm: note that FPA support has been removed Richard Earnshaw
2024-06-03 15:14 [PATCH 00/11] [resend] arm: Remove FPA support from gas/binutils Richard Earnshaw
2024-06-03 15:15 ` [PATCH 06/11] arm: change default FPUs from FPA to none Richard Earnshaw
2024-06-04 11:56 [PATCH 00/11] [2nd resend] arm: Remove FPA support from gas/binutils Richard Earnshaw
2024-06-04 11:56 ` [PATCH 06/11] arm: change default FPUs from FPA to none Richard Earnshaw

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240603114912.4065598-7-rearnsha@arm.com \
    --to=rearnsha@arm.com \
    --cc=binutils@sourceware.org \
    --cc=nickc@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).