[movitz-cvs] CVS update: movitz/losp/muerte/bignums.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Tue Sep 21 14:24:04 UTC 2004
Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory common-lisp.net:/tmp/cvs-serv10562
Modified Files:
bignums.lisp
Log Message:
Have %make-bignum perform the allocation properly. The
malloc-non-pointer-words operator is really deprecated.
Date: Tue Sep 21 16:24:03 2004
Author: ffjeld
Index: movitz/losp/muerte/bignums.lisp
diff -u movitz/losp/muerte/bignums.lisp:1.8 movitz/losp/muerte/bignums.lisp:1.9
--- movitz/losp/muerte/bignums.lisp:1.8 Tue Sep 21 15:06:45 2004
+++ movitz/losp/muerte/bignums.lisp Tue Sep 21 16:24:03 2004
@@ -10,7 +10,7 @@
;;;; Author: Frode Vatvedt Fjeld <frodef at acm.org>
;;;; Created at: Sat Jul 17 19:42:57 2004
;;;;
-;;;; $Id: bignums.lisp,v 1.8 2004/09/21 13:06:45 ffjeld Exp $
+;;;; $Id: bignums.lisp,v 1.9 2004/09/21 14:24:03 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -81,12 +81,13 @@
(assert (plusp bigits))
(macrolet
((do-it ()
- `(with-inline-assembly (:returns :eax)
- (:compile-two-forms (:eax :ecx) (malloc-non-pointer-words (1+ bigits)) bigits)
- (:shll 16 :ecx)
- (:orl ,(movitz:tag :bignum 0) :ecx)
- (:movl :ecx (:eax ,movitz:+other-type-offset+))
- )))
+ `(let ((words (1+ bigits)))
+ (with-non-pointer-allocation-assembly (words :fixed-size-p t
+ :object-register :eax)
+ (:load-lexical (:lexical-binding bigits) :ecx)
+ (:shll 16 :ecx)
+ (:orl ,(movitz:tag :bignum 0) :ecx)
+ (:movl :ecx (:eax (:offset movitz-bignum type)))))))
(do-it)))
(defun print-bignum (x)
More information about the Movitz-cvs
mailing list