[movitz-cvs] CVS update: movitz/compiler.lisp

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Tue Jan 4 20:21:18 UTC 2005


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 ()




More information about the Movitz-cvs mailing list