aboutsummaryrefslogtreecommitdiff
path: root/gcc/reg-stack.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/reg-stack.c')
-rw-r--r--gcc/reg-stack.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c
index 70e877b..77d52ea 100644
--- a/gcc/reg-stack.c
+++ b/gcc/reg-stack.c
@@ -973,7 +973,8 @@ emit_swap_insn (insn, regstack, reg)
if (current_block && insn != current_block->head)
{
rtx tmp = PREV_INSN (insn);
- while (tmp != current_block->head)
+ rtx limit = PREV_INSN (current_block->head);
+ while (tmp != limit)
{
if (GET_CODE (tmp) == CODE_LABEL
|| (GET_CODE (tmp) == NOTE
@@ -1017,10 +1018,7 @@ emit_swap_insn (insn, regstack, reg)
if (i1)
emit_block_insn_after (swap_rtx, i1, current_block);
else if (current_block)
- {
- i1 = emit_insn_before (swap_rtx, current_block->head);
- current_block->head = i1;
- }
+ emit_block_insn_before (swap_rtx, current_block->head, current_block);
else
emit_insn_before (swap_rtx, insn);
}