]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/58271 (ICE in gcc for a MIPS target during compilation with -mpaired...
authorRichard Sandiford <rdsandiford@googlemail.com>
Sat, 8 Mar 2014 09:27:23 +0000 (09:27 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Sat, 8 Mar 2014 09:27:23 +0000 (09:27 +0000)
gcc/
PR target/58271
* config/mips/mips.c (mips_option_override): Promote -mpaired-single
warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
if they can't be used.

From-SVN: r208425

gcc/ChangeLog
gcc/config/mips/mips.c

index 53c52fd32d579c57c7bdb025170ac45e3ca783f3..5611246ed95a502ac32fbd461925d2ca88099ce7 100644 (file)
@@ -1,3 +1,10 @@
+2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       PR target/58271
+       * config/mips/mips.c (mips_option_override): Promote -mpaired-single
+       warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
+       if they can't be used.
+
 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
        * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test for Solaris
index b2f2ef8f6bc4b75a706691227d58b4e9ba6e12ac..143169bc150fa05a223dafcc4374c230389b45e2 100644 (file)
@@ -17206,15 +17206,24 @@ mips_option_override (void)
   /* Make sure that when TARGET_PAIRED_SINGLE_FLOAT is true, TARGET_FLOAT64
      and TARGET_HARD_FLOAT_ABI are both true.  */
   if (TARGET_PAIRED_SINGLE_FLOAT && !(TARGET_FLOAT64 && TARGET_HARD_FLOAT_ABI))
-    error ("%qs must be used with %qs",
-          TARGET_MIPS3D ? "-mips3d" : "-mpaired-single",
-          TARGET_HARD_FLOAT_ABI ? "-mfp64" : "-mhard-float");
+    {
+      error ("%qs must be used with %qs",
+            TARGET_MIPS3D ? "-mips3d" : "-mpaired-single",
+            TARGET_HARD_FLOAT_ABI ? "-mfp64" : "-mhard-float");
+      target_flags &= ~MASK_PAIRED_SINGLE_FLOAT;
+      TARGET_MIPS3D = 0;
+    }
 
-  /* Make sure that the ISA supports TARGET_PAIRED_SINGLE_FLOAT when it is
-     enabled.  */
+  /* Make sure that -mpaired-single is only used on ISAs that support it.
+     We must disable it otherwise since it relies on other ISA properties
+     like ISA_HAS_8CC having their normal values.  */
   if (TARGET_PAIRED_SINGLE_FLOAT && !ISA_HAS_PAIRED_SINGLE)
-    warning (0, "the %qs architecture does not support paired-single"
+    {
+      error ("the %qs architecture does not support paired-single"
             " instructions", mips_arch_info->name);
+      target_flags &= ~MASK_PAIRED_SINGLE_FLOAT;
+      TARGET_MIPS3D = 0;
+    }
 
   if (mips_r10k_cache_barrier != R10K_CACHE_BARRIER_NONE
       && !TARGET_CACHE_BUILTIN)