[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