aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-08-21 06:12:24 +0000
committerRichard Stallman <rms@gnu.org>1992-08-21 06:12:24 +0000
commite0a5c5eb0ac20dfb9a0df30728f2bcd82fc17f31 (patch)
tree38e1bf2159d24dbd8d399aa5a70487ea4888c149 /gcc
parentedc7c4ec3b1ea05e7340860781702daddf34f024 (diff)
downloadgcc-e0a5c5eb0ac20dfb9a0df30728f2bcd82fc17f31.zip
gcc-e0a5c5eb0ac20dfb9a0df30728f2bcd82fc17f31.tar.gz
gcc-e0a5c5eb0ac20dfb9a0df30728f2bcd82fc17f31.tar.bz2
(emit_insns_after): New function.
From-SVN: r1922
Diffstat (limited to 'gcc')
-rw-r--r--gcc/emit-rtl.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 7643d7d..82e87ce 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -2185,6 +2185,37 @@ emit_insns_before (insn, before)
return last;
}
+/* Emit the insns in a chain starting with FIRST and place them in back of
+ the insn AFTER. Return the last insn emitted. */
+
+rtx
+emit_insns_after (first, after)
+ register rtx first;
+ register rtx after;
+{
+ register rtx last;
+ register rtx after_after;
+
+ if (!after)
+ abort ();
+
+ if (!first)
+ return first;
+
+ for (last = first; NEXT_INSN (last); last = NEXT_INSN (last))
+ continue;
+
+ after_after = NEXT_INSN (after);
+
+ NEXT_INSN (after) = first;
+ PREV_INSN (first) = after;
+ NEXT_INSN (last) = after_after;
+ if (after_after)
+ PREV_INSN (after_after) = last;
+
+ return last;
+}
+
/* Make an insn of code JUMP_INSN with pattern PATTERN
and add it to the end of the doubly-linked list. */