]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
mips.c (save_restore_insns): Don't mark the RA's stack slot as unchanging if current_...
authorRichard Sandiford <rsandifo@redhat.com>
Fri, 10 Aug 2001 13:03:44 +0000 (13:03 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Fri, 10 Aug 2001 13:03:44 +0000 (13:03 +0000)
* config/mips/mips.c (save_restore_insns): Don't mark the RA's
stack slot as unchanging if current_function_calls_eh_return.

From-SVN: r44760

gcc/ChangeLog
gcc/config/mips/mips.c

index 366b53362d8098a943c5eee297a0fdd552685a91..3e1d11a36637643d4ee4f9c0cb9c37379ee0c237 100644 (file)
@@ -1,3 +1,8 @@
+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
index 879da3da73ed7d42eeccc35e09f1aa2a37596dd6..dc1781c069113b2fc448f65856dba948c4ebce58 100644 (file)
@@ -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