Commit 89823a09 authored by Christophe Rhodes's avatar Christophe Rhodes
Browse files

0.8.3.90:

	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.
parent 603a4ab0
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -1358,15 +1358,13 @@
#.
(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*
+1 −1
Original line number Diff line number Diff line
@@ -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"