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

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Thu Apr 15 13:07:24 UTC 2004


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

Modified Files:
	primitive-functions.lisp 
Log Message:
Slightly more efficient dynamic-store.

Date: Thu Apr 15 09:07:24 2004
Author: ffjeld

Index: movitz/losp/muerte/primitive-functions.lisp
diff -u movitz/losp/muerte/primitive-functions.lisp:1.11 movitz/losp/muerte/primitive-functions.lisp:1.12
--- movitz/losp/muerte/primitive-functions.lisp:1.11	Wed Apr 14 16:10:58 2004
+++ movitz/losp/muerte/primitive-functions.lisp	Thu Apr 15 09:07:24 2004
@@ -10,7 +10,7 @@
 ;;;; Author:        Frode Vatvedt Fjeld <frodef at acm.org>
 ;;;; Created at:    Tue Oct  2 21:02:18 2001
 ;;;;                
-;;;; $Id: primitive-functions.lisp,v 1.11 2004/04/14 20:10:58 ffjeld Exp $
+;;;; $Id: primitive-functions.lisp,v 1.12 2004/04/15 13:07:24 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -270,7 +270,8 @@
     (:ret)))
 
 (define-primitive-function dynamic-store (symbol value)
-  "Store VALUE (ebx) in the dynamic binding of SYMBOL (eax)."
+  "Store VALUE (ebx) in the dynamic binding of SYMBOL (eax).
+   Preserves EBX and EAX."
   (with-inline-assembly (:returns :multiple-values)
     (:locally (:movl (:edi (:edi-offset dynamic-env)) :ecx))
     (:jecxz 'no-binding)
@@ -286,8 +287,7 @@
     (:jne 'search-loop)
     ;; fall through on success
    success
-    (:leal (:ecx 8) :eax)		; location of binding value cell
-    (:movl :ebx (:eax))			; Store VALUE in binding.
+    (:movl :ebx (:ecx 8))		; Store VALUE in binding.
     (:ret)
    no-binding
     (:movl :ebx (:eax #.(bt:slot-offset 'movitz::movitz-symbol 'movitz::value)))





More information about the Movitz-cvs mailing list