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

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Thu Jul 29 00:12:54 UTC 2004


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

Modified Files:
	compiler.lisp 
Log Message:
Re-arranged many details about *movitz-nil*, movitz-null, and how it
relates to the cons and symbol binary-classes etc. This should now be
slightly less messy, and slightly more efficient.

Date: Wed Jul 28 17:12:54 2004
Author: ffjeld

Index: movitz/compiler.lisp
diff -u movitz/compiler.lisp:1.86 movitz/compiler.lisp:1.87
--- movitz/compiler.lisp:1.86	Wed Jul 28 03:00:20 2004
+++ movitz/compiler.lisp	Wed Jul 28 17:12:54 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.86 2004/07/28 10:00:20 ffjeld Exp $
+;;;; $Id: compiler.lisp,v 1.87 2004/07/29 00:12:54 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -3679,7 +3679,7 @@
     (case op
       (:movl
        (etypecase movitz-obj
-	 (movitz-nil
+	 (movitz-null
 	  (ecase (result-mode-type result-mode)
 	    (:lexical-binding
 	     (make-store-lexical result-mode :edi nil frame-map))
@@ -4369,7 +4369,7 @@
 			    ,optional-ok-label)))))
 	     (when rest-var
 	       (let* ((rest-binding (movitz-binding rest-var env))
-		      (rest-position (function-argument-argnum rest-binding)))
+		      #+ignore (rest-position (function-argument-argnum rest-binding)))
 		 #+ignore
 		 (assert (or (typep rest-binding 'hidden-rest-function-argument)
 			     (movitz-env-get rest-var 'dynamic-extent nil env))
@@ -4377,8 +4377,7 @@
 		   "&REST variable ~S must be dynamic-extent." rest-var)
 		 ;; (setq need-normalized-ecx-p t)
 		 (append #+ignore (make-immediate-move rest-position :edx)
-			 `(#+ignore
-			   (:call (:edi ,(global-constant-offset 'restify-dynamic-extent)))
+			 `(#+ignore (:call (:edi ,(global-constant-offset 'restify-dynamic-extent)))
 			   (:init-lexvar ,rest-binding
 					 :init-with-register :eax
 					 :init-with-type list)))))
@@ -4796,8 +4795,8 @@
 		   (t (error "Don't know ECX mode ~S." returns-provided)))))
 	       (:boolean-cf=1
 		(values (append code
-				`((:sbbl :ecx :ecx)
-				  (:movl (:edi (:ecx 4) ,(global-constant-offset 'null-cons))
+				`((:sbbl :ecx :ecx) ; T => -1, NIL => 0
+				  (:movl (:edi (:ecx 4) ,(global-constant-offset 'not-not-nil))
 					 :eax)))
 			:eax))
 	       (#.+boolean-modes+
@@ -5632,7 +5631,7 @@
     (if (eq movitz-obj (image-t-symbol *image*))
 	(make-indirect-reference :edi (global-constant-offset 't-symbol))
       (etypecase movitz-obj
-	(movitz-nil :edi)
+	(movitz-null :edi)
 	(movitz-immediate-object (movitz-immediate-value movitz-obj))
 	(movitz-heap-object 
 	 (make-indirect-reference :esi (movitz-funobj-intern-constant funobj movitz-obj)))))))





More information about the Movitz-cvs mailing list