diff --git a/compiler/mips/call.lisp b/compiler/mips/call.lisp
index 454b35776a697949c274a151b4c1055b30e7886a..10f66bc107e76a7cd1e3e2b5d371d61bcf06a57e 100644
--- a/compiler/mips/call.lisp
+++ b/compiler/mips/call.lisp
@@ -7,11 +7,11 @@
 ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/call.lisp,v 1.46 1992/05/21 02:18:55 wlott Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/call.lisp,v 1.47 1992/05/21 14:36:14 wlott Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
-;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/call.lisp,v 1.46 1992/05/21 02:18:55 wlott Exp $
+;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/call.lisp,v 1.47 1992/05/21 14:36:14 wlott Exp $
 ;;;
 ;;;    This file contains the VM definition of function call for the MIPS.
 ;;;
@@ -677,10 +677,10 @@ default-value-8
      ,@(when (eq return :fixed)
 	 '((:results (values :more t))))
    
-     ,@(unless (eq return :tail)
-	 `((:save-p t)
-	   ,@(unless variable
-	       '((:move-args :full-call)))))
+     (:save-p ,(if (eq return :tail) :compute-only t))
+
+     ,@(unless (or (eq return :tail) variable)
+	 '((:move-args :full-call)))
 
      (:vop-var vop)
      (:info ,@(unless (or variable (eq return :tail)) '(arg-locs))
diff --git a/compiler/sparc/call.lisp b/compiler/sparc/call.lisp
index 70f15655c08476bcf734324d154510aff3da2975..e82df2a37b391b47d3e587e059b053027cb99cb8 100644
--- a/compiler/sparc/call.lisp
+++ b/compiler/sparc/call.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/sparc/call.lisp,v 1.15 1992/05/21 03:04:48 wlott Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/call.lisp,v 1.16 1992/05/21 14:36:32 wlott Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -665,10 +665,10 @@ default-value-8
      ,@(when (eq return :fixed)
 	 '((:results (values :more t))))
    
-     ,@(unless (eq return :tail)
-	 `((:save-p t)
-	   ,@(unless variable
-	       '((:move-args :full-call)))))
+     (:save-p ,(if (eq return :tail) :compute-only t))
+
+     ,@(unless (or (eq return :tail) variable)
+	 '((:move-args :full-call)))
 
      (:vop-var vop)
      (:info ,@(unless (or variable (eq return :tail)) '(arg-locs))