From 1dac739d24f4b263582dd48a90e419a599e47972 Mon Sep 17 00:00:00 2001 From: "Guillermo J. Rozas" Date: Thu, 14 May 1992 02:56:11 +0000 Subject: [PATCH] Add add-end-of-block-code! and support. --- v7/src/compiler/back/linear.scm | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/v7/src/compiler/back/linear.scm b/v7/src/compiler/back/linear.scm index 659b5fb48..6e1341901 100644 --- a/v7/src/compiler/back/linear.scm +++ b/v7/src/compiler/back/linear.scm @@ -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)) + +(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 -- 2.25.1