summaryrefslogtreecommitdiff
path: root/gcc/reload.c
diff options
context:
space:
mode:
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>1993-05-10 05:01:08 +0000
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>1993-05-10 05:01:08 +0000
commitf7f0a0c6c7e3548180a8056303652f498652bfe0 (patch)
treecaded727130d0dac56fa71f8b7d68035bcbd13f0 /gcc/reload.c
parentaf321570476f74e1ee3745b2b9fa3d562df66373 (diff)
downloadgcc-f7f0a0c6c7e3548180a8056303652f498652bfe0.tar.gz
(find_equiv_reg): Set goal_mem_addr_varies
for all but true constant addresses. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@4406 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reload.c')
-rw-r--r--gcc/reload.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/reload.c b/gcc/reload.c
index 77cc05dea7e..c2555b01fba 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -5176,7 +5176,9 @@ find_equiv_reg (goal, insn, class, other, reload_reg_p, goalreg, mode)
}
if (goal_mem)
- goal_mem_addr_varies = rtx_addr_varies_p (goal);
+ /* We must treat frame pointer as varying here,
+ since it can vary--in a nonlocal goto as generated by expand_goto. */
+ goal_mem_addr_varies = !CONSTANT_ADDRESS_P (XEXP (goal, 0));
/* Now verify that the values of GOAL and VALUE remain unaltered
until INSN is reached. */