[movitz-cvs] CVS movitz

ffjeld ffjeld at common-lisp.net
Thu Apr 17 19:09:29 UTC 2008


Update of /project/movitz/cvsroot/movitz
In directory clnet:/tmp/cvs-serv9168

Modified Files:
	compiler.lisp 
Log Message:
Remove some dead code. Be more precise about when ECX can be used for temporary storage.


--- /project/movitz/cvsroot/movitz/compiler.lisp	2008/04/15 23:04:39	1.202
+++ /project/movitz/cvsroot/movitz/compiler.lisp	2008/04/17 19:09:28	1.203
@@ -8,7 +8,7 @@
 ;;;; Created at:    Wed Oct 25 12:30:49 2000
 ;;;; Distribution:  See the accompanying file COPYING.
 ;;;;                
-;;;; $Id: compiler.lisp,v 1.202 2008/04/15 23:04:39 ffjeld Exp $
+;;;; $Id: compiler.lisp,v 1.203 2008/04/17 19:09:28 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -1073,26 +1073,6 @@
 				  :initial-contents code-vector)))))
   funobj)
 
-(defun check-locate-concistency (code-vector)
-  "The run-time function muerte::%find-code-vector sometimes needs to find a code-vector by
-searching through the machine-code for an object header signature. This function is to
-make sure that no machine code accidentally forms such a header signature."
-  (loop for x from 0 below (length code-vector) by 8
-     do (when (and (= (tag :basic-vector) (aref code-vector x))
-		   (= (enum-value 'movitz-vector-element-type :code) (aref code-vector (1+ x)))
-		   (or (<= #x4000 (length code-vector))
-		       (and (= (ldb (byte 8 0) (length code-vector))
-			       (aref code-vector (+ x 2)))
-			    (= (ldb (byte 8 8) (length code-vector))
-			       (aref code-vector (+ x 3))))))
-	  (break "Code-vector (length ~D) can break %find-code-vector at ~D: #x~2,'0X~2,'0X ~2,'0X~2,'0X."
-		 (length code-vector) x
-		 (aref code-vector (+ x 0))
-		 (aref code-vector (+ x 1))
-		 (aref code-vector (+ x 2))
-		 (aref code-vector (+ x 3)))))
-  (values))
-
 (defun check-locate-concistency (code code-vector-length)
   "The run-time function muerte::%find-code-vector sometimes needs to find a code-vector by
 searching through the machine-code for an object header signature. This function is to
@@ -3650,7 +3630,11 @@
     (if (and nil (typep source 'constant-object-binding))
 	(make-load-constant (constant-object source) binding funobj frame-map)
 	(let ((protect-registers (list* source protect-registers)))
-	  (unless (or (eq source :untagged-fixnum-ecx)) ; test binding type!
+	  (unless (or (eq source :untagged-fixnum-ecx)
+		      (and (binding-store-type binding)
+			   (multiple-value-call #'encoded-subtypep
+			     (values-list (binding-store-type binding))
+			     (type-specifier-encode '(or integer character)))))
 	    (push :ecx protect-registers))
 	  (cond
 	    ((eq :untagged-fixnum-ecx source)




More information about the Movitz-cvs mailing list