OSDN Git Service

* reload.c (find_equiv_reg): When looking for stack pointer + const,
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 7 Jul 1998 00:19:56 +0000 (00:19 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 7 Jul 1998 00:19:56 +0000 (00:19 +0000)
        make sure we don't use a stack adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20985 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/reload.c

index d175d6d..6b761e1 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 828be56..0520554 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