aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Sandiford <rsandifo@redhat.com>2001-08-10 13:03:44 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2001-08-10 13:03:44 +0000
commita8205f032908c8d821e92aac477cf60804ca2d2e (patch)
tree8190f41d4200964afaef7e03f7cf602e936bdb35 /gcc
parent2359d013c45d2d37a9be9c466cc12771710ca80e (diff)
downloadgcc-a8205f032908c8d821e92aac477cf60804ca2d2e.zip
gcc-a8205f032908c8d821e92aac477cf60804ca2d2e.tar.gz
gcc-a8205f032908c8d821e92aac477cf60804ca2d2e.tar.bz2
mips.c (save_restore_insns): Don't mark the RA's stack slot as unchanging if current_function_calls_eh_return.
* 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
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