1.0.5.9: experimental semi-synchronous deadlines
[sbcl.git] / src / compiler / x86-64 / array.lisp
index be4823d..ad8f2a5 100644 (file)
       signed-num signed-reg)
   (def-full-data-vector-frobs simple-array-unsigned-byte-63 unsigned-num
     unsigned-reg))
+
+(define-full-compare-and-swap simple-vector-compare-and-swap
+    simple-vector vector-data-offset other-pointer-lowtag
+    (descriptor-reg any-reg) *
+    %simple-vector-compare-and-swap)
 \f
 ;;;; integer vectors whose elements are smaller than a byte, i.e.,
 ;;;; bit, 2-bit, and 4-bit vectors
              (unsigned-reg
               (inst or old value)))
            (inst rol old :cl)
-           (mov (make-ea :qword :base object :index word-index
-                          :scale n-word-bytes
-                          :disp (- (* vector-data-offset n-word-bytes)
-                                   other-pointer-lowtag))
-                old)
+           (inst mov (make-ea :qword :base object :index word-index
+                              :scale n-word-bytes
+                              :disp (- (* vector-data-offset n-word-bytes)
+                                       other-pointer-lowtag))
+                 old)
            (sc-case value
              (immediate
               (inst mov result (tn-value value)))