0.8.3.55:
[sbcl.git] / src / compiler / x86 / array.lisp
index 6d9d9a6..f8c3c70 100644 (file)
   (:args (object :scs (descriptor-reg))
         (index :scs (unsigned-reg)))
   (:arg-types simple-base-string positive-fixnum)
-  (:temporary (:sc unsigned-reg ; byte-reg
-                  :offset eax-offset ; al-offset
-                  :target value
-                  :from (:eval 0) :to (:result 0))
-             eax)
-  (:ignore eax)
   (:results (value :scs (base-char-reg)))
   (:result-types base-char)
   (:generator 5
-    (inst mov al-tn
+    (inst mov value
          (make-ea :byte :base object :index index :scale 1
                   :disp (- (* vector-data-offset n-word-bytes)
-                           other-pointer-lowtag)))
-    (move value al-tn)))
+                           other-pointer-lowtag)))))
 
 (define-vop (data-vector-ref-c/simple-base-string)
   (:translate data-vector-ref)
   (:args (object :scs (descriptor-reg)))
   (:info index)
   (:arg-types simple-base-string (:constant (signed-byte 30)))
-  (:temporary (:sc unsigned-reg :offset eax-offset :target value
-                  :from (:eval 0) :to (:result 0))
-             eax)
-  (:ignore eax)
   (:results (value :scs (base-char-reg)))
   (:result-types base-char)
   (:generator 4
-    (inst mov al-tn
+    (inst mov value
          (make-ea :byte :base object
                   :disp (- (+ (* vector-data-offset n-word-bytes) index)
-                           other-pointer-lowtag)))
-    (move value al-tn)))
+                           other-pointer-lowtag)))))
 
 (define-vop (data-vector-set/simple-base-string)
   (:translate data-vector-set)
   (:policy :fast-safe)
   (:args (object :scs (descriptor-reg) :to (:eval 0))
         (index :scs (unsigned-reg) :to (:eval 0))
-        (value :scs (base-char-reg)))
+        (value :scs (base-char-reg) :target result))
   (:arg-types simple-base-string positive-fixnum base-char)
   (:results (result :scs (base-char-reg)))
   (:result-types base-char)