(in-package "SB!VM")
\f
;;;; allocator for the array header
-
(define-vop (make-array-header)
(:policy :fast-safe)
(:translate make-array-header)
(inst bis alloc-tn other-pointer-lowtag result)
(storew header result 0 other-pointer-lowtag)
(inst addq alloc-tn bytes alloc-tn))))
-
-
\f
;;;; additional accessors and setters for the array header
(define-full-reffer %array-dimension *
(inst sll temp n-fixnum-tag-bits res)))
\f
;;;; bounds checking routine
-
(define-vop (check-bound)
(:translate %check-bound)
(:policy :fast-safe)
(def-partial-data-vector-frobs simple-base-string character :byte nil
character-reg)
+ #!+sb-unicode ; FIXME: what about when a word is 64 bits?
+ (def-full-data-vector-frobs simple-character-string character character-reg)
(def-partial-data-vector-frobs simple-array-unsigned-byte-7 positive-fixnum
:byte nil unsigned-reg signed-reg)