From 60f426e6a11a72f7dad49b97a71ab9ffb03dfdd1 Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Wed, 2 Nov 1988 21:46:00 +0000 Subject: [PATCH] Implement `ignore-reference-traps' declaration on free variables. --- v7/src/compiler/rtlgen/rgrval.scm | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/v7/src/compiler/rtlgen/rgrval.scm b/v7/src/compiler/rtlgen/rgrval.scm index 0c63dab51..afc9bab5a 100644 --- a/v7/src/compiler/rtlgen/rgrval.scm +++ b/v7/src/compiler/rtlgen/rgrval.scm @@ -1,9 +1,9 @@ d3 1 a4 1 -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlgen/rgrval.scm,v 4.8 1988/11/01 04:55:26 jinx Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlgen/rgrval.scm,v 4.9 1988/11/02 21:46:00 cph Exp $ #| -*-Scheme-*- Copyright (c) 1988 Massachusetts Institute of Technology -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlgen/rgrval.scm,v 4.8 1988/11/01 04:55:26 jinx Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlgen/rgrval.scm,v 4.9 1988/11/02 21:46:00 cph Exp $ Copyright (c) 1988, 1990 Massachusetts Institute of Technology @@ -98,7 +98,14 @@ promotional, or sales literature without prior written consent from safe?) (rtl:interpreter-call-result:lookup))) (lambda (name) - (generate/cached-reference name safe?)))))) + (if (memq 'IGNORE-REFERENCE-TRAPS + (variable-declarations lvalue)) + (let ((temp (rtl:make-pseudo-register))) + (return-2 + (rtl:make-assignment temp + (rtl:make-variable-cache name)) + (rtl:make-fetch (rtl:make-fetch temp)))) + (generate/cached-reference name safe?))))))) (cond ((not value) (perform-fetch)) lvalue)) (generate/rvalue* value offset)) -- 2.25.1