From 6ff58dc6c42b1ab36b8bf62280ca87395ab75e55 Mon Sep 17 00:00:00 2001 From: "Guillermo J. Rozas" Date: Thu, 1 Jul 1993 03:27:12 +0000 Subject: [PATCH] rtl offsets have changed. --- v7/src/compiler/rtlgen/rgcomb.scm | 21 ++++++++++++++++----- v7/src/compiler/rtlgen/rgrval.scm | 9 ++++----- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/v7/src/compiler/rtlgen/rgcomb.scm b/v7/src/compiler/rtlgen/rgcomb.scm index 573795067..7a885d49d 100644 --- a/v7/src/compiler/rtlgen/rgcomb.scm +++ b/v7/src/compiler/rtlgen/rgcomb.scm @@ -1,8 +1,8 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlgen/rgcomb.scm,v 4.17 1992/04/01 19:08:50 arthur Exp $ +$Id: rgcomb.scm,v 4.18 1993/07/01 03:27:04 gjr Exp $ -Copyright (c) 1988-1991 Massachusetts Institute of Technology +Copyright (c) 1988-1993 Massachusetts Institute of Technology This material was developed by the Scheme project at the Massachusetts Institute of Technology, Department of Electrical Engineering and @@ -133,13 +133,24 @@ MIT in each case. |# call-code (let ((locative (rtl:make-offset (rtl:make-fetch (interpreter-stack-pointer)) - (stack->memory-offset 0)))) + (rtl:make-machine-constant + (stack->memory-offset 0))))) (scfg*scfg->scfg! (rtl:make-assignment locative - (rtl:make-byte-offset-address (rtl:make-fetch locative) - distance)) + (rtl:bump-closure (rtl:make-fetch locative) + (rtl:make-machine-constant distance))) call-code))))) + +(define (rtl:bump-closure closure distance) + #| + ;; We want this, but it doesn't type check. + ;; It is turned into this by a rewrite rule. + (rtl:make-byte-offset-address closure distance) + |# + (rtl:make-typed-cons:procedure + (rtl:make-byte-offset-address (rtl:make-object->address closure) + distance))) (define (invocation/apply model operator frame-size continuation prefix) model operator ; ignored diff --git a/v7/src/compiler/rtlgen/rgrval.scm b/v7/src/compiler/rtlgen/rgrval.scm index 4c8a2a5aa..284ad7089 100644 --- a/v7/src/compiler/rtlgen/rgrval.scm +++ b/v7/src/compiler/rtlgen/rgrval.scm @@ -1,8 +1,8 @@ #| -*-Scheme-*- -$Id: rgrval.scm,v 4.20 1992/11/18 00:47:09 gjr Exp $ +$Id: rgrval.scm,v 4.21 1993/07/01 03:27:12 gjr Exp $ -Copyright (c) 1988-1992 Massachusetts Institute of Technology +Copyright (c) 1988-1993 Massachusetts Institute of Technology This material was developed by the Scheme project at the Massachusetts Institute of Technology, Department of Electrical Engineering and @@ -276,9 +276,8 @@ MIT in each case. |# (closure-environment-adjustment nentries entry)))) (if (back-end:= distance 0) expression - ;; This is cheaper than the obvious thing with object->address, - ;; etc. - (rtl:make-byte-offset-address expression distance))))))) + (rtl:bump-closure expression + (rtl:make-machine-constant distance)))))))) (define (make-non-trivial-closure-cons procedure block**) (let* ((block (procedure-closing-block procedure)) -- 2.25.1