[movitz-cvs] CVS update: movitz/compiler.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Tue Jan 4 16:53:47 UTC 2005
Update of /project/movitz/cvsroot/movitz
In directory common-lisp.net:/tmp/cvs-serv1713
Modified Files:
compiler.lisp
Log Message:
Fixing dynamic control transfers, primarily to handle the
stack-allocated funobjs, but there seems to be a number of (other)
bugs here too. It's not quite working yet, though.
Date: Tue Jan 4 17:53:46 2005
Author: ffjeld
Index: movitz/compiler.lisp
diff -u movitz/compiler.lisp:1.125 movitz/compiler.lisp:1.126
--- movitz/compiler.lisp:1.125 Tue Jan 4 12:35:10 2005
+++ movitz/compiler.lisp Tue Jan 4 17:53:46 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.125 2005/01/04 11:35:10 ffjeld Exp $
+;;;; $Id: compiler.lisp,v 1.126 2005/01/04 16:53:46 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -5912,6 +5912,8 @@
"Lexical unwind-protect not implemented, to-env: ~S. (this is not supposed to happen)"
to-env)
;; (warn "dist: ~S, slots: ~S" stack-distance num-dynamic-slots)
+ (assert (not (eq t num-dynamic-slots)) ()
+ "Don't know how to make lexical-control-transfer across unknown number of dynamic slots.")
(cond
((and (eq t stack-distance)
(eql 0 num-dynamic-slots))
@@ -5921,8 +5923,7 @@
(unless (eq :function (exit-result-mode to-env))
`((:load-lexical ,(movitz-binding (save-esp-variable to-env) to-env nil) :esp)))
`((:jmp ',to-label)))))
- ((or (eq t stack-distance)
- (eq t num-dynamic-slots))
+ ((eq t stack-distance)
(compiler-values ()
:returns :non-local-exit
:code (append return-code
More information about the Movitz-cvs
mailing list