[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