0.8.21.5:
[sbcl.git] / src / compiler / ppc / array.lisp
index 84d7a83..a7dece0 100644 (file)
        (:results (result :scs ,scs))
        (:result-types ,element-type)))))
   (def-data-vector-frobs simple-base-string byte-index
-    base-char base-char-reg)
+    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.