[movitz-cvs] CVS update: movitz/special-operators.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Thu Sep 2 09:27:43 UTC 2004
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 at 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)
More information about the Movitz-cvs
mailing list