Undo change to rtlgen/available-registers that made the raw
authorGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Wed, 23 Nov 1994 23:15:26 +0000 (23:15 +0000)
committerGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Wed, 23 Nov 1994 23:15:26 +0000 (23:15 +0000)
continuation register available for allocation.

v8/src/compiler/midend/rtlgen.scm

index 1f8a82a94fc9e1d163208a2cd606069b9d0e8823..89db7944e1a730a486813828eb3eceda70068282 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: rtlgen.scm,v 1.4 1994/11/23 21:31:58 adams Exp $
+$Id: rtlgen.scm,v 1.5 1994/11/23 23:15:26 gjr Exp $
 
 Copyright (c) 1994 Massachusetts Institute of Technology
 
@@ -885,22 +885,26 @@ MIT in each case. |#
                               arg-regs))))
 |#
 #|
+;; If the incoming raw-continuation register is made available,
+;; other code below that implicitly assumes that it is preserved
+;; must be changed.  See rtlgen.scm.contin (part of the way there).
+
 (define (rtlgen/available-registers available)
   (let ((arg-regs (rtlgen/argument-registers)))
     ;; Order is important!
     (append arg-regs
-           (eq-set-difference (if (rtlgen/cont-in-stack?)
-                                  available
-                                  (delq (rtl:register-number
-                                         (rtlgen/reference-to-cont))
-                                        available))
+           (eq-set-difference available
                               arg-regs))))
 |#
 (define (rtlgen/available-registers available)
   (let ((arg-regs (rtlgen/argument-registers)))
     ;; Order is important!
     (append arg-regs
-           (eq-set-difference available
+           (eq-set-difference (if (rtlgen/cont-in-stack?)
+                                  available
+                                  (delq (rtl:register-number
+                                         (rtlgen/reference-to-cont))
+                                        available))
                               arg-regs))))
 
 (define (rtlgen/number-of-argument-registers)