1.0.8.43: Fix GCD on most-negative-fixnum on x86-64
authorJuho Snellman <jsnell@iki.fi>
Tue, 21 Aug 2007 05:12:33 +0000 (05:12 +0000)
committerJuho Snellman <jsnell@iki.fi>
Tue, 21 Aug 2007 05:12:33 +0000 (05:12 +0000)
         * Bogus type declarations.
         * Reported by Gregory Vanuxem on sbcl-devel.

package-data-list.lisp-expr
src/code/numbers.lisp
src/compiler/generic/vm-type.lisp
version.lisp-expr

index 0dbc4d0..bebbbf1 100644 (file)
@@ -2356,6 +2356,7 @@ structure representations"
                "SAP-POINTER-SLOT" "SAP-REG-SC-NUMBER" "SAP-SIZE"
                "SAP-STACK-SC-NUMBER" "SAP-WIDETAG"
                "SIGFPE-HANDLER" "SIGNED-REG-SC-NUMBER" "SIGNED-STACK-SC-NUMBER"
+               "SIGNED-WORD"
                "SIMPLE-ARRAY-COMPLEX-DOUBLE-FLOAT-WIDETAG"
                #!+long-float "SIMPLE-ARRAY-COMPLEX-LONG-FLOAT-WIDETAG"
                "SIMPLE-ARRAY-COMPLEX-SINGLE-FLOAT-WIDETAG"
index fe0ff5c..3f02be2 100644 (file)
@@ -1360,7 +1360,7 @@ the first."
          (number-dispatch ((u integer) (v integer))
            ((fixnum fixnum)
             (locally
-              (declare (optimize (speed 3) (safety 0)))
+                (declare (optimize (speed 3) (safety 0)))
               (do ((k 0 (1+ k))
                    (u (abs u) (ash u -1))
                    (v (abs v) (ash v -1)))
@@ -1376,11 +1376,11 @@ the first."
                        (setq temp (- u v))
                        (when (zerop temp)
                          (let ((res (ash u k)))
-                           (declare (type (signed-byte 31) res)
+                           (declare (type sb!vm:signed-word res)
                                     (optimize (inhibit-warnings 3)))
                            (return res))))))
-                (declare (type (mod 30) k)
-                         (type (signed-byte 31) u v)))))
+                (declare (type (mod #.sb!vm:n-word-bits) k)
+                         (type sb!vm:signed-word u v)))))
            ((bignum bignum)
             (bignum-gcd u v))
            ((bignum fixnum)
index c214fe8..4f7c4a7 100644 (file)
@@ -17,6 +17,8 @@
 ;;;; FIXME: I'm not sure where to put this. -- WHN 19990817
 
 (def!type sb!vm:word () `(unsigned-byte ,sb!vm:n-word-bits))
+(def!type sb!vm:signed-word () `(signed-byte ,sb!vm:n-word-bits))
+
 \f
 ;;;; implementation-dependent DEFTYPEs
 
index 8c6c05d..f774a42 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".)
-"1.0.8.42"
+"1.0.8.43"