From: Christophe Rhodes Date: Wed, 10 Sep 2003 09:23:22 +0000 (+0000) Subject: 0.8.3.45.modular4: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=bf6ceefcdda0bed3f4fb2964176a4149e11b0b10;p=sbcl.git 0.8.3.45.modular4: Just move the source transforms to a more logical place on x86 --- diff --git a/src/compiler/x86/arith.lisp b/src/compiler/x86/arith.lisp index 473ecfe..38c3d9c 100644 --- a/src/compiler/x86/arith.lisp +++ b/src/compiler/x86/arith.lisp @@ -184,23 +184,6 @@ (define-binop logior 2 or) (define-binop logxor 2 xor)) -(define-source-transform logeqv (&rest args) - (if (oddp (length args)) - `(logxor ,@args) - `(lognot (logxor ,@args)))) -(define-source-transform logandc1 (x y) - `(logand (lognot ,x) ,y)) -(define-source-transform logandc2 (x y) - `(logand ,x (lognot ,y))) -(define-source-transform logorc1 (x y) - `(logior (lognot ,x) ,y)) -(define-source-transform logorc2 (x y) - `(logior ,x (lognot ,y))) -(define-source-transform lognor (x y) - `(lognot (logior ,x ,y))) -(define-source-transform lognand (x y) - `(lognot (logand ,x ,y))) - ;;; Special handling of add on the x86; can use lea to avoid a ;;; register load, otherwise it uses add. (define-vop (fast-+/fixnum=>fixnum fast-safe-arith-op) @@ -1186,6 +1169,23 @@ (define-vop (fast-logxor-mod32-c/unsigned=>unsigned fast-logxor-c/unsigned=>unsigned) (:translate logxor-mod32)) + +(define-source-transform logeqv (&rest args) + (if (oddp (length args)) + `(logxor ,@args) + `(lognot (logxor ,@args)))) +(define-source-transform logandc1 (x y) + `(logand (lognot ,x) ,y)) +(define-source-transform logandc2 (x y) + `(logand ,x (lognot ,y))) +(define-source-transform logorc1 (x y) + `(logior (lognot ,x) ,y)) +(define-source-transform logorc2 (x y) + `(logior ,x (lognot ,y))) +(define-source-transform lognor (x y) + `(lognot (logior ,x ,y))) +(define-source-transform lognand (x y) + `(lognot (logand ,x ,y))) ;;;; bignum stuff diff --git a/version.lisp-expr b/version.lisp-expr index 4f455c6..0932b78 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.8.3.45.modular3" +"0.8.3.45.modular4"