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

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Tue Jul 20 12:59:54 UTC 2004


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

Modified Files:
	compiler.lisp 
Log Message:
Made primitive-function ensure-heap-cons-variable no longer preserve
EDX, because it's very difficult to preserve EDX while also observing
the GC invariant that a primitive-function cannot call another
primitive-function.

Date: Tue Jul 20 05:59:53 2004
Author: ffjeld

Index: movitz/compiler.lisp
diff -u movitz/compiler.lisp:1.79 movitz/compiler.lisp:1.80
--- movitz/compiler.lisp:1.79	Tue Jul 20 04:39:21 2004
+++ movitz/compiler.lisp	Tue Jul 20 05:59:53 2004
@@ -8,7 +8,7 @@
 ;;;; Created at:    Wed Oct 25 12:30:49 2000
 ;;;; Distribution:  See the accompanying file COPYING.
 ;;;;                
-;;;; $Id: compiler.lisp,v 1.79 2004/07/20 11:39:21 ffjeld Exp $
+;;;; $Id: compiler.lisp,v 1.80 2004/07/20 12:59:53 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -3489,7 +3489,9 @@
 	       (append (make-load-lexical lended-binding :eax funobj t frame-map)
 		       (unless (or (typep lended-binding 'borrowed-binding)
 				   (getf (binding-lended-p lended-binding) :dynamic-extent-p))
-			 (append `((:globally (:call (:edi (:edi-offset ensure-heap-cons-variable)))))
+			 (append `((:pushl :edx)
+				   (:globally (:call (:edi (:edi-offset ensure-heap-cons-variable))))
+				   (:popl :edx))
 				 (make-store-lexical lended-binding :eax t frame-map)))
 		       `((:movl :eax
 				(,funobj-register





More information about the Movitz-cvs mailing list