]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Change name.
authorvanjeff <vanjeff@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 25 Sep 2008 03:13:50 +0000 (03:13 +0000)
committervanjeff <vanjeff@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 25 Sep 2008 03:13:50 +0000 (03:13 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5981 6f19259b-4bc3-4df7-8a09-765794883524

22 files changed:
MdePkg/Library/BaseMemoryLibOptDxe/X64/CompareMem.asm [new file with mode: 0644]
MdePkg/Library/BaseMemoryLibOptDxe/X64/CopyMem.asm [new file with mode: 0644]
MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem16.asm [new file with mode: 0644]
MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem32.asm [new file with mode: 0644]
MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem64.asm [new file with mode: 0644]
MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem8.asm [new file with mode: 0644]
MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem.asm [new file with mode: 0644]
MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem16.asm [new file with mode: 0644]
MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem32.asm [new file with mode: 0644]
MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem64.asm [new file with mode: 0644]
MdePkg/Library/BaseMemoryLibOptDxe/X64/ZeroMem.asm [new file with mode: 0644]
MdePkg/Library/BaseMemoryLibOptDxe/x64/CompareMem.asm [deleted file]
MdePkg/Library/BaseMemoryLibOptDxe/x64/CopyMem.asm [deleted file]
MdePkg/Library/BaseMemoryLibOptDxe/x64/ScanMem16.asm [deleted file]
MdePkg/Library/BaseMemoryLibOptDxe/x64/ScanMem32.asm [deleted file]
MdePkg/Library/BaseMemoryLibOptDxe/x64/ScanMem64.asm [deleted file]
MdePkg/Library/BaseMemoryLibOptDxe/x64/ScanMem8.asm [deleted file]
MdePkg/Library/BaseMemoryLibOptDxe/x64/SetMem.asm [deleted file]
MdePkg/Library/BaseMemoryLibOptDxe/x64/SetMem16.asm [deleted file]
MdePkg/Library/BaseMemoryLibOptDxe/x64/SetMem32.asm [deleted file]
MdePkg/Library/BaseMemoryLibOptDxe/x64/SetMem64.asm [deleted file]
MdePkg/Library/BaseMemoryLibOptDxe/x64/ZeroMem.asm [deleted file]

diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/X64/CompareMem.asm b/MdePkg/Library/BaseMemoryLibOptDxe/X64/CompareMem.asm
new file mode 100644 (file)
index 0000000..7446a05
--- /dev/null
@@ -0,0 +1,54 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. 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
+;   CompareMem.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   CompareMem function\r
+;\r
+; Notes:\r
+;\r
+;   The following BaseMemoryLib instances contain the same copy of this file:\r
+;\r
+;       BaseMemoryLibRepStr\r
+;       BaseMemoryLibMmx\r
+;       BaseMemoryLibSse2\r
+;       BaseMemoryLibOptDxe\r
+;       BaseMemoryLibOptPei\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; INTN\r
+; EFIAPI\r
+; InternalMemCompareMem (\r
+;   IN      CONST VOID                *DestinationBuffer,\r
+;   IN      CONST VOID                *SourceBuffer,\r
+;   IN      UINTN                     Length\r
+;   );\r
+;------------------------------------------------------------------------------\r
+InternalMemCompareMem   PROC    USES    rsi rdi\r
+    mov     rsi, rcx\r
+    mov     rdi, rdx\r
+    mov     rcx, r8\r
+    repe    cmpsb\r
+    movzx   rax, byte ptr [rsi - 1]\r
+    movzx   rdx, byte ptr [rdi - 1]\r
+    sub     rax, rdx\r
+    ret\r
+InternalMemCompareMem   ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/X64/CopyMem.asm b/MdePkg/Library/BaseMemoryLibOptDxe/X64/CopyMem.asm
new file mode 100644 (file)
index 0000000..03ffe0c
--- /dev/null
@@ -0,0 +1,79 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. 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
+;   CopyMem.asm\r
+;\r
+; Abstract:\r
+;\r
+;   CopyMem function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+;  VOID *\r
+;  EFIAPI\r
+;  InternalMemCopyMem (\r
+;    IN VOID   *Destination,\r
+;    IN VOID   *Source,\r
+;    IN UINTN  Count\r
+;    );\r
+;------------------------------------------------------------------------------\r
+InternalMemCopyMem  PROC    USES    rsi rdi\r
+    mov     rsi, rdx                    ; rsi <- Source\r
+    mov     rdi, rcx                    ; rdi <- 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, rdi                     ; Overlapped?\r
+    jae     @CopyBackward               ; Copy backward if overlapped\r
+@@:\r
+    xor     rcx, rcx\r
+    sub     rcx, rdi                    ; rcx <- -rdi\r
+    and     rcx, 15                     ; rcx + rsi should be 16 bytes aligned\r
+    jz      @F                          ; skip if rcx == 0\r
+    cmp     rcx, r8\r
+    cmova   rcx, r8\r
+    sub     r8, rcx\r
+    rep     movsb\r
+@@:\r
+    mov     rcx, r8\r
+    and     r8, 15\r
+    shr     rcx, 4                      ; rcx <- # of DQwords to copy\r
+    jz      @CopyBytes\r
+    movdqa  [rsp + 18h], xmm0           ; save xmm0 on stack\r
+@@:\r
+    movdqu  xmm0, [rsi]                 ; rsi may not be 16-byte aligned\r
+    movntdq [rdi], xmm0                 ; rdi should be 16-byte aligned\r
+    add     rsi, 16\r
+    add     rdi, 16\r
+    loop    @B\r
+    mfence\r
+    movdqa  xmm0, [rsp + 18h]           ; restore xmm0\r
+    jmp     @CopyBytes                  ; copy remaining bytes\r
+@CopyBackward:\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
+    rep     movsb\r
+    cld\r
+    ret\r
+InternalMemCopyMem  ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem16.asm b/MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem16.asm
new file mode 100644 (file)
index 0000000..0871a4b
--- /dev/null
@@ -0,0 +1,53 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. 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
+;   ScanMem16.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   ScanMem16 function\r
+;\r
+; Notes:\r
+;\r
+;   The following BaseMemoryLib instances contain the same copy of this file:\r
+;\r
+;       BaseMemoryLibRepStr\r
+;       BaseMemoryLibMmx\r
+;       BaseMemoryLibSse2\r
+;       BaseMemoryLibOptDxe\r
+;       BaseMemoryLibOptPei\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; CONST VOID *\r
+; EFIAPI\r
+; InternalMemScanMem16 (\r
+;   IN      CONST VOID                *Buffer,\r
+;   IN      UINTN                     Length,\r
+;   IN      UINT16                    Value\r
+;   );\r
+;------------------------------------------------------------------------------\r
+InternalMemScanMem16    PROC    USES    rdi\r
+    mov     rdi, rcx\r
+    mov     rax, r8\r
+    mov     rcx, rdx\r
+    repne   scasw\r
+    lea     rax, [rdi - 2]\r
+    cmovnz  rax, rcx\r
+    ret\r
+InternalMemScanMem16    ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem32.asm b/MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem32.asm
new file mode 100644 (file)
index 0000000..53a33ba
--- /dev/null
@@ -0,0 +1,53 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. 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
+;   ScanMem32.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   ScanMem32 function\r
+;\r
+; Notes:\r
+;\r
+;   The following BaseMemoryLib instances contain the same copy of this file:\r
+;\r
+;       BaseMemoryLibRepStr\r
+;       BaseMemoryLibMmx\r
+;       BaseMemoryLibSse2\r
+;       BaseMemoryLibOptDxe\r
+;       BaseMemoryLibOptPei\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; CONST VOID *\r
+; EFIAPI\r
+; InternalMemScanMem32 (\r
+;   IN      CONST VOID                *Buffer,\r
+;   IN      UINTN                     Length,\r
+;   IN      UINT32                    Value\r
+;   );\r
+;------------------------------------------------------------------------------\r
+InternalMemScanMem32    PROC    USES    rdi\r
+    mov     rdi, rcx\r
+    mov     rax, r8\r
+    mov     rcx, rdx\r
+    repne   scasd\r
+    lea     rax, [rdi - 4]\r
+    cmovnz  rax, rcx\r
+    ret\r
+InternalMemScanMem32    ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem64.asm b/MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem64.asm
new file mode 100644 (file)
index 0000000..71f85a1
--- /dev/null
@@ -0,0 +1,53 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. 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
+;   ScanMem64.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   ScanMem64 function\r
+;\r
+; Notes:\r
+;\r
+;   The following BaseMemoryLib instances contain the same copy of this file:\r
+;\r
+;       BaseMemoryLibRepStr\r
+;       BaseMemoryLibMmx\r
+;       BaseMemoryLibSse2\r
+;       BaseMemoryLibOptDxe\r
+;       BaseMemoryLibOptPei\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; CONST VOID *\r
+; EFIAPI\r
+; InternalMemScanMem64 (\r
+;   IN      CONST VOID                *Buffer,\r
+;   IN      UINTN                     Length,\r
+;   IN      UINT64                    Value\r
+;   );\r
+;------------------------------------------------------------------------------\r
+InternalMemScanMem64    PROC    USES    rdi\r
+    mov     rdi, rcx\r
+    mov     rax, r8\r
+    mov     rcx, rdx\r
+    repne   scasq\r
+    lea     rax, [rdi - 8]\r
+    cmovnz  rax, rcx\r
+    ret\r
+InternalMemScanMem64    ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem8.asm b/MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem8.asm
new file mode 100644 (file)
index 0000000..39adb01
--- /dev/null
@@ -0,0 +1,53 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. 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
+;   ScanMem8.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   ScanMem8 function\r
+;\r
+; Notes:\r
+;\r
+;   The following BaseMemoryLib instances contain the same copy of this file:\r
+;\r
+;       BaseMemoryLibRepStr\r
+;       BaseMemoryLibMmx\r
+;       BaseMemoryLibSse2\r
+;       BaseMemoryLibOptDxe\r
+;       BaseMemoryLibOptPei\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; CONST VOID *\r
+; EFIAPI\r
+; InternalMemScanMem8 (\r
+;   IN      CONST VOID                *Buffer,\r
+;   IN      UINTN                     Length,\r
+;   IN      UINT8                     Value\r
+;   );\r
+;------------------------------------------------------------------------------\r
+InternalMemScanMem8 PROC    USES    rdi\r
+    mov     rdi, rcx\r
+    mov     rcx, rdx\r
+    mov     rax, r8\r
+    repne   scasb\r
+    lea     rax, [rdi - 1]\r
+    cmovnz  rax, rcx                    ; set rax to 0 if not found\r
+    ret\r
+InternalMemScanMem8 ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem.asm b/MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem.asm
new file mode 100644 (file)
index 0000000..c94b6b5
--- /dev/null
@@ -0,0 +1,58 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. 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
+;   SetMem function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+;  VOID *\r
+;  EFIAPI\r
+;  InternalMemSetMem (\r
+;    IN VOID   *Buffer,\r
+;    IN UINTN  Count,\r
+;    IN UINT8  Value\r
+;    )\r
+;------------------------------------------------------------------------------\r
+InternalMemSetMem   PROC    USES    rdi rbx\r
+    push    rcx       ; push Buffer\r
+    mov     rax, r8   ; rax = Value\r
+    and     rax, 0ffh ; rax = lower 8 bits of r8, upper 56 bits are 0\r
+    mov     ah,  al   ; ah  = al\r
+    mov     bx,  ax   ; bx  = ax\r
+    shl     rax, 10h  ; rax = ax << 16\r
+    mov     ax,  bx   ; ax  = bx\r
+    mov     rbx, rax  ; ebx = eax\r
+    shl     rax, 20h  ; rax = rax << 32\r
+    or      rax, rbx  ; eax = ebx\r
+    mov     rdi, rcx  ; rdi = Buffer\r
+    mov     rcx, rdx  ; rcx = Count\r
+    shr     rcx, 3    ; rcx = rcx / 8\r
+    cld\r
+    rep     stosq      \r
+    mov     rcx, rdx  ; rcx = rdx\r
+    and     rcx, 7    ; rcx = rcx & 7\r
+    rep     stosb      \r
+    pop     rax       ; rax = Buffer\r
+    ret\r
+InternalMemSetMem   ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem16.asm b/MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem16.asm
new file mode 100644 (file)
index 0000000..68ff488
--- /dev/null
@@ -0,0 +1,45 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. 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
+;   SetMem16.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   SetMem16 function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+;  VOID *\r
+;  EFIAPI\r
+;  InternalMemSetMem16 (\r
+;    IN VOID   *Buffer,\r
+;    IN UINTN  Count,\r
+;    IN UINT16 Value\r
+;    )\r
+;------------------------------------------------------------------------------\r
+InternalMemSetMem16 PROC    USES    rdi\r
+    push    rcx\r
+    mov     rdi, rcx\r
+    mov     rax, r8\r
+    xchg    rcx, rdx\r
+    rep     stosw\r
+    pop     rax\r
+    ret\r
+InternalMemSetMem16 ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem32.asm b/MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem32.asm
new file mode 100644 (file)
index 0000000..c81c81f
--- /dev/null
@@ -0,0 +1,45 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. 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
+;   SetMem32.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   SetMem32 function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+;  VOID *\r
+;  EFIAPI\r
+;  InternalMemSetMem32 (\r
+;    IN VOID   *Buffer,\r
+;    IN UINTN  Count,\r
+;    IN UINT32 Value\r
+;    );\r
+;------------------------------------------------------------------------------\r
+InternalMemSetMem32 PROC    USES    rdi\r
+    push    rcx\r
+    mov     rdi, rcx\r
+    mov     rax, r8\r
+    xchg    rcx, rdx\r
+    rep     stosd\r
+    pop     rax\r
+    ret\r
+InternalMemSetMem32 ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem64.asm b/MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem64.asm
new file mode 100644 (file)
index 0000000..282a86c
--- /dev/null
@@ -0,0 +1,44 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. 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
+;   SetMem64.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   SetMem64 function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+;  VOID *\r
+;  InternalMemSetMem64 (\r
+;    IN VOID   *Buffer,\r
+;    IN UINTN  Count,\r
+;    IN UINT64 Value\r
+;    )\r
+;------------------------------------------------------------------------------\r
+InternalMemSetMem64 PROC    USES    rdi\r
+    push    rcx\r
+    mov     rdi, rcx\r
+    mov     rax, r8\r
+    xchg    rcx, rdx\r
+    rep     stosq\r
+    pop     rax\r
+    ret\r
+InternalMemSetMem64 ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/X64/ZeroMem.asm b/MdePkg/Library/BaseMemoryLibOptDxe/X64/ZeroMem.asm
new file mode 100644 (file)
index 0000000..940864f
--- /dev/null
@@ -0,0 +1,48 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. 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
+;   ZeroMem.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   ZeroMem function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+;  VOID *\r
+;  InternalMemZeroMem (\r
+;    IN VOID   *Buffer,\r
+;    IN UINTN  Count\r
+;    );\r
+;------------------------------------------------------------------------------\r
+InternalMemZeroMem  PROC    USES    rdi\r
+    push    rcx       ; push Buffer\r
+    xor     rax, rax  ; rax = 0\r
+    mov     rdi, rcx  ; rdi = Buffer\r
+    mov     rcx, rdx  ; rcx = Count\r
+    shr     rcx, 3    ; rcx = rcx / 8\r
+    and     rdx, 7    ; rdx = rdx & 7\r
+    cld\r
+    rep     stosq\r
+    mov     rcx, rdx  ; rcx = rdx\r
+    rep     stosb\r
+    pop     rax       ; rax = Buffer\r
+    ret\r
+InternalMemZeroMem  ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/x64/CompareMem.asm b/MdePkg/Library/BaseMemoryLibOptDxe/x64/CompareMem.asm
deleted file mode 100644 (file)
index 7446a05..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-;------------------------------------------------------------------------------\r
-;\r
-; Copyright (c) 2006, Intel Corporation\r
-; All rights reserved. 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
-;   CompareMem.Asm\r
-;\r
-; Abstract:\r
-;\r
-;   CompareMem function\r
-;\r
-; Notes:\r
-;\r
-;   The following BaseMemoryLib instances contain the same copy of this file:\r
-;\r
-;       BaseMemoryLibRepStr\r
-;       BaseMemoryLibMmx\r
-;       BaseMemoryLibSse2\r
-;       BaseMemoryLibOptDxe\r
-;       BaseMemoryLibOptPei\r
-;\r
-;------------------------------------------------------------------------------\r
-\r
-    .code\r
-\r
-;------------------------------------------------------------------------------\r
-; INTN\r
-; EFIAPI\r
-; InternalMemCompareMem (\r
-;   IN      CONST VOID                *DestinationBuffer,\r
-;   IN      CONST VOID                *SourceBuffer,\r
-;   IN      UINTN                     Length\r
-;   );\r
-;------------------------------------------------------------------------------\r
-InternalMemCompareMem   PROC    USES    rsi rdi\r
-    mov     rsi, rcx\r
-    mov     rdi, rdx\r
-    mov     rcx, r8\r
-    repe    cmpsb\r
-    movzx   rax, byte ptr [rsi - 1]\r
-    movzx   rdx, byte ptr [rdi - 1]\r
-    sub     rax, rdx\r
-    ret\r
-InternalMemCompareMem   ENDP\r
-\r
-    END\r
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/x64/CopyMem.asm b/MdePkg/Library/BaseMemoryLibOptDxe/x64/CopyMem.asm
deleted file mode 100644 (file)
index 03ffe0c..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-;------------------------------------------------------------------------------\r
-;\r
-; Copyright (c) 2006, Intel Corporation\r
-; All rights reserved. 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
-;   CopyMem.asm\r
-;\r
-; Abstract:\r
-;\r
-;   CopyMem function\r
-;\r
-; Notes:\r
-;\r
-;------------------------------------------------------------------------------\r
-\r
-    .code\r
-\r
-;------------------------------------------------------------------------------\r
-;  VOID *\r
-;  EFIAPI\r
-;  InternalMemCopyMem (\r
-;    IN VOID   *Destination,\r
-;    IN VOID   *Source,\r
-;    IN UINTN  Count\r
-;    );\r
-;------------------------------------------------------------------------------\r
-InternalMemCopyMem  PROC    USES    rsi rdi\r
-    mov     rsi, rdx                    ; rsi <- Source\r
-    mov     rdi, rcx                    ; rdi <- 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, rdi                     ; Overlapped?\r
-    jae     @CopyBackward               ; Copy backward if overlapped\r
-@@:\r
-    xor     rcx, rcx\r
-    sub     rcx, rdi                    ; rcx <- -rdi\r
-    and     rcx, 15                     ; rcx + rsi should be 16 bytes aligned\r
-    jz      @F                          ; skip if rcx == 0\r
-    cmp     rcx, r8\r
-    cmova   rcx, r8\r
-    sub     r8, rcx\r
-    rep     movsb\r
-@@:\r
-    mov     rcx, r8\r
-    and     r8, 15\r
-    shr     rcx, 4                      ; rcx <- # of DQwords to copy\r
-    jz      @CopyBytes\r
-    movdqa  [rsp + 18h], xmm0           ; save xmm0 on stack\r
-@@:\r
-    movdqu  xmm0, [rsi]                 ; rsi may not be 16-byte aligned\r
-    movntdq [rdi], xmm0                 ; rdi should be 16-byte aligned\r
-    add     rsi, 16\r
-    add     rdi, 16\r
-    loop    @B\r
-    mfence\r
-    movdqa  xmm0, [rsp + 18h]           ; restore xmm0\r
-    jmp     @CopyBytes                  ; copy remaining bytes\r
-@CopyBackward:\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
-    rep     movsb\r
-    cld\r
-    ret\r
-InternalMemCopyMem  ENDP\r
-\r
-    END\r
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/x64/ScanMem16.asm b/MdePkg/Library/BaseMemoryLibOptDxe/x64/ScanMem16.asm
deleted file mode 100644 (file)
index 0871a4b..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-;------------------------------------------------------------------------------\r
-;\r
-; Copyright (c) 2006, Intel Corporation\r
-; All rights reserved. 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
-;   ScanMem16.Asm\r
-;\r
-; Abstract:\r
-;\r
-;   ScanMem16 function\r
-;\r
-; Notes:\r
-;\r
-;   The following BaseMemoryLib instances contain the same copy of this file:\r
-;\r
-;       BaseMemoryLibRepStr\r
-;       BaseMemoryLibMmx\r
-;       BaseMemoryLibSse2\r
-;       BaseMemoryLibOptDxe\r
-;       BaseMemoryLibOptPei\r
-;\r
-;------------------------------------------------------------------------------\r
-\r
-    .code\r
-\r
-;------------------------------------------------------------------------------\r
-; CONST VOID *\r
-; EFIAPI\r
-; InternalMemScanMem16 (\r
-;   IN      CONST VOID                *Buffer,\r
-;   IN      UINTN                     Length,\r
-;   IN      UINT16                    Value\r
-;   );\r
-;------------------------------------------------------------------------------\r
-InternalMemScanMem16    PROC    USES    rdi\r
-    mov     rdi, rcx\r
-    mov     rax, r8\r
-    mov     rcx, rdx\r
-    repne   scasw\r
-    lea     rax, [rdi - 2]\r
-    cmovnz  rax, rcx\r
-    ret\r
-InternalMemScanMem16    ENDP\r
-\r
-    END\r
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/x64/ScanMem32.asm b/MdePkg/Library/BaseMemoryLibOptDxe/x64/ScanMem32.asm
deleted file mode 100644 (file)
index 53a33ba..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-;------------------------------------------------------------------------------\r
-;\r
-; Copyright (c) 2006, Intel Corporation\r
-; All rights reserved. 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
-;   ScanMem32.Asm\r
-;\r
-; Abstract:\r
-;\r
-;   ScanMem32 function\r
-;\r
-; Notes:\r
-;\r
-;   The following BaseMemoryLib instances contain the same copy of this file:\r
-;\r
-;       BaseMemoryLibRepStr\r
-;       BaseMemoryLibMmx\r
-;       BaseMemoryLibSse2\r
-;       BaseMemoryLibOptDxe\r
-;       BaseMemoryLibOptPei\r
-;\r
-;------------------------------------------------------------------------------\r
-\r
-    .code\r
-\r
-;------------------------------------------------------------------------------\r
-; CONST VOID *\r
-; EFIAPI\r
-; InternalMemScanMem32 (\r
-;   IN      CONST VOID                *Buffer,\r
-;   IN      UINTN                     Length,\r
-;   IN      UINT32                    Value\r
-;   );\r
-;------------------------------------------------------------------------------\r
-InternalMemScanMem32    PROC    USES    rdi\r
-    mov     rdi, rcx\r
-    mov     rax, r8\r
-    mov     rcx, rdx\r
-    repne   scasd\r
-    lea     rax, [rdi - 4]\r
-    cmovnz  rax, rcx\r
-    ret\r
-InternalMemScanMem32    ENDP\r
-\r
-    END\r
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/x64/ScanMem64.asm b/MdePkg/Library/BaseMemoryLibOptDxe/x64/ScanMem64.asm
deleted file mode 100644 (file)
index 71f85a1..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-;------------------------------------------------------------------------------\r
-;\r
-; Copyright (c) 2006, Intel Corporation\r
-; All rights reserved. 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
-;   ScanMem64.Asm\r
-;\r
-; Abstract:\r
-;\r
-;   ScanMem64 function\r
-;\r
-; Notes:\r
-;\r
-;   The following BaseMemoryLib instances contain the same copy of this file:\r
-;\r
-;       BaseMemoryLibRepStr\r
-;       BaseMemoryLibMmx\r
-;       BaseMemoryLibSse2\r
-;       BaseMemoryLibOptDxe\r
-;       BaseMemoryLibOptPei\r
-;\r
-;------------------------------------------------------------------------------\r
-\r
-    .code\r
-\r
-;------------------------------------------------------------------------------\r
-; CONST VOID *\r
-; EFIAPI\r
-; InternalMemScanMem64 (\r
-;   IN      CONST VOID                *Buffer,\r
-;   IN      UINTN                     Length,\r
-;   IN      UINT64                    Value\r
-;   );\r
-;------------------------------------------------------------------------------\r
-InternalMemScanMem64    PROC    USES    rdi\r
-    mov     rdi, rcx\r
-    mov     rax, r8\r
-    mov     rcx, rdx\r
-    repne   scasq\r
-    lea     rax, [rdi - 8]\r
-    cmovnz  rax, rcx\r
-    ret\r
-InternalMemScanMem64    ENDP\r
-\r
-    END\r
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/x64/ScanMem8.asm b/MdePkg/Library/BaseMemoryLibOptDxe/x64/ScanMem8.asm
deleted file mode 100644 (file)
index 39adb01..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-;------------------------------------------------------------------------------\r
-;\r
-; Copyright (c) 2006, Intel Corporation\r
-; All rights reserved. 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
-;   ScanMem8.Asm\r
-;\r
-; Abstract:\r
-;\r
-;   ScanMem8 function\r
-;\r
-; Notes:\r
-;\r
-;   The following BaseMemoryLib instances contain the same copy of this file:\r
-;\r
-;       BaseMemoryLibRepStr\r
-;       BaseMemoryLibMmx\r
-;       BaseMemoryLibSse2\r
-;       BaseMemoryLibOptDxe\r
-;       BaseMemoryLibOptPei\r
-;\r
-;------------------------------------------------------------------------------\r
-\r
-    .code\r
-\r
-;------------------------------------------------------------------------------\r
-; CONST VOID *\r
-; EFIAPI\r
-; InternalMemScanMem8 (\r
-;   IN      CONST VOID                *Buffer,\r
-;   IN      UINTN                     Length,\r
-;   IN      UINT8                     Value\r
-;   );\r
-;------------------------------------------------------------------------------\r
-InternalMemScanMem8 PROC    USES    rdi\r
-    mov     rdi, rcx\r
-    mov     rcx, rdx\r
-    mov     rax, r8\r
-    repne   scasb\r
-    lea     rax, [rdi - 1]\r
-    cmovnz  rax, rcx                    ; set rax to 0 if not found\r
-    ret\r
-InternalMemScanMem8 ENDP\r
-\r
-    END\r
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/x64/SetMem.asm b/MdePkg/Library/BaseMemoryLibOptDxe/x64/SetMem.asm
deleted file mode 100644 (file)
index c94b6b5..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-;------------------------------------------------------------------------------\r
-;\r
-; Copyright (c) 2006, Intel Corporation\r
-; All rights reserved. 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
-;   SetMem function\r
-;\r
-; Notes:\r
-;\r
-;------------------------------------------------------------------------------\r
-\r
-    .code\r
-\r
-;------------------------------------------------------------------------------\r
-;  VOID *\r
-;  EFIAPI\r
-;  InternalMemSetMem (\r
-;    IN VOID   *Buffer,\r
-;    IN UINTN  Count,\r
-;    IN UINT8  Value\r
-;    )\r
-;------------------------------------------------------------------------------\r
-InternalMemSetMem   PROC    USES    rdi rbx\r
-    push    rcx       ; push Buffer\r
-    mov     rax, r8   ; rax = Value\r
-    and     rax, 0ffh ; rax = lower 8 bits of r8, upper 56 bits are 0\r
-    mov     ah,  al   ; ah  = al\r
-    mov     bx,  ax   ; bx  = ax\r
-    shl     rax, 10h  ; rax = ax << 16\r
-    mov     ax,  bx   ; ax  = bx\r
-    mov     rbx, rax  ; ebx = eax\r
-    shl     rax, 20h  ; rax = rax << 32\r
-    or      rax, rbx  ; eax = ebx\r
-    mov     rdi, rcx  ; rdi = Buffer\r
-    mov     rcx, rdx  ; rcx = Count\r
-    shr     rcx, 3    ; rcx = rcx / 8\r
-    cld\r
-    rep     stosq      \r
-    mov     rcx, rdx  ; rcx = rdx\r
-    and     rcx, 7    ; rcx = rcx & 7\r
-    rep     stosb      \r
-    pop     rax       ; rax = Buffer\r
-    ret\r
-InternalMemSetMem   ENDP\r
-\r
-    END\r
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/x64/SetMem16.asm b/MdePkg/Library/BaseMemoryLibOptDxe/x64/SetMem16.asm
deleted file mode 100644 (file)
index 68ff488..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-;------------------------------------------------------------------------------\r
-;\r
-; Copyright (c) 2006, Intel Corporation\r
-; All rights reserved. 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
-;   SetMem16.Asm\r
-;\r
-; Abstract:\r
-;\r
-;   SetMem16 function\r
-;\r
-; Notes:\r
-;\r
-;------------------------------------------------------------------------------\r
-\r
-    .code\r
-\r
-;------------------------------------------------------------------------------\r
-;  VOID *\r
-;  EFIAPI\r
-;  InternalMemSetMem16 (\r
-;    IN VOID   *Buffer,\r
-;    IN UINTN  Count,\r
-;    IN UINT16 Value\r
-;    )\r
-;------------------------------------------------------------------------------\r
-InternalMemSetMem16 PROC    USES    rdi\r
-    push    rcx\r
-    mov     rdi, rcx\r
-    mov     rax, r8\r
-    xchg    rcx, rdx\r
-    rep     stosw\r
-    pop     rax\r
-    ret\r
-InternalMemSetMem16 ENDP\r
-\r
-    END\r
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/x64/SetMem32.asm b/MdePkg/Library/BaseMemoryLibOptDxe/x64/SetMem32.asm
deleted file mode 100644 (file)
index c81c81f..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-;------------------------------------------------------------------------------\r
-;\r
-; Copyright (c) 2006, Intel Corporation\r
-; All rights reserved. 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
-;   SetMem32.Asm\r
-;\r
-; Abstract:\r
-;\r
-;   SetMem32 function\r
-;\r
-; Notes:\r
-;\r
-;------------------------------------------------------------------------------\r
-\r
-    .code\r
-\r
-;------------------------------------------------------------------------------\r
-;  VOID *\r
-;  EFIAPI\r
-;  InternalMemSetMem32 (\r
-;    IN VOID   *Buffer,\r
-;    IN UINTN  Count,\r
-;    IN UINT32 Value\r
-;    );\r
-;------------------------------------------------------------------------------\r
-InternalMemSetMem32 PROC    USES    rdi\r
-    push    rcx\r
-    mov     rdi, rcx\r
-    mov     rax, r8\r
-    xchg    rcx, rdx\r
-    rep     stosd\r
-    pop     rax\r
-    ret\r
-InternalMemSetMem32 ENDP\r
-\r
-    END\r
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/x64/SetMem64.asm b/MdePkg/Library/BaseMemoryLibOptDxe/x64/SetMem64.asm
deleted file mode 100644 (file)
index 282a86c..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-;------------------------------------------------------------------------------\r
-;\r
-; Copyright (c) 2006, Intel Corporation\r
-; All rights reserved. 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
-;   SetMem64.Asm\r
-;\r
-; Abstract:\r
-;\r
-;   SetMem64 function\r
-;\r
-; Notes:\r
-;\r
-;------------------------------------------------------------------------------\r
-\r
-    .code\r
-\r
-;------------------------------------------------------------------------------\r
-;  VOID *\r
-;  InternalMemSetMem64 (\r
-;    IN VOID   *Buffer,\r
-;    IN UINTN  Count,\r
-;    IN UINT64 Value\r
-;    )\r
-;------------------------------------------------------------------------------\r
-InternalMemSetMem64 PROC    USES    rdi\r
-    push    rcx\r
-    mov     rdi, rcx\r
-    mov     rax, r8\r
-    xchg    rcx, rdx\r
-    rep     stosq\r
-    pop     rax\r
-    ret\r
-InternalMemSetMem64 ENDP\r
-\r
-    END\r
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/x64/ZeroMem.asm b/MdePkg/Library/BaseMemoryLibOptDxe/x64/ZeroMem.asm
deleted file mode 100644 (file)
index 940864f..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-;------------------------------------------------------------------------------\r
-;\r
-; Copyright (c) 2006, Intel Corporation\r
-; All rights reserved. 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
-;   ZeroMem.Asm\r
-;\r
-; Abstract:\r
-;\r
-;   ZeroMem function\r
-;\r
-; Notes:\r
-;\r
-;------------------------------------------------------------------------------\r
-\r
-    .code\r
-\r
-;------------------------------------------------------------------------------\r
-;  VOID *\r
-;  InternalMemZeroMem (\r
-;    IN VOID   *Buffer,\r
-;    IN UINTN  Count\r
-;    );\r
-;------------------------------------------------------------------------------\r
-InternalMemZeroMem  PROC    USES    rdi\r
-    push    rcx       ; push Buffer\r
-    xor     rax, rax  ; rax = 0\r
-    mov     rdi, rcx  ; rdi = Buffer\r
-    mov     rcx, rdx  ; rcx = Count\r
-    shr     rcx, 3    ; rcx = rcx / 8\r
-    and     rdx, 7    ; rdx = rdx & 7\r
-    cld\r
-    rep     stosq\r
-    mov     rcx, rdx  ; rcx = rdx\r
-    rep     stosb\r
-    pop     rax       ; rax = Buffer\r
-    ret\r
-InternalMemZeroMem  ENDP\r
-\r
-    END\r