[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