1.0.3.37: Oops, fix bad argument types in the new x86-64 modular arithmetic VOPs
authorJuho Snellman <jsnell@iki.fi>
Thu, 8 Mar 2007 18:09:32 +0000 (18:09 +0000)
committerJuho Snellman <jsnell@iki.fi>
Thu, 8 Mar 2007 18:09:32 +0000 (18:09 +0000)
src/compiler/x86-64/arith.lisp
tests/compiler.pure.lisp
version.lisp-expr

index 37cc2a2..7ea7d06 100644 (file)
                                         (sc-is r signed-stack))
                                     (location= x r)))))
      (:info y)
-     (:arg-types untagged-num (:constant (or (unsigned-byte 64) (signed-byte 64))))
+     (:arg-types untagged-num (:constant (or (unsigned-byte 31) (signed-byte 32))))
      (:results (r :scs (unsigned-reg signed-reg) :from (:argument 0)
                   :load-if (not (and (or (sc-is x unsigned-stack)
                                          (sc-is x signed-stack))
index 7952ae1..9167b6b 100644 (file)
 ;;;
 ;;; Bug reported by Kaersten Poeck on sbcl-devel 20061023.
 (compile nil '(lambda () (let* () (declare (values list)))))
+
+
+;;; test for some problems with too large immediates in x86-64 modular
+;;; arithmetic vops
+(compile nil '(lambda (x) (declare (fixnum x))
+               (logand most-positive-fixnum (logxor x most-positive-fixnum))))
+
+(compile nil '(lambda (x) (declare (fixnum x))
+               (logand most-positive-fixnum (+ x most-positive-fixnum))))
+
+(compile nil '(lambda (x) (declare (fixnum x))
+               (logand most-positive-fixnum (* x most-positive-fixnum))))
index dca2735..d1da959 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.3.36"
+"1.0.3.37"