aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/mips/mips.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 366b533..3e1d11a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2001-08-10 Richard Sandiford <rsandifo@redhat.com>
+ * config/mips/mips.c (save_restore_insns): Don't mark the RA's
+ stack slot as unchanging if current_function_calls_eh_return.
+
+2001-08-10 Richard Sandiford <rsandifo@redhat.com>
+
* config/mips/mips.md (reload_outcc): Use HARD_REGNO_NREGS to
access the second half of the TFmode scratch operand.
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index 879da3d..dc1781c 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -6608,7 +6608,9 @@ save_restore_insns (store_p, large_reg, large_offset, file)
gen_rtx (PLUS, Pmode, base_reg_rtx,
GEN_INT (gp_offset - base_offset)));
- RTX_UNCHANGING_P (mem_rtx) = 1;
+ if (regno != GP_REG_FIRST + 31
+ || ! current_function_calls_eh_return)
+ RTX_UNCHANGING_P (mem_rtx) = 1;
/* The mips16 does not have an instruction to load
$31, so we load $7 instead, and work things out