summaryrefslogtreecommitdiff
path: root/gcc/emit-rtl.c
diff options
context:
space:
mode:
authorSteven Bosscher <steven@gcc.gnu.org>2013-04-17 19:33:24 +0000
committerSteven Bosscher <steven@gcc.gnu.org>2013-04-17 19:33:24 +0000
commit3ccb989ed8ead8947202fdc14150ace1f2d6619f (patch)
tree0fcf1bced9e337bdcc941f146c80f42ae9406b42 /gcc/emit-rtl.c
parent82b541a12a8e0911a278898934157956d67e61fe (diff)
downloadgcc-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.c7
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.