X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fgeneric%2Fvm-typetran.lisp;h=6c42ff02b583c654d4e63cc5bdf4dcd227ca9ba8;hb=7f579b076a1fc54587538ead07e506e7f06f3fe8;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..6c42ff0 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) (*))) @@ -104,6 +104,8 @@ (define-type-predicate unsigned-byte-64-p (unsigned-byte 64)) #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) (define-type-predicate signed-byte-64-p (signed-byte 64)) +#!+sb-simd-pack +(define-type-predicate simd-pack-p simd-pack) (define-type-predicate vector-nil-p (vector nil)) (define-type-predicate weak-pointer-p weak-pointer) (define-type-predicate code-component-p code-component)