Skip to content
Snippets Groups Projects
Commit b5428e99 authored by ram's avatar ram
Browse files

Fixed the bug in local call where the CFP was being trashed before the stack

value of the new NFP was loaded.
parent ef6bf24a
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/sparc/call.lisp,v 1.4 1991/03/23 15:01:37 wlott Exp $ ;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/call.lisp,v 1.5 1991/05/16 16:07:40 ram Exp $
;;; ;;;
;;; This file contains the VM definition of function call for the SPARC. ;;; This file contains the VM definition of function call for the SPARC.
;;; ;;;
...@@ -465,10 +465,10 @@ default-value-8 ...@@ -465,10 +465,10 @@ default-value-8
(cur-nfp (current-nfp-tn vop))) (cur-nfp (current-nfp-tn vop)))
(when cur-nfp (when cur-nfp
(store-stack-tn nfp-save cur-nfp)) (store-stack-tn nfp-save cur-nfp))
(maybe-load-stack-tn cfp-tn fp)
(let ((callee-nfp (callee-nfp-tn callee))) (let ((callee-nfp (callee-nfp-tn callee)))
(when callee-nfp (when callee-nfp
(move callee-nfp nfp))) (move callee-nfp nfp)))
(maybe-load-stack-tn cfp-tn fp)
(inst compute-lra-from-code (inst compute-lra-from-code
(callee-return-pc-tn callee) code-tn label temp) (callee-return-pc-tn callee) code-tn label temp)
(inst b target) (inst b target)
...@@ -505,10 +505,10 @@ default-value-8 ...@@ -505,10 +505,10 @@ default-value-8
(cur-nfp (current-nfp-tn vop))) (cur-nfp (current-nfp-tn vop)))
(when cur-nfp (when cur-nfp
(store-stack-tn nfp-save cur-nfp)) (store-stack-tn nfp-save cur-nfp))
(maybe-load-stack-tn cfp-tn fp)
(let ((callee-nfp (callee-nfp-tn callee))) (let ((callee-nfp (callee-nfp-tn callee)))
(when callee-nfp (when callee-nfp
(move callee-nfp nfp))) (move callee-nfp nfp)))
(maybe-load-stack-tn cfp-tn fp)
(inst compute-lra-from-code (inst compute-lra-from-code
(callee-return-pc-tn callee) code-tn label temp) (callee-return-pc-tn callee) code-tn label temp)
(inst b target) (inst b target)
...@@ -548,10 +548,10 @@ default-value-8 ...@@ -548,10 +548,10 @@ default-value-8
(cur-nfp (current-nfp-tn vop))) (cur-nfp (current-nfp-tn vop)))
(when cur-nfp (when cur-nfp
(store-stack-tn nfp-save cur-nfp)) (store-stack-tn nfp-save cur-nfp))
(maybe-load-stack-tn cfp-tn fp)
(let ((callee-nfp (callee-nfp-tn callee))) (let ((callee-nfp (callee-nfp-tn callee)))
(when callee-nfp (when callee-nfp
(move callee-nfp nfp))) (move callee-nfp nfp)))
(maybe-load-stack-tn cfp-tn fp)
(inst compute-lra-from-code (inst compute-lra-from-code
(callee-return-pc-tn callee) code-tn label temp) (callee-return-pc-tn callee) code-tn label temp)
(inst b target) (inst b target)
......
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