aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2014-03-08 09:27:23 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2014-03-08 09:27:23 +0000
commitbd65fc87824ef69e69c6e79cd1323b43b77e0866 (patch)
tree4a3e17b1015038219b1fcd334e24dd96e4cb52c4 /gcc
parent4e185d7cee2261ee43266533a8fdbcc84e65e539 (diff)
downloadgcc-bd65fc87824ef69e69c6e79cd1323b43b77e0866.zip
gcc-bd65fc87824ef69e69c6e79cd1323b43b77e0866.tar.gz
gcc-bd65fc87824ef69e69c6e79cd1323b43b77e0866.tar.bz2
re PR target/58271 (ICE in gcc for a MIPS target during compilation with -mpaired-single -ftree-vectorize)
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/mips/mips.c21
2 files changed, 22 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 53c52fd..5611246 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index b2f2ef8..143169b 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -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)