From ecec63b93bf615cf325696c7d899f644d70e9bf1 Mon Sep 17 00:00:00 2001
From: wlott <wlott>
Date: Sun, 3 May 1992 21:45:07 +0000
Subject: [PATCH] Changed fixed value unknown-return of 1 value to use the
 ``return-single'' VOP instead of expecting the ``return'' VOP to special case
 the one value case.  This allows different us to have lifetime information in
 the single vs non-single cases.

---
 compiler/ir2tran.lisp | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/compiler/ir2tran.lisp b/compiler/ir2tran.lisp
index 4f154b711..1671f061b 100644
--- a/compiler/ir2tran.lisp
+++ b/compiler/ir2tran.lisp
@@ -7,7 +7,7 @@
 ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ir2tran.lisp,v 1.41 1992/03/11 21:23:41 wlott Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ir2tran.lisp,v 1.42 1992/05/03 21:45:07 wlott Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -21,7 +21,7 @@
 (export '(%caller-frame-and-pc))
 (in-package "C")
 
-(export '(safe-fdefn-function))
+(export '(safe-fdefn-function return-single))
 
 
 
@@ -1204,10 +1204,12 @@
 		  (emit-move node block val loc))
 	      cont-locs
 	      locs)
-	(vop* return node block
-	      (old-fp return-pc (reference-tn-list locs nil))
-	      (nil)
-	      nvals)))
+	(if (= nvals 1)
+	    (vop return-single node block old-fp return-pc (car locs))
+	    (vop* return node block
+		  (old-fp return-pc (reference-tn-list locs nil))
+		  (nil)
+		  nvals))))
      (t
       (assert (eq cont-kind :unknown))
       (vop* return-multiple node block
-- 
GitLab