[movitz-cvs] CVS update: movitz/losp/muerte/arithmetic-macros.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Sun Sep 18 15:09:15 UTC 2005
Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory common-lisp.net:/tmp/cvs-serv8862
Modified Files:
arithmetic-macros.lisp
Log Message:
Changed representation of bytespecs to be cons-cells.
Date: Sun Sep 18 17:09:15 2005
Author: ffjeld
Index: movitz/losp/muerte/arithmetic-macros.lisp
diff -u movitz/losp/muerte/arithmetic-macros.lisp:1.12 movitz/losp/muerte/arithmetic-macros.lisp:1.13
--- movitz/losp/muerte/arithmetic-macros.lisp:1.12 Sun Sep 18 16:23:48 2005
+++ movitz/losp/muerte/arithmetic-macros.lisp Sun Sep 18 17:09:15 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.12 2005/09/18 14:23:48 ffjeld Exp $
+;;;; $Id: arithmetic-macros.lisp,v 1.13 2005/09/18 15:09:15 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -268,14 +268,14 @@
(t `(no-macro-call * ,factor1 ,factor2)))))
(t `(* (* ,(first operands) ,(second operands)) ,@(cddr operands)))))
-(define-compiler-macro byte (&whole form size position)
+
+(define-compiler-macro byte (&whole form size position &environment env)
(cond
- ((and (integerp size)
- (integerp position))
- (+ (* size #x400) position))
- ((integerp size)
- `(+ ,position ,(* size #x400)))
- (t form)))
+ ((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))))
(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