From 3111d63c1a342be58a98d51a87e6f937019ef140 Mon Sep 17 00:00:00 2001
From: rtoy <rtoy>
Date: Thu, 13 May 2004 14:34:06 +0000
Subject: [PATCH] o Add some comments on register usage o Add a global temp
 register, gtemp, for use in move-functions when a   temp register is needed. 
 Currently %g7, but could be changed to a5   (aka %l5) if necessary, which
 some more straightforward work.

---
 compiler/sparc/vm.lisp | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/compiler/sparc/vm.lisp b/compiler/sparc/vm.lisp
index 316d86c13..189c4e092 100644
--- a/compiler/sparc/vm.lisp
+++ b/compiler/sparc/vm.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/vm.lisp,v 1.22 2003/05/14 14:29:49 toy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/vm.lisp,v 1.23 2004/05/13 14:34:06 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -48,7 +48,17 @@
 (defreg csp 3)				; %g3
 (defreg cfp 4)				; %g4
 (defreg bsp 5)				; %g5
-;; %g6 and %g7 are supposed to be reserved for the system.
+;; %g6 and %g7 are supposed to be reserved for the system.  %g6 is
+;; apparently used by thread libraries.  %g7 doesn't seem to be
+;; currently used.
+
+;; NOTE: We are going to use this as a global temp for use by the
+;; define-move-function functions so we can access things where the
+;; offset of the object is too large to fit in the offset part of an
+;; instruction.  This breaks ABI.  If this is not desired, we can
+;; probably use a5 (aka %l5).  But if we do, be sure to remove a5 from
+;; the list of arg registers, descriptor-regs, etc.
+(defreg gtemp 7)			; %g7
 
 ;; Outs.  These get clobbered when we call into C.
 (defreg nl0 8)				; %o0
@@ -344,6 +354,7 @@
 (defregtn cfp any-reg)
 (defregtn ocfp any-reg)
 (defregtn nsp any-reg)
+(defregtn gtemp any-reg) 
 
 
 
-- 
GitLab