Update of /cvsroot/sbcl/sbcl/src/compiler/generic
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13754/src/compiler/generic
Modified Files:
vm-tran.lisp
Log Message:
0.8.9.52:
Fixes fixes fixes
... restore build on linux/unithread;
... workaround apparent OpenMCL bug in the reader (#1#-related)
... fix for (funcall #'cddr ...)
Index: vm-tran.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/compiler/generic/vm-tran.lisp,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -d -r1.44 -r1.45
--- vm-tran.lisp 30 Mar 2004 17:08:19 -0000 1.44
+++ vm-tran.lisp 19 Apr 2004 13:46:27 -0000 1.45
@@ -444,29 +444,20 @@
(define-good-modular-fun logior)
;;; FIXME: XOR? ANDC1, ANDC2? -- CSR, 2003-09-16
-#!-alpha
-(progn
- (defknown #1=sb!vm::ash-left-mod32 (integer (integer 0)) (unsigned-byte 32)
- (foldable flushable movable))
- (define-modular-fun-optimizer ash ((integer count) :width width)
- (when (and (<= width 32)
- (constant-lvar-p count) ; ?
- (plusp (lvar-value count)))
- (cut-to-width integer width)
- '#1#))
- (setf (gethash '#1# *modular-versions*) '(ash 32)))
-#!+alpha
-(progn
- (defknown #1=sb!vm::ash-left-mod64 (integer (integer 0)) (unsigned-byte 64)
- (foldable flushable movable))
- (define-modular-fun-optimizer ash ((integer count) :width width)
- (when (and (<= width 64)
- (constant-lvar-p count) ; ?
- (plusp (lvar-value count)))
- (cut-to-width integer width)
- '#1#))
- (setf (gethash '#1# *modular-versions*) '(ash 64)))
-
+(macrolet
+ ((def (name width)
+ `(progn
+ (defknown ,name (integer (integer 0)) (unsigned-byte ,width)
+ (foldable flushable movable))
+ (define-modular-fun-optimizer ash ((integer count) :width width)
+ (when (and (<= width 32)
+ (constant-lvar-p count) ;?
+ (plusp (lvar-value count)))
+ (cut-to-width integer width)
+ ',name))
+ (setf (gethash ',name *modular-versions*) `(ash ,',width)))))
+ #!-alpha (def sb!vm::ash-left-mod32 32)
+ #!+alpha (def sb!vm::ash-left-mod64 64))
;;; There are two different ways the multiplier can be recoded. The
;;; more obvious is to shift X by the correct amount for each bit set
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
|