(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)
(simple-unboxed-array (*)) index index)
null
())
+
+;;; (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)
+ null
+ ())
\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 %make-funcallable-instance (index layout) function
(unsafe))
-;;; FIXME/REMOVEME: MNA patched these like this, but I don't
-;;; understand why, so I mutated them back to see what goes wrong.
-;;;-(defknown %funcallable-instance-info (function index) t (flushable))
-;;;-(defknown %set-funcallable-instance-info (function index t) t (unsafe))
-;;;+(defknown %funcallable-instance-info ((or function cons) index) t (flushable))
-;;;+(defknown %set-funcallable-instance-info ((or function cons) index t) t (unsafe))
-;;;
(defknown %funcallable-instance-info (function index) t (flushable))
(defknown %set-funcallable-instance-info (function index t) t (unsafe))
\f
;;;; mutator accessors
(defknown mutator-self () system-area-pointer (flushable movable))
+
+(defknown %data-vector-and-index (array index)
+ (values (simple-array * (*)) index)
+ (foldable flushable))