mips.c (save_restore_insns): Fix loop to save/restore FP registers.
authorJeffrey A Law <law@cygnus.com>
Thu, 11 Feb 1999 23:55:21 +0000 (23:55 +0000)
committerJeff Law <law@gcc.gnu.org>
Thu, 11 Feb 1999 23:55:21 +0000 (16:55 -0700)
        * mips.c (save_restore_insns): Fix loop to save/restore FP registers.
        (compute_frame_size): Change loop over FP regs to be consistent
        with the loop in save_restore_insns.

From-SVN: r25160

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

index 82c01b680f25ef49df66363e27f3021679b67095..c0e107e54dd480e86da79cf723dd6939d54591df 100644 (file)
@@ -1,3 +1,9 @@
+Fri Feb 12 00:51:26 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * mips.c (save_restore_insns): Fix loop to save/restore FP registers.
+       (compute_frame_size): Change loop over FP regs to be consistent
+       with the loop in save_restore_insns.
+
 Thu Feb 11 17:38:40 1999  Jim Wilson  <wilson@cygnus.com>
 
        * i960/i960.h (OVERRIDE_OPTIONS): Warn if -mlong-double-64 is used.
index f447d42e38947f1b767550a4e04c3f5e9ca781ad..dc9ca53bcba995328c9309119c73bbb57d863a0a 100644 (file)
@@ -5566,7 +5566,11 @@ compute_frame_size (size)
       fp_bits = 3;
     }
 
-  for (regno = FP_REG_FIRST; regno <= FP_REG_LAST; regno += fp_inc)
+  /* This loop must iterate over the same space as its companion in
+     save_restore_regs.  */
+  for (regno = (FP_REG_LAST - fp_inc + 1);
+       regno >= FP_REG_FIRST;
+       regno -= fp_inc)
     {
       if (regs_ever_live[regno] && !call_used_regs[regno])
        {
@@ -6020,7 +6024,11 @@ save_restore_insns (store_p, large_reg, large_offset, file)
            }
        }
 
-      for (regno = FP_REG_LAST-1; regno >= FP_REG_FIRST; regno -= fp_inc)
+      /* This loop must iterate over the same space as its companion in
+        compute_frame_size.  */
+      for (regno = (FP_REG_LAST - fp_inc + 1);
+          regno >= FP_REG_FIRST;
+          regno -= fp_inc)
        if (BITSET_P (fmask, regno - FP_REG_FIRST))
          {
            if (file == 0)