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

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Tue Jan 25 13:51:39 UTC 2005


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

Modified Files:
	memref.lisp 
Log Message:
*** empty log message ***
Date: Tue Jan 25 05:51:36 2005
Author: ffjeld

Index: movitz/losp/muerte/memref.lisp
diff -u movitz/losp/muerte/memref.lisp:1.41 movitz/losp/muerte/memref.lisp:1.42
--- movitz/losp/muerte/memref.lisp:1.41	Mon Jan 10 06:04:52 2005
+++ movitz/losp/muerte/memref.lisp	Tue Jan 25 05:51:36 2005
@@ -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.41 2005/01/10 14:04:52 ffjeld Exp $
+;;;; $Id: memref.lisp,v 1.42 2005/01/25 13:51:36 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -224,7 +224,7 @@
 			, at fix-ecx))
 		    (t (let ((object-var (gensym "memref-object-")))
 			 `(let ((,object-var ,object))
-			    (with-inline-assembly (:returns :ecx :type (unsigned-byte 29))
+			    (with-inline-assembly (:returns :multiple-values)
 			      (:compile-two-forms (:ecx :ebx) ,offset ,index)
 			      (:sarl ,movitz::+movitz-fixnum-shift+ :ecx)
 			      (:load-lexical (:lexical-binding ,object-var) :eax)
@@ -411,9 +411,9 @@
 			  ((:big)
 			   (memref object offset :index index :type :unsigned-byte16 :endian :big))))
     (:code-vector       (memref object offset :index index :type :code-vector))
-    (:unsigned-byte14   (memref object offset :index index :type :unsigned-byte14))))
-;;;    (:signed-byte30+2   (memref object offset index :signed-byte30+2))
-;;;    (:unsigned-byte29+3 (memref object offset index :unsigned-byte29+3))))
+    (:unsigned-byte14   (memref object offset :index index :type :unsigned-byte14))
+    (:signed-byte30+2   (memref object offset :index index :type :signed-byte30+2))
+    (:unsigned-byte29+3 (memref object offset :index index :type :unsigned-byte29+3))))
 
 (define-compiler-macro (setf memref) (&whole form &environment env value object offset
 				      &key (index 0) (type :lisp) (localp nil) (endian :host))
@@ -963,7 +963,7 @@
 		  (:movl :ecx (:eax ,offset)))))))
 	(:lisp
 	 (assert (= 4 movitz:+movitz-fixnum-factor+))
-	 `(with-inline-assembly (:returns :untagged-fixnum-eax)
+	 `(with-inline-assembly (:returns :eax)
 	    (:compile-form (:result-mode :push) ,address)
 	    (:compile-form (:result-mode :push) ,index)
 	    (:compile-form (:result-mode :push) ,offset)
@@ -975,7 +975,7 @@
 	    (:shrl ,movitz::+movitz-fixnum-shift+ :ecx)
 	    (,prefixes :movl :eax (:ecx :ebx))))
 	(:unsigned-byte8
-	 `(with-inline-assembly (:returns :untagged-fixnum-eax)
+	 `(with-inline-assembly (:returns :nothing)
 	    (:compile-form (:result-mode :push) ,address)
 	    (:compile-form (:result-mode :push) ,index)
 	    (:compile-form (:result-mode :push) ,offset)
@@ -983,11 +983,11 @@
 	    (:popl :edx)		; offset
 	    (:popl :ebx)		; index
 	    (:popl :ecx)		; address
-	    (:shrl ,movitz::+movitz-fixnum-shift+ :eax)
+	    (:shll ,(- 8 movitz::+movitz-fixnum-shift+) :eax)
 	    (:addl :ebx :ecx)
 	    (:addl :edx :ecx)
 	    (:shrl ,movitz::+movitz-fixnum-shift+ :ecx)
-	    (,prefixes :movb :al (:ecx))))
+	    (,prefixes :movb :ah (:ecx))))
 	(:unsigned-byte16
 	 (cond
 	  ((eq 0 offset)




More information about the Movitz-cvs mailing list