X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Ftypetran.lisp;h=8733eb43f5b486b27c17818fd33b5eb641d17c37;hb=9c510b74eca61bbcc2014dc2b1d02049dff50508;hp=6f25b7db11c8f7cbfdc58342264d09b1a74b936a;hpb=3031b264496451e796282d7309c2221d89ee62c1;p=sbcl.git diff --git a/src/compiler/typetran.lisp b/src/compiler/typetran.lisp index 6f25b7d..8733eb4 100644 --- a/src/compiler/typetran.lisp +++ b/src/compiler/typetran.lisp @@ -232,8 +232,14 @@ (once-only ((n-object object)) (ecase (numeric-type-complexp type) (:real - `(and (typep ,n-object ',base) - ,(transform-numeric-bound-test n-object type base))) + (if (and #!-(or x86 x86-64) ;; Not implemented elsewhere yet + nil + (eql (numeric-type-class type) 'integer) + (eql (numeric-type-low type) 0) + (fixnump (numeric-type-high type))) + `(fixnum-mod-p ,n-object ,(numeric-type-high type)) + `(and (typep ,n-object ',base) + ,(transform-numeric-bound-test n-object type base)))) (:complex `(and (complexp ,n-object) ,(once-only ((n-real `(realpart (truly-the complex ,n-object)))