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@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)