From: Nathan Froyd Date: Wed, 27 Jul 2005 18:59:50 +0000 (+0000) Subject: 0.9.3.3: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=6b2e5ac556aef4dbf54b60b9512edf1b9c5cc457;p=sbcl.git 0.9.3.3: Oops. Fix signed-num INTEGER-LENGTH VOP on the PPC to not overwrite the argument if the arg is negative. --- diff --git a/src/compiler/ppc/arith.lisp b/src/compiler/ppc/arith.lisp index c633a13..5a20c34 100644 --- a/src/compiler/ppc/arith.lisp +++ b/src/compiler/ppc/arith.lisp @@ -606,15 +606,13 @@ (inst srawi result number amount)) (inst slwi result number amount))))))) - - (define-vop (signed-byte-32-len) (:translate integer-length) (:note "inline (signed-byte 32) integer-length") (:policy :fast-safe) (:args (arg :scs (signed-reg))) (:arg-types signed-num) - (:results (res :scs (unsigned-reg))) + (:results (res :scs (unsigned-reg) :from :load)) (:result-types unsigned-num) (:generator 6 ; (integer-length arg) = (- 32 (cntlz (if (>= arg 0) arg (lognot arg))))