diff options
author | Richard Stallman <rms@gnu.org> | 1992-08-21 06:12:24 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1992-08-21 06:12:24 +0000 |
commit | e0a5c5eb0ac20dfb9a0df30728f2bcd82fc17f31 (patch) | |
tree | 38e1bf2159d24dbd8d399aa5a70487ea4888c149 /gcc | |
parent | edc7c4ec3b1ea05e7340860781702daddf34f024 (diff) | |
download | gcc-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.c | 31 |
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. */ |