[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