From 5b2199985b63537e2248b804e350c51a753a4401 Mon Sep 17 00:00:00 2001
From: wlott <wlott>
Date: Wed, 23 May 1990 06:15:35 +0000
Subject: [PATCH] hanged re new assemfile:  All temps have explicit offsets and
 scs.

---
 assembly/mips/assem-rtns.lisp | 69 +++++++++++++++++++----------------
 1 file changed, 37 insertions(+), 32 deletions(-)

diff --git a/assembly/mips/assem-rtns.lisp b/assembly/mips/assem-rtns.lisp
index ebd60161a..b8caef2bf 100644
--- a/assembly/mips/assem-rtns.lisp
+++ b/assembly/mips/assem-rtns.lisp
@@ -7,7 +7,7 @@
 ;;; Scott Fahlman (FAHLMAN@CMUC). 
 ;;; **********************************************************************
 ;;;
-;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/assembly/mips/assem-rtns.lisp,v 1.9 1990/05/19 09:48:08 wlott Exp $
+;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/assembly/mips/assem-rtns.lisp,v 1.10 1990/05/23 06:15:35 wlott Exp $
 ;;;
 ;;;
 (in-package "C")
@@ -20,17 +20,16 @@
 ;;; function, because it magically gets called in place of a function when
 ;;; there is no real function to call.
 
-(define-assembly-routine (undefined-function (:arg cname :sc any-reg
-						   :offset cname-offset)
-					     (:temp lexenv :sc any-reg
-						    :offset lexenv-offset)
-					     (:temp function :sc any-reg
-						    :offset code-offset)
-					     (:temp nargs :sc any-reg
-						    :offset nargs-offset)
-					     (:temp lip :sc interior-reg)
-					     (:temp temp
-						    :sc non-descriptor-reg))
+(eval-when (eval)
+
+(define-assembly-routine (undefined-function
+			  ()
+			  (:temp cname any-reg cname-offset)
+			  (:temp lexenv any-reg lexenv-offset)
+			  (:temp function any-reg code-offset)
+			  (:temp nargs any-reg nargs-offset)
+			  (:temp lip interior-reg lip-offset)
+			  (:temp temp non-descriptor-reg nl0-offset))
   ;; Allocate function header.
   (align vm:lowtag-bits)
   (inst word vm:function-header-type)
@@ -48,18 +47,22 @@
   (loadw function lexenv vm:closure-function-slot vm:function-pointer-type)
   (lisp-jump function lip))
 
+); eval-when (eval)
+
 
 ;;;; Non-local exit noise.
 
 
-(define-assembly-routine (unwind (:arg block)
-				 (:arg start :sc any-reg :offset args-offset)
-				 (:arg count :sc any-reg :offset nargs-offset)
-				 (:temp lip :sc interior-reg :type interior)
-				 (:temp lra :sc descriptor-reg)
-				 (:temp cur-uwp :sc any-reg :type fixnum)
-				 (:temp next-uwp :sc any-reg :type fixnum)
-				 (:temp target-uwp :sc any-reg :type fixnum))
+(define-assembly-routine (unwind
+			  ()
+			  (:arg block any-reg a0-offset)
+			  (:arg start any-reg args-offset)
+			  (:arg count any-reg nargs-offset)
+			  (:temp lip interior-reg lip-offset)
+			  (:temp lra descriptor-reg lra-offset)
+			  (:temp cur-uwp any-reg nl0-offset)
+			  (:temp next-uwp any-reg nl1-offset)
+			  (:temp target-uwp any-reg nl2-offset))
   (declare (ignore start count))
 
   (let ((error (generate-error-code di:invalid-unwind-error)))
@@ -87,29 +90,31 @@
 
 
 
-(define-assembly-routine (throw (:arg target)
-				(:arg start :sc any-reg :offset args-offset)
-				(:arg count :sc any-reg :offset nargs-offset)
-				(:temp catch :sc any-reg :offset l0-offset)
-				(:temp tag :sc descriptor-reg :offset l1-offset)
-				(:temp ndescr :sc non-descriptor-reg))
-
+(define-assembly-routine (throw
+			  ()
+			  (:arg target any-reg a0-offset)
+			  (:arg start any-reg args-offset)
+			  (:arg count any-reg nargs-offset)
+			  (:temp catch any-reg a1-offset)
+			  (:temp tag descriptor-reg a2-offset)
+			  (:temp ndescr non-descriptor-reg nl0-offset))
+  
   (load-symbol-value catch lisp::*current-catch-block*)
-    
+  
   loop
-    
+  
   (let ((error (generate-error-code di:unseen-throw-tag-error target)))
     (inst beq catch zero-tn error)
     (inst nop))
-    
+  
   (loadw tag catch vm:catch-block-tag-slot)
   (inst beq tag target exit)
   (inst nop)
   (inst b loop)
   (loadw catch catch vm:catch-block-previous-catch-slot)
-    
+  
   exit
-
+  
   (move target catch)
   (inst li ndescr (make-fixup 'unwind :assembly-routine))
   (inst j ndescr)
-- 
GitLab