diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/mips/mips.c | 4 |
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 |