\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 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))