From: Guillermo J. Rozas Date: Wed, 23 Nov 1994 23:15:26 +0000 (+0000) Subject: Undo change to rtlgen/available-registers that made the raw X-Git-Tag: 20090517-FFI~6974 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=778a0333e1a2987965faea42172ae9ab1914b172;p=mit-scheme.git Undo change to rtlgen/available-registers that made the raw continuation register available for allocation. --- diff --git a/v8/src/compiler/midend/rtlgen.scm b/v8/src/compiler/midend/rtlgen.scm index 1f8a82a94..89db7944e 100644 --- a/v8/src/compiler/midend/rtlgen.scm +++ b/v8/src/compiler/midend/rtlgen.scm @@ -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)