From: Nikodemus Siivola Date: Thu, 25 Jun 2009 15:00:34 +0000 (+0000) Subject: 1.0.29.42: small fixoid for the EXPT optimization from 1.0.29.40 X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;ds=sidebyside;h=50327e8d1ee7fea0feffcd96cb8906a4ef50c1e0;p=sbcl.git 1.0.29.42: small fixoid for the EXPT optimization from 1.0.29.40 * EQL -1, not 1 -- no easily observable difference, but this one gets the branchless version actually used. --- diff --git a/src/compiler/srctran.lisp b/src/compiler/srctran.lisp index 30ef11e..d2f472c 100644 --- a/src/compiler/srctran.lisp +++ b/src/compiler/srctran.lisp @@ -3326,7 +3326,7 @@ (deftransform expt ((x y) ((constant-arg (member -1 -1.0 -1.0d0)) integer) *) "recode as an ODDP check" (let ((val (lvar-value x))) - (if (eql 1 val) + (if (eql -1 val) '(- 1 (* 2 (logand 1 y))) `(if (oddp y) ,val diff --git a/version.lisp-expr b/version.lisp-expr index 5355a14..1f82c99 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".) -"1.0.29.41" +"1.0.29.42"