reload.c (find_equiv_reg): When looking for stack pointer + const, make sure we don...
authorJ"orn Rennecke <amylaar@cygnus.co.uk>
Tue, 7 Jul 1998 00:19:56 +0000 (00:19 +0000)
committerJeff Law <law@gcc.gnu.org>
Tue, 7 Jul 1998 00:19:56 +0000 (18:19 -0600)
        * reload.c (find_equiv_reg): When looking for stack pointer + const,
        make sure we don't use a stack adjust.

From-SVN: r20985

gcc/ChangeLog
gcc/reload.c

index d175d6d4767942c9635d3172c6527f425916a233..6b761e1e2d27c2b6cd7858ec02db065955d1b096 100644 (file)
@@ -76,6 +76,9 @@ Mon Jul  6 22:50:48 1998  Jason Merrill  <jason@yorick.cygnus.com>
 
 Mon Jul  6 22:47:55 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
 
+       * 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): If need_stable_sp is set,
        check if stack pointer is changed directly.
 
index 828be561676e62f4b36ff81d081aad2e7c028fa1..0520554fea9bd3721b5ddcc31a7659b4009753ce 100644 (file)
@@ -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