aboutsummaryrefslogtreecommitdiff
path: root/gcc/reg-stack.c
diff options
context:
space:
mode:
authorZack Weinberg <zack@wolery.cumb.org>2000-02-17 04:34:02 +0000
committerZack Weinberg <zack@gcc.gnu.org>2000-02-17 04:34:02 +0000
commit3a6cc97884e151d67adaab2004505db3729a972c (patch)
treeb9aab2df3b78ff4b25fdc2273c7514b103a8760a /gcc/reg-stack.c
parentd48120fec740d16474dbe67a176fbe4a34ba3cd6 (diff)
downloadgcc-3a6cc97884e151d67adaab2004505db3729a972c.zip
gcc-3a6cc97884e151d67adaab2004505db3729a972c.tar.gz
gcc-3a6cc97884e151d67adaab2004505db3729a972c.tar.bz2
reg-stack.c (emit_swap_insn): Do not put a new insn before a NOTE_BASIC_BLOCK.
* reg-stack.c (emit_swap_insn): Do not put a new insn before a NOTE_BASIC_BLOCK. From-SVN: r32027
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);
}