From 277461eca363970bf37d02f46afb8cb551907392 Mon Sep 17 00:00:00 2001 From: Mark Friedman Date: Mon, 25 Apr 1988 21:34:43 +0000 Subject: [PATCH] Added a FIXNUM type of register analagous to ADDRESS registers. Their current use is to hold the results of OBJECT->FIXNUM expressions and assignments of such registers to other registers. We have to tell the cse code that such registers and expressions are invalid across anything that can call the garbage collector. This is because the garbage collector would currently barf on such values that have no type codes (i.e. fixnums which have had their type codes removed). In the future, FIXNUM registers may contain the reults of fixnum arithmetic expressions, so that we are not doing so much boxing and unboxing. Currently however, all such results are boxed into their destinations. --- v7/src/compiler/rtlbase/rgraph.scm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/v7/src/compiler/rtlbase/rgraph.scm b/v7/src/compiler/rtlbase/rgraph.scm index ee446636c..33fc6515b 100644 --- a/v7/src/compiler/rtlbase/rgraph.scm +++ b/v7/src/compiler/rtlbase/rgraph.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlbase/rgraph.scm,v 4.1 1987/12/04 20:17:21 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlbase/rgraph.scm,v 4.2 1988/04/25 21:34:43 markf Exp $ Copyright (c) 1987 Massachusetts Institute of Technology @@ -41,6 +41,7 @@ MIT in each case. |# (constructor make-rgraph (n-registers))) n-registers (address-registers (reverse initial-address-registers)) + (fixnum-registers) entry-edges bblocks register-bblock @@ -59,6 +60,11 @@ MIT in each case. |# (cons (node->edge node) (rgraph-entry-edges rgraph)))) +(define (add-rgraph-fixnum-register! rgraph register) + (set-rgraph-fixnum-registers! rgraph + (cons register + (rgraph-fixnum-registers rgraph)))) + (define-integrable rgraph-register-renumber rgraph-register-bblock) (define-integrable set-rgraph-register-renumber! set-rgraph-register-bblock!) (define *rgraphs*) -- 2.25.1