aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload1.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r--gcc/reload1.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 5a01045..82b106e 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -914,10 +914,9 @@ reload (rtx_insn *first, int global)
spill_hard_reg (from, 1);
}
-#if !HARD_FRAME_POINTER_IS_FRAME_POINTER
- if (frame_pointer_needed)
+ if (!HARD_FRAME_POINTER_IS_FRAME_POINTER && frame_pointer_needed)
spill_hard_reg (HARD_FRAME_POINTER_REGNUM, 1);
-#endif
+
finish_spills (global);
/* From now on, we may need to generate moves differently. We may also
@@ -3281,13 +3280,13 @@ eliminate_regs_in_insn (rtx_insn *insn, int replace)
for (ep = reg_eliminate; ep < &reg_eliminate[NUM_ELIMINABLE_REGS]; ep++)
if (ep->from_rtx == SET_DEST (old_set) && ep->can_eliminate)
{
-#if !HARD_FRAME_POINTER_IS_FRAME_POINTER
/* If this is setting the frame pointer register to the
hardware frame pointer register and this is an elimination
that will be done (tested above), this insn is really
adjusting the frame pointer downward to compensate for
the adjustment done before a nonlocal goto. */
- if (ep->from == FRAME_POINTER_REGNUM
+ if (!HARD_FRAME_POINTER_IS_FRAME_POINTER
+ && ep->from == FRAME_POINTER_REGNUM
&& ep->to == HARD_FRAME_POINTER_REGNUM)
{
rtx base = SET_SRC (old_set);
@@ -3347,7 +3346,6 @@ eliminate_regs_in_insn (rtx_insn *insn, int replace)
goto done;
}
}
-#endif
/* In this case this insn isn't serving a useful purpose. We
will delete it in reload_as_needed once we know that this