[movitz-cvs] CVS update: movitz/losp/muerte/memref.lisp

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Tue Mar 30 09:36:50 UTC 2004


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

Modified Files:
	memref.lisp 
Log Message:
Remove the rather bogus :lisp-code-vector type.

Date: Tue Mar 30 04:36:50 2004
Author: ffjeld

Index: movitz/losp/muerte/memref.lisp
diff -u movitz/losp/muerte/memref.lisp:1.4 movitz/losp/muerte/memref.lisp:1.5
--- movitz/losp/muerte/memref.lisp:1.4	Sun Mar 28 11:19:20 2004
+++ movitz/losp/muerte/memref.lisp	Tue Mar 30 04:36:50 2004
@@ -10,7 +10,7 @@
 ;;;; Author:        Frode Vatvedt Fjeld <frodef at acm.org>
 ;;;; Created at:    Tue Mar  6 21:25:49 2001
 ;;;;                
-;;;; $Id: memref.lisp,v 1.4 2004/03/28 16:19:20 ffjeld Exp $
+;;;; $Id: memref.lisp,v 1.5 2004/03/30 09:36:50 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -151,32 +151,26 @@
 			(:popl :ecx)	; pop object
 			(:sarl #.movitz::+movitz-fixnum-shift+ :ebx) ; scale offset+index
 			(:movb (:ebx :ecx ,(offset-by 1)) :ah)))))
-		((:lisp :lisp-code-vector)
-		 (let ((fix-when-code-vector
-			(when (eq type :lisp-code-vector)
-			  `((:subl ,movitz::+code-vector-word-offset+ :eax)))))
-		   (cond
-		    ((and (eq 0 index) (eq 0 offset))
-		     `(with-inline-assembly (:returns :eax)
-			(:compile-form (:result-mode :eax) ,object)
-			(:movl (:eax ,(offset-by 4)) :eax)
-			, at fix-when-code-vector))
-		    ((eq 0 offset)
-		     `(with-inline-assembly (:returns :eax)
-			(:compile-two-forms (:eax :ecx) ,object ,index)
+		(:lisp
+		 (cond
+		  ((and (eq 0 index) (eq 0 offset))
+		   `(with-inline-assembly (:returns :register)
+		      (:compile-form (:result-mode :register) ,object)
+		      (:movl ((:result-register) ,(offset-by 4)) (:result-register))))
+		  ((eq 0 offset)
+		   `(with-inline-assembly (:returns :eax)
+		      (:compile-two-forms (:eax :ecx) ,object ,index)
+		      ,@(when (cl:plusp (cl:- movitz::+movitz-fixnum-shift+ 2))
+			  `((:sarl ,(cl:- movitz::+movitz-fixnum-shift+ 2)) :ecx))
+		      (:movl (:eax :ecx ,(offset-by 4)) :eax)))
+		  (t `(with-inline-assembly (:returns :eax)
+			(:compile-form (:result-mode :push) ,object)
+			(:compile-two-forms (:untagged-fixnum-eax :ecx) ,offset ,index)
 			,@(when (cl:plusp (cl:- movitz::+movitz-fixnum-shift+ 2))
 			    `((:sarl ,(cl:- movitz::+movitz-fixnum-shift+ 2)) :ecx))
-			(:movl (:eax :ecx ,(offset-by 4)) :eax)
-			, at fix-when-code-vector))
-		    (t `(with-inline-assembly (:returns :eax)
-			  (:compile-form (:result-mode :push) ,object)
-			  (:compile-two-forms (:untagged-fixnum-eax :ecx) ,offset ,index)
-			  ,@(when (cl:plusp (cl:- movitz::+movitz-fixnum-shift+ 2))
-			      `((:sarl ,(cl:- movitz::+movitz-fixnum-shift+ 2)) :ecx))
-			  (:addl :ecx :eax)
-			  (:popl :ebx)	; pop object
-			  (:movl (:eax :ebx ,(offset-by 4)) :eax)
-			  , at fix-when-code-vector)))))
+			(:addl :ecx :eax)
+			(:popl :ebx)	; pop object
+			(:movl (:eax :ebx ,(offset-by 4)) :eax)))))
 		(t (error "Unknown memref type: ~S" (movitz::eval-form type nil nil))
 		   form)))))))))
 
@@ -187,7 +181,6 @@
     (:unsigned-byte32   (memref object offset index :unsigned-byte32))
     (:character         (memref object offset index :character))
     (:lisp              (memref object offset index :lisp))
-    (:lisp-code-vector  (memref object offset index :lisp-code-vector))
     (:signed-byte30+2   (memref object offset index :signed-byte30+2))
     (:unsigned-byte29+3 (memref object offset index :unsigned-byte29+3))))
 





More information about the Movitz-cvs mailing list