anchor.diff:                 (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))))))))
  +               
  +               (list ',%memcpy-name
  +                     `(fast-sap+ ,dst ,dst-index :scale ,dst-scale :offset ,dst-offset)
  +                     `(fast-sap+ ,src ,src-index :scale ,src-scale :offset ,src-offset)
  +                     n-words))))))))
   
   
   (define-fast-memcpy :memcpy-name fast-memcpy/4 :type (unsigned-byte 32) :size :dword)
  
positive.code:          (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))
                    (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)))
  
             #-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)
  
negative.code: 
         (eval-always
           (defknown ,%memcpy-name
               (fast-sap fast-sap word)
               (values)
               (sb-c:always-translatable)))
  
  