From 27b905af10f5ee0735fa64af2121ac05a1107200 Mon Sep 17 00:00:00 2001
From: wlott <wlott>
Date: Wed, 31 Oct 1990 23:44:09 +0000
Subject: [PATCH] Moved the machine specific stuff into a machine specific
 file.

---
 assembly/assemfile.lisp | 45 +++--------------------------------------
 1 file changed, 3 insertions(+), 42 deletions(-)

diff --git a/assembly/assemfile.lisp b/assembly/assemfile.lisp
index fbf0f1863..7b696b173 100644
--- a/assembly/assemfile.lisp
+++ b/assembly/assemfile.lisp
@@ -7,7 +7,7 @@
 ;;; Scott Fahlman (FAHLMAN@CMUC). 
 ;;; **********************************************************************
 ;;;
-;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/assembly/assemfile.lisp,v 1.20 1990/10/28 05:59:54 wlott Exp $
+;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/assembly/assemfile.lisp,v 1.21 1990/10/31 23:44:09 wlott Exp $
 ;;;
 ;;; This file contains the extra code necessary to feed an entire file of
 ;;; assembly code to the assembler.
@@ -124,19 +124,7 @@
 			 :offset ,(reg-spec-offset reg))))
 		  regs))
 	   ,@insts
-	   ,@(ecase vm:target-fasl-file-implementation
-	       (#.vm:pmax-fasl-file-implementation
-		(ecase return-style
-		  (:raw
-		   `((inst j lip-tn)
-		     (inst nop)))
-		  (:full-call
-		   `((lisp-return (make-random-tn :kind :normal
-						  :sc (sc-or-lose
-						       'descriptor-reg)
-						  :offset lra-offset)
-				  lip-tn :offset 2)))
-		  (:none))))))
+	   ,@(generate-return-sequence return-style)))
        (format *error-output* "~S assembled~%" ',name))))
 
 (defun arg-or-res-spec (reg)
@@ -209,34 +197,7 @@
 		       `(move ,(reg-spec-temp arg)
 			      ,(reg-spec-name arg)))
 		   args)
-	 ,@(ecase vm:target-fasl-file-implementation
-	     (#.vm:pmax-fasl-file-implementation
-	      (ecase return-style
-		(:raw
-		 `((inst jal (make-fixup ',name :assembly-routine))
-		   (inst nop)))
-		(:full-call
-		 (when (> (length results) 1)
-		   (error "Can't use :full-call in an assembly-routine for ~
-		           more than one return value."))
-		 `((let ((lra-label (gen-label))
-			 (cur-nfp (current-nfp-tn ,vop)))
-		     (when cur-nfp
-		       (store-stack-tn ,nfp-save cur-nfp))
-		     (inst compute-lra-from-code ,lra code-tn lra-label ,temp)
-		     (inst j (make-fixup ',name :assembly-routine))
-		     (inst nop)
-		     (emit-return-pc lra-label)
-		     (note-this-location ,vop :unknown-return)
-		     (move csp-tn old-fp-tn)
-		     (inst nop)
-		     (inst compute-code-from-lra code-tn code-tn
-			   lra-label ,temp)
-		     (when cur-nfp
-		       (load-stack-tn cur-nfp ,nfp-save)))))
-		(:none
-		 `((inst j (make-fixup ',name :assembly-routine))
-		   (inst nop))))))
+	 ,@(generate-call-sequence name return-style vop temp nfp-save lra)
 	 ,@(mapcar #'(lambda (res)
 		       `(move ,(reg-spec-name res)
 			      ,(reg-spec-temp res)))
-- 
GitLab