diff options
author | rms <rms@138bc75d-0d04-0410-961f-82ee72b054a4> | 1993-05-10 05:01:08 +0000 |
---|---|---|
committer | rms <rms@138bc75d-0d04-0410-961f-82ee72b054a4> | 1993-05-10 05:01:08 +0000 |
commit | f7f0a0c6c7e3548180a8056303652f498652bfe0 (patch) | |
tree | caded727130d0dac56fa71f8b7d68035bcbd13f0 /gcc/reload.c | |
parent | af321570476f74e1ee3745b2b9fa3d562df66373 (diff) | |
download | gcc-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.c | 4 |
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. */ |