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-unsigned-byte-4-p simple-array-unsigned-byte-8-p
- simple-array-unsigned-byte-16-p simple-array-unsigned-byte-32-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-7-p
+ simple-array-unsigned-byte-8-p simple-array-unsigned-byte-15-p
+ simple-array-unsigned-byte-16-p simple-array-unsigned-byte-29-p
+ simple-array-unsigned-byte-31-p
+ simple-array-unsigned-byte-32-p
simple-array-signed-byte-8-p simple-array-signed-byte-16-p
simple-array-signed-byte-30-p simple-array-signed-byte-32-p
simple-array-single-float-p simple-array-double-float-p
(defknown %sxhash-simple-substring (simple-string index) index
(foldable flushable))
+(defknown symbol-hash (symbol) (integer 0 #.sb!xc:most-positive-fixnum)
+ (flushable movable))
+
+(defknown %set-symbol-hash (symbol (integer 0 #.sb!xc:most-positive-fixnum))
+ t (unsafe))
+
(defknown vector-length (vector) index (flushable))
(defknown vector-sap ((simple-unboxed-array (*))) system-area-pointer
(defknown set-header-data (t (unsigned-byte 24)) t
(unsafe))
+(defknown %array-dimension (t index) index
+ (flushable))
+(defknown %set-array-dimension (t index index) index
+ ())
+(defknown %array-rank (t) index
+ (flushable))
(defknown %make-instance (index) instance
(unsafe))
(foldable flushable))
(defknown %raw-ref-complex-double (raw-vector index) (complex double-float)
(foldable flushable))
-#!+long-float
-(defknown %raw-ref-complex-long (raw-vector index) (complex long-float)
- (foldable flushable))
+
(defknown %raw-set-complex-single (raw-vector index (complex single-float))
(complex single-float)
(unsafe))
(defknown %raw-set-complex-double (raw-vector index (complex double-float))
(complex double-float)
(unsafe))
-#!+long-float
-(defknown %raw-set-complex-long (raw-vector index (complex long-float))
- (complex long-float)
- (unsafe))
+
(defknown %raw-bits (t fixnum) (unsigned-byte 32)
(foldable flushable))
\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
(defknown code-header-ref (t index) t (flushable))
(defknown code-header-set (t index t) t ())
-(defknown function-subtype (function) (unsigned-byte #.sb!vm:n-widetag-bits)
+(defknown fun-subtype (function) (unsigned-byte #.sb!vm:n-widetag-bits)
(flushable))
-(defknown ((setf function-subtype))
+(defknown ((setf fun-subtype))
((unsigned-byte #.sb!vm:n-widetag-bits) function)
(unsigned-byte #.sb!vm:n-widetag-bits)
())
;;;; mutator accessors
(defknown mutator-self () system-area-pointer (flushable movable))
+
+(defknown %data-vector-and-index (array index)
+ (values (simple-array * (*)) index)
+ (foldable flushable))