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
(defknown vector-sap ((simple-unboxed-array (*))) system-area-pointer
(flushable))
-(defknown get-lowtag (t) (unsigned-byte #.sb!vm:lowtag-bits)
+(defknown lowtag-of (t) (unsigned-byte #.sb!vm:n-lowtag-bits)
(flushable movable))
-(defknown get-type (t) (unsigned-byte #.sb!vm:type-bits)
+(defknown widetag-of (t) (unsigned-byte #.sb!vm:n-widetag-bits)
(flushable movable))
(defknown (get-header-data get-closure-length) (t) (unsigned-byte 24)
(defknown stack-ref (system-area-pointer index) t (flushable))
(defknown %set-stack-ref (system-area-pointer index t) t (unsafe))
(defknown lra-code-header (t) t (movable flushable))
-(defknown function-code-header (t) t (movable flushable))
+(defknown fun-code-header (t) t (movable flushable))
(defknown make-lisp-obj ((unsigned-byte 32)) t (movable flushable))
(defknown get-lisp-obj-address (t) (unsigned-byte 32) (movable flushable))
-(defknown function-word-offset (function) index (movable flushable))
+(defknown fun-word-offset (function) index (movable flushable))
\f
;;;; 32-bit logical operations
(foldable flushable movable))
(defknown %fixnum-digit-with-correct-sign (bignum-element-type)
- (signed-byte #.sb!vm:word-bits)
+ (signed-byte #.sb!vm:n-word-bits)
(foldable flushable movable))
(defknown (%ashl %ashr %digit-logical-shift-right)
(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
+;;; bit-bashing routines in byte-sized copies as of sbcl-0.6.12.29:)
+(defknown %byte-blt
+ ((or (simple-unboxed-array (*)) system-area-pointer) index
+ (or (simple-unboxed-array (*)) system-area-pointer) index index)
+ (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:type-bits)
+(defknown fun-subtype (function) (unsigned-byte #.sb!vm:n-widetag-bits)
(flushable))
-(defknown ((setf function-subtype))
- ((unsigned-byte #.sb!vm:type-bits) function)
- (unsigned-byte #.sb!vm:type-bits)
+(defknown ((setf fun-subtype))
+ ((unsigned-byte #.sb!vm:n-widetag-bits) function)
+ (unsigned-byte #.sb!vm:n-widetag-bits)
())
(defknown make-fdefn (t) fdefn (flushable movable))
(defknown fdefn-p (t) boolean (movable foldable flushable))
(defknown fdefn-name (fdefn) t (foldable flushable))
-(defknown fdefn-function (fdefn) (or function null) (flushable))
-(defknown (setf fdefn-function) (function fdefn) t (unsafe))
+(defknown fdefn-fun (fdefn) (or function null) (flushable))
+(defknown (setf fdefn-fun) (function fdefn) t (unsafe))
(defknown fdefn-makunbound (fdefn) t ())
-(defknown %function-self (function) function
+(defknown %simple-fun-self (function) function
(flushable))
-(defknown (setf %function-self) (function function) function
+(defknown (setf %simple-fun-self) (function function) function
(unsafe))
-(defknown %closure-function (function) function
+(defknown %closure-fun (function) function
(flushable))
(defknown %closure-index-ref (function index) t
(defknown mutator-self () system-area-pointer (flushable movable))
-;;; MNA: open-coded-simple-array patch
-(defun %array-simp (a) a)
-(defknown %array-simp (simple-array) simple-array (movable foldable flushable))
-
-(defknown %array-data-vector (simple-array) simple-array (movable foldable flushable))
-(defknown %array-simp (simple-array) simple-array (movable foldable flushable))
+(defknown %data-vector-and-index (array index)
+ (values (simple-array * (*)) index)
+ (foldable flushable))