0.8.0.78.vector-nil-string.1:
[sbcl.git] / src / compiler / generic / vm-fndb.lisp
index 2d50d2a..ed30375 100644 (file)
           complex-double-float-p #!+long-float complex-long-float-p
           complex-vector-p
           base-char-p %standard-char-p %instancep
+          base-string-p simple-base-string-p
           array-header-p
-          simple-array-p simple-array-unsigned-byte-2-p
+          simple-array-p simple-array-nil-p vector-nil-p
+          simple-array-unsigned-byte-2-p
           simple-array-unsigned-byte-4-p simple-array-unsigned-byte-8-p
           simple-array-unsigned-byte-16-p simple-array-unsigned-byte-32-p
           simple-array-signed-byte-8-p simple-array-signed-byte-16-p
 \f
 ;;;; bignum operations
 
-(defknown %allocate-bignum (bignum-index) bignum-widetag
+(defknown %allocate-bignum (bignum-index) bignum-type
   (flushable))
 
-(defknown %bignum-length (bignum-widetag) bignum-index
+(defknown %bignum-length (bignum-type) bignum-index
   (foldable flushable movable))
 
-(defknown %bignum-set-length (bignum-widetag bignum-index) bignum-widetag
+(defknown %bignum-set-length (bignum-type bignum-index) bignum-type
   (unsafe))
 
-(defknown %bignum-ref (bignum-widetag bignum-index) bignum-element-type
+(defknown %bignum-ref (bignum-type bignum-index) bignum-element-type
   (flushable))
 
-(defknown %bignum-set (bignum-widetag bignum-index bignum-element-type)
+(defknown %bignum-set (bignum-type bignum-index bignum-element-type)
   bignum-element-type
   (unsafe))
 
 
 (defknown copy-to-system-area
          ((simple-unboxed-array (*)) index system-area-pointer index index)
-  null
+  (values)
   ())
 
 (defknown copy-from-system-area
          (system-area-pointer index (simple-unboxed-array (*)) index index)
-  null
+  (values)
   ())
 
 (defknown system-area-copy
          (system-area-pointer index system-area-pointer index index)
-  null
+  (values)
   ())
 
 (defknown bit-bash-copy
          ((simple-unboxed-array (*)) index
           (simple-unboxed-array (*)) index index)
-  null
+  (values)
   ())
 
 ;;; (not really a bit-bashing routine, but starting to take over from
 (defknown %byte-blt
   ((or (simple-unboxed-array (*)) system-area-pointer) index
    (or (simple-unboxed-array (*)) system-area-pointer) index index)
-  null
+  (values)
   ())
 \f
 ;;;; code/function/fdefn object manipulation routines
 ;;;; mutator accessors
 
 (defknown mutator-self () system-area-pointer (flushable movable))
+
+(defknown %data-vector-and-index (array index)
+                                 (values (simple-array * (*)) index)
+                                (foldable flushable))