From 617060d7722ce59180d853b3c619a44f478d210a Mon Sep 17 00:00:00 2001
From: wlott <wlott>
Date: Fri, 11 May 1990 03:28:20 +0000
Subject: [PATCH] Rob made some changes that make it less enthusiastic about
 allocating the NFP tn.

---
 compiler/represent.lisp | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/compiler/represent.lisp b/compiler/represent.lisp
index f00b018c4..f852e8f2a 100644
--- a/compiler/represent.lisp
+++ b/compiler/represent.lisp
@@ -417,9 +417,11 @@
 ;;; iterate over the referencing environments.
 ;;;
 (proclaim '(inline note-if-number-stack))
-(defun note-if-number-stack (tn 2comp)
+(defun note-if-number-stack (tn 2comp restricted)
   (declare (type tn tn) (type ir2-component 2comp))
-  (when (sc-number-stack-p (tn-sc tn))
+  (when (if restricted
+	    (eq (sb-name (sc-sb (tn-sc tn))) 'non-descriptor-stack)
+	    (sc-number-stack-p (tn-sc tn)))
     (unless (ir2-component-nfp 2comp)
       (setf (ir2-component-nfp 2comp) (make-nfp-tn)))
     (note-number-stack-tn (tn-reads tn))
@@ -455,12 +457,12 @@
     (do-ir2-blocks (block component)
       (emit-moves-and-coercions block))
     
-    (macrolet ((frob (slot)
+    (macrolet ((frob (slot restricted)
 		 `(do ((tn (,slot 2comp) (tn-next tn)))
 		      ((null tn))
-		    (note-if-number-stack tn 2comp))))
-      (frob ir2-component-normal-tns)
-      (frob ir2-component-wired-tns)
-      (frob ir2-component-restricted-tns)))
+		    (note-if-number-stack tn 2comp ,restricted))))
+      (frob ir2-component-normal-tns nil)
+      (frob ir2-component-wired-tns t)
+      (frob ir2-component-restricted-tns t)))
 
   (undefined-value))
-- 
GitLab