diff options
author | Jeffrey A Law <law@cygnus.com> | 1999-02-11 23:55:21 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1999-02-11 16:55:21 -0700 |
commit | d1d3a2df282fab0c593e6b63a05e69376c91df5a (patch) | |
tree | 6d951e1bcd7e21d4c75a180b72b47219d549f1c7 | |
parent | c7ce20112faf2b006fbeeac584b1df4efaf56c1e (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/mips/mips.c | 12 |
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) |