[movitz-cvs] CVS update: movitz/special-operators-cl.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Thu Nov 11 10:48:23 UTC 2004
Update of /project/movitz/cvsroot/movitz
In directory common-lisp.net:/tmp/cvs-serv18222
Modified Files:
special-operators-cl.lisp
Log Message:
More about dynamic binding protocol: also call
dynamic-variable-install at binding time.
Date: Thu Nov 11 11:48:22 2004
Author: ffjeld
Index: movitz/special-operators-cl.lisp
diff -u movitz/special-operators-cl.lisp:1.29 movitz/special-operators-cl.lisp:1.30
--- movitz/special-operators-cl.lisp:1.29 Wed Nov 10 18:34:47 2004
+++ movitz/special-operators-cl.lisp Thu Nov 11 11:48:22 2004
@@ -9,7 +9,7 @@
;;;; Created at: Fri Nov 24 16:31:11 2000
;;;; Distribution: See the accompanying file COPYING.
;;;;
-;;;; $Id: special-operators-cl.lisp,v 1.29 2004/11/10 17:34:47 ffjeld Exp $
+;;;; $Id: special-operators-cl.lisp,v 1.30 2004/11/11 10:48:22 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -285,7 +285,9 @@
:init-with-type ,(type-specifier-primary type))))))))
(t init-code)))
(when (plusp (num-specials local-env))
- `((:locally (:movl :esp (:edi (:edi-offset dynamic-env))))))
+ `((:locally (:call (:edi ,(bt:slot-offset 'movitz-run-time-context
+ 'dynamic-variable-install))))
+ (:locally (:movl :esp (:edi (:edi-offset dynamic-env))))))
(if (not recompile-body-p)
body-code
(progn #+ignore (warn "recompile..") ; XXX
@@ -1106,11 +1108,14 @@
(:jmp ',loop)
,no-more-symbols
(:popl :eax) ; remove extra pre-pushed tail
+ (:movl :ecx :edx)
+ (:locally (:call (:edi ,(bt:slot-offset 'movitz-run-time-context
+ 'dynamic-variable-install))))
(:locally (:movl :esp (:edi (:edi-offset dynamic-env)))) ; install env
;; ecx = N/fixnum
;; (:shll 4 :ecx) ; ecx = 16*N
;; (:leal (:esp :ecx -4) :eax) ; eax = esp + 16*N - 4
- (:pushl :ecx) ; Save number of bindings.
+ (:pushl :edx) ; Save number of bindings.
#+ignore (:pushl :eax))) ; push address of first binding's tail
body-code
(when (eq body-returns :push)
More information about the Movitz-cvs
mailing list