X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fppc%2Farith.lisp;h=8141ec4076203778c6737320366ef7dadd388fbb;hb=ace140856e6b3f92bb06597092a59753f1e59142;hp=9004b6daf2ac410cafdb2eac7e434b81f94588dd;hpb=b9a60d8c091096ce7f90073de9b3d26ec7433387;p=sbcl.git diff --git a/src/compiler/ppc/arith.lisp b/src/compiler/ppc/arith.lisp index 9004b6d..8141ec4 100644 --- a/src/compiler/ppc/arith.lisp +++ b/src/compiler/ppc/arith.lisp @@ -703,37 +703,37 @@ (emit-label done) (move result res)))) -(define-source-transform 32bit-logical-not (x) +(define-source-transform word-logical-not (x) `(logand (lognot (the (unsigned-byte 32) ,x)) #.(1- (ash 1 32)))) -(deftransform 32bit-logical-and ((x y)) +(deftransform word-logical-and ((x y)) '(logand x y)) -(deftransform 32bit-logical-nand ((x y)) +(deftransform word-logical-nand ((x y)) '(logand (lognand x y) #.(1- (ash 1 32)))) -(deftransform 32bit-logical-or ((x y)) +(deftransform word-logical-or ((x y)) '(logior x y)) -(deftransform 32bit-logical-nor ((x y)) +(deftransform word-logical-nor ((x y)) '(logand (lognor x y) #.(1- (ash 1 32)))) -(deftransform 32bit-logical-xor ((x y)) +(deftransform word-logical-xor ((x y)) '(logxor x y)) -(deftransform 32bit-logical-eqv ((x y)) +(deftransform word-logical-eqv ((x y)) '(logand (logeqv x y) #.(1- (ash 1 32)))) -(deftransform 32bit-logical-orc1 ((x y)) +(deftransform word-logical-orc1 ((x y)) '(logand (logorc1 x y) #.(1- (ash 1 32)))) -(deftransform 32bit-logical-orc2 ((x y)) +(deftransform word-logical-orc2 ((x y)) '(logand (logorc2 x y) #.(1- (ash 1 32)))) -(deftransform 32bit-logical-andc1 ((x y)) +(deftransform word-logical-andc1 ((x y)) '(logand (logandc1 x y) #.(1- (ash 1 32)))) -(deftransform 32bit-logical-andc2 ((x y)) +(deftransform word-logical-andc2 ((x y)) '(logand (logandc2 x y) #.(1- (ash 1 32)))) (define-vop (shift-towards-someplace)