#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlbase/rtlobj.scm,v 4.8 1989/11/30 16:02:28 jinx Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlbase/rtlobj.scm,v 4.9 1990/08/21 02:24:08 jinx Rel $
Copyright (c) 1988, 1989 Massachusetts Institute of Technology
(rgraph label entry-edge name n-required
n-optional rest? closure?
dynamic-link? type
- debugging-info))
+ debugging-info
+ next-continuation-offset))
(print-procedure
(standard-unparser (symbol->string 'RTL-PROCEDURE)
(lambda (state procedure)
(dynamic-link? false read-only true)
(type false read-only true)
(%external-label false)
- (debugging-info false read-only true))
+ (debugging-info false read-only true)
+ (next-continuation-offset false read-only true))
+
(define-integrable (rtl-procedure/entry-node procedure)
(edge-right-node (rtl-procedure/entry-edge procedure)))
#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlgen/rtlgen.scm,v 4.22 1989/11/30 16:03:27 jinx Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlgen/rtlgen.scm,v 4.23 1990/08/21 02:24:33 jinx Rel $
Copyright (c) 1988, 1989 Massachusetts Institute of Technology
(stack-block/dynamic-link? block)
true))
(procedure/type procedure)
- (procedure-debugging-info procedure)))))
+ (procedure-debugging-info procedure)
+ (block/next-continuation-offset (procedure-block procedure) 0)))))
(define (generate/procedure-entry/inline procedure)
(generate/procedure-header procedure
rgraph
label
entry-edge
- (continuation/next-continuation-offset
+ (block/next-continuation-offset
(continuation/closing-block continuation)
(continuation/offset continuation))
(continuation/debugging-info continuation))))))
*current-rgraph*
label
(cfg-entry-edge cleanup)
- (continuation/next-continuation-offset
+ (block/next-continuation-offset
closing-block
(reference-context/offset context))
(generated-dbg-continuation context label))
*extra-continuations*))
(values label setup cleanup))))
-(define (continuation/next-continuation-offset block offset)
+(define (block/next-continuation-offset block offset)
(if (stack-block? block)
(let ((popping-limit (block-popping-limit block)))
(and popping-limit
(continuation-block? stack-link)
(continuation/always-known-operator?
(block-procedure stack-link)))
- (continuation/next-continuation-offset (block-parent stack-link)
+ (block/next-continuation-offset
+ (block-parent stack-link)
offset)
offset))))
offset))