[movitz-cvs] CVS update: movitz/losp/muerte/arithmetic-macros.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Tue Nov 23 16:00:25 UTC 2004
Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory common-lisp.net:/tmp/cvs-serv6603
Modified Files:
arithmetic-macros.lisp
Log Message:
*** empty log message ***
Date: Tue Nov 23 17:00:21 2004
Author: ffjeld
Index: movitz/losp/muerte/arithmetic-macros.lisp
diff -u movitz/losp/muerte/arithmetic-macros.lisp:1.8 movitz/losp/muerte/arithmetic-macros.lisp:1.9
--- movitz/losp/muerte/arithmetic-macros.lisp:1.8 Mon Oct 11 15:52:04 2004
+++ movitz/losp/muerte/arithmetic-macros.lisp Tue Nov 23 17:00:20 2004
@@ -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.8 2004/10/11 13:52:04 ffjeld Exp $
+;;;; $Id: arithmetic-macros.lisp,v 1.9 2004/11/23 16:00:20 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -95,18 +95,21 @@
(movitz:movitz-constantp max env))
(let ((min (movitz:movitz-eval min env))
(max (movitz:movitz-eval max env)))
- (check-type min fixnum)
- (check-type max fixnum)
(cond
((movitz:movitz-constantp x env)
(<= min (movitz:movitz-eval x env) max))
((< max min)
- nil)
+ `(progn ,x nil))
((= max min)
`(= ,x ,min))
((minusp min)
`(let ((x ,x))
(and (<= ,min x) (<= x ,max))))
+ ((or (not (typep min 'fixnum))
+ (not (typep max 'fixnum)))
+ `(let ((x ,x))
+ (and (<=%2op ,min x)
+ (<=%2op x ,max))))
((= 0 min)
`(with-inline-assembly (:returns :boolean-cf=1)
(:compile-form (:result-mode :eax) ,x)
More information about the Movitz-cvs
mailing list