reorg.c (emit_delay_sequence): Call set_new_first_and_last_insn after the new sequence insn has been spliced...
* reorg.c (emit_delay_sequence): Call set_new_first_and_last_insn after the new sequence insn has been spliced into the insn chain. From-SVN: r14229
This commit is contained in:
parent
e5ffb50c0d
commit
f5546425e9
15
gcc/reorg.c
15
gcc/reorg.c
@ -894,15 +894,22 @@ emit_delay_sequence (insn, list, length, avail)
|
||||
NEXT_INSN (seq_insn) = NEXT_INSN (insn);
|
||||
PREV_INSN (seq_insn) = PREV_INSN (insn);
|
||||
|
||||
if (insn != last)
|
||||
PREV_INSN (NEXT_INSN (seq_insn)) = seq_insn;
|
||||
|
||||
if (insn != first)
|
||||
NEXT_INSN (PREV_INSN (seq_insn)) = seq_insn;
|
||||
|
||||
/* Note the calls to set_new_first_and_last_insn must occur after
|
||||
SEQ_INSN has been completely spliced into the insn stream.
|
||||
|
||||
Otherwise CUR_INSN_UID will get set to an incorrect value because
|
||||
set_new_first_and_last_insn will not find SEQ_INSN in the chain. */
|
||||
if (insn == last)
|
||||
set_new_first_and_last_insn (first, seq_insn);
|
||||
else
|
||||
PREV_INSN (NEXT_INSN (seq_insn)) = seq_insn;
|
||||
|
||||
if (insn == first)
|
||||
set_new_first_and_last_insn (seq_insn, last);
|
||||
else
|
||||
NEXT_INSN (PREV_INSN (seq_insn)) = seq_insn;
|
||||
|
||||
/* Build our SEQUENCE and rebuild the insn chain. */
|
||||
XVECEXP (seq, 0, 0) = delay_insn;
|
||||
|
Loading…
Reference in New Issue
Block a user