From d1d3a2df282fab0c593e6b63a05e69376c91df5a Mon Sep 17 00:00:00 2001 From: Jeffrey A Law Date: Thu, 11 Feb 1999 23:55:21 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 6 ++++++ gcc/config/mips/mips.c | 12 ++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 82c01b680f2..c0e107e54dd 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 * 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 f447d42e389..dc9ca53bcba 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) -- 2.30.2