X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fgeneric%2Fvm-typetran.lisp;h=fbf173623c352b644a83c86de1596942434f2436;hb=ef0891e470ff35840def7a5717ede18a58266e76;hp=ae7d8e65bb42fd3d0e24d4fc087aacf0a923e9bb;hpb=d5b2c7d4ea394fe94bab07e4a1a9d6f4320b822a;p=sbcl.git diff --git a/src/compiler/generic/vm-typetran.lisp b/src/compiler/generic/vm-typetran.lisp index ae7d8e6..fbf1736 100644 --- a/src/compiler/generic/vm-typetran.lisp +++ b/src/compiler/generic/vm-typetran.lisp @@ -47,16 +47,16 @@ (simple-array (unsigned-byte 15) (*))) (define-type-predicate simple-array-unsigned-byte-16-p (simple-array (unsigned-byte 16) (*))) -#!+#.(cl:if (cl:= 32 sb!vm:n-word-bits) '(and) '(or)) -(define-type-predicate simple-array-unsigned-byte-29-p - (simple-array (unsigned-byte 29) (*))) + +(define-type-predicate simple-array-unsigned-fixnum-p + (simple-array + (unsigned-byte #.sb!vm:n-positive-fixnum-bits) (*))) + (define-type-predicate simple-array-unsigned-byte-31-p - (simple-array (unsigned-byte 31) (*))) + (simple-array (unsigned-byte 31) (*))) (define-type-predicate simple-array-unsigned-byte-32-p (simple-array (unsigned-byte 32) (*))) -#!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) -(define-type-predicate simple-array-unsigned-byte-60-p - (simple-array (unsigned-byte 60) (*))) + #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) (define-type-predicate simple-array-unsigned-byte-63-p (simple-array (unsigned-byte 63) (*))) @@ -67,14 +67,14 @@ (simple-array (signed-byte 8) (*))) (define-type-predicate simple-array-signed-byte-16-p (simple-array (signed-byte 16) (*))) -#!+#.(cl:if (cl:= 32 sb!vm:n-word-bits) '(and) '(or)) -(define-type-predicate simple-array-signed-byte-30-p - (simple-array (signed-byte 30) (*))) + +(define-type-predicate simple-array-fixnum-p + (simple-array (signed-byte #.sb!vm:n-fixnum-bits) + (*))) + (define-type-predicate simple-array-signed-byte-32-p - (simple-array (signed-byte 32) (*))) -#!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) -(define-type-predicate simple-array-signed-byte-61-p - (simple-array (signed-byte 61) (*))) + (simple-array (signed-byte 32) (*))) + #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) (define-type-predicate simple-array-signed-byte-64-p (simple-array (signed-byte 64) (*)))