[movitz-cvs] CVS update: movitz/losp/muerte/arithmetic-macros.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Sun Sep 18 15:58:07 UTC 2005
Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory common-lisp.net:/tmp/cvs-serv11984
Modified Files:
arithmetic-macros.lisp
Log Message:
Changed the bytespec representation back to integers. The longest
bignum is (expt 2 20) bits, so that's what we use for the
position. Most bytespec's sizes will fit in the 9 bits remaining in a fixnum.
Date: Sun Sep 18 17:58:06 2005
Author: ffjeld
Index: movitz/losp/muerte/arithmetic-macros.lisp
diff -u movitz/losp/muerte/arithmetic-macros.lisp:1.13 movitz/losp/muerte/arithmetic-macros.lisp:1.14
--- movitz/losp/muerte/arithmetic-macros.lisp:1.13 Sun Sep 18 17:09:15 2005
+++ movitz/losp/muerte/arithmetic-macros.lisp Sun Sep 18 17:58:05 2005
@@ -10,7 +10,7 @@
;;;; Author: Frode Vatvedt Fjeld <frodef at acm.org>
;;;; Created at: Sat Jul 17 13:42:46 2004
;;;;
-;;;; $Id: arithmetic-macros.lisp,v 1.13 2005/09/18 15:09:15 ffjeld Exp $
+;;;; $Id: arithmetic-macros.lisp,v 1.14 2005/09/18 15:58:05 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -273,9 +273,11 @@
(cond
((and (movitz:movitz-constantp size env)
(movitz:movitz-constantp position env))
- `(quote ,(cons (movitz:movitz-eval size env)
- (movitz:movitz-eval position env))))
- (t `(cons ,size ,position))))
+ (let ((size (movitz:movitz-eval size env))
+ (position (movitz:movitz-eval position env)))
+ (check-type position (unsigned-byte 20))
+ (+ position (ash size 20))))
+ (t form)))
(define-compiler-macro logand (&whole form &rest integers &environment env)
(let ((constant-folded-integers (loop for x in integers
More information about the Movitz-cvs
mailing list