aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1999-02-11 23:55:21 +0000
committerJeff Law <law@gcc.gnu.org>1999-02-11 16:55:21 -0700
commitd1d3a2df282fab0c593e6b63a05e69376c91df5a (patch)
tree6d951e1bcd7e21d4c75a180b72b47219d549f1c7
parentc7ce20112faf2b006fbeeac584b1df4efaf56c1e (diff)
downloadgcc-d1d3a2df282fab0c593e6b63a05e69376c91df5a.zip
gcc-d1d3a2df282fab0c593e6b63a05e69376c91df5a.tar.gz
gcc-d1d3a2df282fab0c593e6b63a05e69376c91df5a.tar.bz2
mips.c (save_restore_insns): Fix loop to save/restore FP registers.
* 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
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/mips/mips.c12
2 files changed, 16 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 82c01b6..c0e107e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index f447d42..dc9ca53 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -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)