MIPS: Do not reload unallocated FP_REGS pseudos via GR_REGS
authorMatthew Fortune <matthew.fortune@imgtec.com>
Wed, 10 Sep 2014 10:52:39 +0000 (10:52 +0000)
committerMatthew Fortune <mpf@gcc.gnu.org>
Wed, 10 Sep 2014 10:52:39 +0000 (10:52 +0000)
gcc/

* config/mips/mips.c (mips_secondary_reload_class): Handle
regno < 0 case.

From-SVN: r215120

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

index 4f9d1cf5492fb5043f3c58364959beaef1f36355..154b9daa0a06db1f78e534814f40fb267da916b3 100644 (file)
@@ -1,3 +1,8 @@
+2014-09-10  Matthew Fortune  <matthew.fortune@imgtec.com>
+
+       * config/mips/mips.c (mips_secondary_reload_class): Handle
+       regno < 0 case.
+
 2014-09-10  Robert Suchanek   <robert.suchanek@imgtec.com>
 
        * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
index 646bb4dc7ebd30f51c87148a14c0f284ba4e9b0f..d1d4defd8e51f53da138f2ee88509b380dd8e41b 100644 (file)
@@ -12143,8 +12143,9 @@ mips_secondary_reload_class (enum reg_class rclass,
 
   if (reg_class_subset_p (rclass, FP_REGS))
     {
-      if (MEM_P (x)
-         && (GET_MODE_SIZE (mode) == 4 || GET_MODE_SIZE (mode) == 8))
+      if (regno < 0
+         || (MEM_P (x)
+             && (GET_MODE_SIZE (mode) == 4 || GET_MODE_SIZE (mode) == 8)))
        /* In this case we can use lwc1, swc1, ldc1 or sdc1.  We'll use
           pairs of lwc1s and swc1s if ldc1 and sdc1 are not supported.  */
        return NO_REGS;