1.0.6.7: thread-safe UPDATE-DFUN
[sbcl.git] / src / compiler / x86-64 / array.lisp
index 2c6530c..8d2a8c1 100644 (file)
   (:generator 5
    (move dword-index index)
    (inst shr dword-index 1)
-   (inst movss (make-ea-for-float-ref object index offset 4) value)
+   (inst movss (make-ea-for-float-ref object dword-index offset 4) value)
    (unless (location= result value)
      (inst movss result value))))
 
       (:policy :fast-safe)
       (:args (object :scs (descriptor-reg) :to (:eval 0))
              (index :scs (unsigned-reg) :to (:eval 0))
-             (value :scs ,scs :target rax))
+             (value :scs ,scs ,@(unless 8-bit-tns-p '(:target rax))))
       (:info offset)
       (:arg-types ,ptype positive-fixnum
                   (:constant (constant-displacement other-pointer-lowtag
       (:translate data-vector-set-with-offset)
       (:policy :fast-safe)
       (:args (object :scs (descriptor-reg) :to (:eval 0))
-             (value :scs ,scs :target rax))
+             (value :scs ,scs ,@(unless 8-bit-tns-p '(:target rax))))
       (:info index offset)
       (:arg-types ,ptype (:constant low-index)
                   (:constant (constant-displacement other-pointer-lowtag
     unsigned-reg signed-reg)
   (define-data-vector-frobs simple-array-signed-byte-32 movsxd tagged-num
     signed-reg)
+  #!+sb-unicode
   (define-data-vector-frobs simple-character-string movzxd character
     character-reg))