]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/BaseMemoryLibSse2/x64/CopyMem.asm
Adding OldMdePkg directory - prior to the move of the content of MdePkg, also updatin...
[mirror_edk2.git] / MdePkg / Library / BaseMemoryLibSse2 / x64 / CopyMem.asm
index 955cd25f3651ba07009fe25e7e1aefb12bf71202..03ffe0c00fbd75c878013c6f5ee8053abaea1a39 100644 (file)
 \r
 ;------------------------------------------------------------------------------\r
 ;  VOID *\r
-;  _mem_CopyMem (\r
+;  EFIAPI\r
+;  InternalMemCopyMem (\r
 ;    IN VOID   *Destination,\r
 ;    IN VOID   *Source,\r
 ;    IN UINTN  Count\r
-;    )\r
+;    );\r
 ;------------------------------------------------------------------------------\r
 InternalMemCopyMem  PROC    USES    rsi rdi\r
     mov     rsi, rdx                    ; rsi <- Source\r
     mov     rdi, rcx                    ; rdi <- Destination\r
-    lea     r9, [rdi + r8 - 1]          ; r9 <- Last byte of Destination\r
+    lea     r9, [rsi + r8 - 1]          ; r9 <- Last byte of Source\r
     cmp     rsi, rdi\r
     mov     rax, rdi                    ; rax <- Destination as return value\r
     jae     @F                          ; Copy forward if Source > Destination\r
-    cmp     r9, rsi                     ; Overlapped?\r
+    cmp     r9, rdi                     ; Overlapped?\r
     jae     @CopyBackward               ; Copy backward if overlapped\r
 @@:\r
     xor     rcx, rcx\r
@@ -65,8 +66,8 @@ InternalMemCopyMem  PROC    USES    rsi rdi
     movdqa  xmm0, [rsp + 18h]           ; restore xmm0\r
     jmp     @CopyBytes                  ; copy remaining bytes\r
 @CopyBackward:\r
-    mov     rdi, r9                     ; rdi <- Last byte of Destination\r
-    lea     rsi, [rsi + r8 - 1]         ; rsi <- Last byte of Source\r
+    mov     rsi, r9                     ; rsi <- Last byte of Source\r
+    lea     rdi, [rdi + r8 - 1]         ; rdi <- Last byte of Destination\r
     std\r
 @CopyBytes:\r
     mov     rcx, r8\r