0.8.3.90:
authorChristophe Rhodes <csr21@cam.ac.uk>
Wed, 24 Sep 2003 11:06:27 +0000 (11:06 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Wed, 24 Sep 2003 11:06:27 +0000 (11:06 +0000)
Alpha build fix
... write a slightly more general PREPARE-ARGUMENT function for
modular arithmetic;
... as discussed on #lisp IRC 2003-09-24, post-0.8.4 we can optimize
common cases on platforms where register width and
bignum-element-width are the same.

src/code/numbers.lisp
version.lisp-expr

index 283cd4a..5522134 100644 (file)
 #.
 (collect ((forms))
   (flet ((definition (name lambda-list width pattern)
-           (assert (sb!xc:subtypep `(unsigned-byte ,width)
-                                   'bignum-element-type))
            `(defun ,name ,lambda-list
               (flet ((prepare-argument (x)
                        (declare (integer x))
                        (etypecase x
                          ((unsigned-byte ,width) x)
                          (fixnum (logand x ,pattern))
-                         (bignum (logand (%bignum-ref x 0) ,pattern)))))
+                         (bignum (logand x ,pattern)))))
                 (,name ,@(loop for arg in lambda-list
                                collect `(prepare-argument ,arg)))))))
     (loop for infos being each hash-value of sb!c::*modular-funs*
index 9e2601e..47d55fc 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.3.89"
+"0.8.3.90"