]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkCompatibilityPkg/Foundation/Library/CompilerStub/X64/memsetSSE2.asm
EdkCompatibilityPkg: Remove EdkCompatibilityPkg
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Library / CompilerStub / X64 / memsetSSE2.asm
diff --git a/EdkCompatibilityPkg/Foundation/Library/CompilerStub/X64/memsetSSE2.asm b/EdkCompatibilityPkg/Foundation/Library/CompilerStub/X64/memsetSSE2.asm
deleted file mode 100644 (file)
index 0ba72d6..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-;------------------------------------------------------------------------------\r
-;\r
-; Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
-; This program and the accompanying materials\r
-; are licensed and made available under the terms and conditions of the BSD License\r
-; which accompanies this distribution.  The full text of the license may be found at\r
-; http://opensource.org/licenses/bsd-license.php\r
-;\r
-; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-;\r
-; Module Name:\r
-;\r
-;   SetMem.asm\r
-;\r
-; Abstract:\r
-;\r
-;   memset function\r
-;\r
-; Notes:\r
-;\r
-;------------------------------------------------------------------------------\r
-\r
-    .code\r
-\r
-;------------------------------------------------------------------------------\r
-; VOID *\r
-; memset (\r
-;   OUT     VOID                      *Buffer,    --> rcx\r
-;   IN      UINT8                     Value,      --> rdx\r
-;   IN      UINTN                     Length      --> r8\r
-;   );\r
-;------------------------------------------------------------------------------\r
-memset   PROC    USES    rdi\r
-    mov     rax, rcx    \r
-    cmp     r8, 0                       ; if Size == 0, do nothing\r
-    je      @SetDone                    \r
-    mov     rax, rdx                    ; rdx <-> r8\r
-    mov     rdx, r8                     ; rdx <- Length\r
-    mov     r8, rax                     ; r8  <- Value\r
-    \r
-    mov     rdi, rcx                    ; rdi <- Buffer\r
-    mov     al, r8b                     ; al <- Value\r
-    mov     r9, rdi                     ; r9 <- Buffer as return value\r
-    xor     rcx, rcx\r
-    sub     rcx, rdi\r
-    and     rcx, 15                     ; rcx + rdi aligns on 16-byte boundary\r
-    jz      @F\r
-    cmp     rcx, rdx\r
-    cmova   rcx, rdx\r
-    sub     rdx, rcx\r
-    rep     stosb\r
-@@:\r
-    mov     rcx, rdx\r
-    and     rdx, 15\r
-    shr     rcx, 4\r
-    jz      @SetBytes\r
-    mov     ah, al                      ; ax <- Value repeats twice\r
-    movd    xmm0, eax                   ; xmm0[0..16] <- Value repeats twice\r
-    pshuflw xmm0, xmm0, 0               ; xmm0[0..63] <- Value repeats 8 times\r
-    movlhps xmm0, xmm0                  ; xmm0 <- Value repeats 16 times\r
-@@:\r
-    movdqa  [rdi], xmm0                 ; rdi should be 16-byte aligned\r
-    add     rdi, 16\r
-    loop    @B\r
-@SetBytes:\r
-    mov     ecx, edx                    ; high 32 bits of rcx are always zero\r
-    rep     stosb\r
-    mov     rax, r9                     ; rax <- Return value\r
-@SetDone:\r
-    ret\r
-memset   ENDP\r
-\r
-    END\r