OSDN Git Service

* global.c: (global_alloc): Make sure that it is always possible to
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 Sep 1993 19:45:44 +0000 (19:45 +0000)
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 Sep 1993 19:45:44 +0000 (19:45 +0000)
eliminate FRAME_POINTER_REGNUM into HARD_FRAME_POINTER_REGNUM.

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

gcc/global.c

index 967526e..1a9158a 100644 (file)
@@ -302,10 +302,14 @@ global_alloc (file)
       SET_HARD_REG_BIT (eliminable_regset, eliminables[i].from);
 
       if (! CAN_ELIMINATE (eliminables[i].from, eliminables[i].to)
-         || (eliminables[i].from == FRAME_POINTER_REGNUM
+         || (eliminables[i].from == HARD_FRAME_POINTER_REGNUM
              && (! flag_omit_frame_pointer || FRAME_POINTER_REQUIRED)))
        SET_HARD_REG_BIT (no_global_alloc_regs, eliminables[i].from);
     }
+#if FRAME_POINTER_REGNUM != HARD_FRAME_POINTER_REGNUM
+  if (!flag_omit_frame_pointer || FRAME_POINTER_REQUIRED)
+    SET_HARD_REG_BIT (no_global_alloc_regs, HARD_FRAME_POINTER_REGNUM);
+#endif
 #else
   SET_HARD_REG_BIT (eliminable_regset, FRAME_POINTER_REGNUM);