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

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Mon Mar 8 14:33:53 UTC 2004


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

Modified Files:
	arrays.lisp 
Log Message:
Fixed stupid bug in aref in previous check-in.

Date: Mon Mar  8 09:33:52 2004
Author: ffjeld

Index: movitz/losp/muerte/arrays.lisp
diff -u movitz/losp/muerte/arrays.lisp:1.4 movitz/losp/muerte/arrays.lisp:1.5
--- movitz/losp/muerte/arrays.lisp:1.4	Mon Mar  8 09:26:13 2004
+++ movitz/losp/muerte/arrays.lisp	Mon Mar  8 09:33:52 2004
@@ -10,7 +10,7 @@
 ;;;; Author:        Frode Vatvedt Fjeld <frodef at acm.org>
 ;;;; Created at:    Sun Feb 11 23:14:04 2001
 ;;;;                
-;;;; $Id: arrays.lisp,v 1.4 2004/03/08 14:26:13 ffjeld Exp $
+;;;; $Id: arrays.lisp,v 1.5 2004/03/08 14:33:52 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -199,7 +199,7 @@
 		(:compile-form (:result-mode :ignore)
 		 (error "Not a vector: ~S" vector))))
 		
-;;;	(:shrl #.movitz::+movitz-fixnum-shift+ :ebx)
+	(:shrl #.movitz::+movitz-fixnum-shift+ :ebx)
 	(:movzxw (:eax -2) :ecx)
 
 	(:cmpw (:eax #.(bt:slot-offset 'movitz:movitz-vector 'movitz::num-elements)) :bx)
@@ -209,13 +209,12 @@
 
 	(:cmpl #.(movitz:vector-type-tag :any-t) :ecx)
 	(:jne 'not-any-t)
-	(:movl (:eax :ebx 2) :eax)
+	(:movl (:eax (:ebx 4) 2) :eax)
 	(:jmp 'done)
 
        not-any-t
 	(:cmpl #.(movitz:vector-type-tag :character) :ecx)
 	(:jne 'not-character)
-	(:shrl #.movitz::+movitz-fixnum-shift+ :ebx)
 	(:movb (:eax :ebx 2) :bl)
 	(:xorl :eax :eax)
 	(:movb :bl :ah)
@@ -225,7 +224,6 @@
        not-character
 	(:cmpl #.(movitz:vector-type-tag :u8) :ecx)
 	(:jne 'not-u8)
-	(:shrl #.movitz::+movitz-fixnum-shift+ :ebx)
 	(:movzxb (:eax :ebx 2) :eax)	; u8
 	(:shll #.movitz::+movitz-fixnum-shift+ :eax)
 	(:jmp 'done)
@@ -233,14 +231,13 @@
        not-u8
 	(:cmpl #.(movitz:vector-type-tag :u16) :ecx)
 	(:je 'not-u16)
-	(:shrl #.(cl:1- movitz::+movitz-fixnum-shift+) :ebx)
-	(:movzxw (:eax :ebx 2) :eax)	; u16
+	(:movzxw (:eax (:ebx 2) 2) :eax) ; u16
 	(:jmp 'done)
 
        not-u16
 	(:cmpl #.(movitz:vector-type-tag :u32) :ecx)
 	(:je 'not-u32)
-	(:movl (:eax :ebx 2) :ecx)	; u32
+	(:movl (:eax (:ebx 4) 2) :ecx)	; u32
 	(:cmpl #.movitz::+movitz-most-positive-fixnum+ :ecx)
 	(:jg '(:sub-program (:overflowing-u32)
 	       (:int 107)))





More information about the Movitz-cvs mailing list