- (let ((value-real (complex-double-reg-real-tn value))
- (result-real (complex-double-reg-real-tn result)))
- (inst movsd (make-ea-for-float-ref object index offset 16 :scale 2)
- value-real)
- (unless (location= value-real result-real)
- (inst movsd result-real value-real)))
- (let ((value-imag (complex-double-reg-imag-tn value))
- (result-imag (complex-double-reg-imag-tn result)))
- (inst movsd (make-ea-for-float-ref object index offset 16 :scale 2
- :complex-offset 8)
- value-imag)
- (unless (location= value-imag result-imag)
- (inst movsd result-imag value-imag)))))
-
-(define-vop (data-vector-set-c/simple-array-complex-double-float)
+ (inst movapd (make-ea-for-float-ref object index offset 16 :scale 2) value)
+ (move result value)))
+
+(define-vop (data-vector-set-c-with-offset/simple-array-complex-double-float)