0.8.5.39:
authorChristophe Rhodes <csr21@cam.ac.uk>
Sat, 15 Nov 2003 16:12:54 +0000 (16:12 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Sat, 15 Nov 2003 16:12:54 +0000 (16:12 +0000)
Fix modular ASH bug on PPC

NEWS
src/compiler/ppc/arith.lisp
version.lisp-expr

diff --git a/NEWS b/NEWS
index 884d56b..b821401 100644 (file)
--- 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.
index 336033d..fd098de 100644 (file)
     (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)
index 223a313..04d36c9 100644 (file)
@@ -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"