OSDN Git Service

* sched.c: (memrefs_conflict_p): We can work out whether references
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 Sep 1993 19:54:46 +0000 (19:54 +0000)
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 Sep 1993 19:54:46 +0000 (19:54 +0000)
via hard_frame_pointer_rtx are likely to conflict.
(attach_deaths, case REG): Don't add death notes for
HARD_FRAME_POINTER_REGNUM.

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

gcc/sched.c

index 2ec48f4..b067d36 100644 (file)
@@ -563,7 +563,8 @@ memrefs_conflict_p (xsize, x, ysize, y, c)
     return (xsize == 0 || ysize == 0 ||
            (c >= 0 && xsize > c) || (c < 0 && ysize+c > 0));
 
-  if (y == frame_pointer_rtx || y == stack_pointer_rtx)
+  if (y == frame_pointer_rtx || y == hard_frame_pointer_rtx
+      || y == stack_pointer_rtx)
     {
       rtx t = y;
       int tsize = ysize;
@@ -571,7 +572,8 @@ memrefs_conflict_p (xsize, x, ysize, y, c)
       x = t; xsize = tsize;
     }
 
-  if (x == frame_pointer_rtx || x == stack_pointer_rtx)
+  if (x == frame_pointer_rtx || x == hard_frame_pointer_rtx
+      || x == stack_pointer_rtx)
     {
       rtx y1;
 
@@ -2663,6 +2665,9 @@ attach_deaths (x, insn, set_p)
               STACK_POINTER_REGNUM, since these are always considered to be
               live.  Similarly for ARG_POINTER_REGNUM if it is fixed.  */
            if (regno != FRAME_POINTER_REGNUM
+#if HARD_FRAME_POINTER_REGNUM != FRAME_POINTER_REGNUM
+               && ! (regno == HARD_FRAME_POINTER_REGNUM)
+#endif
 #if ARG_POINTER_REGNUM != FRAME_POINTER_REGNUM
                && ! (regno == ARG_POINTER_REGNUM && fixed_regs[regno])
 #endif