- Update to trunk
[reactos.git] / lib / sdk / crt / mem / i386 / memcpy_asm.s
index 36a1a07..e69de29 100644 (file)
@@ -1,114 +0,0 @@
-/*
- * void *memcpy (void *to, const void *from, size_t count)
- *
- * NOTE: This code is a duplicate of memmove function from memmove_asm.s
- */
-
-.globl _memcpy
-
-_memcpy:
-       push    %ebp
-       mov     %esp,%ebp
-       
-       push    %esi
-       push    %edi
-       
-       mov     8(%ebp),%edi
-       mov     12(%ebp),%esi
-       mov     16(%ebp),%ecx
-       
-       cmp     %esi,%edi
-       jbe     .CopyUp
-       mov     %ecx,%eax
-       add     %esi,%eax
-       cmp     %eax,%edi
-       jb      .CopyDown
-       
-.CopyUp:       
-       cld
-       
-       cmp     $16,%ecx
-       jb      .L1
-       mov     %ecx,%edx
-       test    $3,%edi
-       je      .L2
-/*
- * Make the destination dword aligned
- */
-        mov    %edi,%ecx
-        and    $3,%ecx
-        sub    $5,%ecx
-        not    %ecx
-        sub    %ecx,%edx
-        rep    movsb
-        mov    %edx,%ecx       
-.L2:
-       shr     $2,%ecx
-       rep     movsl
-       mov     %edx,%ecx
-       and     $3,%ecx
-.L1:   
-       test    %ecx,%ecx
-       je      .L3
-       rep     movsb
-.L3:
-       mov     8(%ebp),%eax
-       pop     %edi
-       pop     %esi
-       leave
-       ret
-
-.CopyDown:
-        std
-        
-       add     %ecx,%edi
-       add     %ecx,%esi
-       
-       cmp     $16,%ecx
-       jb      .L4
-        mov    %ecx,%edx
-       test    $3,%edi
-       je      .L5
-       
-/*
- * Make the destination dword aligned
- */
-       mov     %edi,%ecx
-       and     $3,%ecx
-       sub     %ecx,%edx
-       dec     %esi
-       dec     %edi
-       rep     movsb
-       mov     %edx,%ecx
-       
-       sub     $3,%esi
-       sub     $3,%edi
-.L6:   
-       shr     $2,%ecx
-       rep     movsl
-       mov     %edx,%ecx
-       and     $3,%ecx
-       je      .L7
-       add     $3,%esi
-       add     $3,%edi
-.L8:   
-       rep     movsb
-.L7:
-       cld
-       mov     8(%ebp),%eax
-       pop     %edi
-       pop     %esi
-       leave
-       ret
-.L5:
-       sub     $4,%edi
-       sub     $4,%esi
-       jmp     .L6
-               
-.L4:
-       test    %ecx,%ecx
-       je      .L7     
-       dec     %esi
-       dec     %edi
-       jmp     .L8
-