From b34f4b8e253796b18c8f558293c4a5f98ef33618 Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Sun, 31 May 1987 22:56:05 +0000 Subject: [PATCH] Add new RTL types for cached variable lookup mechanism. Change constructor for constants to know about unassigned object. --- v7/src/compiler/rtlbase/rtlty1.scm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/v7/src/compiler/rtlbase/rtlty1.scm b/v7/src/compiler/rtlbase/rtlty1.scm index 35829277d..ff2e01dad 100644 --- a/v7/src/compiler/rtlbase/rtlty1.scm +++ b/v7/src/compiler/rtlbase/rtlty1.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlbase/rtlty1.scm,v 1.6 1987/05/29 17:51:15 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlbase/rtlty1.scm,v 1.7 1987/05/31 22:56:05 cph Exp $ Copyright (c) 1987 Massachusetts Institute of Technology @@ -66,6 +66,7 @@ MIT in each case. |# (define-rtl-statement interpreter-call:access % environment name) (define-rtl-statement interpreter-call:cache-assignment % name value) (define-rtl-statement interpreter-call:cache-reference rtl: name safe?) +(define-rtl-statement interpreter-call:cache-unassigned? rtl: name) (define-rtl-statement interpreter-call:define % environment name value) (define-rtl-statement interpreter-call:enclose rtl: size) (define-rtl-statement interpreter-call:lookup % environment name safe?) @@ -74,6 +75,8 @@ MIT in each case. |# (define-rtl-statement interpreter-call:unbound? % environment name) (define-rtl-statement invocation:apply % pushed prefix continuation) +(define-rtl-statement invocation:cache-reference % pushed prefix continuation + name) (define-rtl-statement invocation:jump % pushed prefix continuation procedure) (define-rtl-statement invocation:lexpr % pushed prefix continuation procedure) (define-rtl-statement invocation:lookup % pushed prefix continuation @@ -111,6 +114,11 @@ MIT in each case. |# (define-integrable (rtl:make-message-receiver:subproblem continuation) (%make-message-receiver:subproblem (continuation-label continuation))) + +(define (rtl:make-constant value) + (if (scode/unassigned-object? value) + (rtl:make-unassigned) + (rtl:make-constant value))) ;;;; Locatives -- 2.25.1