diff options
author | Steven Bosscher <steven@gcc.gnu.org> | 2013-04-17 19:33:24 +0000 |
---|---|---|
committer | Steven Bosscher <steven@gcc.gnu.org> | 2013-04-17 19:33:24 +0000 |
commit | 3ccb989ed8ead8947202fdc14150ace1f2d6619f (patch) | |
tree | 0fcf1bced9e337bdcc941f146c80f42ae9406b42 /gcc/emit-rtl.c | |
parent | 82b541a12a8e0911a278898934157956d67e61fe (diff) | |
download | gcc-3ccb989ed8ead8947202fdc14150ace1f2d6619f.tar.gz |
emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
* emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
* reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
From-SVN: r198036
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r-- | gcc/emit-rtl.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index c8efb5ca4c5..a7cdf843fd9 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -3806,6 +3806,13 @@ link_insn_into_chain (rtx insn, rtx prev, rtx next) if (NONJUMP_INSN_P (next) && GET_CODE (PATTERN (next)) == SEQUENCE) PREV_INSN (XVECEXP (PATTERN (next), 0, 0)) = insn; } + + if (NONJUMP_INSN_P (insn) && GET_CODE (PATTERN (insn)) == SEQUENCE) + { + rtx sequence = PATTERN (insn); + PREV_INSN (XVECEXP (sequence, 0, 0)) = prev; + NEXT_INSN (XVECEXP (sequence, 0, XVECLEN (sequence, 0) - 1)) = next; + } } /* Add INSN to the end of the doubly-linked list. |