Added a FIXNUM type of register analagous to ADDRESS registers.
authorMark Friedman <edu/mit/csail/zurich/markf>
Mon, 25 Apr 1988 21:34:43 +0000 (21:34 +0000)
committerMark Friedman <edu/mit/csail/zurich/markf>
Mon, 25 Apr 1988 21:34:43 +0000 (21:34 +0000)
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

index ee446636cd0727e99faace6900b313c48c28b5a8..33fc6515b5d537b94d0ced10c830eeafefa23e49 100644 (file)
@@ -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*)