From: Christophe Rhodes Date: Sat, 15 Nov 2003 16:12:54 +0000 (+0000) Subject: 0.8.5.39: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=01a561adb042813a8464d07b3b03b08cbb8486e4;p=sbcl.git 0.8.5.39: Fix modular ASH bug on PPC --- diff --git a/NEWS b/NEWS index 884d56b..b821401 100644 --- a/NEWS +++ b/NEWS @@ -2186,8 +2186,8 @@ changes in sbcl-0.8.6 relative to sbcl-0.8.5: * fixed some bugs revealed by Paul Dietz' test suite: ** compiler failure in compiling LOGAND expressions including a constant 0. - ** implementation of ASH-MOD32 on X86 did not work for the shift - greater than 32. + ** implementation of ASH-MOD32 on X86 and PPC did not work for the + shift greater than 32. ** FLUSH-DEST did not mark blocks for type check regeneration. ** HANDLER-CASE failed to accept declarations in handler clauses in some circumstances. diff --git a/src/compiler/ppc/arith.lisp b/src/compiler/ppc/arith.lisp index 336033d..fd098de 100644 --- a/src/compiler/ppc/arith.lisp +++ b/src/compiler/ppc/arith.lisp @@ -371,6 +371,8 @@ (cond ((and (minusp amount) (< amount -31)) (move result zero-tn)) ((minusp amount) (inst srwi result number (- amount))) + ;; possible because this is used in the modular version too + ((> amount 31) (move result zero-tn)) (t (inst slwi result number amount))))) (define-vop (fast-ash/signed=>signed) diff --git a/version.lisp-expr b/version.lisp-expr index 223a313..04d36c9 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.5.38" +"0.8.5.39"