public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Shenglei Zhang <shenglei.zhang@intel.com>
To: edk2-devel@lists.01.org
Cc: Michael D Kinney <michael.d.kinney@intel.com>,
	Liming Gao <liming.gao@intel.com>
Subject: [PATCH v3 07/12] MdePkg/BaseMemoryLibOptDxe: Remove .S files for IA32 and X64 arch
Date: Fri, 29 Mar 2019 15:28:13 +0800	[thread overview]
Message-ID: <20190329072818.24112-8-shenglei.zhang@intel.com> (raw)
In-Reply-To: <20190329072818.24112-1-shenglei.zhang@intel.com>

.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>
---
 .../BaseMemoryLibOptDxe.inf                   | 22 -----
 .../BaseMemoryLibOptDxe/Ia32/CompareMem.S     | 55 ------------
 .../BaseMemoryLibOptDxe/Ia32/CopyMem.S        | 85 -------------------
 .../BaseMemoryLibOptDxe/Ia32/ScanMem16.S      | 52 ------------
 .../BaseMemoryLibOptDxe/Ia32/ScanMem32.S      | 52 ------------
 .../BaseMemoryLibOptDxe/Ia32/ScanMem64.S      | 61 -------------
 .../BaseMemoryLibOptDxe/Ia32/ScanMem8.S       | 52 ------------
 .../Library/BaseMemoryLibOptDxe/Ia32/SetMem.S | 50 -----------
 .../BaseMemoryLibOptDxe/Ia32/SetMem16.S       | 43 ----------
 .../BaseMemoryLibOptDxe/Ia32/SetMem32.S       | 43 ----------
 .../BaseMemoryLibOptDxe/Ia32/SetMem64.S       | 46 ----------
 .../BaseMemoryLibOptDxe/Ia32/ZeroMem.S        | 49 -----------
 .../BaseMemoryLibOptDxe/X64/CompareMem.S      | 59 -------------
 .../Library/BaseMemoryLibOptDxe/X64/CopyMem.S | 82 ------------------
 .../BaseMemoryLibOptDxe/X64/ScanMem16.S       | 56 ------------
 .../BaseMemoryLibOptDxe/X64/ScanMem32.S       | 56 ------------
 .../BaseMemoryLibOptDxe/X64/ScanMem64.S       | 55 ------------
 .../BaseMemoryLibOptDxe/X64/ScanMem8.S        | 56 ------------
 .../Library/BaseMemoryLibOptDxe/X64/SetMem.S  | 57 -------------
 .../BaseMemoryLibOptDxe/X64/SetMem16.S        | 47 ----------
 .../BaseMemoryLibOptDxe/X64/SetMem32.S        | 47 ----------
 .../BaseMemoryLibOptDxe/X64/SetMem64.S        | 46 ----------
 .../Library/BaseMemoryLibOptDxe/X64/ZeroMem.S | 51 -----------
 23 files changed, 1222 deletions(-)
 delete mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/Ia32/CompareMem.S
 delete mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/Ia32/CopyMem.S
 delete mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/Ia32/ScanMem16.S
 delete mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/Ia32/ScanMem32.S
 delete mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/Ia32/ScanMem64.S
 delete mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/Ia32/ScanMem8.S
 delete mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/Ia32/SetMem.S
 delete mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/Ia32/SetMem16.S
 delete mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/Ia32/SetMem32.S
 delete mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/Ia32/SetMem64.S
 delete mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/Ia32/ZeroMem.S
 delete mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/X64/CompareMem.S
 delete mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/X64/CopyMem.S
 delete mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem16.S
 delete mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem32.S
 delete mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem64.S
 delete mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem8.S
 delete mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem.S
 delete mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem16.S
 delete mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem32.S
 delete mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem64.S
 delete mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/X64/ZeroMem.S

diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/BaseMemoryLibOptDxe.inf b/MdePkg/Library/BaseMemoryLibOptDxe/BaseMemoryLibOptDxe.inf
index 3f756647e1..5ee1d70473 100644
--- a/MdePkg/Library/BaseMemoryLibOptDxe/BaseMemoryLibOptDxe.inf
+++ b/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
 
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/CompareMem.S b/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/CompareMem.S
deleted file mode 100644
index 23758781c9..0000000000
--- a/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/CompareMem.S
+++ /dev/null
@@ -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
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/CopyMem.S b/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/CopyMem.S
deleted file mode 100644
index bfc02d6319..0000000000
--- a/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/CopyMem.S
+++ /dev/null
@@ -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
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/ScanMem16.S b/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/ScanMem16.S
deleted file mode 100644
index e247d4ad09..0000000000
--- a/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/ScanMem16.S
+++ /dev/null
@@ -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
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/ScanMem32.S b/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/ScanMem32.S
deleted file mode 100644
index 7f0a3241d9..0000000000
--- a/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/ScanMem32.S
+++ /dev/null
@@ -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
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/ScanMem64.S b/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/ScanMem64.S
deleted file mode 100644
index c8f76f14a0..0000000000
--- a/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/ScanMem64.S
+++ /dev/null
@@ -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
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/ScanMem8.S b/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/ScanMem8.S
deleted file mode 100644
index 478b926165..0000000000
--- a/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/ScanMem8.S
+++ /dev/null
@@ -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
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/SetMem.S b/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/SetMem.S
deleted file mode 100644
index 8c643ae46f..0000000000
--- a/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/SetMem.S
+++ /dev/null
@@ -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
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/SetMem16.S b/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/SetMem16.S
deleted file mode 100644
index a31c8aef49..0000000000
--- a/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/SetMem16.S
+++ /dev/null
@@ -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
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/SetMem32.S b/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/SetMem32.S
deleted file mode 100644
index 73e36b731b..0000000000
--- a/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/SetMem32.S
+++ /dev/null
@@ -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
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/SetMem64.S b/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/SetMem64.S
deleted file mode 100644
index 51687d46c2..0000000000
--- a/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/SetMem64.S
+++ /dev/null
@@ -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
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/ZeroMem.S b/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/ZeroMem.S
deleted file mode 100644
index 8ac52897be..0000000000
--- a/MdePkg/Library/BaseMemoryLibOptDxe/Ia32/ZeroMem.S
+++ /dev/null
@@ -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
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/X64/CompareMem.S b/MdePkg/Library/BaseMemoryLibOptDxe/X64/CompareMem.S
deleted file mode 100644
index ae27318373..0000000000
--- a/MdePkg/Library/BaseMemoryLibOptDxe/X64/CompareMem.S
+++ /dev/null
@@ -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
-
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/X64/CopyMem.S b/MdePkg/Library/BaseMemoryLibOptDxe/X64/CopyMem.S
deleted file mode 100644
index d6fc9cb860..0000000000
--- a/MdePkg/Library/BaseMemoryLibOptDxe/X64/CopyMem.S
+++ /dev/null
@@ -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
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem16.S b/MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem16.S
deleted file mode 100644
index f72de1dc6a..0000000000
--- a/MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem16.S
+++ /dev/null
@@ -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
-
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem32.S b/MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem32.S
deleted file mode 100644
index d7ab3f8078..0000000000
--- a/MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem32.S
+++ /dev/null
@@ -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
-
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem64.S b/MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem64.S
deleted file mode 100644
index e7fb07633a..0000000000
--- a/MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem64.S
+++ /dev/null
@@ -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
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem8.S b/MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem8.S
deleted file mode 100644
index 3f0ad09984..0000000000
--- a/MdePkg/Library/BaseMemoryLibOptDxe/X64/ScanMem8.S
+++ /dev/null
@@ -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
-
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem.S b/MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem.S
deleted file mode 100644
index c3a4d76b4f..0000000000
--- a/MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem.S
+++ /dev/null
@@ -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
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem16.S b/MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem16.S
deleted file mode 100644
index cb11f8ac2b..0000000000
--- a/MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem16.S
+++ /dev/null
@@ -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
-
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem32.S b/MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem32.S
deleted file mode 100644
index 9b9a63d14f..0000000000
--- a/MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem32.S
+++ /dev/null
@@ -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
-
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem64.S b/MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem64.S
deleted file mode 100644
index 90acd1f236..0000000000
--- a/MdePkg/Library/BaseMemoryLibOptDxe/X64/SetMem64.S
+++ /dev/null
@@ -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
-
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/X64/ZeroMem.S b/MdePkg/Library/BaseMemoryLibOptDxe/X64/ZeroMem.S
deleted file mode 100644
index 3432f23c68..0000000000
--- a/MdePkg/Library/BaseMemoryLibOptDxe/X64/ZeroMem.S
+++ /dev/null
@@ -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
-
-- 
2.18.0.windows.1



  parent reply	other threads:[~2019-03-29  7:28 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-29  7:28 [PATCH v3 00/12] Remove .S files for IA32 and X64 arch in MdePkg and UefiCpuPkg Shenglei Zhang
2019-03-29  7:28 ` [PATCH v3 01/12] UefiCpuPkg/SmmCpuFeaturesLib: Remove .S files for IA32 and X64 arch Shenglei Zhang
2019-03-29  7:28 ` [PATCH v3 02/12] UefiCpuPkg/BaseUefiCpuLib: " Shenglei Zhang
2019-03-29  7:28 ` [PATCH v3 03/12] UefiCpuPkg/CpuExceptionHandlerLib:Remove.S " Shenglei Zhang
2019-04-01  0:29   ` Dong, Eric
2019-03-29  7:28 ` [PATCH v3 04/12] MdePkg/BaseCpuLib: Remove .S " Shenglei Zhang
2019-03-29  7:28 ` [PATCH v3 05/12] MdePkg/BaseLib: " Shenglei Zhang
2019-03-29  7:28 ` [PATCH v3 06/12] MdePkg/BaseMemoryLibMmx: " Shenglei Zhang
2019-03-29  7:28 ` Shenglei Zhang [this message]
2019-03-29  7:28 ` [PATCH v3 08/12] MdePkg/BaseMemoryLibOptPei: " Shenglei Zhang
2019-03-29  7:28 ` [PATCH v3 09/12] MdePkg/BaseMemoryLibRepStr: " Shenglei Zhang
2019-03-29  7:28 ` [PATCH v3 10/12] MdePkg/BaseMemoryLibSse2: " Shenglei Zhang
2019-03-29  7:28 ` [PATCH v3 11/12] CryptoPkg/IntrinsicLib: Remove .S files for IA32 arch Shenglei Zhang
2019-03-29  7:28 ` [PATCH v3 12/12] SourceLevelDebugPkg/DebugAgentCommon: Remove .S files Shenglei Zhang
2019-04-01  1:25   ` Wu, Hao A
2019-04-01  1:38     ` Zhang, Shenglei
2019-03-29 11:59 ` [PATCH v3 00/12] Remove .S files for IA32 and X64 arch in MdePkg and UefiCpuPkg Gao, Liming

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190329072818.24112-8-shenglei.zhang@intel.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox