From 778a0333e1a2987965faea42172ae9ab1914b172 Mon Sep 17 00:00:00 2001 From: "Guillermo J. Rozas" Date: Wed, 23 Nov 1994 23:15:26 +0000 Subject: [PATCH] Undo change to rtlgen/available-registers that made the raw continuation register available for allocation. --- v8/src/compiler/midend/rtlgen.scm | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) 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) -- 2.25.1