From: Nathan F. <nf...@us...> - 2004-08-04 22:15:43
|
Update of /cvsroot/sbcl/sbcl/src/compiler/x86-64 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22473/src/compiler/x86-64 Modified Files: arith.lisp Log Message: 0.8.13.26: * Rename {32,64}BIT-LOGICAL-FOO to WORD-LOGICAL-FOO in all ports. This builds and passes all tests on x86, but I am unsure about its effects on other ports. * Declare SB!VM:WORD with DEF!TYPE so it is known to both the host compiler and the cross-compiler (and we can use it in DEFKNOWN declarations, e.g.) * Fix errors in debug.impure.lisp test Index: arith.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/x86-64/arith.lisp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- arith.lisp 26 Jun 2004 17:48:22 -0000 1.1 +++ arith.lisp 4 Aug 2004 22:15:33 -0000 1.2 @@ -1206,38 +1206,38 @@ (move result prev) (inst shrd result next :cl))) -(define-source-transform 64bit-logical-not (x) +(define-source-transform word-logical-not (x) `(logand (lognot (the (unsigned-byte 64) ,x)) #.(1- (ash 1 64)))) -(deftransform 64bit-logical-and ((x y)) +(deftransform word-logical-and ((x y)) '(logand x y)) -(define-source-transform 64bit-logical-nand (x y) - `(64bit-logical-not (64bit-logical-and ,x ,y))) +(define-source-transform word-logical-nand (x y) + `(word-logical-not (word-logical-and ,x ,y))) -(deftransform 64bit-logical-or ((x y)) +(deftransform word-logical-or ((x y)) '(logior x y)) -(define-source-transform 64bit-logical-nor (x y) - `(64bit-logical-not (64bit-logical-or ,x ,y))) +(define-source-transform word-logical-nor (x y) + `(word-logical-not (word-logical-or ,x ,y))) -(deftransform 64bit-logical-xor ((x y)) +(deftransform word-logical-xor ((x y)) '(logxor x y)) -(define-source-transform 64bit-logical-eqv (x y) - `(64bit-logical-not (64bit-logical-xor ,x ,y))) +(define-source-transform word-logical-eqv (x y) + `(word-logical-not (word-logical-xor ,x ,y))) -(define-source-transform 64bit-logical-orc1 (x y) - `(64bit-logical-or (64bit-logical-not ,x) ,y)) +(define-source-transform word-logical-orc1 (x y) + `(word-logical-or (word-logical-not ,x) ,y)) -(define-source-transform 64bit-logical-orc2 (x y) - `(64bit-logical-or ,x (64bit-logical-not ,y))) +(define-source-transform word-logical-orc2 (x y) + `(word-logical-or ,x (word-logical-not ,y))) -(define-source-transform 64bit-logical-andc1 (x y) - `(64bit-logical-and (64bit-logical-not ,x) ,y)) +(define-source-transform word-logical-andc1 (x y) + `(word-logical-and (word-logical-not ,x) ,y)) -(define-source-transform 64bit-logical-andc2 (x y) - `(64bit-logical-and ,x (64bit-logical-not ,y))) +(define-source-transform word-logical-andc2 (x y) + `(word-logical-and ,x (word-logical-not ,y))) ;;; Only the lower 6 bits of the shift amount are significant. (define-vop (shift-towards-someplace) |