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