diff --git a/assembly/mips/assem-rtns.lisp b/assembly/mips/assem-rtns.lisp index 831eda11622f1da99da9cccaa53b147582e53d83..7215a26a877ad22eeebadcb7f37950de8a06c8e2 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.24 1990/10/19 15:31:18 wlott Exp $ +;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/assembly/mips/assem-rtns.lisp,v 1.25 1990/10/20 16:26:02 wlott Exp $ ;;; ;;; (in-package "C") @@ -40,8 +40,10 @@ (:temp a4 descriptor-reg a4-offset) (:temp a5 descriptor-reg a5-offset)) + ;; Note, because of the way the return-multiple vop is written, we can + ;; assume that we are never called with nvals == 1 and that a0 has already + ;; been loaded. (inst blez nvals default-a0-and-on) - (inst lw a0 vals (* 0 vm:word-bytes)) (inst subu count nvals (fixnum 2)) (inst blez count default-a2-and-on) (inst lw a1 vals (* 1 vm:word-bytes)) @@ -89,7 +91,7 @@ ;; Clear the stack. (move old-fp-tn fp-tn) (move fp-tn old-fp) - (inst addu csp-tn fp-tn nvals) + (inst addu csp-tn old-fp-tn nvals) ;; Return. (lisp-return lra lip))