X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fx86-64%2Farray.lisp;h=8d2a8c18201c52d4a81af6616bd99ea99751da94;hb=776a2f1275624352bbba37b03dabea03ec13a9e5;hp=2c6530c165bcd20fb4b28daa0710dd68d8264aa0;hpb=906ecd4ef2d10aca23e1081f03c13fe2f932ed89;p=sbcl.git diff --git a/src/compiler/x86-64/array.lisp b/src/compiler/x86-64/array.lisp index 2c6530c..8d2a8c1 100644 --- a/src/compiler/x86-64/array.lisp +++ b/src/compiler/x86-64/array.lisp @@ -385,7 +385,7 @@ (: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)))) @@ -706,7 +706,7 @@ (: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 @@ -730,7 +730,7 @@ (: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 @@ -945,6 +945,7 @@ 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))