anchor.diff:           (sb-c:define-vop (,%memcpy-name)
              (:policy :fast-safe)
              (:translate ,%memcpy-name)
  -           (:args (dst       :scs (sb-vm::sap-reg))
  -                  (dst-index :scs (sb-vm::any-reg))
  -                  (src       :scs (sb-vm::sap-reg))
  -                  (src-index :scs (sb-vm::any-reg))
  +           (:args (dst       :scs (sb-vm::sap-reg)      #-x86 :target #-x86 rsi)
  +                  (src       :scs (sb-vm::sap-reg)      #-x86 :target #-x86 rdi)
                     (n-words   :scs (sb-vm::unsigned-reg) #-x86 :target #-x86 rcx))
  -           (:info dst-scale dst-offset src-scale src-offset)
  -           (:arg-types sb-sys:system-area-pointer sb-vm::tagged-num
  -                       sb-sys:system-area-pointer sb-vm::tagged-num
  -                       sb-vm::unsigned-num
  -                       (:constant x86-fixnum-scale)
  -                       (:constant (signed-byte 32))
  -                       (:constant x86-fixnum-scale)
  -                       (:constant (signed-byte 32)))
  +           (:arg-types sb-sys:system-area-pointer
  +                       sb-sys:system-area-pointer
  +                       sb-vm::unsigned-num)
   
              #-x86 (:temporary (:sc sb-vm::unsigned-reg :offset sb-vm::rcx-offset) rcx)
              #-x86 (:temporary (:sc sb-vm::sap-reg      :offset sb-vm::rsi-offset) rsi)
  
positive.code:                (check-x86-fixnum-addressing dst-index dst-scale dst-offset)
               (multiple-value-bind (src-index src-scale src-offset)
                   (check-x86-fixnum-addressing src-index src-scale src-offset)
                 (list ',%memcpy-name dst dst-index src src-index n-words
                       dst-scale dst-offset src-scale src-offset))))))))
  
  
  (define-fast-memcpy :memcpy-name fast-memcpy/4 :type (unsigned-byte 32) :size :dword)
  
negative.code:                 (sb-assem:inst push rsi)
                  (sb-assem:inst push rdi)
                  (check-location-not-member dst       rsi)
                  (check-location-not-member n-words   rsi rdi))
  
                (sb-c::move rsi src)
                (sb-c::move rdi dst)
                (sb-c::move rcx n-words)
                ;; (sb-assem:inst std) ; not needed
                (sb-assem:inst rep)
  