[movitz-cvs] CVS update: movitz/losp/muerte/basic-macros.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Wed Jun 9 01:16:47 UTC 2004
Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory common-lisp.net:/tmp/cvs-serv1203
Modified Files:
basic-macros.lisp
Log Message:
New and improved EQL. Now it's simply a primitive-function.
Date: Tue Jun 8 18:16:47 2004
Author: ffjeld
Index: movitz/losp/muerte/basic-macros.lisp
diff -u movitz/losp/muerte/basic-macros.lisp:1.21 movitz/losp/muerte/basic-macros.lisp:1.22
--- movitz/losp/muerte/basic-macros.lisp:1.21 Tue Jun 8 15:02:47 2004
+++ movitz/losp/muerte/basic-macros.lisp Tue Jun 8 18:16:47 2004
@@ -9,7 +9,7 @@
;;;; Created at: Wed Nov 8 18:44:57 2000
;;;; Distribution: See the accompanying file COPYING.
;;;;
-;;;; $Id: basic-macros.lisp,v 1.21 2004/06/08 22:02:47 ffjeld Exp $
+;;;; $Id: basic-macros.lisp,v 1.22 2004/06/09 01:16:47 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -428,14 +428,13 @@
(movitz:movitz-eval y env)))
((movitz:movitz-constantp y env)
`(eql ,y ,x))
- ((movitz:movitz-constantp x env)
- (let ((x (movitz:movitz-eval x env)))
- (typecase x
- (number
- `(= ,x ,y))
- (t `(eq ,x ,y)))))
- (t form)))
-
+ ((and (movitz:movitz-constantp x env)
+ (not (typep (movitz:movitz-eval x env)
+ '(and integer (not fixnum)))))
+ `(eq ',x ,y))
+ (t `(with-inline-assembly (:returns :boolean-zf=1)
+ (:compile-two-forms (:eax :ebx) ,x ,y)
+ (:call-global-constant fast-eql)))))
(define-compiler-macro values (&rest sub-forms)
`(inline-values , at sub-forms))
More information about the Movitz-cvs
mailing list