1.0.32.12: Fix slot-value on specialized parameters in SVUC methods
[sbcl.git] / src / compiler / generic / vm-typetran.lisp
index 8446c0e..ae7d8e6 100644 (file)
 #!+sb-unicode (define-type-predicate simple-character-string-p
                   (simple-array character (*)))
 (define-type-predicate system-area-pointer-p system-area-pointer)
+#!+#.(cl:if (cl:= 32 sb!vm:n-word-bits) '(and) '(or))
 (define-type-predicate unsigned-byte-32-p (unsigned-byte 32))
+#!+#.(cl:if (cl:= 32 sb!vm:n-word-bits) '(and) '(or))
 (define-type-predicate signed-byte-32-p (signed-byte 32))
-(define-type-predicate vector-t-p (vector t))
+#!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or))
+(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))
 (define-type-predicate vector-nil-p (vector nil))
 (define-type-predicate weak-pointer-p weak-pointer)
 (define-type-predicate code-component-p code-component)
 (define-type-predicate lra-p lra)
 (define-type-predicate fdefn-p fdefn)
-
+(macrolet
+    ((def ()
+       `(progn ,@(loop for (name spec) in *vector-without-complex-typecode-infos*
+                       collect `(define-type-predicate ,name (vector ,spec))))))
+  (def))
 ;;; Unlike the un-%'ed versions, these are true type predicates,
 ;;; accepting any type object.
 (define-type-predicate %standard-char-p standard-char)