[movitz-cvs] CVS update: movitz/losp/muerte/symbols.lisp

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Thu Nov 18 17:59:18 UTC 2004


Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory common-lisp.net:/tmp/cvs-serv27873

Modified Files:
	symbols.lisp 
Log Message:
Changed dynamic binding lookup protocol. Only use the "unbounded"
primitive-function, and have the caller check whether the value is the
unbound-value or not. And, rename to dynamic-variable-lookup.

Date: Thu Nov 18 18:59:12 2004
Author: ffjeld

Index: movitz/losp/muerte/symbols.lisp
diff -u movitz/losp/muerte/symbols.lisp:1.24 movitz/losp/muerte/symbols.lisp:1.25
--- movitz/losp/muerte/symbols.lisp:1.24	Wed Nov 17 14:33:42 2004
+++ movitz/losp/muerte/symbols.lisp	Thu Nov 18 18:59:11 2004
@@ -10,7 +10,7 @@
 ;;;; Author:        Frode Vatvedt Fjeld <frodef at acm.org>
 ;;;; Created at:    Tue Sep  4 23:55:41 2001
 ;;;;                
-;;;; $Id: symbols.lisp,v 1.24 2004/11/17 13:33:42 ffjeld Exp $
+;;;; $Id: symbols.lisp,v 1.25 2004/11/18 17:59:11 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -45,14 +45,16 @@
     (symbol
      (with-inline-assembly (:returns :eax)
        (:compile-form (:result-mode :eax) symbol)
-       (:call-local-pf dynamic-variable-lookup)))))
+       (:call-local-pf dynamic-variable-lookup)
+       (:locally (:cmpl :eax (:edi (:edi-offset unbound-value))))
+       (:je '(:sub-program (unbound) (:int 99)))))))
 
 (defun %unbounded-symbol-value (symbol)
   "Return the symbol's value without checking if it's bound or not."
   (check-type symbol symbol)
   (with-inline-assembly (:returns :eax)
     (:compile-form (:result-mode :eax) symbol)
-    (:call-local-pf dynamic-variable-lookup-unbound)
+    (:call-local-pf dynamic-variable-lookup)
    done))
 
 (defun (setf symbol-value) (value symbol)





More information about the Movitz-cvs mailing list