Add add-end-of-block-code! and support.
authorGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Thu, 14 May 1992 02:56:11 +0000 (02:56 +0000)
committerGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Thu, 14 May 1992 02:56:11 +0000 (02:56 +0000)
v7/src/compiler/back/linear.scm

index 659b5fb480f80284227e7b18801891d94a2465e6..6e13419018dc6e93b05baf9733af894a3314efb1 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/back/linear.scm,v 4.11 1990/04/03 23:20:21 jinx Rel $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/back/linear.scm,v 4.12 1992/05/14 02:56:11 jinx Exp $
 
 Copyright (c) 1987, 1988, 1990 Massachusetts Institute of Technology
 
@@ -184,9 +184,24 @@ MIT in each case. |#
             bblock))))
 
   (linearize-bblock bblock))
+\f
+(define *end-of-block-code*)
 
 (define linearize-lap
   (make-linearizer bblock-linearize-lap
     (lambda () (LAP))
     (lambda (x y) (LAP ,@x ,@y))
-    identity-procedure))
\ No newline at end of file
+    (lambda (linearized-lap)
+      (let ((end-code *end-of-block-code*))
+       (set! *end-of-block-code* (LAP))
+       (LAP ,@linearized-lap
+            ,@end-code)))))
+
+(define (add-end-of-block-code! code-thunk)
+  (set! *end-of-block-code*
+       (LAP ,@*end-of-block-code*
+            ,@(code-thunk)))
+  'done)
+
+(define (initialize-lap-linearizer!)
+  (set! *end-of-block-code* (LAP)))
\ No newline at end of file