Skip to content
Snippets Groups Projects
Commit ad17c870 authored by wlott's avatar wlott
Browse files

Fixed some random lifetime problems.

parent 0f68fb27
No related branches found
No related tags found
No related merge requests found
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
;;; Scott Fahlman (FAHLMAN@CMUC). ;;; Scott Fahlman (FAHLMAN@CMUC).
;;; ********************************************************************** ;;; **********************************************************************
;;; ;;;
;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/call.lisp,v 1.8 1990/05/11 06:49:32 wlott Exp $ ;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/call.lisp,v 1.9 1990/05/11 17:49:20 wlott Exp $
;;; ;;;
;;; This file contains the VM definition of function call for the MIPS. ;;; This file contains the VM definition of function call for the MIPS.
;;; ;;;
...@@ -667,13 +667,13 @@ default-value-5 ...@@ -667,13 +667,13 @@ default-value-5
(inst j lip) (inst j lip)
(move code-tn function)) (move code-tn function))
`((move old-fp-pass fp-tn) `((move old-fp-pass fp-tn)
(when cur-nfp
(store-stack-tn nfp-save cur-nfp))
,(if variable ,(if variable
'(move fp-tn new-fp) '(move fp-tn new-fp)
'(if (> nargs register-arg-count) '(if (> nargs register-arg-count)
(move fp-tn new-fp) (move fp-tn new-fp)
(move fp-tn csp-tn))) (move fp-tn csp-tn)))
(when cur-nfp
(store-stack-tn nfp-save cur-nfp))
(inst j lip) (inst j lip)
(move code-tn function) (move code-tn function)
(emit-return-pc lra-label))) (emit-return-pc lra-label)))
...@@ -813,7 +813,6 @@ default-value-5 ...@@ -813,7 +813,6 @@ default-value-5
(:vop-var vop) (:vop-var vop)
(:generator 6 (:generator 6
(cond ((= nvals 1) (cond ((= nvals 1)
(move csp-tn fp-tn)
(let ((cur-nfp (current-nfp-tn vop))) (let ((cur-nfp (current-nfp-tn vop)))
(when cur-nfp (when cur-nfp
(move nsp-tn cur-nfp))) (move nsp-tn cur-nfp)))
...@@ -822,21 +821,22 @@ default-value-5 ...@@ -822,21 +821,22 @@ default-value-5
(move fp-tn old-fp)) (move fp-tn old-fp))
(control-stack (control-stack
(load-stack-tn fp-tn old-fp))) (load-stack-tn fp-tn old-fp)))
(move csp-tn fp-tn)
(inst addu lip return-pc (- (* 3 word-bytes) other-pointer-type)) (inst addu lip return-pc (- (* 3 word-bytes) other-pointer-type))
(inst j lip) (inst j lip)
(move code-tn return-pc)) (move code-tn return-pc))
(t (t
(inst li nargs (fixnum nvals)) (inst li nargs (fixnum nvals))
(let ((cur-nfp (current-nfp-tn vop)))
(when cur-nfp
(move nsp-tn cur-nfp)))
(move val-ptr fp-tn) (move val-ptr fp-tn)
(inst addu csp-tn val-ptr (* nvals word-bytes))
(sc-case old-fp (sc-case old-fp
(any-reg (any-reg
(move fp-tn old-fp)) (move fp-tn old-fp))
(control-stack (control-stack
(load-stack-tn fp-tn old-fp))) (load-stack-tn fp-tn old-fp)))
(let ((cur-nfp (current-nfp-tn vop))) (inst addu csp-tn val-ptr (* nvals word-bytes))
(when cur-nfp
(move nsp-tn cur-nfp)))
,@(let ((index 0)) ,@(let ((index 0))
(mapcar #'(lambda (name) (mapcar #'(lambda (name)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment