diff --git a/compiler/amd64/call.lisp b/compiler/amd64/call.lisp index afbf04f252d92df51fba65478efcb3d240c69383..7881bfc3acd8e9a0f39b3225482fd56fa0e0c3ff 100644 --- a/compiler/amd64/call.lisp +++ b/compiler/amd64/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/amd64/call.lisp,v 1.1 2004/05/24 22:34:59 cwang Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/amd64/call.lisp,v 1.2 2004/07/06 20:11:24 cwang Exp $") ;;; ;;; ********************************************************************** ;;; @@ -541,6 +541,7 @@ (:args (fp) (nfp) (args :more t)) + (:temporary (:sc any-reg) temp-tn) ; from/to? (:results (values :more t)) (:save-p t) (:move-args :local-call) @@ -563,8 +564,8 @@ #+nil (format t "*call-local: ret-tn on stack; offset=~s~%" (tn-offset ret-tn)) ;; Stack - (storew (make-fixup nil :code-object return) - rbp-tn (- (1+ (tn-offset ret-tn))))) + (inst mov-imm temp-tn (make-fixup nil :code-object return)) + (storew temp-tn rbp-tn (- (1+ (tn-offset ret-tn))))) ((sap-reg) ;; Register (inst lea ret-tn (make-fixup nil :code-object return))))) @@ -583,6 +584,7 @@ (:args (fp) (nfp) (args :more t)) + (:temporary (:sc any-reg) temp-tn) ; from/to? (:save-p t) (:move-args :local-call) (:info save callee target) @@ -604,8 +606,8 @@ #+nil (format t "*multiple-call-local: ret-tn on stack; offset=~s~%" (tn-offset ret-tn)) ;; Stack - (storew (make-fixup nil :code-object return) - rbp-tn (- (1+ (tn-offset ret-tn))))) + (inst mov-imm temp-tn (make-fixup nil :code-object return)) + (storew temp-tn rbp-tn (- (1+ (tn-offset ret-tn))))) ((sap-reg) ;; Register (inst lea ret-tn (make-fixup nil :code-object return))))) diff --git a/compiler/amd64/cell.lisp b/compiler/amd64/cell.lisp index f9a78ae80684fd0fab6e78146c87057e7261a9fa..f95ee28c05af2f097a81c144599924f24773dbec 100644 --- a/compiler/amd64/cell.lisp +++ b/compiler/amd64/cell.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/amd64/cell.lisp,v 1.2 2004/06/10 01:39:06 cwang Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/amd64/cell.lisp,v 1.3 2004/07/06 20:12:08 cwang Exp $") ;;; ;;; ********************************************************************** ;;; @@ -195,10 +195,12 @@ (:translate fdefn-makunbound) (:args (fdefn :scs (descriptor-reg) :target result)) (:results (result :scs (descriptor-reg))) + (:temporary (:sc any-reg) temp) (:generator 38 (storew nil-value fdefn fdefn-function-slot other-pointer-type) - (storew (make-fixup (extern-alien-name "undefined_tramp") :foreign) - fdefn fdefn-raw-addr-slot other-pointer-type) + (inst mov-imm temp + (make-fixup (extern-alien-name "undefined_tramp") :foreign)) + (storew temp fdefn fdefn-raw-addr-slot other-pointer-type) (move result fdefn)))