Update of /project/movitz/cvsroot/movitz In directory common-lisp.net:/tmp/cvs-serv19116
Modified Files: special-operators.lisp Log Message: Implement the new stack-discipline-obeyant push/pop-current-values scheme.
Date: Thu Sep 2 11:27:39 2004 Author: ffjeld
Index: movitz/special-operators.lisp diff -u movitz/special-operators.lisp:1.36 movitz/special-operators.lisp:1.37 --- movitz/special-operators.lisp:1.36 Sat Aug 14 19:45:17 2004 +++ movitz/special-operators.lisp Thu Sep 2 11:27:38 2004 @@ -8,7 +8,7 @@ ;;;; Author: Frode Vatvedt Fjeld frodef@acm.org ;;;; Created at: Fri Nov 24 16:22:59 2000 ;;;; -;;;; $Id: special-operators.lisp,v 1.36 2004/08/14 17:45:17 ffjeld Exp $ +;;;; $Id: special-operators.lisp,v 1.37 2004/09/02 09:27:38 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------
@@ -849,7 +849,9 @@ :type nil :modifies modifies :returns :nothing))) - (t (let* ((cloaked-env (make-instance 'with-things-on-stack-env :uplink env :funobj funobj)) + (t (let* ((cloaked-env (make-instance 'with-things-on-stack-env + :uplink env + :funobj funobj)) (cloaked-code (loop for cloaked-form in cloaked-forms append (compiler-values-bind (&code code &modifies sub-modifies) (compiler-call #'compile-form-unprotected @@ -942,11 +944,12 @@ :modifies modifies :type cover-type :code (append cover-code - `((:globally (:call (:edi (:edi-offset push-current-values)))) - (:pushl :ecx)) + (make-compiled-push-current-values) + `((:pushl :ecx)) cloaked-code `((:popl :ecx) - (:globally (:call (:edi (:edi-offset pop-current-values)))))))) + (:globally (:call (:edi (:edi-offset pop-current-values)))) + (:leal (:esp (:ecx 4)) :esp))))) ((and (not (cdr cloaked-code)) (instruction-is (car cloaked-code) :incf-lexvar)) (destructuring-bind (binding delta &key protect-registers)