From 5f2e0e5d97e4c608d1af904805e01fac08065e53 Mon Sep 17 00:00:00 2001
From: toy <toy>
Date: Wed, 27 Aug 2003 17:18:00 +0000
Subject: [PATCH] o Use lowtag-mask to rounding csp-tn to a lispobj size. o
 Make sure temp-tn is a non-descriptor for stack allocation.

---
 compiler/sparc/macros.lisp | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/compiler/sparc/macros.lisp b/compiler/sparc/macros.lisp
index 51a60edb6..9b3800534 100644
--- a/compiler/sparc/macros.lisp
+++ b/compiler/sparc/macros.lisp
@@ -5,11 +5,11 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/macros.lisp,v 1.22 2003/08/26 11:50:04 toy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/macros.lisp,v 1.23 2003/08/27 17:18:00 toy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
-;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/macros.lisp,v 1.22 2003/08/26 11:50:04 toy Exp $
+;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/macros.lisp,v 1.23 2003/08/27 17:18:00 toy Exp $
 ;;;
 ;;; This file contains various useful macros for generating SPARC code.
 ;;;
@@ -218,8 +218,11 @@
 	  ;; allocation pointer.  Then add SIZE bytes to the
 	  ;; allocation and set CSP to that, so we have the desired
 	  ;; space.
-	  (inst add ,temp-tn csp-tn #.(1- (expt 2 lowtag-bits)))
-	  (inst andn ,temp-tn #.(1- (expt 2 lowtag-bits)))
+
+	  ;; Make sure the temp-tn is a non-descriptor register!
+	  (assert (sc-is ,temp-tn non-descriptor-reg))
+	  (inst add ,temp-tn csp-tn vm:lowtag-mask)
+	  (inst andn ,temp-tn vm:lowtag-mask)
 	  (inst or ,result-tn ,temp-tn ,lowtag)
 	  (inst add csp-tn ,temp-tn ,size))
 	 #-gencgc
-- 
GitLab