aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload.c
diff options
context:
space:
mode:
authorJ"orn Rennecke <amylaar@cygnus.co.uk>1998-07-07 00:19:56 +0000
committerJeff Law <law@gcc.gnu.org>1998-07-06 18:19:56 -0600
commita5546290afe02293d2574aa706435cfaefa98627 (patch)
treeee0f87ae67f565aadaa69201b76457736faabfd2 /gcc/reload.c
parent1b4d8b2b5cd9ba736a378fe89513b535ca75cb26 (diff)
downloadgcc-a5546290afe02293d2574aa706435cfaefa98627.zip
gcc-a5546290afe02293d2574aa706435cfaefa98627.tar.gz
gcc-a5546290afe02293d2574aa706435cfaefa98627.tar.bz2
reload.c (find_equiv_reg): When looking for stack pointer + const, make sure we don't use a stack adjust.
* reload.c (find_equiv_reg): When looking for stack pointer + const, make sure we don't use a stack adjust. From-SVN: r20985
Diffstat (limited to 'gcc/reload.c')
-rw-r--r--gcc/reload.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/reload.c b/gcc/reload.c
index 828be56..0520554 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -6017,6 +6017,9 @@ find_equiv_reg (goal, insn, class, other, reload_reg_p, goalreg, mode)
&& (valueno = true_regnum (valtry = SET_SRC (pat))) >= 0)
||
(goal_const && rtx_equal_p (SET_SRC (pat), goal)
+ /* When looking for stack pointer + const,
+ make sure we don't use a stack adjust. */
+ && !reg_overlap_mentioned_for_reload_p (SET_DEST (pat), goal)
&& (valueno = true_regnum (valtry = SET_DEST (pat))) >= 0)
|| (goal_mem
&& (valueno = true_regnum (valtry = SET_DEST (pat))) >= 0