(:result-types ,element-type)))))
(def-data-vector-frobs simple-base-string byte-index
character character-reg)
+ #!+sb-unicode
+ (def-data-vector-frobs simple-character-string word-index
+ character character-reg)
(def-data-vector-frobs simple-vector word-index
* descriptor-reg any-reg)
-
(def-data-vector-frobs simple-array-unsigned-byte-7 byte-index
positive-fixnum unsigned-reg)
(def-data-vector-frobs simple-array-unsigned-byte-8 byte-index
(:result-types unsigned-num)
(:variant 0 other-pointer-lowtag))
+(define-vop (vector-raw-bits word-index-ref)
+ (:note "vector-raw-bits VOP")
+ (:translate %vector-raw-bits)
+ (:results (value :scs (unsigned-reg)))
+ (:result-types unsigned-num)
+ (:variant vector-data-offset other-pointer-lowtag))
+(define-vop (set-vector-raw-bits word-index-set)
+ (:note "setf vector-raw-bits VOP")
+ (:translate %set-vector-raw-bits)
+ (:args (object :scs (descriptor-reg))
+ (index :scs (any-reg zero immediate))
+ (value :scs (unsigned-reg)))
+ (:arg-types * positive-fixnum unsigned-num)
+ (:results (result :scs (unsigned-reg)))
+ (:result-types unsigned-num)
+ (:variant vector-data-offset other-pointer-lowtag))
\f
;;;; Misc. Array VOPs.