diff options
author | Tom Wood <wood@gnu.org> | 1993-03-23 12:52:39 +0000 |
---|---|---|
committer | Tom Wood <wood@gnu.org> | 1993-03-23 12:52:39 +0000 |
commit | f15ae3a138ba40d224d0d95cd900f45546621895 (patch) | |
tree | 459c001bc37a147e01af23ce211762d985e77f40 /gcc/emit-rtl.c | |
parent | a93821e903e06a282633f4acf0abf23e1628cb99 (diff) | |
download | gcc-f15ae3a138ba40d224d0d95cd900f45546621895.zip gcc-f15ae3a138ba40d224d0d95cd900f45546621895.tar.gz gcc-f15ae3a138ba40d224d0d95cd900f45546621895.tar.bz2 |
(push_topmost_sequence, pop_topmost_sequence): New
functions.
From-SVN: r3841
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r-- | gcc/emit-rtl.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 31c6d39..4721662 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -2614,6 +2614,40 @@ push_to_sequence (first) last_insn = last; } +/* Set up the outer-level insn chain + as the current sequence, saving the previously current one. */ + +void +push_topmost_sequence () +{ + struct sequence_stack *stack, *top; + + start_sequence (); + + for (stack = sequence_stack; stack; stack = stack->next) + top = stack; + + first_insn = top->first; + last_insn = top->last; +} + +/* After emitting to the outer-level insn chain, update the outer-level + insn chain, and restore the previous saved state. */ + +void +pop_topmost_sequence () +{ + struct sequence_stack *stack, *top; + + for (stack = sequence_stack; stack; stack = stack->next) + top = stack; + + top->first = first_insn; + top->last = last_insn; + + end_sequence (); +} + /* After emitting to a sequence, restore previous saved state. To get the contents of the sequence just made, |