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

Update of /project/movitz/cvsroot/movitz/losp/muerte In directory common-lisp.net:/tmp/cvs-serv18632 Modified Files: more-macros.lisp Log Message: Moved %bignum-bigits compiler-macro here. Date: Wed Jun 9 16:04:26 2004 Author: ffjeld Index: movitz/losp/muerte/more-macros.lisp diff -u movitz/losp/muerte/more-macros.lisp:1.9 movitz/losp/muerte/more-macros.lisp:1.10 --- movitz/losp/muerte/more-macros.lisp:1.9 Wed Jun 9 10:22:51 2004 +++ movitz/losp/muerte/more-macros.lisp Wed Jun 9 16:04:26 2004 @@ -10,7 +10,7 @@ ;;;; Author: Frode Vatvedt Fjeld <frodef@acm.org> ;;;; Created at: Fri Jun 7 15:05:57 2002 ;;;; -;;;; $Id: more-macros.lisp,v 1.9 2004/06/09 17:22:51 ffjeld Exp $ +;;;; $Id: more-macros.lisp,v 1.10 2004/06/09 23:04:26 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------ @@ -311,6 +311,15 @@ (let ((,object-var ,instance-form)) ,@declarations-and-forms)))) + +(define-compiler-macro %bignum-bigits (x) + `(with-inline-assembly (:returns :eax) + (:compile-form (:result-mode :eax) ,x) + (:movzxw (:eax ,(bt:slot-offset 'movitz::movitz-bignum + 'movitz::length)) + :ecx) + (:leal ((:ecx ,movitz:+movitz-fixnum-factor+)) + :eax))) ;;; Some macros that aren't implemented, and we want to give compiler errors.
participants (1)
-
Frode Vatvedt Fjeld