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

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Mon Jul 12 11:09:18 UTC 2004


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

Modified Files:
	inspect.lisp 
Log Message:
Changed the low-level formatting of bignums: Now the number of bigits
is stored as factors of 4. This restricts the number of bigits to
(1- (expt 2 14)), which is still plenty.

Date: Mon Jul 12 04:09:18 2004
Author: ffjeld

Index: movitz/losp/muerte/inspect.lisp
diff -u movitz/losp/muerte/inspect.lisp:1.16 movitz/losp/muerte/inspect.lisp:1.17
--- movitz/losp/muerte/inspect.lisp:1.16	Thu Jul  8 14:48:58 2004
+++ movitz/losp/muerte/inspect.lisp	Mon Jul 12 04:09:18 2004
@@ -10,7 +10,7 @@
 ;;;; Author:        Frode Vatvedt Fjeld <frodef at acm.org>
 ;;;; Created at:    Fri Oct 24 09:50:41 2003
 ;;;;                
-;;;; $Id: inspect.lisp,v 1.16 2004/07/08 21:48:58 ffjeld Exp $
+;;;; $Id: inspect.lisp,v 1.17 2004/07/12 11:09:18 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -284,11 +284,11 @@
 	    (:movl (:eax ,movitz:+other-type-offset+) :ecx)
 	    (:shrl 16 :ecx)
 	   shrink-loop
-	    (:cmpl 1 :ecx)
+	    (:cmpl ,movitz:+movitz-fixnum-factor+ :ecx)
 	    (:je 'shrink-no-more)
-	    (:cmpl 0 (:eax (:ecx 4) ,(+ -4 (bt:slot-offset 'movitz:movitz-bignum 'movitz::bigit0))))
+	    (:cmpl 0 (:eax :ecx ,(+ -4 (bt:slot-offset 'movitz:movitz-bignum 'movitz::bigit0))))
 	    (:jnz 'shrink-done)
-	    (:subl 1 :ecx)
+	    (:subl ,movitz:+movitz-fixnum-factor+ :ecx)
 	    (:jmp 'shrink-loop)
 	   shrink-no-more
 	    (:cmpl ,(1+ movitz:+movitz-most-positive-fixnum+)
@@ -299,6 +299,8 @@
 		   (:leal ((:ecx ,movitz:+movitz-fixnum-factor+)) :eax)
 		   (:jmp 'done)))
 	   shrink-done
+	    (:testb 3 :cl)
+	    (:jnz '(:sub-program () (:int 59)))
 	    (:movw :cx (:eax ,(bt:slot-offset 'movitz:movitz-bignum 'movitz::length)))
 	   done
 	    )))





More information about the Movitz-cvs mailing list