Browse Source

MdePkg/BaseMemoryLibOptDxe: Remove .S files for IA32 and X64 arch

.nasm file has been added for X86 arch. .S assembly code
is not required any more.
https://bugzilla.tianocore.org/show_bug.cgi?id=1594

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Shenglei Zhang 5 years ago
parent
commit
fbce3e064c

+ 0 - 22
MdePkg/Library/BaseMemoryLibOptDxe/BaseMemoryLibOptDxe.inf

@@ -35,27 +35,16 @@
 
 [Sources.Ia32]
   Ia32/ScanMem64.nasm
-  Ia32/ScanMem64.S
   Ia32/ScanMem32.nasm
-  Ia32/ScanMem32.S
   Ia32/ScanMem16.nasm
-  Ia32/ScanMem16.S
   Ia32/ScanMem8.nasm
-  Ia32/ScanMem8.S
   Ia32/CompareMem.nasm
-  Ia32/CompareMem.S
   Ia32/ZeroMem.nasm
-  Ia32/ZeroMem.S
   Ia32/SetMem64.nasm
-  Ia32/SetMem64.S
   Ia32/SetMem32.nasm
-  Ia32/SetMem32.S
   Ia32/SetMem16.nasm
-  Ia32/SetMem16.S
   Ia32/SetMem.nasm
-  Ia32/SetMem.S
   Ia32/CopyMem.nasm
-  Ia32/CopyMem.S
   Ia32/ScanMem64.nasm
   Ia32/ScanMem32.nasm
   Ia32/ScanMem16.nasm
@@ -72,27 +61,16 @@
 
 [Sources.X64]
   X64/ScanMem64.nasm
-  X64/ScanMem64.S
   X64/ScanMem32.nasm
-  X64/ScanMem32.S
   X64/ScanMem16.nasm
-  X64/ScanMem16.S
   X64/ScanMem8.nasm
-  X64/ScanMem8.S
   X64/CompareMem.nasm
-  X64/CompareMem.S
   X64/ZeroMem.nasm
-  X64/ZeroMem.S
   X64/SetMem64.nasm
-  X64/SetMem64.S
   X64/SetMem32.nasm
-  X64/SetMem32.S
   X64/SetMem16.nasm
-  X64/SetMem16.S
   X64/SetMem.nasm
-  X64/SetMem.S
   X64/CopyMem.nasm
-  X64/CopyMem.S
   X64/IsZeroBuffer.nasm
   MemLibGuid.c
 

+ 0 - 55
MdePkg/Library/BaseMemoryLibOptDxe/Ia32/CompareMem.S

@@ -1,55 +0,0 @@
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php.
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   CompareMem.S
-#
-# Abstract:
-#
-#   CompareMem function
-#
-# Notes:
-#
-#   The following BaseMemoryLib instances contain the same copy of this file:
-#
-#       BaseMemoryLibRepStr
-#       BaseMemoryLibMmx
-#       BaseMemoryLibSse2
-#       BaseMemoryLibOptDxe
-#       BaseMemoryLibOptPei
-#
-#------------------------------------------------------------------------------
-
-ASM_GLOBAL ASM_PFX(InternalMemCompareMem)
-
-#------------------------------------------------------------------------------
-# INTN
-# EFIAPI
-# InternalMemCompareMem (
-#   IN      CONST VOID                *DestinationBuffer,
-#   IN      CONST VOID                *SourceBuffer,
-#   IN      UINTN                     Length
-#   );
-#------------------------------------------------------------------------------
-ASM_PFX(InternalMemCompareMem):
-    push    %esi
-    push    %edi
-    movl    12(%esp), %esi
-    movl    16(%esp), %edi
-    movl    20(%esp), %ecx
-    repe    cmpsb
-    movzbl  -1(%esi), %eax
-    movzbl  -1(%edi), %edx
-    subl    %edx, %eax
-    pop     %edi
-    pop     %esi
-    ret

+ 0 - 85
MdePkg/Library/BaseMemoryLibOptDxe/Ia32/CopyMem.S

@@ -1,85 +0,0 @@
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php.
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   CopyMem.S
-#
-# Abstract:
-#
-#   CopyMem function
-#
-# Notes:
-#
-#------------------------------------------------------------------------------
-
-ASM_GLOBAL ASM_PFX(InternalMemCopyMem)
-
-#------------------------------------------------------------------------------
-#  VOID *
-#  EFIAPI
-#  InternalMemCopyMem (
-#    IN VOID   *Destination,
-#    IN VOID   *Source,
-#    IN UINTN  Count
-#    );
-#------------------------------------------------------------------------------
-ASM_PFX(InternalMemCopyMem):
-    push    %esi
-    push    %edi
-    movl    16(%esp), %esi              # esi <- Source
-    movl    12(%esp), %edi              # edi <- Destination
-    movl    20(%esp), %edx              # edx <- Count
-    leal    -1(%esi,%edx,), %eax        # eax <- End of Source
-    cmpl    %edi, %esi
-    jae     L0
-    cmpl    %edi, %eax                  # Overlapped?
-    jae     L_CopyBackward               # Copy backward if overlapped
-L0:
-    xorl    %ecx, %ecx
-    subl    %edi, %ecx
-    andl    $15, %ecx                   # ecx + edi aligns on 16-byte boundary
-    jz      L1
-    cmpl    %edx, %ecx
-    cmova   %edx, %ecx
-    subl    %ecx, %edx                  # edx <- remaining bytes to copy
-    rep
-    movsb
-L1:
-    movl    %edx, %ecx
-    andl    $15, %edx
-    shrl    $4, %ecx                    # ecx <- # of DQwords to copy
-    jz      L_CopyBytes
-    addl    $-16, %esp
-    movdqu  %xmm0, (%esp)
-L2:
-    movdqu  (%esi), %xmm0
-    movntdq %xmm0, (%edi)
-    addl    $16, %esi
-    addl    $16, %edi
-    loop    L2
-    mfence
-    movdqu  (%esp),%xmm0
-    addl    $16, %esp                   # stack cleanup
-    jmp     L_CopyBytes
-L_CopyBackward:
-    movl    %eax, %esi                  # esi <- Last byte in Source
-    leal    -1(%edi,%edx,), %edi        # edi <- Last byte in Destination
-    std
-L_CopyBytes:
-    movl    %edx, %ecx
-    rep
-    movsb
-    cld
-    movl    12(%esp), %eax              # eax <- Destination as return value
-    pop     %edi
-    pop     %esi
-    ret

+ 0 - 52
MdePkg/Library/BaseMemoryLibOptDxe/Ia32/ScanMem16.S

@@ -1,52 +0,0 @@
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php.
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   ScanMem16.Asm
-#
-# Abstract:
-#
-#   ScanMem16 function
-#
-# Notes:
-#
-#   The following BaseMemoryLib instances contain the same copy of this file:
-#
-#       BaseMemoryLibRepStr
-#       BaseMemoryLibMmx
-#       BaseMemoryLibSse2
-#       BaseMemoryLibOptDxe
-#       BaseMemoryLibOptPei
-#
-#------------------------------------------------------------------------------
-
-ASM_GLOBAL ASM_PFX(InternalMemScanMem16)
-
-#------------------------------------------------------------------------------
-# CONST VOID *
-# EFIAPI
-# InternalMemScanMem16 (
-#   IN      CONST VOID                *Buffer,
-#   IN      UINTN                     Length,
-#   IN      UINT16                    Value
-#   );
-#------------------------------------------------------------------------------
-ASM_PFX(InternalMemScanMem16):
-    push    %edi
-    movl    12(%esp), %ecx
-    movl    8(%esp), %edi
-    movl    16(%esp), %eax
-    repne   scasw
-    leal    -2(%edi), %eax
-    cmovnz  %ecx, %eax
-    pop     %edi
-    ret

+ 0 - 52
MdePkg/Library/BaseMemoryLibOptDxe/Ia32/ScanMem32.S

@@ -1,52 +0,0 @@
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php.
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   ScanMem32.S
-#
-# Abstract:
-#
-#   ScanMem32 function
-#
-# Notes:
-#
-#   The following BaseMemoryLib instances contain the same copy of this file:
-#
-#       BaseMemoryLibRepStr
-#       BaseMemoryLibMmx
-#       BaseMemoryLibSse2
-#       BaseMemoryLibOptDxe
-#       BaseMemoryLibOptPei
-#
-#------------------------------------------------------------------------------
-
-ASM_GLOBAL ASM_PFX(InternalMemScanMem32)
-
-#------------------------------------------------------------------------------
-# CONST VOID *
-# EFIAPI
-# InternalMemScanMem32 (
-#   IN      CONST VOID                *Buffer,
-#   IN      UINTN                     Length,
-#   IN      UINT32                    Value
-#   );
-#------------------------------------------------------------------------------
-ASM_PFX(InternalMemScanMem32):
-    push    %edi
-    movl    12(%esp), %ecx
-    movl    8(%esp), %edi
-    movl    16(%esp), %eax
-    repne   scasl
-    leal    -4(%edi), %eax
-    cmovnz  %ecx, %eax
-    pop     %edi
-    ret

+ 0 - 61
MdePkg/Library/BaseMemoryLibOptDxe/Ia32/ScanMem64.S

@@ -1,61 +0,0 @@
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php.
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   ScanMem64.S
-#
-# Abstract:
-#
-#   ScanMem64 function
-#
-# Notes:
-#
-#   The following BaseMemoryLib instances contain the same copy of this file:
-#
-#       BaseMemoryLibRepStr
-#       BaseMemoryLibMmx
-#       BaseMemoryLibSse2
-#       BaseMemoryLibOptDxe
-#       BaseMemoryLibOptPei
-#
-#------------------------------------------------------------------------------
-
-ASM_GLOBAL ASM_PFX(InternalMemScanMem64)
-
-#------------------------------------------------------------------------------
-# CONST VOID *
-# EFIAPI
-# InternalMemScanMem64 (
-#   IN      CONST VOID                *Buffer,
-#   IN      UINTN                     Length,
-#   IN      UINT64                    Value
-#   );
-#------------------------------------------------------------------------------
-ASM_PFX(InternalMemScanMem64):
-    push    %edi
-    movl    12(%esp), %ecx
-    movl    16(%esp), %eax
-    movl    20(%esp), %edx
-    movl    8(%esp), %edi
-L0:
-    cmpl    (%edi), %eax
-    leal    8(%edi), %edi
-    loopne  L0
-    jne     L1
-    cmpl    -4(%edi), %edx
-    jecxz   L1
-    jne     L0
-L1:
-    leal    -8(%edi), %eax
-    cmovne  %ecx, %eax
-    pop     %edi
-    ret

+ 0 - 52
MdePkg/Library/BaseMemoryLibOptDxe/Ia32/ScanMem8.S

@@ -1,52 +0,0 @@
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php.
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   ScanMem8.S
-#
-# Abstract:
-#
-#   ScanMem8 function
-#
-# Notes:
-#
-#   The following BaseMemoryLib instances contain the same copy of this file:
-#
-#       BaseMemoryLibRepStr
-#       BaseMemoryLibMmx
-#       BaseMemoryLibSse2
-#       BaseMemoryLibOptDxe
-#       BaseMemoryLibOptPei
-#
-#------------------------------------------------------------------------------
-
-ASM_GLOBAL ASM_PFX(InternalMemScanMem8)
-
-#------------------------------------------------------------------------------
-# CONST VOID *
-# EFIAPI
-# InternalMemScanMem8 (
-#   IN      CONST VOID                *Buffer,
-#   IN      UINTN                     Length,
-#   IN      UINT8                     Value
-#   );
-#------------------------------------------------------------------------------
-ASM_PFX(InternalMemScanMem8):
-    push    %edi
-    movl    12(%esp), %ecx
-    movl    8(%esp), %edi
-    movb    16(%esp), %al
-    repne   scasb
-    leal    -1(%edi), %eax
-    cmovnz  %ecx, %eax
-    pop     %edi
-    ret

+ 0 - 50
MdePkg/Library/BaseMemoryLibOptDxe/Ia32/SetMem.S

@@ -1,50 +0,0 @@
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php.
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   SetMem.S
-#
-# Abstract:
-#
-#   SetMem function
-#
-# Notes:
-#
-#------------------------------------------------------------------------------
-
-ASM_GLOBAL ASM_PFX(InternalMemSetMem)
-
-#------------------------------------------------------------------------------
-#  VOID *
-#  InternalMemSetMem (
-#    IN VOID   *Buffer,
-#    IN UINTN  Count,
-#    IN UINT8  Value
-#    )
-#------------------------------------------------------------------------------
-ASM_PFX(InternalMemSetMem):
-    push    %edi
-    movl    12(%esp),%ecx
-    movb    16(%esp),%al
-    movb    %al, %ah
-    shrd    $16, %eax, %edx
-    shld    $16, %edx, %eax
-    movl    %ecx, %edx
-    movl    8(%esp),%edi
-    shr    $2, %ecx
-    rep stosl
-    movl    %edx, %ecx
-    andl    $3, %ecx
-    rep stosb
-    movl    8(%esp),%eax
-    pop     %edi
-    ret

+ 0 - 43
MdePkg/Library/BaseMemoryLibOptDxe/Ia32/SetMem16.S

@@ -1,43 +0,0 @@
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php.
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   SetMem16.S
-#
-# Abstract:
-#
-#   SetMem16 function
-#
-# Notes:
-#
-#------------------------------------------------------------------------------
-
-ASM_GLOBAL ASM_PFX(InternalMemSetMem16)
-
-#------------------------------------------------------------------------------
-#  VOID *
-#  InternalMemSetMem16 (
-#    IN VOID   *Buffer,
-#    IN UINTN  Count,
-#    IN UINT16 Value
-#    )
-#------------------------------------------------------------------------------
-ASM_PFX(InternalMemSetMem16):
-    push    %edi
-    movl    16(%esp), %eax
-    movl    8(%esp), %edi
-    movl    12(%esp), %ecx
-    rep
-    stosw
-    movl    8(%esp), %eax
-    pop     %edi
-    ret

+ 0 - 43
MdePkg/Library/BaseMemoryLibOptDxe/Ia32/SetMem32.S

@@ -1,43 +0,0 @@
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php.
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   SetMem32.S
-#
-# Abstract:
-#
-#   SetMem32 function
-#
-# Notes:
-#
-#------------------------------------------------------------------------------
-
-ASM_GLOBAL ASM_PFX(InternalMemSetMem32)
-
-#------------------------------------------------------------------------------
-#  VOID *
-#  InternalMemSetMem32 (
-#    IN VOID   *Buffer,
-#    IN UINTN  Count,
-#    IN UINT32 Value
-#    )
-#------------------------------------------------------------------------------
-ASM_PFX(InternalMemSetMem32):
-    push    %edi
-    movl    16(%esp),%eax
-    movl    8(%esp),%edi
-    movl    12(%esp),%ecx
-    rep
-    stosl
-    movl    8(%esp),%eax
-    pop     %edi
-    ret

+ 0 - 46
MdePkg/Library/BaseMemoryLibOptDxe/Ia32/SetMem64.S

@@ -1,46 +0,0 @@
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php.
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   SetMem64.S
-#
-# Abstract:
-#
-#   SetMem64 function
-#
-# Notes:
-#
-#------------------------------------------------------------------------------
-
-ASM_GLOBAL ASM_PFX(InternalMemSetMem64)
-
-#------------------------------------------------------------------------------
-#  VOID *
-#  InternalMemSetMem64 (
-#    IN VOID   *Buffer,
-#    IN UINTN  Count,
-#    IN UINT64 Value
-#    )
-#------------------------------------------------------------------------------
-ASM_PFX(InternalMemSetMem64):
-    push    %edi
-    movl    12(%esp), %ecx
-    movl    16(%esp), %eax
-    movl    20(%esp), %edx
-    movl    8(%esp), %edi
-L0:
-    mov     %eax, -8(%edi, %ecx, 8)
-    mov     %edx, -4(%edi, %ecx, 8)
-    loop    L0
-    movl    %edi, %eax
-    pop     %edi
-    ret

+ 0 - 49
MdePkg/Library/BaseMemoryLibOptDxe/Ia32/ZeroMem.S

@@ -1,49 +0,0 @@
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php.
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   ZeroMem.S
-#
-# Abstract:
-#
-#   ZeroMem function
-#
-# Notes:
-#
-#------------------------------------------------------------------------------
-
-ASM_GLOBAL ASM_PFX(InternalMemZeroMem)
-
-#------------------------------------------------------------------------------
-#  VOID *
-#  InternalMemZeroMem (
-#    IN VOID   *Buffer,
-#    IN UINTN  Count
-#    );
-#------------------------------------------------------------------------------
-ASM_PFX(InternalMemZeroMem):
-    push    %edi
-    xorl    %eax,%eax
-    movl    8(%esp),%edi
-    movl    12(%esp),%ecx
-    movl    %ecx,%edx
-    shrl    $2,%ecx
-    andl    $3,%edx
-    pushl   %edi
-    rep
-    stosl
-    movl    %edx,%ecx
-    rep
-    stosb
-    popl    %eax
-    pop     %edi
-    ret

+ 0 - 59
MdePkg/Library/BaseMemoryLibOptDxe/X64/CompareMem.S

@@ -1,59 +0,0 @@
-#
-# ConvertAsm.py: Automatically generated from CompareMem.asm
-#
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php.
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   CompareMem.S
-#
-# Abstract:
-#
-#   CompareMem function
-#
-# Notes:
-#
-#   The following BaseMemoryLib instances contain the same copy of this file:
-#
-#       BaseMemoryLibRepStr
-#       BaseMemoryLibMmx
-#       BaseMemoryLibSse2
-#       BaseMemoryLibOptDxe
-#       BaseMemoryLibOptPei
-#
-#------------------------------------------------------------------------------
-
-
-#------------------------------------------------------------------------------
-# INTN
-# EFIAPI
-# InternalMemCompareMem (
-#   IN      CONST VOID                *DestinationBuffer,
-#   IN      CONST VOID                *SourceBuffer,
-#   IN      UINTN                     Length
-#   );
-#------------------------------------------------------------------------------
-ASM_GLOBAL ASM_PFX(InternalMemCompareMem)
-ASM_PFX(InternalMemCompareMem):
-    pushq   %rsi
-    pushq   %rdi
-    movq    %rcx, %rsi
-    movq    %rdx, %rdi
-    movq    %r8, %rcx
-    repe    cmpsb
-    movzbq  -1(%rsi) , %rax
-    movzbq  -1(%rdi) , %rdx
-    sub     %dl, %al
-    popq    %rdi
-    popq    %rsi
-    ret
-

+ 0 - 82
MdePkg/Library/BaseMemoryLibOptDxe/X64/CopyMem.S

@@ -1,82 +0,0 @@
-#
-# ConvertAsm.py: Automatically generated from CopyMem.asm
-#
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php.
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   CopyMem.S
-#
-# Abstract:
-#
-#   CopyMem function
-#
-# Notes:
-#
-#------------------------------------------------------------------------------
-
-#------------------------------------------------------------------------------
-#  VOID *
-#  EFIAPI
-#  InternalMemCopyMem (
-#    IN VOID   *Destination,
-#    IN VOID   *Source,
-#    IN UINTN  Count
-#    )
-#------------------------------------------------------------------------------
-ASM_GLOBAL ASM_PFX(InternalMemCopyMem)
-ASM_PFX(InternalMemCopyMem):
-    pushq   %rsi
-    pushq   %rdi
-    movq    %rdx, %rsi                  # rsi <- Source
-    movq    %rcx, %rdi                  # rdi <- Destination
-    leaq    -1(%rsi,%r8,), %r9          # r9 <- Last byte of Source
-    cmpq    %rdi, %rsi
-    movq    %rdi, %rax                  # rax <- Destination as return value
-    jae     L0                          # Copy forward if Source > Destination
-    cmpq    %rdi, %r9                   # Overlapped?
-    jae     L_CopyBackward              # Copy backward if overlapped
-L0:
-    xorq    %rcx, %rcx
-    subq    %rdi, %rcx                  # rcx <- -rdi
-    andq    $15, %rcx                   # rcx + rsi should be 16 bytes aligned
-    jz      L1                          # skip if rcx == 0
-    cmpq    %r8, %rcx
-    cmova   %r8, %rcx
-    subq    %rcx, %r8
-    rep     movsb
-L1:
-    movq    %r8,  %rcx
-    andq    $15, %r8
-    shrq    $4, %rcx                    # rcx <- # of DQwords to copy
-    jz      L_CopyBytes
-    movdqu  %xmm0, 0x18(%rsp)           # save xmm0 on stack
-L2:
-    movdqu  (%rsi), %xmm0               # rsi may not be 16-byte aligned
-    movntdq %xmm0, (%rdi)               # rdi should be 16-byte aligned
-    addq    $16, %rsi
-    addq    $16, %rdi
-    loop    L2
-    mfence
-    movdqa  0x18(%rsp), %xmm0            # restore xmm0
-    jmp     L_CopyBytes                  # copy remaining bytes
-L_CopyBackward:
-    movq    %r9, %rsi                   # rsi <- Last byte of Source
-    leaq     -1(%rdi, %r8,), %rdi       # rdi <- Last byte of Destination
-    std
-L_CopyBytes:
-    movq    %r8, %rcx
-    rep     movsb
-    cld
-    popq    %rdi
-    popq    %rsi
-    ret

+ 0 - 56
MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem16.S

@@ -1,56 +0,0 @@
-#
-# ConvertAsm.py: Automatically generated from ScanMem16.asm
-#
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php.
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   ScanMem16.S
-#
-# Abstract:
-#
-#   ScanMem16 function
-#
-# Notes:
-#
-#   The following BaseMemoryLib instances contain the same copy of this file:
-#
-#       BaseMemoryLibRepStr
-#       BaseMemoryLibMmx
-#       BaseMemoryLibSse2
-#       BaseMemoryLibOptDxe
-#       BaseMemoryLibOptPei
-#
-#------------------------------------------------------------------------------
-
-
-#------------------------------------------------------------------------------
-# CONST VOID *
-# EFIAPI
-# InternalMemScanMem16 (
-#   IN      CONST VOID          *Buffer,
-#   IN      UINTN                     Length,
-#   IN      UINT16                    Value
-#   );
-#------------------------------------------------------------------------------
-ASM_GLOBAL ASM_PFX(InternalMemScanMem16)
-ASM_PFX(InternalMemScanMem16):
-    pushq  %rdi
-    movq   %rcx, %rdi
-    movq   %r8, %rax
-    movq   %rdx, %rcx
-    repne   scasw
-    leaq    -2(%rdi), %rax
-    cmovnz  %rcx, %rax
-    popq    %rdi
-    ret
-

+ 0 - 56
MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem32.S

@@ -1,56 +0,0 @@
-#
-# ConvertAsm.py: Automatically generated from ScanMem32.asm
-#
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php.
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   ScanMem32.S
-#
-# Abstract:
-#
-#   ScanMem32 function
-#
-# Notes:
-#
-#   The following BaseMemoryLib instances contain the same copy of this file:
-#
-#       BaseMemoryLibRepStr
-#       BaseMemoryLibMmx
-#       BaseMemoryLibSse2
-#       BaseMemoryLibOptDxe
-#       BaseMemoryLibOptPei
-#
-#------------------------------------------------------------------------------
-
-
-#------------------------------------------------------------------------------
-# CONST VOID *
-# EFIAPI
-# InternalMemScanMem32 (
-#   IN      CONST VOID                *Buffer,
-#   IN      UINTN                     Length,
-#   IN      UINT32                    Value
-#   );
-#------------------------------------------------------------------------------
-ASM_GLOBAL ASM_PFX(InternalMemScanMem32)
-ASM_PFX(InternalMemScanMem32):
-    pushq   %rdi
-    movq    %rcx, %rdi
-    movq    %r8, %rax
-    movq    %rdx, %rcx
-    repne   scasl
-    leaq    -4(%rdi), %rax
-    cmovnz  %rcx, %rax
-    popq    %rdi
-    ret
-

+ 0 - 55
MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem64.S

@@ -1,55 +0,0 @@
-#
-# ConvertAsm.py: Automatically generated from ScanMem64.asm
-#
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php.
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   ScanMem64.S
-#
-# Abstract:
-#
-#   ScanMem64 function
-#
-# Notes:
-#
-#   The following BaseMemoryLib instances contain the same copy of this file:
-#
-#       BaseMemoryLibRepStr
-#       BaseMemoryLibMmx
-#       BaseMemoryLibSse2
-#       BaseMemoryLibOptDxe
-#       BaseMemoryLibOptPei
-#
-#------------------------------------------------------------------------------
-
-
-#------------------------------------------------------------------------------
-# CONST VOID *
-# EFIAPI
-# InternalMemScanMem64 (
-#   IN      CONST VOID          *Buffer,
-#   IN      UINTN                     Length,
-#   IN      UINT64                    Value
-#   );
-#------------------------------------------------------------------------------
-ASM_GLOBAL ASM_PFX(InternalMemScanMem64)
-ASM_PFX(InternalMemScanMem64):
-    pushq   %rdi
-    movq    %rcx, %rdi
-    movq    %r8, %rax
-    movq    %rdx, %rcx
-    repne   scasq
-    leaq    -8(%rdi), %rax
-    cmovnz  %rcx, %rax
-    popq    %rdi
-    ret

+ 0 - 56
MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem8.S

@@ -1,56 +0,0 @@
-#
-# ConvertAsm.py: Automatically generated from ScanMem8.asm
-#
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php.
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   ScanMem8.S
-#
-# Abstract:
-#
-#   ScanMem8 function
-#
-# Notes:
-#
-#   The following BaseMemoryLib instances contain the same copy of this file:
-#
-#       BaseMemoryLibRepStr
-#       BaseMemoryLibMmx
-#       BaseMemoryLibSse2
-#       BaseMemoryLibOptDxe
-#       BaseMemoryLibOptPei
-#
-#------------------------------------------------------------------------------
-
-
-#------------------------------------------------------------------------------
-# CONST VOID *
-# EFIAPI
-# InternalMemScanMem8 (
-#   IN      CONST VOID          *Buffer,
-#   IN      UINTN               Length,
-#   IN      UINT8               Value
-#   );
-#------------------------------------------------------------------------------
-ASM_GLOBAL ASM_PFX(InternalMemScanMem8)
-ASM_PFX(InternalMemScanMem8):
-    pushq   %rdi
-    movq    %rcx, %rdi
-    movq    %rdx, %rcx
-    movq    %r8, %rax
-    repne   scasb
-    leaq    -1(%rdi), %rax
-    cmovnz  %rcx, %rax                  # set rax to 0 if not found
-    popq    %rdi
-    ret
-

+ 0 - 57
MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem.S

@@ -1,57 +0,0 @@
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php.
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   SetMem.S
-#
-# Abstract:
-#
-#   SetMem function
-#
-# Notes:
-#
-#------------------------------------------------------------------------------
-#------------------------------------------------------------------------------
-#  VOID *
-#  EFIAPI
-#  InternalMemSetMem (
-#    IN VOID   *Buffer,
-#    IN UINTN  Count,
-#    IN UINT8  Value
-#    )
-#------------------------------------------------------------------------------
-ASM_GLOBAL ASM_PFX(InternalMemSetMem)
-ASM_PFX(InternalMemSetMem):
-    pushq   %rdi
-    pushq   %rbx
-    pushq   %rcx        # push Buffer
-    movq    %r8, %rax   # rax = Value
-    andq    $0xff, %rax # rax = lower 8 bits of r8, upper 56 bits are 0
-    movb    %al, %ah    # ah  = al
-    movw    %ax, %bx    # bx  = ax
-    shlq    $0x10, %rax # rax = ax << 16
-    movw    %bx,  %ax   # ax  = bx
-    movq    %rax, %rbx  # ebx = eax
-    shlq    $0x20, %rax # rax = rax << 32
-    orq     %rbx, %rax  # eax = ebx
-    movq    %rcx, %rdi  # rdi = Buffer
-    movq    %rdx, %rcx  # rcx = Count
-    shrq    $3, %rcx    # rcx = rcx / 8
-    cld
-    rep     stosq
-    movq    %rdx, %rcx  # rcx = rdx
-    andq    $7, %rcx    # rcx = rcx & 7
-    rep     stosb
-    popq    %rax        # rax = Buffer
-    popq    %rbx
-    popq    %rdi
-    ret

+ 0 - 47
MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem16.S

@@ -1,47 +0,0 @@
-#
-# ConvertAsm.py: Automatically generated from SetMem16.asm
-#
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php.
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   SetMem16.S
-#
-# Abstract:
-#
-#   SetMem16 function
-#
-# Notes:
-#
-#------------------------------------------------------------------------------
-
-
-#------------------------------------------------------------------------------
-#  VOID *
-#  EFIAPI
-#  InternalMemSetMem16 (
-#    IN VOID   *Buffer,
-#    IN UINTN  Count,
-#    IN UINT16 Value
-#    )
-#------------------------------------------------------------------------------
-ASM_GLOBAL ASM_PFX(InternalMemSetMem16)
-ASM_PFX(InternalMemSetMem16):
-    pushq   %rdi
-    movq    %rcx, %rdi
-    movq    %r8, %rax
-    xchg    %rdx, %rcx
-    rep     stosw
-    movq    %rdx, %rax
-    popq    %rdi
-    ret
-

+ 0 - 47
MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem32.S

@@ -1,47 +0,0 @@
-#
-# ConvertAsm.py: Automatically generated from SetMem32.asm
-#
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php.
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   SetMem32.S
-#
-# Abstract:
-#
-#   SetMem32 function
-#
-# Notes:
-#
-#------------------------------------------------------------------------------
-
-
-#------------------------------------------------------------------------------
-#  VOID *
-#  EFIAPI
-#  InternalMemSetMem32 (
-#    IN VOID   *Buffer,
-#    IN UINTN  Count,
-#    IN UINT32 Value
-#    );
-#------------------------------------------------------------------------------
-ASM_GLOBAL ASM_PFX(InternalMemSetMem32)
-ASM_PFX(InternalMemSetMem32):
-    pushq   %rdi
-    movq    %rcx, %rdi
-    movq    %r8, %rax
-    xchgq   %rdx, %rcx
-    rep     stosl
-    movq    %rdx, %rax
-    popq    %rdi
-    ret
-

+ 0 - 46
MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem64.S

@@ -1,46 +0,0 @@
-#
-# ConvertAsm.py: Automatically generated from SetMem64.asm
-#
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php.
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   SetMem64.S
-#
-# Abstract:
-#
-#   SetMem64 function
-#
-# Notes:
-#
-#------------------------------------------------------------------------------
-
-
-#------------------------------------------------------------------------------
-#  VOID *
-#  InternalMemSetMem64 (
-#    IN VOID   *Buffer,
-#    IN UINTN  Count,
-#    IN UINT64 Value
-#    )
-#------------------------------------------------------------------------------
-ASM_GLOBAL ASM_PFX(InternalMemSetMem64)
-ASM_PFX(InternalMemSetMem64):
-    pushq   %rdi
-    movq    %rcx, %rdi
-    movq    %r8, %rax
-    xchg    %rdx, %rcx
-    rep     stosq
-    movq    %rdx, %rax
-    popq    %rdi
-    ret
-

+ 0 - 51
MdePkg/Library/BaseMemoryLibOptDxe/X64/ZeroMem.S

@@ -1,51 +0,0 @@
-#
-# ConvertAsm.py: Automatically generated from ZeroMem.asm
-#
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php.
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   ZeroMem.S
-#
-# Abstract:
-#
-#   ZeroMem function
-#
-# Notes:
-#
-#------------------------------------------------------------------------------
-
-
-#------------------------------------------------------------------------------
-#  VOID *
-#  InternalMemZeroMem (
-#    IN VOID   *Buffer,
-#    IN UINTN  Count
-#    );
-#------------------------------------------------------------------------------
-ASM_GLOBAL ASM_PFX(InternalMemZeroMem)
-ASM_PFX(InternalMemZeroMem):
-    pushq   %rdi
-    pushq   %rcx
-    xorq    %rax, %rax
-    movq    %rcx, %rdi
-    movq    %rdx, %rcx
-    shrq    $3, %rcx
-    andq    $7, %rdx
-    cld
-    rep     stosq
-    movq    %rdx, %rcx
-    rep     stosb
-    popq    %rax
-    popq    %rdi
-    ret
-