Update of /project/movitz/cvsroot/movitz In directory common-lisp.net:/tmp/cvs-serv12548
Modified Files: compiler.lisp Log Message: Fixed bug in make-compiled-lexical-control-transfer that would cause ESP not to be reset correctly in some situations.
Date: Tue Jan 4 21:21:11 2005 Author: ffjeld
Index: movitz/compiler.lisp diff -u movitz/compiler.lisp:1.126 movitz/compiler.lisp:1.127 --- movitz/compiler.lisp:1.126 Tue Jan 4 17:53:46 2005 +++ movitz/compiler.lisp Tue Jan 4 21:21:11 2005 @@ -8,7 +8,7 @@ ;;;; Created at: Wed Oct 25 12:30:49 2000 ;;;; Distribution: See the accompanying file COPYING. ;;;; -;;;; $Id: compiler.lisp,v 1.126 2005/01/04 16:53:46 ffjeld Exp $ +;;;; $Id: compiler.lisp,v 1.127 2005/01/04 20:21:11 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------
@@ -5950,7 +5950,7 @@ return-mode) `((:jmp ',to-label))))) ((plusp num-dynamic-slots) - ;; (warn "num-dynamic-slots: ~S" num-dynamic-slots) + ;; (warn "num-dynamic-slots: ~S, distance: ~D" num-dynamic-slots stack-distance) (compiler-values () :returns :non-local-exit :code (append return-code @@ -5966,10 +5966,8 @@ (:locally (:call (:edi (:edi-offset dynamic-unwind-next)))) (:locally (:movl :eax (:edi (:edi-offset dynamic-env)))) (:jc '(:sub-program () (:int 63)))))) - (make-compiled-stack-restore stack-distance - (exit-result-mode to-env) - return-mode) - `((:jmp ',to-label))))) + `((:leal (:esp ,(* 4 stack-distance)) :esp) + (:jmp ',to-label))))) (t (error "unknown!")))))
(defun make-compiled-push-current-values ()