X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Falpha%2Farith.lisp;h=b39ba7b151566b1e2d8c5cf0d9add3d957c9aa31;hb=80f222325e1f677e5cf8de01c6990906fa47f65d;hp=d054afc8a8563896f55703beb633634a63194278;hpb=ace140856e6b3f92bb06597092a59753f1e59142;p=sbcl.git diff --git a/src/compiler/alpha/arith.lisp b/src/compiler/alpha/arith.lisp index d054afc..b39ba7b 100644 --- a/src/compiler/alpha/arith.lisp +++ b/src/compiler/alpha/arith.lisp @@ -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))