From: Nathan F. <nf...@us...> - 2004-08-07 02:24:57
|
Update of /cvsroot/sbcl/sbcl/src/compiler/alpha In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29423/src/compiler/alpha Modified Files: arith.lisp Log Message: 0.8.13.35: * SB!VM:WORD-LOGICAL-FOO transforms were being defined per-backend, when in reality they can be shared. Make it so. * The `length' slot in SB!VM:PRIM-SLOT-OBJECT wasn't being used; delete it, but retain the :LENGTH option in SB!VM:DEFINE-PRIMITIVE-OBJECT, because that *is* being used. (mostly to generate offsets for GENESIS header files) Index: arith.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/alpha/arith.lisp,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- arith.lisp 4 Aug 2004 22:15:32 -0000 1.20 +++ arith.lisp 7 Aug 2004 02:24:48 -0000 1.21 @@ -595,43 +595,6 @@ (emit-label done) (move res result)))) -(define-source-transform word-logical-not (x) - `(logand (lognot (the (unsigned-byte 32) ,x)) #.(1- (ash 1 32)))) - -(deftransform word-logical-and ((x y)) - '(logand x y)) - -(define-source-transform word-logical-nand (x y) - `(word-logical-not (word-logical-and ,x ,y))) - -(deftransform word-logical-or ((x y)) - '(logior x y)) - -(define-source-transform word-logical-nor (x y) - `(logand (lognor (the (unsigned-byte 32) ,x) (the (unsigned-byte 32) ,y)) - #.(1- (ash 1 32)))) - -(deftransform word-logical-xor ((x y)) - '(logxor x y)) - -(define-source-transform word-logical-eqv (x y) - `(logand (logeqv (the (unsigned-byte 32) ,x) (the (unsigned-byte 32) ,y)) - #.(1- (ash 1 32)))) - -(define-source-transform word-logical-orc1 (x y) - `(logand (logorc1 (the (unsigned-byte 32) ,x) (the (unsigned-byte 32) ,y)) - #.(1- (ash 1 32)))) - -(define-source-transform word-logical-orc2 (x y) - `(logand (logorc2 (the (unsigned-byte 32) ,x) (the (unsigned-byte 32) ,y)) - #.(1- (ash 1 32)))) - -(define-source-transform word-logical-andc1 (x y) - `(logandc1 (the (unsigned-byte 32) ,x) (the (unsigned-byte 32) ,y))) - -(define-source-transform word-logical-andc2 (x y) - `(logandc2 (the (unsigned-byte 32) ,x) (the (unsigned-byte 32) ,y))) - (define-vop (shift-towards-someplace) (:policy :fast-safe) (:args (num :scs (unsigned-reg)) |