[edk2,1/3] ArmPkg: remove BaseMemoryLibVstm implementation of BaseMemoryLib

Message ID 1472634453-27246-2-git-send-email-ard.biesheuvel@linaro.org
State New
Headers show

Commit Message

Ard Biesheuvel Aug. 31, 2016, 9:07 a.m.
The BaseMemoryLibVstm implementation of BaseMemoryLib is ARM only, uses
the NEON register file despite the fact that the UEFI spec does not allow
it, and is currently not used anywhere. So remove it.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

---
 ArmPkg/ArmPkg.dsc                                      |   2 -
 ArmPkg/Library/BaseMemoryLibVstm/Arm/CopyMem.S         | 112 ---------
 ArmPkg/Library/BaseMemoryLibVstm/Arm/CopyMem.asm       | 114 ---------
 ArmPkg/Library/BaseMemoryLibVstm/Arm/SetMem.S          |  76 ------
 ArmPkg/Library/BaseMemoryLibVstm/Arm/SetMem.asm        |  78 ------
 ArmPkg/Library/BaseMemoryLibVstm/BaseMemoryLibVstm.inf |  70 ------
 ArmPkg/Library/BaseMemoryLibVstm/CompareMemWrapper.c   |  66 -----
 ArmPkg/Library/BaseMemoryLibVstm/CopyMem.c             |  62 -----
 ArmPkg/Library/BaseMemoryLibVstm/CopyMemWrapper.c      |  63 -----
 ArmPkg/Library/BaseMemoryLibVstm/MemLibGeneric.c       | 264 --------------------
 ArmPkg/Library/BaseMemoryLibVstm/MemLibGuid.c          | 132 ----------
 ArmPkg/Library/BaseMemoryLibVstm/MemLibInternals.h     | 234 -----------------
 ArmPkg/Library/BaseMemoryLibVstm/ScanMem16Wrapper.c    |  67 -----
 ArmPkg/Library/BaseMemoryLibVstm/ScanMem32Wrapper.c    |  66 -----
 ArmPkg/Library/BaseMemoryLibVstm/ScanMem64Wrapper.c    |  67 -----
 ArmPkg/Library/BaseMemoryLibVstm/ScanMem8Wrapper.c     |  99 --------
 ArmPkg/Library/BaseMemoryLibVstm/SetMem.c              |  53 ----
 ArmPkg/Library/BaseMemoryLibVstm/SetMem16Wrapper.c     |  64 -----
 ArmPkg/Library/BaseMemoryLibVstm/SetMem32Wrapper.c     |  64 -----
 ArmPkg/Library/BaseMemoryLibVstm/SetMem64Wrapper.c     |  64 -----
 ArmPkg/Library/BaseMemoryLibVstm/SetMemWrapper.c       |  91 -------
 ArmPkg/Library/BaseMemoryLibVstm/ZeroMemWrapper.c      |  52 ----
 22 files changed, 1960 deletions(-)

-- 
2.7.4

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Comments

Leif Lindholm Sept. 1, 2016, 12:58 p.m. | #1
On Wed, Aug 31, 2016 at 10:07:31AM +0100, Ard Biesheuvel wrote:
> The BaseMemoryLibVstm implementation of BaseMemoryLib is ARM only, uses

> the NEON register file despite the fact that the UEFI spec does not allow

> it, and is currently not used anywhere. So remove it.

> 

> Contributed-under: TianoCore Contribution Agreement 1.0

> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>


So separate from the rest of the series, it would make sense to merge
this one before moving BaseMemoryLibStm to MdePkg.

Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>.


> ---

>  ArmPkg/ArmPkg.dsc                                      |   2 -

>  ArmPkg/Library/BaseMemoryLibVstm/Arm/CopyMem.S         | 112 ---------

>  ArmPkg/Library/BaseMemoryLibVstm/Arm/CopyMem.asm       | 114 ---------

>  ArmPkg/Library/BaseMemoryLibVstm/Arm/SetMem.S          |  76 ------

>  ArmPkg/Library/BaseMemoryLibVstm/Arm/SetMem.asm        |  78 ------

>  ArmPkg/Library/BaseMemoryLibVstm/BaseMemoryLibVstm.inf |  70 ------

>  ArmPkg/Library/BaseMemoryLibVstm/CompareMemWrapper.c   |  66 -----

>  ArmPkg/Library/BaseMemoryLibVstm/CopyMem.c             |  62 -----

>  ArmPkg/Library/BaseMemoryLibVstm/CopyMemWrapper.c      |  63 -----

>  ArmPkg/Library/BaseMemoryLibVstm/MemLibGeneric.c       | 264 --------------------

>  ArmPkg/Library/BaseMemoryLibVstm/MemLibGuid.c          | 132 ----------

>  ArmPkg/Library/BaseMemoryLibVstm/MemLibInternals.h     | 234 -----------------

>  ArmPkg/Library/BaseMemoryLibVstm/ScanMem16Wrapper.c    |  67 -----

>  ArmPkg/Library/BaseMemoryLibVstm/ScanMem32Wrapper.c    |  66 -----

>  ArmPkg/Library/BaseMemoryLibVstm/ScanMem64Wrapper.c    |  67 -----

>  ArmPkg/Library/BaseMemoryLibVstm/ScanMem8Wrapper.c     |  99 --------

>  ArmPkg/Library/BaseMemoryLibVstm/SetMem.c              |  53 ----

>  ArmPkg/Library/BaseMemoryLibVstm/SetMem16Wrapper.c     |  64 -----

>  ArmPkg/Library/BaseMemoryLibVstm/SetMem32Wrapper.c     |  64 -----

>  ArmPkg/Library/BaseMemoryLibVstm/SetMem64Wrapper.c     |  64 -----

>  ArmPkg/Library/BaseMemoryLibVstm/SetMemWrapper.c       |  91 -------

>  ArmPkg/Library/BaseMemoryLibVstm/ZeroMemWrapper.c      |  52 ----

>  22 files changed, 1960 deletions(-)

> 

> diff --git a/ArmPkg/ArmPkg.dsc b/ArmPkg/ArmPkg.dsc

> index 7b278cdd4124..6f9fc661fbdc 100644

> --- a/ArmPkg/ArmPkg.dsc

> +++ b/ArmPkg/ArmPkg.dsc

> @@ -150,8 +150,6 @@ [Components.common]

>    ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf

>  

>  [Components.ARM]

> -  ArmPkg/Library/BaseMemoryLibVstm/BaseMemoryLibVstm.inf

> -

>    ArmPkg/Drivers/ArmCpuLib/ArmCortexA8Lib/ArmCortexA8Lib.inf

>    ArmPkg/Drivers/ArmCpuLib/ArmCortexA9Lib/ArmCortexA9Lib.inf

>    ArmPkg/Drivers/ArmCpuLib/ArmCortexA15Lib/ArmCortexA15Lib.inf

> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/Arm/CopyMem.S b/ArmPkg/Library/BaseMemoryLibVstm/Arm/CopyMem.S

> deleted file mode 100644

> index 69de4c1fd48e..000000000000

> --- a/ArmPkg/Library/BaseMemoryLibVstm/Arm/CopyMem.S

> +++ /dev/null

> @@ -1,112 +0,0 @@

> -#------------------------------------------------------------------------------

> -#

> -# CopyMem() worker for ARM

> -#

> -# This file started out as C code that did 64 bit moves if the buffer was

> -# 32-bit aligned, else it does a byte copy. It also does a byte copy for

> -# any trailing bytes. Update using VSTM/SLDM to do 128 byte copies.

> -#

> -# Copyright (c) 2008 - 2010, Apple Inc. 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.

> -#

> -#------------------------------------------------------------------------------

> -

> -#include <AsmMacroIoLib.h>

> -

> -/**

> -  Copy Length bytes from Source to Destination. Overlap is OK.

> -

> -  This implementation

> -

> -  @param  Destination Target of copy

> -  @param  Source      Place to copy from

> -  @param  Length      Number of bytes to copy

> -

> -  @return Destination

> -

> -

> -VOID *

> -EFIAPI

> -InternalMemCopyMem (

> -  OUT     VOID                      *DestinationBuffer,

> -  IN      CONST VOID                *SourceBuffer,

> -  IN      UINTN                     Length

> -  )

> -**/

> -ASM_FUNC(InternalMemCopyMem)

> -  stmfd  sp!, {r4, r9, lr}

> -  tst  r0, #3

> -  mov  r4, r0

> -  mov  r9, r0

> -  mov  ip, r2

> -  mov  lr, r1

> -  movne  r0, #0

> -  bne  L4

> -  tst  r1, #3

> -  movne  r3, #0

> -  moveq  r3, #1

> -  cmp  r2, #127

> -  movls  r0, #0

> -  andhi  r0, r3, #1

> -L4:

> -  cmp  r4, r1

> -  bcc  L26

> -  bls  L7

> -  rsb  r3, r1, r4

> -  cmp  ip, r3

> -  bcc  L26

> -  cmp  ip, #0

> -  beq  L7

> -  add  r9, r4, ip

> -  add  lr, ip, r1

> -  b  L16

> -L29:

> -  sub  ip, ip, #8

> -  cmp  ip, #7

> -  ldrd  r2, [lr, #-8]!

> -  movls  r0, #0

> -  cmp  ip, #0

> -  strd  r2, [r9, #-8]!

> -  beq  L7

> -L16:

> -  cmp  r0, #0

> -  bne  L29

> -  sub  r3, lr, #1

> -  sub  ip, ip, #1

> -  ldrb  r3, [r3, #0]

> -  sub  r2, r9, #1

> -  cmp  ip, #0

> -  sub  r9, r9, #1

> -  sub  lr, lr, #1

> -  strb  r3, [r2, #0]

> -  bne  L16

> -  b   L7

> -L11:

> -  ldrb  r3, [lr], #1

> -  sub  ip, ip, #1

> -  strb  r3, [r9], #1

> -L26:

> -  cmp  ip, #0

> -  beq  L7

> -L30:

> -  cmp  r0, #0

> -  beq  L11

> -  sub  ip, ip, #128          // 32

> -  cmp  ip, #127              // 31

> -  vldm     lr!, {d0-d15}

> -  movls  r0, #0

> -  cmp  ip, #0

> -  vstm  r9!, {d0-d15}

> -  bne  L30

> -L7:

> -  dsb

> -  mov  r0, r4

> -  ldmfd  sp!, {r4, r9, pc}

> -

> -

> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/Arm/CopyMem.asm b/ArmPkg/Library/BaseMemoryLibVstm/Arm/CopyMem.asm

> deleted file mode 100644

> index 5afd1e5f2bc1..000000000000

> --- a/ArmPkg/Library/BaseMemoryLibVstm/Arm/CopyMem.asm

> +++ /dev/null

> @@ -1,114 +0,0 @@

> -;------------------------------------------------------------------------------

> -;

> -; CopyMem() worker for ARM

> -;

> -; This file started out as C code that did 64 bit moves if the buffer was

> -; 32-bit aligned, else it does a byte copy. It also does a byte copy for

> -; any trailing bytes. Update using VSTM/SLDM to do 128 byte copies.

> -;

> -; Copyright (c) 2008 - 2010, Apple Inc. 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.

> -;

> -;------------------------------------------------------------------------------

> -

> -/**

> -  Copy Length bytes from Source to Destination. Overlap is OK.

> -

> -  This implementation

> -

> -  @param  Destination Target of copy

> -  @param  Source      Place to copy from

> -  @param  Length      Number of bytes to copy

> -

> -  @return Destination

> -

> -

> -VOID *

> -EFIAPI

> -InternalMemCopyMem (

> -  OUT     VOID                      *DestinationBuffer,

> -  IN      CONST VOID                *SourceBuffer,

> -  IN      UINTN                     Length

> -  )

> -**/

> -

> -    INCLUDE AsmMacroExport.inc

> -

> - RVCT_ASM_EXPORT InternalMemCopyMem

> -  stmfd  sp!, {r4, r9, lr}

> -  tst  r0, #3

> -  mov  r4, r0

> -  mov  r9, r0

> -  mov  ip, r2

> -  mov  lr, r1

> -  movne  r0, #0

> -  bne  L4

> -  tst  r1, #3

> -  movne  r3, #0

> -  moveq  r3, #1

> -  cmp  r2, #127

> -  movls  r0, #0

> -  andhi  r0, r3, #1

> -L4

> -  cmp  r4, r1

> -  bcc  L26

> -  bls  L7

> -  rsb  r3, r1, r4

> -  cmp  ip, r3

> -  bcc  L26

> -  cmp  ip, #0

> -  beq  L7

> -  add  r9, r4, ip

> -  add  lr, ip, r1

> -  b  L16

> -L29

> -  sub  ip, ip, #8

> -  cmp  ip, #7

> -  ldrd  r2, [lr, #-8]!

> -  movls  r0, #0

> -  cmp  ip, #0

> -  strd  r2, [r9, #-8]!

> -  beq  L7

> -L16

> -  cmp  r0, #0

> -  bne  L29

> -  sub  r3, lr, #1

> -  sub  ip, ip, #1

> -  ldrb  r3, [r3, #0]

> -  sub  r2, r9, #1

> -  cmp  ip, #0

> -  sub  r9, r9, #1

> -  sub  lr, lr, #1

> -  strb  r3, [r2, #0]

> -  bne  L16

> -  b   L7

> -L11

> -  ldrb  r3, [lr], #1

> -  sub  ip, ip, #1

> -  strb  r3, [r9], #1

> -L26

> -  cmp  ip, #0

> -  beq  L7

> -L30

> -  cmp  r0, #0

> -  beq  L11

> -  sub  ip, ip, #128          // 32

> -  cmp  ip, #127              // 31

> -  vldm     lr!, {d0-d15}

> -  movls  r0, #0

> -  cmp  ip, #0

> -  vstm  r9!, {d0-d15}

> -  bne  L30

> -L7

> -  dsb

> -  mov  r0, r4

> -  ldmfd  sp!, {r4, r9, pc}

> -

> -  END

> -

> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/Arm/SetMem.S b/ArmPkg/Library/BaseMemoryLibVstm/Arm/SetMem.S

> deleted file mode 100644

> index 28ba38b79c6a..000000000000

> --- a/ArmPkg/Library/BaseMemoryLibVstm/Arm/SetMem.S

> +++ /dev/null

> @@ -1,76 +0,0 @@

> -#------------------------------------------------------------------------------

> -#

> -# SemMem() worker for ARM

> -#

> -# This file started out as C code that did 64 bit moves if the buffer was

> -# 32-bit aligned, else it does a byte copy. It also does a byte copy for

> -# any trailing bytes. Update to use VSTM/VLDM to do 128 byte writes.

> -#

> -# Copyright (c) 2008 - 2010, Apple Inc. 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.

> -#

> -#------------------------------------------------------------------------------

> -

> -#include <AsmMacroIoLib.h>

> -

> -/**

> -  Set Buffer to Value for Size bytes.

> -

> -  @param  Buffer   Memory to set.

> -  @param  Length   Number of bytes to set

> -  @param  Value    Value of the set operation.

> -

> -  @return Buffer

> -

> -VOID *

> -EFIAPI

> -InternalMemSetMem (

> -  OUT     VOID                      *Buffer,

> -  IN      UINTN                     Length,

> -  IN      UINT8                     Value

> -  )

> -**/

> -ASM_FUNC(InternalMemSetMem)

> -  stmfd  sp!, {r4-r7, lr}

> -  tst    r0, #3

> -  movne  r3, #0

> -  moveq  r3, #1

> -  cmp    r1, #127

> -  movls lr, #0

> -  andhi  lr, r3, #1

> -  cmp    lr, #0

> -  mov    r12, r0

> -  bne    L31

> -L32:

> -  mov    r3, #0

> -  b      L43

> -L31:

> -  vdup.8  q0,r2

> -  vmov    q1,q0

> -  vmov    q2,q0

> -  vmov    q3,q0

> -  vmov    q4,q0

> -  vmov    q5,q0

> -  vmov    q6,q0

> -  vmov    q7,q0

> -  b        L32

> -L34:

> -  cmp      lr, #0

> -  streqb  r2, [r12], #1

> -  subeq    r1, r1, #1

> -  beq      L43

> -  sub      r1, r1, #128

> -  cmp      r1, #127

> -  cmp      r1, #31

> -  movls    lr, r3

> -  vstm    r12!, {d0-d15}

> -L43:

> -  cmp      r1, #0

> -  bne      L34

> -  ldmfd    sp!, {pc}

> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/Arm/SetMem.asm b/ArmPkg/Library/BaseMemoryLibVstm/Arm/SetMem.asm

> deleted file mode 100644

> index c4a7c2b72008..000000000000

> --- a/ArmPkg/Library/BaseMemoryLibVstm/Arm/SetMem.asm

> +++ /dev/null

> @@ -1,78 +0,0 @@

> -;------------------------------------------------------------------------------

> -;

> -; SetMem() worker for ARM

> -;

> -; This file started out as C code that did 64 bit moves if the buffer was

> -; 32-bit aligned, else it does a byte copy. It also does a byte copy for

> -; any trailing bytes. Update to use VSTM/VLDM to do 128 byte writes.

> -;

> -; Copyright (c) 2008 - 2010, Apple Inc. 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.

> -;

> -

> -/**

> -  Set Buffer to Value for Size bytes.

> -

> -  @param  Buffer   Memory to set.

> -  @param  Length   Number of bytes to set

> -  @param  Value    Value of the set operation.

> -

> -  @return Buffer

> -

> -VOID *

> -EFIAPI

> -InternalMemSetMem (

> -  OUT     VOID                      *Buffer,

> -  IN      UINTN                     Length,

> -  IN      UINT8                     Value

> -  )

> -**/

> -

> -

> -    INCLUDE AsmMacroExport.inc

> -

> - RVCT_ASM_EXPORT InternalMemSetMem

> -  stmfd  sp!, {lr}

> -  tst    r0, #3

> -  movne  r3, #0

> -  moveq  r3, #1

> -  cmp    r1, #127

> -  movls lr, #0

> -  andhi  lr, r3, #1

> -  cmp    lr, #0

> -  mov    r12, r0

> -  bne    L31

> -L32

> -  mov    r3, #0

> -  b      L43

> -L31

> -  vdup.8  q0,r2

> -  vmov    q1,q0

> -  vmov    q2,q0

> -  vmov    q3,q0

> -  vmov    q4,q0

> -  vmov    q5,q0

> -  vmov    q6,q0

> -  vmov    q7,q0

> -  b        L32

> -L34

> -  cmp      lr, #0

> -  streqb  r2, [r12], #1

> -  subeq    r1, r1, #1

> -  beq      L43

> -  sub      r1, r1, #128

> -  cmp      r1, #127

> -  movls    lr, r3

> -  vstm    r12!, {d0-d15}

> -L43

> -  cmp      r1, #0

> -  bne      L34

> -  ldmfd    sp!, {pc}

> -

> -  END

> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/BaseMemoryLibVstm.inf b/ArmPkg/Library/BaseMemoryLibVstm/BaseMemoryLibVstm.inf

> deleted file mode 100644

> index 4c388fa8984d..000000000000

> --- a/ArmPkg/Library/BaseMemoryLibVstm/BaseMemoryLibVstm.inf

> +++ /dev/null

> @@ -1,70 +0,0 @@

> -## @file

> -#  Instance of Base Memory Library with some ARM vldm/vstm assembly.

> -#

> -#  This is a copy of the MdePkg BaseMemoryLib with the CopyMem and

> -#  SetMem worker functions replaced with assembler that uses

> -#  vldm/vstm (part of NEON SIMD, optional in ARMv7-A).

> -#

> -#  Note: You need to enable NEON in SEC to use this library

> -#  // Enable NEON register in case folks want to use them for optimizations (CopyMem)

> -#  mrc     p15, 0, r0, c1, c0, 2

> -#  orr     r0, r0, #0x00f00000   // Enable VPF access (V* instructions)

> -#  mcr     p15, 0, r0, c1, c0, 2

> -#  mov     r0, #0x40000000       // Set EN bit in FPEXC

> -#  msr     FPEXC,r0

> -#

> -#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>

> -#  Portions copyright (c) 2010, Apple Inc. 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.

> -#

> -#

> -##

> -

> -[Defines]

> -  INF_VERSION                    = 0x00010005

> -  BASE_NAME                      = BaseMemoryLibVstm

> -  FILE_GUID                      = 09EE1E8D-7A2E-4573-8117-68A18569C1F5

> -  MODULE_TYPE                    = BASE

> -  VERSION_STRING                 = 1.0

> -  LIBRARY_CLASS                  = BaseMemoryLib

> -

> -

> -#

> -#  VALID_ARCHITECTURES           = ARM

> -#

> -

> -[Sources.ARM]

> -  ScanMem64Wrapper.c

> -  ScanMem32Wrapper.c

> -  ScanMem16Wrapper.c

> -  ScanMem8Wrapper.c

> -  ZeroMemWrapper.c

> -  CompareMemWrapper.c

> -  SetMem64Wrapper.c

> -  SetMem32Wrapper.c

> -  SetMem16Wrapper.c

> -  SetMemWrapper.c

> -  CopyMemWrapper.c

> -  MemLibGeneric.c

> -  MemLibGuid.c

> -  MemLibInternals.h

> -  Arm/CopyMem.asm

> -  Arm/CopyMem.S

> -  Arm/SetMem.asm

> -  Arm/SetMem.S

> -

> -

> -[Packages]

> -  MdePkg/MdePkg.dec

> -  ArmPkg/ArmPkg.dec

> -

> -[LibraryClasses]

> -  DebugLib

> -  BaseLib

> -

> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/CompareMemWrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/CompareMemWrapper.c

> deleted file mode 100644

> index c83988f59ecb..000000000000

> --- a/ArmPkg/Library/BaseMemoryLibVstm/CompareMemWrapper.c

> +++ /dev/null

> @@ -1,66 +0,0 @@

> -/** @file

> -  CompareMem() implementation.

> -

> -  The following BaseMemoryLib instances contain the same copy of this file:

> -    BaseMemoryLib

> -    BaseMemoryLibMmx

> -    BaseMemoryLibSse2

> -    BaseMemoryLibRepStr

> -    BaseMemoryLibOptDxe

> -    BaseMemoryLibOptPei

> -    PeiMemoryLib

> -    UefiMemoryLib

> -

> -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.

> -

> -**/

> -

> -#include "MemLibInternals.h"

> -

> -/**

> -  Compares the contents of two buffers.

> -

> -  This function compares Length bytes of SourceBuffer to Length bytes of DestinationBuffer.

> -  If all Length bytes of the two buffers are identical, then 0 is returned.  Otherwise, the

> -  value returned is the first mismatched byte in SourceBuffer subtracted from the first

> -  mismatched byte in DestinationBuffer.

> -

> -  If Length > 0 and DestinationBuffer is NULL, then ASSERT().

> -  If Length > 0 and SourceBuffer is NULL, then ASSERT().

> -  If Length is greater than (MAX_ADDRESS - DestinationBuffer + 1), then ASSERT().

> -  If Length is greater than (MAX_ADDRESS - SourceBuffer + 1), then ASSERT().

> -

> -  @param  DestinationBuffer Pointer to the destination buffer to compare.

> -  @param  SourceBuffer      Pointer to the source buffer to compare.

> -  @param  Length            Number of bytes to compare.

> -

> -  @return 0                 All Length bytes of the two buffers are identical.

> -  @retval Non-zero          The first mismatched byte in SourceBuffer subtracted from the first

> -                            mismatched byte in DestinationBuffer.

> -

> -**/

> -INTN

> -EFIAPI

> -CompareMem (

> -  IN CONST VOID  *DestinationBuffer,

> -  IN CONST VOID  *SourceBuffer,

> -  IN UINTN       Length

> -  )

> -{

> -  if (Length == 0 || DestinationBuffer == SourceBuffer) {

> -    return 0;

> -  }

> -  ASSERT (DestinationBuffer != NULL);

> -  ASSERT (SourceBuffer != NULL);

> -  ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)DestinationBuffer));

> -  ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)SourceBuffer));

> -

> -  return InternalMemCompareMem (DestinationBuffer, SourceBuffer, Length);

> -}

> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/CopyMem.c b/ArmPkg/Library/BaseMemoryLibVstm/CopyMem.c

> deleted file mode 100644

> index b30faed5607d..000000000000

> --- a/ArmPkg/Library/BaseMemoryLibVstm/CopyMem.c

> +++ /dev/null

> @@ -1,62 +0,0 @@

> -/** @file

> -  Implementation of the InternalMemCopyMem routine. This function is broken

> -  out into its own source file so that it can be excluded from a build for a

> -  particular platform easily if an optimized version is desired.

> -

> -  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.

> -

> -**/

> -

> -

> -

> -

> -#include "MemLibInternals.h"

> -

> -/**

> -  Copy Length bytes from Source to Destination.

> -

> -  @param  DestinationBuffer Target of copy

> -  @param  SourceBuffer      Place to copy from

> -  @param  Length            Number of bytes to copy

> -

> -  @return Destination

> -

> -**/

> -VOID *

> -EFIAPI

> -InternalMemCopyMem (

> -  OUT     VOID                      *DestinationBuffer,

> -  IN      CONST VOID                *SourceBuffer,

> -  IN      UINTN                     Length

> -  )

> -{

> -  //

> -  // Declare the local variables that actually move the data elements as

> -  // volatile to prevent the optimizer from replacing this function with

> -  // the intrinsic memcpy()

> -  //

> -  volatile UINT8                    *Destination8;

> -  CONST UINT8                       *Source8;

> -

> -  if (SourceBuffer > DestinationBuffer) {

> -    Destination8 = (UINT8*)DestinationBuffer;

> -    Source8 = (CONST UINT8*)SourceBuffer;

> -    while (Length-- != 0) {

> -      *(Destination8++) = *(Source8++);

> -    }

> -  } else if (SourceBuffer < DestinationBuffer) {

> -    Destination8 = (UINT8*)DestinationBuffer + Length;

> -    Source8 = (CONST UINT8*)SourceBuffer + Length;

> -    while (Length-- != 0) {

> -      *(--Destination8) = *(--Source8);

> -    }

> -  }

> -  return DestinationBuffer;

> -}

> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/CopyMemWrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/CopyMemWrapper.c

> deleted file mode 100644

> index 2adfb3114910..000000000000

> --- a/ArmPkg/Library/BaseMemoryLibVstm/CopyMemWrapper.c

> +++ /dev/null

> @@ -1,63 +0,0 @@

> -/** @file

> -  CopyMem() implementation.

> -

> -  The following BaseMemoryLib instances contain the same copy of this file:

> -

> -    BaseMemoryLib

> -    BaseMemoryLibMmx

> -    BaseMemoryLibSse2

> -    BaseMemoryLibRepStr

> -    BaseMemoryLibOptDxe

> -    BaseMemoryLibOptPei

> -    PeiMemoryLib

> -    UefiMemoryLib

> -

> -  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.

> -

> -**/

> -

> -#include "MemLibInternals.h"

> -

> -/**

> -  Copies a source buffer to a destination buffer, and returns the destination buffer.

> -

> -  This function copies Length bytes from SourceBuffer to DestinationBuffer, and returns

> -  DestinationBuffer.  The implementation must be reentrant, and it must handle the case

> -  where SourceBuffer overlaps DestinationBuffer.

> -

> -  If Length is greater than (MAX_ADDRESS - DestinationBuffer + 1), then ASSERT().

> -  If Length is greater than (MAX_ADDRESS - SourceBuffer + 1), then ASSERT().

> -

> -  @param  DestinationBuffer   Pointer to the destination buffer of the memory copy.

> -  @param  SourceBuffer        Pointer to the source buffer of the memory copy.

> -  @param  Length              Number of bytes to copy from SourceBuffer to DestinationBuffer.

> -

> -  @return DestinationBuffer.

> -

> -**/

> -VOID *

> -EFIAPI

> -CopyMem (

> -  OUT VOID       *DestinationBuffer,

> -  IN CONST VOID  *SourceBuffer,

> -  IN UINTN       Length

> -  )

> -{

> -  if (Length == 0) {

> -    return DestinationBuffer;

> -  }

> -  ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)DestinationBuffer));

> -  ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)SourceBuffer));

> -

> -  if (DestinationBuffer == SourceBuffer) {

> -    return DestinationBuffer;

> -  }

> -  return InternalMemCopyMem (DestinationBuffer, SourceBuffer, Length);

> -}

> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/MemLibGeneric.c b/ArmPkg/Library/BaseMemoryLibVstm/MemLibGeneric.c

> deleted file mode 100644

> index 54c27012955f..000000000000

> --- a/ArmPkg/Library/BaseMemoryLibVstm/MemLibGeneric.c

> +++ /dev/null

> @@ -1,264 +0,0 @@

> -/** @file

> -  Architecture Independent Base Memory Library Implementation.

> -

> -  The following BaseMemoryLib instances contain the same copy of this file:

> -    BaseMemoryLib

> -    PeiMemoryLib

> -    UefiMemoryLib

> -

> -  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.

> -

> -**/

> -

> -#include "MemLibInternals.h"

> -

> -/**

> -  Fills a target buffer with a 16-bit value, and returns the target buffer.

> -

> -  @param  Buffer  Pointer to the target buffer to fill.

> -  @param  Length  Count of 16-bit value to fill.

> -  @param  Value   Value with which to fill Length bytes of Buffer.

> -

> -  @return Buffer

> -

> -**/

> -VOID *

> -EFIAPI

> -InternalMemSetMem16 (

> -  OUT     VOID                      *Buffer,

> -  IN      UINTN                     Length,

> -  IN      UINT16                    Value

> -  )

> -{

> -  do {

> -    ((UINT16*)Buffer)[--Length] = Value;

> -  } while (Length != 0);

> -  return Buffer;

> -}

> -

> -/**

> -  Fills a target buffer with a 32-bit value, and returns the target buffer.

> -

> -  @param  Buffer  Pointer to the target buffer to fill.

> -  @param  Length  Count of 32-bit value to fill.

> -  @param  Value   Value with which to fill Length bytes of Buffer.

> -

> -  @return Buffer

> -

> -**/

> -VOID *

> -EFIAPI

> -InternalMemSetMem32 (

> -  OUT     VOID                      *Buffer,

> -  IN      UINTN                     Length,

> -  IN      UINT32                    Value

> -  )

> -{

> -  do {

> -    ((UINT32*)Buffer)[--Length] = Value;

> -  } while (Length != 0);

> -  return Buffer;

> -}

> -

> -/**

> -  Fills a target buffer with a 64-bit value, and returns the target buffer.

> -

> -  @param  Buffer  Pointer to the target buffer to fill.

> -  @param  Length  Count of 64-bit value to fill.

> -  @param  Value   Value with which to fill Length bytes of Buffer.

> -

> -  @return Buffer

> -

> -**/

> -VOID *

> -EFIAPI

> -InternalMemSetMem64 (

> -  OUT     VOID                      *Buffer,

> -  IN      UINTN                     Length,

> -  IN      UINT64                    Value

> -  )

> -{

> -  do {

> -    ((UINT64*)Buffer)[--Length] = Value;

> -  } while (Length != 0);

> -  return Buffer;

> -}

> -

> -/**

> -  Set Buffer to 0 for Size bytes.

> -

> -  @param  Buffer Memory to set.

> -  @param  Length Number of bytes to set

> -

> -  @return Buffer

> -

> -**/

> -VOID *

> -EFIAPI

> -InternalMemZeroMem (

> -  OUT     VOID                      *Buffer,

> -  IN      UINTN                     Length

> -  )

> -{

> -  return InternalMemSetMem (Buffer, Length, 0);

> -}

> -

> -/**

> -  Compares two memory buffers of a given length.

> -

> -  @param  DestinationBuffer First memory buffer

> -  @param  SourceBuffer      Second memory buffer

> -  @param  Length            Length of DestinationBuffer and SourceBuffer memory

> -                            regions to compare. Must be non-zero.

> -

> -  @return 0                 All Length bytes of the two buffers are identical.

> -  @retval Non-zero          The first mismatched byte in SourceBuffer subtracted from the first

> -                            mismatched byte in DestinationBuffer.

> -

> -**/

> -INTN

> -EFIAPI

> -InternalMemCompareMem (

> -  IN      CONST VOID                *DestinationBuffer,

> -  IN      CONST VOID                *SourceBuffer,

> -  IN      UINTN                     Length

> -  )

> -{

> -  while ((--Length != 0) &&

> -         (*(INT8*)DestinationBuffer == *(INT8*)SourceBuffer)) {

> -    DestinationBuffer = (INT8*)DestinationBuffer + 1;

> -    SourceBuffer = (INT8*)SourceBuffer + 1;

> -  }

> -  return (INTN)*(UINT8*)DestinationBuffer - (INTN)*(UINT8*)SourceBuffer;

> -}

> -

> -/**

> -  Scans a target buffer for an 8-bit value, and returns a pointer to the

> -  matching 8-bit value in the target buffer.

> -

> -  @param  Buffer  Pointer to the target buffer to scan.

> -  @param  Length  Count of 8-bit value to scan. Must be non-zero.

> -  @param  Value   Value to search for in the target buffer.

> -

> -  @return Pointer to the first occurrence or NULL if not found.

> -

> -**/

> -CONST VOID *

> -EFIAPI

> -InternalMemScanMem8 (

> -  IN      CONST VOID                *Buffer,

> -  IN      UINTN                     Length,

> -  IN      UINT8                     Value

> -  )

> -{

> -  CONST UINT8                       *Pointer;

> -

> -  Pointer = (CONST UINT8*)Buffer;

> -  do {

> -    if (*Pointer == Value) {

> -      return Pointer;

> -    }

> -    Pointer++;

> -  } while (--Length != 0);

> -  return NULL;

> -}

> -

> -/**

> -  Scans a target buffer for a 16-bit value, and returns a pointer to the

> -  matching 16-bit value in the target buffer.

> -

> -  @param  Buffer  Pointer to the target buffer to scan.

> -  @param  Length  Count of 16-bit value to scan. Must be non-zero.

> -  @param  Value   Value to search for in the target buffer.

> -

> -  @return Pointer to the first occurrence or NULL if not found.

> -

> -**/

> -CONST VOID *

> -EFIAPI

> -InternalMemScanMem16 (

> -  IN      CONST VOID                *Buffer,

> -  IN      UINTN                     Length,

> -  IN      UINT16                    Value

> -  )

> -{

> -  CONST UINT16                      *Pointer;

> -

> -  Pointer = (CONST UINT16*)Buffer;

> -  do {

> -    if (*Pointer == Value) {

> -      return Pointer;

> -    }

> -    Pointer++;

> -  } while (--Length != 0);

> -  return NULL;

> -}

> -

> -/**

> -  Scans a target buffer for a 32-bit value, and returns a pointer to the

> -  matching 32-bit value in the target buffer.

> -

> -  @param  Buffer  Pointer to the target buffer to scan.

> -  @param  Length  Count of 32-bit value to scan. Must be non-zero.

> -  @param  Value   Value to search for in the target buffer.

> -

> -  @return Pointer to the first occurrence or NULL if not found.

> -

> -**/

> -CONST VOID *

> -EFIAPI

> -InternalMemScanMem32 (

> -  IN      CONST VOID                *Buffer,

> -  IN      UINTN                     Length,

> -  IN      UINT32                    Value

> -  )

> -{

> -  CONST UINT32                      *Pointer;

> -

> -  Pointer = (CONST UINT32*)Buffer;

> -  do {

> -    if (*Pointer == Value) {

> -      return Pointer;

> -    }

> -    Pointer++;

> -  } while (--Length != 0);

> -  return NULL;

> -}

> -

> -/**

> -  Scans a target buffer for a 64-bit value, and returns a pointer to the

> -  matching 64-bit value in the target buffer.

> -

> -  @param  Buffer  Pointer to the target buffer to scan.

> -  @param  Length  Count of 64-bit value to scan. Must be non-zero.

> -  @param  Value   Value to search for in the target buffer.

> -

> -  @return Pointer to the first occurrence or NULL if not found.

> -

> -**/

> -CONST VOID *

> -EFIAPI

> -InternalMemScanMem64 (

> -  IN      CONST VOID                *Buffer,

> -  IN      UINTN                     Length,

> -  IN      UINT64                    Value

> -  )

> -{

> -  CONST UINT64                      *Pointer;

> -

> -  Pointer = (CONST UINT64*)Buffer;

> -  do {

> -    if (*Pointer == Value) {

> -      return Pointer;

> -    }

> -    Pointer++;

> -  } while (--Length != 0);

> -  return NULL;

> -}

> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/MemLibGuid.c b/ArmPkg/Library/BaseMemoryLibVstm/MemLibGuid.c

> deleted file mode 100644

> index dc9e2c319ba9..000000000000

> --- a/ArmPkg/Library/BaseMemoryLibVstm/MemLibGuid.c

> +++ /dev/null

> @@ -1,132 +0,0 @@

> -/** @file

> -  Implementation of GUID functions.

> -

> -  The following BaseMemoryLib instances contain the same copy of this file:

> -

> -    BaseMemoryLib

> -    BaseMemoryLibMmx

> -    BaseMemoryLibSse2

> -    BaseMemoryLibRepStr

> -    BaseMemoryLibOptDxe

> -    BaseMemoryLibOptPei

> -    PeiMemoryLib

> -    UefiMemoryLib

> -

> -  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.

> -

> -**/

> -

> -#include "MemLibInternals.h"

> -

> -/**

> -  Copies a source GUID to a destination GUID.

> -

> -  This function copies the contents of the 128-bit GUID specified by SourceGuid to

> -  DestinationGuid, and returns DestinationGuid.

> -

> -  If DestinationGuid is NULL, then ASSERT().

> -  If SourceGuid is NULL, then ASSERT().

> -

> -  @param  DestinationGuid   Pointer to the destination GUID.

> -  @param  SourceGuid        Pointer to the source GUID.

> -

> -  @return DestinationGuid.

> -

> -**/

> -GUID *

> -EFIAPI

> -CopyGuid (

> -  OUT GUID       *DestinationGuid,

> -  IN CONST GUID  *SourceGuid

> -  )

> -{

> -  WriteUnaligned64 (

> -    (UINT64*)DestinationGuid,

> -    ReadUnaligned64 ((CONST UINT64*)SourceGuid)

> -    );

> -  WriteUnaligned64 (

> -    (UINT64*)DestinationGuid + 1,

> -    ReadUnaligned64 ((CONST UINT64*)SourceGuid + 1)

> -    );

> -  return DestinationGuid;

> -}

> -

> -/**

> -  Compares two GUIDs.

> -

> -  This function compares Guid1 to Guid2.  If the GUIDs are identical then TRUE is returned.

> -  If there are any bit differences in the two GUIDs, then FALSE is returned.

> -

> -  If Guid1 is NULL, then ASSERT().

> -  If Guid2 is NULL, then ASSERT().

> -

> -  @param  Guid1       A pointer to a 128 bit GUID.

> -  @param  Guid2       A pointer to a 128 bit GUID.

> -

> -  @retval TRUE        Guid1 and Guid2 are identical.

> -  @retval FALSE       Guid1 and Guid2 are not identical.

> -

> -**/

> -BOOLEAN

> -EFIAPI

> -CompareGuid (

> -  IN CONST GUID  *Guid1,

> -  IN CONST GUID  *Guid2

> -  )

> -{

> -  return (CompareMem(Guid1, Guid2, sizeof(GUID) == 0)) ? TRUE : FALSE;

> -}

> -

> -/**

> -  Scans a target buffer for a GUID, and returns a pointer to the matching GUID

> -  in the target buffer.

> -

> -  This function searches the target buffer specified by Buffer and Length from

> -  the lowest address to the highest address at 128-bit increments for the 128-bit

> -  GUID value that matches Guid.  If a match is found, then a pointer to the matching

> -  GUID in the target buffer is returned.  If no match is found, then NULL is returned.

> -  If Length is 0, then NULL is returned.

> -

> -  If Length > 0 and Buffer is NULL, then ASSERT().

> -  If Buffer is not aligned on a 32-bit boundary, then ASSERT().

> -  If Length is not aligned on a 128-bit boundary, then ASSERT().

> -  If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().

> -

> -  @param  Buffer  Pointer to the target buffer to scan.

> -  @param  Length  Number of bytes in Buffer to scan.

> -  @param  Guid    Value to search for in the target buffer.

> -

> -  @return A pointer to the matching Guid in the target buffer or NULL otherwise.

> -

> -**/

> -VOID *

> -EFIAPI

> -ScanGuid (

> -  IN CONST VOID  *Buffer,

> -  IN UINTN       Length,

> -  IN CONST GUID  *Guid

> -  )

> -{

> -  CONST GUID                        *GuidPtr;

> -

> -  ASSERT (((UINTN)Buffer & (sizeof (Guid->Data1) - 1)) == 0);

> -  ASSERT (Length <= (MAX_ADDRESS - (UINTN)Buffer + 1));

> -  ASSERT ((Length & (sizeof (*GuidPtr) - 1)) == 0);

> -

> -  GuidPtr = (GUID*)Buffer;

> -  Buffer  = GuidPtr + Length / sizeof (*GuidPtr);

> -  while (GuidPtr < (CONST GUID*)Buffer) {

> -    if (CompareGuid (GuidPtr, Guid)) {

> -      return (VOID*)GuidPtr;

> -    }

> -    GuidPtr++;

> -  }

> -  return NULL;

> -}

> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/MemLibInternals.h b/ArmPkg/Library/BaseMemoryLibVstm/MemLibInternals.h

> deleted file mode 100644

> index 10c741f2c311..000000000000

> --- a/ArmPkg/Library/BaseMemoryLibVstm/MemLibInternals.h

> +++ /dev/null

> @@ -1,234 +0,0 @@

> -/** @file

> -  Declaration of internal functions for Base Memory Library.

> -

> -  The following BaseMemoryLib instances contain the same copy of this file:

> -    BaseMemoryLib

> -    BaseMemoryLibMmx

> -    BaseMemoryLibSse2

> -    BaseMemoryLibRepStr

> -    BaseMemoryLibOptDxe

> -    BaseMemoryLibOptPei

> -

> -  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.

> -

> -**/

> -

> -#ifndef __MEM_LIB_INTERNALS__

> -#define __MEM_LIB_INTERNALS__

> -

> -#include <Base.h>

> -#include <Library/BaseMemoryLib.h>

> -#include <Library/BaseLib.h>

> -#include <Library/DebugLib.h>

> -

> -/**

> -  Copy Length bytes from Source to Destination.

> -

> -  @param  DestinationBuffer Target of copy

> -  @param  SourceBuffer      Place to copy from

> -  @param  Length            Number of bytes to copy

> -

> -  @return Destination

> -

> -**/

> -VOID *

> -EFIAPI

> -InternalMemCopyMem (

> -  OUT     VOID                      *DestinationBuffer,

> -  IN      CONST VOID                *SourceBuffer,

> -  IN      UINTN                     Length

> -  );

> -

> -/**

> -  Set Buffer to Value for Size bytes.

> -

> -  @param  Buffer   Memory to set.

> -  @param  Length   Number of bytes to set

> -  @param  Value    Value of the set operation.

> -

> -  @return Buffer

> -

> -**/

> -VOID *

> -EFIAPI

> -InternalMemSetMem (

> -  OUT     VOID                      *Buffer,

> -  IN      UINTN                     Length,

> -  IN      UINT8                     Value

> -  );

> -

> -/**

> -  Fills a target buffer with a 16-bit value, and returns the target buffer.

> -

> -  @param  Buffer  Pointer to the target buffer to fill.

> -  @param  Length  Count of 16-bit value to fill.

> -  @param  Value   Value with which to fill Length bytes of Buffer.

> -

> -  @return Buffer

> -

> -**/

> -VOID *

> -EFIAPI

> -InternalMemSetMem16 (

> -  OUT     VOID                      *Buffer,

> -  IN      UINTN                     Length,

> -  IN      UINT16                    Value

> -  );

> -

> -/**

> -  Fills a target buffer with a 32-bit value, and returns the target buffer.

> -

> -  @param  Buffer  Pointer to the target buffer to fill.

> -  @param  Length  Count of 32-bit value to fill.

> -  @param  Value   Value with which to fill Length bytes of Buffer.

> -

> -  @return Buffer

> -

> -**/

> -VOID *

> -EFIAPI

> -InternalMemSetMem32 (

> -  OUT     VOID                      *Buffer,

> -  IN      UINTN                     Length,

> -  IN      UINT32                    Value

> -  );

> -

> -/**

> -  Fills a target buffer with a 64-bit value, and returns the target buffer.

> -

> -  @param  Buffer  Pointer to the target buffer to fill.

> -  @param  Length  Count of 64-bit value to fill.

> -  @param  Value   Value with which to fill Length bytes of Buffer.

> -

> -  @return Buffer

> -

> -**/

> -VOID *

> -EFIAPI

> -InternalMemSetMem64 (

> -  OUT     VOID                      *Buffer,

> -  IN      UINTN                     Length,

> -  IN      UINT64                    Value

> -  );

> -

> -/**

> -  Set Buffer to 0 for Size bytes.

> -

> -  @param  Buffer Memory to set.

> -  @param  Length Number of bytes to set

> -

> -  @return Buffer

> -

> -**/

> -VOID *

> -EFIAPI

> -InternalMemZeroMem (

> -  OUT     VOID                      *Buffer,

> -  IN      UINTN                     Length

> -  );

> -

> -/**

> -  Compares two memory buffers of a given length.

> -

> -  @param  DestinationBuffer First memory buffer

> -  @param  SourceBuffer      Second memory buffer

> -  @param  Length            Length of DestinationBuffer and SourceBuffer memory

> -                            regions to compare. Must be non-zero.

> -

> -  @return 0                 All Length bytes of the two buffers are identical.

> -  @retval Non-zero          The first mismatched byte in SourceBuffer subtracted from the first

> -                            mismatched byte in DestinationBuffer.

> -

> -**/

> -INTN

> -EFIAPI

> -InternalMemCompareMem (

> -  IN      CONST VOID                *DestinationBuffer,

> -  IN      CONST VOID                *SourceBuffer,

> -  IN      UINTN                     Length

> -  );

> -

> -/**

> -  Scans a target buffer for an 8-bit value, and returns a pointer to the

> -  matching 8-bit value in the target buffer.

> -

> -  @param  Buffer  Pointer to the target buffer to scan.

> -  @param  Length  Count of 8-bit value to scan. Must be non-zero.

> -  @param  Value   Value to search for in the target buffer.

> -

> -  @return Pointer to the first occurrence or NULL if not found.

> -

> -**/

> -CONST VOID *

> -EFIAPI

> -InternalMemScanMem8 (

> -  IN      CONST VOID                *Buffer,

> -  IN      UINTN                     Length,

> -  IN      UINT8                     Value

> -  );

> -

> -/**

> -  Scans a target buffer for a 16-bit value, and returns a pointer to the

> -  matching 16-bit value in the target buffer.

> -

> -  @param  Buffer  Pointer to the target buffer to scan.

> -  @param  Length  Count of 16-bit value to scan. Must be non-zero.

> -  @param  Value   Value to search for in the target buffer.

> -

> -  @return Pointer to the first occurrence or NULL if not found.

> -

> -**/

> -CONST VOID *

> -EFIAPI

> -InternalMemScanMem16 (

> -  IN      CONST VOID                *Buffer,

> -  IN      UINTN                     Length,

> -  IN      UINT16                    Value

> -  );

> -

> -/**

> -  Scans a target buffer for a 32-bit value, and returns a pointer to the

> -  matching 32-bit value in the target buffer.

> -

> -  @param  Buffer  Pointer to the target buffer to scan.

> -  @param  Length  Count of 32-bit value to scan. Must be non-zero.

> -  @param  Value   Value to search for in the target buffer.

> -

> -  @return Pointer to the first occurrence or NULL if not found.

> -

> -**/

> -CONST VOID *

> -EFIAPI

> -InternalMemScanMem32 (

> -  IN      CONST VOID                *Buffer,

> -  IN      UINTN                     Length,

> -  IN      UINT32                    Value

> -  );

> -

> -/**

> -  Scans a target buffer for a 64-bit value, and returns a pointer to the

> -  matching 64-bit value in the target buffer.

> -

> -  @param  Buffer  Pointer to the target buffer to scan.

> -  @param  Length  Count of 64-bit value to scan. Must be non-zero.

> -  @param  Value   Value to search for in the target buffer.

> -

> -  @return Pointer to the first occurrence or NULL if not found.

> -

> -**/

> -CONST VOID *

> -EFIAPI

> -InternalMemScanMem64 (

> -  IN      CONST VOID                *Buffer,

> -  IN      UINTN                     Length,

> -  IN      UINT64                    Value

> -  );

> -

> -#endif

> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/ScanMem16Wrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/ScanMem16Wrapper.c

> deleted file mode 100644

> index 1c727b3e8077..000000000000

> --- a/ArmPkg/Library/BaseMemoryLibVstm/ScanMem16Wrapper.c

> +++ /dev/null

> @@ -1,67 +0,0 @@

> -/** @file

> -  ScanMem16() implementation.

> -

> -  The following BaseMemoryLib instances contain the same copy of this file:

> -

> -    BaseMemoryLib

> -    BaseMemoryLibMmx

> -    BaseMemoryLibSse2

> -    BaseMemoryLibRepStr

> -    BaseMemoryLibOptDxe

> -    BaseMemoryLibOptPei

> -    PeiMemoryLib

> -    UefiMemoryLib

> -

> -  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.

> -

> -**/

> -

> -#include "MemLibInternals.h"

> -

> -/**

> -  Scans a target buffer for a 16-bit value, and returns a pointer to the matching 16-bit value

> -  in the target buffer.

> -

> -  This function searches the target buffer specified by Buffer and Length from the lowest

> -  address to the highest address for a 16-bit value that matches Value.  If a match is found,

> -  then a pointer to the matching byte in the target buffer is returned.  If no match is found,

> -  then NULL is returned.  If Length is 0, then NULL is returned.

> -

> -  If Length > 0 and Buffer is NULL, then ASSERT().

> -  If Buffer is not aligned on a 16-bit boundary, then ASSERT().

> -  If Length is not aligned on a 16-bit boundary, then ASSERT().

> -  If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().

> -

> -  @param  Buffer      Pointer to the target buffer to scan.

> -  @param  Length      Number of bytes in Buffer to scan.

> -  @param  Value       Value to search for in the target buffer.

> -

> -  @return A pointer to the matching byte in the target buffer or NULL otherwise.

> -

> -**/

> -VOID *

> -EFIAPI

> -ScanMem16 (

> -  IN CONST VOID  *Buffer,

> -  IN UINTN       Length,

> -  IN UINT16      Value

> -  )

> -{

> -  if (Length == 0) {

> -    return NULL;

> -  }

> -

> -  ASSERT (Buffer != NULL);

> -  ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);

> -  ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));

> -  ASSERT ((Length & (sizeof (Value) - 1)) == 0);

> -

> -  return (VOID*)InternalMemScanMem16 (Buffer, Length / sizeof (Value), Value);

> -}

> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/ScanMem32Wrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/ScanMem32Wrapper.c

> deleted file mode 100644

> index 79ab60ced84c..000000000000

> --- a/ArmPkg/Library/BaseMemoryLibVstm/ScanMem32Wrapper.c

> +++ /dev/null

> @@ -1,66 +0,0 @@

> -/** @file

> -  ScanMem32() implementation.

> -

> -  The following BaseMemoryLib instances contain the same copy of this file:

> -    BaseMemoryLib

> -    BaseMemoryLibMmx

> -    BaseMemoryLibSse2

> -    BaseMemoryLibRepStr

> -    BaseMemoryLibOptDxe

> -    BaseMemoryLibOptPei

> -    PeiMemoryLib

> -    UefiMemoryLib

> -

> -  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.

> -

> -**/

> -

> -#include "MemLibInternals.h"

> -

> -/**

> -  Scans a target buffer for a 32-bit value, and returns a pointer to the matching 32-bit value

> -  in the target buffer.

> -

> -  This function searches the target buffer specified by Buffer and Length from the lowest

> -  address to the highest address for a 32-bit value that matches Value.  If a match is found,

> -  then a pointer to the matching byte in the target buffer is returned.  If no match is found,

> -  then NULL is returned.  If Length is 0, then NULL is returned.

> -

> -  If Length > 0 and Buffer is NULL, then ASSERT().

> -  If Buffer is not aligned on a 32-bit boundary, then ASSERT().

> -  If Length is not aligned on a 32-bit boundary, then ASSERT().

> -  If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().

> -

> -  @param  Buffer      Pointer to the target buffer to scan.

> -  @param  Length      Number of bytes in Buffer to scan.

> -  @param  Value       Value to search for in the target buffer.

> -

> -  @return A pointer to the matching byte in the target buffer or NULL otherwise.

> -

> -**/

> -VOID *

> -EFIAPI

> -ScanMem32 (

> -  IN CONST VOID  *Buffer,

> -  IN UINTN       Length,

> -  IN UINT32      Value

> -  )

> -{

> -  if (Length == 0) {

> -    return NULL;

> -  }

> -

> -  ASSERT (Buffer != NULL);

> -  ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);

> -  ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));

> -  ASSERT ((Length & (sizeof (Value) - 1)) == 0);

> -

> -  return (VOID*)InternalMemScanMem32 (Buffer, Length / sizeof (Value), Value);

> -}

> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/ScanMem64Wrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/ScanMem64Wrapper.c

> deleted file mode 100644

> index d11e50b9d5f6..000000000000

> --- a/ArmPkg/Library/BaseMemoryLibVstm/ScanMem64Wrapper.c

> +++ /dev/null

> @@ -1,67 +0,0 @@

> -/** @file

> -  ScanMem64() implementation.

> -

> -  The following BaseMemoryLib instances contain the same copy of this file:

> -

> -    BaseMemoryLib

> -    BaseMemoryLibMmx

> -    BaseMemoryLibSse2

> -    BaseMemoryLibRepStr

> -    BaseMemoryLibOptDxe

> -    BaseMemoryLibOptPei

> -    PeiMemoryLib

> -    UefiMemoryLib

> -

> -  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.

> -

> -**/

> -

> -#include "MemLibInternals.h"

> -

> -/**

> -  Scans a target buffer for a 64-bit value, and returns a pointer to the matching 64-bit value

> -  in the target buffer.

> -

> -  This function searches the target buffer specified by Buffer and Length from the lowest

> -  address to the highest address for a 64-bit value that matches Value.  If a match is found,

> -  then a pointer to the matching byte in the target buffer is returned.  If no match is found,

> -  then NULL is returned.  If Length is 0, then NULL is returned.

> -

> -  If Length > 0 and Buffer is NULL, then ASSERT().

> -  If Buffer is not aligned on a 64-bit boundary, then ASSERT().

> -  If Length is not aligned on a 64-bit boundary, then ASSERT().

> -  If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().

> -

> -  @param  Buffer      Pointer to the target buffer to scan.

> -  @param  Length      Number of bytes in Buffer to scan.

> -  @param  Value       Value to search for in the target buffer.

> -

> -  @return A pointer to the matching byte in the target buffer or NULL otherwise.

> -

> -**/

> -VOID *

> -EFIAPI

> -ScanMem64 (

> -  IN CONST VOID  *Buffer,

> -  IN UINTN       Length,

> -  IN UINT64      Value

> -  )

> -{

> -  if (Length == 0) {

> -    return NULL;

> -  }

> -

> -  ASSERT (Buffer != NULL);

> -  ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);

> -  ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));

> -  ASSERT ((Length & (sizeof (Value) - 1)) == 0);

> -

> -  return (VOID*)InternalMemScanMem64 (Buffer, Length / sizeof (Value), Value);

> -}

> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/ScanMem8Wrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/ScanMem8Wrapper.c

> deleted file mode 100644

> index c6c6d5f39ba4..000000000000

> --- a/ArmPkg/Library/BaseMemoryLibVstm/ScanMem8Wrapper.c

> +++ /dev/null

> @@ -1,99 +0,0 @@

> -/** @file

> -  ScanMem8() and ScanMemN() implementation.

> -

> -  The following BaseMemoryLib instances contain the same copy of this file:

> -

> -    BaseMemoryLib

> -    BaseMemoryLibMmx

> -    BaseMemoryLibSse2

> -    BaseMemoryLibRepStr

> -    BaseMemoryLibOptDxe

> -    BaseMemoryLibOptPei

> -    PeiMemoryLib

> -    UefiMemoryLib

> -

> -  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.

> -

> -**/

> -

> -#include "MemLibInternals.h"

> -

> -/**

> -  Scans a target buffer for an 8-bit value, and returns a pointer to the matching 8-bit value

> -  in the target buffer.

> -

> -  This function searches the target buffer specified by Buffer and Length from the lowest

> -  address to the highest address for an 8-bit value that matches Value.  If a match is found,

> -  then a pointer to the matching byte in the target buffer is returned.  If no match is found,

> -  then NULL is returned.  If Length is 0, then NULL is returned.

> -

> -  If Length > 0 and Buffer is NULL, then ASSERT().

> -  If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().

> -

> -  @param  Buffer      Pointer to the target buffer to scan.

> -  @param  Length      Number of bytes in Buffer to scan.

> -  @param  Value       Value to search for in the target buffer.

> -

> -  @return A pointer to the matching byte in the target buffer or NULL otherwise.

> -

> -**/

> -VOID *

> -EFIAPI

> -ScanMem8 (

> -  IN CONST VOID  *Buffer,

> -  IN UINTN       Length,

> -  IN UINT8       Value

> -  )

> -{

> -  if (Length == 0) {

> -    return NULL;

> -  }

> -  ASSERT (Buffer != NULL);

> -  ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));

> -

> -  return (VOID*)InternalMemScanMem8 (Buffer, Length, Value);

> -}

> -

> -/**

> -  Scans a target buffer for a UINTN sized value, and returns a pointer to the matching

> -  UINTN sized value in the target buffer.

> -

> -  This function searches the target buffer specified by Buffer and Length from the lowest

> -  address to the highest address for a UINTN sized value that matches Value.  If a match is found,

> -  then a pointer to the matching byte in the target buffer is returned.  If no match is found,

> -  then NULL is returned.  If Length is 0, then NULL is returned.

> -

> -  If Length > 0 and Buffer is NULL, then ASSERT().

> -  If Buffer is not aligned on a UINTN boundary, then ASSERT().

> -  If Length is not aligned on a UINTN boundary, then ASSERT().

> -  If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().

> -

> -  @param  Buffer      Pointer to the target buffer to scan.

> -  @param  Length      Number of bytes in Buffer to scan.

> -  @param  Value       Value to search for in the target buffer.

> -

> -  @return A pointer to the matching byte in the target buffer or NULL otherwise.

> -

> -**/

> -VOID *

> -EFIAPI

> -ScanMemN (

> -  IN CONST VOID  *Buffer,

> -  IN UINTN       Length,

> -  IN UINTN       Value

> -  )

> -{

> -  if (sizeof (UINTN) == sizeof (UINT64)) {

> -    return ScanMem64 (Buffer, Length, (UINT64)Value);

> -  } else {

> -    return ScanMem32 (Buffer, Length, (UINT32)Value);

> -  }

> -}

> -

> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/SetMem.c b/ArmPkg/Library/BaseMemoryLibVstm/SetMem.c

> deleted file mode 100644

> index 5c30e9b45f76..000000000000

> --- a/ArmPkg/Library/BaseMemoryLibVstm/SetMem.c

> +++ /dev/null

> @@ -1,53 +0,0 @@

> -/** @file

> -  Implementation of the EfiSetMem routine. This function is broken

> -  out into its own source file so that it can be excluded from a

> -  build for a particular platform easily if an optimized version

> -  is desired.

> -

> -  Copyright (c) 2006 - 2010, 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.

> -

> -**/

> -

> -

> -

> -

> -#include "MemLibInternals.h"

> -

> -/**

> -  Set Buffer to Value for Size bytes.

> -

> -  @param  Buffer   Memory to set.

> -  @param  Length   Number of bytes to set

> -  @param  Value    Value of the set operation.

> -

> -  @return Buffer

> -

> -**/

> -VOID *

> -EFIAPI

> -InternalMemSetMem (

> -  OUT     VOID                      *Buffer,

> -  IN      UINTN                     Length,

> -  IN      UINT8                     Value

> -  )

> -{

> -  //

> -  // Declare the local variables that actually move the data elements as

> -  // volatile to prevent the optimizer from replacing this function with

> -  // the intrinsic memset()

> -  //

> -  volatile UINT8                    *Pointer;

> -

> -  Pointer = (UINT8*)Buffer;

> -  while (Length-- > 0) {

> -    *(Pointer++) = Value;

> -  }

> -  return Buffer;

> -}

> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/SetMem16Wrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/SetMem16Wrapper.c

> deleted file mode 100644

> index 8129d21e0dbe..000000000000

> --- a/ArmPkg/Library/BaseMemoryLibVstm/SetMem16Wrapper.c

> +++ /dev/null

> @@ -1,64 +0,0 @@

> -/** @file

> -  SetMem16() implementation.

> -

> -  The following BaseMemoryLib instances contain the same copy of this file:

> -    BaseMemoryLib

> -    BaseMemoryLibMmx

> -    BaseMemoryLibSse2

> -    BaseMemoryLibRepStr

> -    BaseMemoryLibOptDxe

> -    BaseMemoryLibOptPei

> -    PeiMemoryLib

> -    UefiMemoryLib

> -

> -  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.

> -

> -**/

> -

> -#include "MemLibInternals.h"

> -

> -/**

> -  Fills a target buffer with a 16-bit value, and returns the target buffer.

> -

> -  This function fills Length bytes of Buffer with the 16-bit value specified by

> -  Value, and returns Buffer. Value is repeated every 16-bits in for Length

> -  bytes of Buffer.

> -

> -  If Length > 0 and Buffer is NULL, then ASSERT().

> -  If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().

> -  If Buffer is not aligned on a 16-bit boundary, then ASSERT().

> -  If Length is not aligned on a 16-bit boundary, then ASSERT().

> -

> -  @param  Buffer  Pointer to the target buffer to fill.

> -  @param  Length  Number of bytes in Buffer to fill.

> -  @param  Value   Value with which to fill Length bytes of Buffer.

> -

> -  @return Buffer.

> -

> -**/

> -VOID *

> -EFIAPI

> -SetMem16 (

> -  OUT VOID   *Buffer,

> -  IN UINTN   Length,

> -  IN UINT16  Value

> -  )

> -{

> -  if (Length == 0) {

> -    return Buffer;

> -  }

> -

> -  ASSERT (Buffer != NULL);

> -  ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));

> -  ASSERT ((((UINTN)Buffer) & (sizeof (Value) - 1)) == 0);

> -  ASSERT ((Length & (sizeof (Value) - 1)) == 0);

> -

> -  return InternalMemSetMem16 (Buffer, Length / sizeof (Value), Value);

> -}

> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/SetMem32Wrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/SetMem32Wrapper.c

> deleted file mode 100644

> index b57ba4057af6..000000000000

> --- a/ArmPkg/Library/BaseMemoryLibVstm/SetMem32Wrapper.c

> +++ /dev/null

> @@ -1,64 +0,0 @@

> -/** @file

> -  SetMem32() implementation.

> -

> -  The following BaseMemoryLib instances contain the same copy of this file:

> -    BaseMemoryLib

> -    BaseMemoryLibMmx

> -    BaseMemoryLibSse2

> -    BaseMemoryLibRepStr

> -    BaseMemoryLibOptDxe

> -    BaseMemoryLibOptPei

> -    PeiMemoryLib

> -    UefiMemoryLib

> -

> -  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.

> -

> -**/

> -

> -#include "MemLibInternals.h"

> -

> -/**

> -  Fills a target buffer with a 32-bit value, and returns the target buffer.

> -

> -  This function fills Length bytes of Buffer with the 32-bit value specified by

> -  Value, and returns Buffer. Value is repeated every 32-bits in for Length

> -  bytes of Buffer.

> -

> -  If Length > 0 and Buffer is NULL, then ASSERT().

> -  If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().

> -  If Buffer is not aligned on a 32-bit boundary, then ASSERT().

> -  If Length is not aligned on a 32-bit boundary, then ASSERT().

> -

> -  @param  Buffer  Pointer to the target buffer to fill.

> -  @param  Length  Number of bytes in Buffer to fill.

> -  @param  Value   Value with which to fill Length bytes of Buffer.

> -

> -  @return Buffer.

> -

> -**/

> -VOID *

> -EFIAPI

> -SetMem32 (

> -  OUT VOID   *Buffer,

> -  IN UINTN   Length,

> -  IN UINT32  Value

> -  )

> -{

> -  if (Length == 0) {

> -    return Buffer;

> -  }

> -

> -  ASSERT (Buffer != NULL);

> -  ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));

> -  ASSERT ((((UINTN)Buffer) & (sizeof (Value) - 1)) == 0);

> -  ASSERT ((Length & (sizeof (Value) - 1)) == 0);

> -

> -  return InternalMemSetMem32 (Buffer, Length / sizeof (Value), Value);

> -}

> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/SetMem64Wrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/SetMem64Wrapper.c

> deleted file mode 100644

> index f979580b1739..000000000000

> --- a/ArmPkg/Library/BaseMemoryLibVstm/SetMem64Wrapper.c

> +++ /dev/null

> @@ -1,64 +0,0 @@

> -/** @file

> -  SetMem64() implementation.

> -

> -  The following BaseMemoryLib instances contain the same copy of this file:

> -    BaseMemoryLib

> -    BaseMemoryLibMmx

> -    BaseMemoryLibSse2

> -    BaseMemoryLibRepStr

> -    BaseMemoryLibOptDxe

> -    BaseMemoryLibOptPei

> -    PeiMemoryLib

> -    UefiMemoryLib

> -

> -  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.

> -

> -**/

> -

> -#include "MemLibInternals.h"

> -

> -/**

> -  Fills a target buffer with a 64-bit value, and returns the target buffer.

> -

> -  This function fills Length bytes of Buffer with the 64-bit value specified by

> -  Value, and returns Buffer. Value is repeated every 64-bits in for Length

> -  bytes of Buffer.

> -

> -  If Length > 0 and Buffer is NULL, then ASSERT().

> -  If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().

> -  If Buffer is not aligned on a 64-bit boundary, then ASSERT().

> -  If Length is not aligned on a 64-bit boundary, then ASSERT().

> -

> -  @param  Buffer  Pointer to the target buffer to fill.

> -  @param  Length  Number of bytes in Buffer to fill.

> -  @param  Value   Value with which to fill Length bytes of Buffer.

> -

> -  @return Buffer.

> -

> -**/

> -VOID *

> -EFIAPI

> -SetMem64 (

> -  OUT VOID   *Buffer,

> -  IN UINTN   Length,

> -  IN UINT64  Value

> -  )

> -{

> -  if (Length == 0) {

> -    return Buffer;

> -  }

> -

> -  ASSERT (Buffer != NULL);

> -  ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));

> -  ASSERT ((((UINTN)Buffer) & (sizeof (Value) - 1)) == 0);

> -  ASSERT ((Length & (sizeof (Value) - 1)) == 0);

> -

> -  return InternalMemSetMem64 (Buffer, Length / sizeof (Value), Value);

> -}

> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/SetMemWrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/SetMemWrapper.c

> deleted file mode 100644

> index 9240c89e8b87..000000000000

> --- a/ArmPkg/Library/BaseMemoryLibVstm/SetMemWrapper.c

> +++ /dev/null

> @@ -1,91 +0,0 @@

> -/** @file

> -  SetMem() and SetMemN() implementation.

> -

> -  The following BaseMemoryLib instances contain the same copy of this file:

> -

> -    BaseMemoryLib

> -    BaseMemoryLibMmx

> -    BaseMemoryLibSse2

> -    BaseMemoryLibRepStr

> -    BaseMemoryLibOptDxe

> -    BaseMemoryLibOptPei

> -    PeiMemoryLib

> -    UefiMemoryLib

> -

> -  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.

> -

> -**/

> -

> -#include "MemLibInternals.h"

> -

> -/**

> -  Fills a target buffer with a byte value, and returns the target buffer.

> -

> -  This function fills Length bytes of Buffer with Value, and returns Buffer.

> -

> -  If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().

> -

> -  @param  Buffer    Memory to set.

> -  @param  Length    Number of bytes to set.

> -  @param  Value     Value with which to fill Length bytes of Buffer.

> -

> -  @return Buffer.

> -

> -**/

> -VOID *

> -EFIAPI

> -SetMem (

> -  OUT VOID  *Buffer,

> -  IN UINTN  Length,

> -  IN UINT8  Value

> -  )

> -{

> -  if (Length == 0) {

> -    return Buffer;

> -  }

> -

> -  ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));

> -

> -  return InternalMemSetMem (Buffer, Length, Value);

> -}

> -

> -/**

> -  Fills a target buffer with a value that is size UINTN, and returns the target buffer.

> -

> -  This function fills Length bytes of Buffer with the UINTN sized value specified by

> -  Value, and returns Buffer. Value is repeated every sizeof(UINTN) bytes for Length

> -  bytes of Buffer.

> -

> -  If Length > 0 and Buffer is NULL, then ASSERT().

> -  If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().

> -  If Buffer is not aligned on a UINTN boundary, then ASSERT().

> -  If Length is not aligned on a UINTN boundary, then ASSERT().

> -

> -  @param  Buffer  Pointer to the target buffer to fill.

> -  @param  Length  Number of bytes in Buffer to fill.

> -  @param  Value   Value with which to fill Length bytes of Buffer.

> -

> -  @return Buffer.

> -

> -**/

> -VOID *

> -EFIAPI

> -SetMemN (

> -  OUT VOID  *Buffer,

> -  IN UINTN  Length,

> -  IN UINTN  Value

> -  )

> -{

> -  if (sizeof (UINTN) == sizeof (UINT64)) {

> -    return SetMem64 (Buffer, Length, (UINT64)Value);

> -  } else {

> -    return SetMem32 (Buffer, Length, (UINT32)Value);

> -  }

> -}

> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/ZeroMemWrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/ZeroMemWrapper.c

> deleted file mode 100644

> index d6c6279f682f..000000000000

> --- a/ArmPkg/Library/BaseMemoryLibVstm/ZeroMemWrapper.c

> +++ /dev/null

> @@ -1,52 +0,0 @@

> -/** @file

> -  ZeroMem() implementation.

> -

> -  The following BaseMemoryLib instances contain the same copy of this file:

> -

> -    BaseMemoryLib

> -    BaseMemoryLibMmx

> -    BaseMemoryLibSse2

> -    BaseMemoryLibRepStr

> -    BaseMemoryLibOptDxe

> -    BaseMemoryLibOptPei

> -    PeiMemoryLib

> -    UefiMemoryLib

> -

> -  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.

> -

> -**/

> -

> -#include "MemLibInternals.h"

> -

> -/**

> -  Fills a target buffer with zeros, and returns the target buffer.

> -

> -  This function fills Length bytes of Buffer with zeros, and returns Buffer.

> -

> -  If Length > 0 and Buffer is NULL, then ASSERT().

> -  If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().

> -

> -  @param  Buffer      Pointer to the target buffer to fill with zeros.

> -  @param  Length      Number of bytes in Buffer to fill with zeros.

> -

> -  @return Buffer.

> -

> -**/

> -VOID *

> -EFIAPI

> -ZeroMem (

> -  OUT VOID  *Buffer,

> -  IN UINTN  Length

> -  )

> -{

> -  ASSERT (!(Buffer == NULL && Length > 0));

> -  ASSERT (Length <= (MAX_ADDRESS - (UINTN)Buffer + 1));

> -  return InternalMemZeroMem (Buffer, Length);

> -}

> -- 

> 2.7.4

> 

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Patch

diff --git a/ArmPkg/ArmPkg.dsc b/ArmPkg/ArmPkg.dsc
index 7b278cdd4124..6f9fc661fbdc 100644
--- a/ArmPkg/ArmPkg.dsc
+++ b/ArmPkg/ArmPkg.dsc
@@ -150,8 +150,6 @@  [Components.common]
   ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
 
 [Components.ARM]
-  ArmPkg/Library/BaseMemoryLibVstm/BaseMemoryLibVstm.inf
-
   ArmPkg/Drivers/ArmCpuLib/ArmCortexA8Lib/ArmCortexA8Lib.inf
   ArmPkg/Drivers/ArmCpuLib/ArmCortexA9Lib/ArmCortexA9Lib.inf
   ArmPkg/Drivers/ArmCpuLib/ArmCortexA15Lib/ArmCortexA15Lib.inf
diff --git a/ArmPkg/Library/BaseMemoryLibVstm/Arm/CopyMem.S b/ArmPkg/Library/BaseMemoryLibVstm/Arm/CopyMem.S
deleted file mode 100644
index 69de4c1fd48e..000000000000
--- a/ArmPkg/Library/BaseMemoryLibVstm/Arm/CopyMem.S
+++ /dev/null
@@ -1,112 +0,0 @@ 
-#------------------------------------------------------------------------------
-#
-# CopyMem() worker for ARM
-#
-# This file started out as C code that did 64 bit moves if the buffer was
-# 32-bit aligned, else it does a byte copy. It also does a byte copy for
-# any trailing bytes. Update using VSTM/SLDM to do 128 byte copies.
-#
-# Copyright (c) 2008 - 2010, Apple Inc. 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.
-#
-#------------------------------------------------------------------------------
-
-#include <AsmMacroIoLib.h>
-
-/**
-  Copy Length bytes from Source to Destination. Overlap is OK.
-
-  This implementation
-
-  @param  Destination Target of copy
-  @param  Source      Place to copy from
-  @param  Length      Number of bytes to copy
-
-  @return Destination
-
-
-VOID *
-EFIAPI
-InternalMemCopyMem (
-  OUT     VOID                      *DestinationBuffer,
-  IN      CONST VOID                *SourceBuffer,
-  IN      UINTN                     Length
-  )
-**/
-ASM_FUNC(InternalMemCopyMem)
-  stmfd  sp!, {r4, r9, lr}
-  tst  r0, #3
-  mov  r4, r0
-  mov  r9, r0
-  mov  ip, r2
-  mov  lr, r1
-  movne  r0, #0
-  bne  L4
-  tst  r1, #3
-  movne  r3, #0
-  moveq  r3, #1
-  cmp  r2, #127
-  movls  r0, #0
-  andhi  r0, r3, #1
-L4:
-  cmp  r4, r1
-  bcc  L26
-  bls  L7
-  rsb  r3, r1, r4
-  cmp  ip, r3
-  bcc  L26
-  cmp  ip, #0
-  beq  L7
-  add  r9, r4, ip
-  add  lr, ip, r1
-  b  L16
-L29:
-  sub  ip, ip, #8
-  cmp  ip, #7
-  ldrd  r2, [lr, #-8]!
-  movls  r0, #0
-  cmp  ip, #0
-  strd  r2, [r9, #-8]!
-  beq  L7
-L16:
-  cmp  r0, #0
-  bne  L29
-  sub  r3, lr, #1
-  sub  ip, ip, #1
-  ldrb  r3, [r3, #0]
-  sub  r2, r9, #1
-  cmp  ip, #0
-  sub  r9, r9, #1
-  sub  lr, lr, #1
-  strb  r3, [r2, #0]
-  bne  L16
-  b   L7
-L11:
-  ldrb  r3, [lr], #1
-  sub  ip, ip, #1
-  strb  r3, [r9], #1
-L26:
-  cmp  ip, #0
-  beq  L7
-L30:
-  cmp  r0, #0
-  beq  L11
-  sub  ip, ip, #128          // 32
-  cmp  ip, #127              // 31
-  vldm     lr!, {d0-d15}
-  movls  r0, #0
-  cmp  ip, #0
-  vstm  r9!, {d0-d15}
-  bne  L30
-L7:
-  dsb
-  mov  r0, r4
-  ldmfd  sp!, {r4, r9, pc}
-
-
diff --git a/ArmPkg/Library/BaseMemoryLibVstm/Arm/CopyMem.asm b/ArmPkg/Library/BaseMemoryLibVstm/Arm/CopyMem.asm
deleted file mode 100644
index 5afd1e5f2bc1..000000000000
--- a/ArmPkg/Library/BaseMemoryLibVstm/Arm/CopyMem.asm
+++ /dev/null
@@ -1,114 +0,0 @@ 
-;------------------------------------------------------------------------------
-;
-; CopyMem() worker for ARM
-;
-; This file started out as C code that did 64 bit moves if the buffer was
-; 32-bit aligned, else it does a byte copy. It also does a byte copy for
-; any trailing bytes. Update using VSTM/SLDM to do 128 byte copies.
-;
-; Copyright (c) 2008 - 2010, Apple Inc. 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.
-;
-;------------------------------------------------------------------------------
-
-/**
-  Copy Length bytes from Source to Destination. Overlap is OK.
-
-  This implementation
-
-  @param  Destination Target of copy
-  @param  Source      Place to copy from
-  @param  Length      Number of bytes to copy
-
-  @return Destination
-
-
-VOID *
-EFIAPI
-InternalMemCopyMem (
-  OUT     VOID                      *DestinationBuffer,
-  IN      CONST VOID                *SourceBuffer,
-  IN      UINTN                     Length
-  )
-**/
-
-    INCLUDE AsmMacroExport.inc
-
- RVCT_ASM_EXPORT InternalMemCopyMem
-  stmfd  sp!, {r4, r9, lr}
-  tst  r0, #3
-  mov  r4, r0
-  mov  r9, r0
-  mov  ip, r2
-  mov  lr, r1
-  movne  r0, #0
-  bne  L4
-  tst  r1, #3
-  movne  r3, #0
-  moveq  r3, #1
-  cmp  r2, #127
-  movls  r0, #0
-  andhi  r0, r3, #1
-L4
-  cmp  r4, r1
-  bcc  L26
-  bls  L7
-  rsb  r3, r1, r4
-  cmp  ip, r3
-  bcc  L26
-  cmp  ip, #0
-  beq  L7
-  add  r9, r4, ip
-  add  lr, ip, r1
-  b  L16
-L29
-  sub  ip, ip, #8
-  cmp  ip, #7
-  ldrd  r2, [lr, #-8]!
-  movls  r0, #0
-  cmp  ip, #0
-  strd  r2, [r9, #-8]!
-  beq  L7
-L16
-  cmp  r0, #0
-  bne  L29
-  sub  r3, lr, #1
-  sub  ip, ip, #1
-  ldrb  r3, [r3, #0]
-  sub  r2, r9, #1
-  cmp  ip, #0
-  sub  r9, r9, #1
-  sub  lr, lr, #1
-  strb  r3, [r2, #0]
-  bne  L16
-  b   L7
-L11
-  ldrb  r3, [lr], #1
-  sub  ip, ip, #1
-  strb  r3, [r9], #1
-L26
-  cmp  ip, #0
-  beq  L7
-L30
-  cmp  r0, #0
-  beq  L11
-  sub  ip, ip, #128          // 32
-  cmp  ip, #127              // 31
-  vldm     lr!, {d0-d15}
-  movls  r0, #0
-  cmp  ip, #0
-  vstm  r9!, {d0-d15}
-  bne  L30
-L7
-  dsb
-  mov  r0, r4
-  ldmfd  sp!, {r4, r9, pc}
-
-  END
-
diff --git a/ArmPkg/Library/BaseMemoryLibVstm/Arm/SetMem.S b/ArmPkg/Library/BaseMemoryLibVstm/Arm/SetMem.S
deleted file mode 100644
index 28ba38b79c6a..000000000000
--- a/ArmPkg/Library/BaseMemoryLibVstm/Arm/SetMem.S
+++ /dev/null
@@ -1,76 +0,0 @@ 
-#------------------------------------------------------------------------------
-#
-# SemMem() worker for ARM
-#
-# This file started out as C code that did 64 bit moves if the buffer was
-# 32-bit aligned, else it does a byte copy. It also does a byte copy for
-# any trailing bytes. Update to use VSTM/VLDM to do 128 byte writes.
-#
-# Copyright (c) 2008 - 2010, Apple Inc. 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.
-#
-#------------------------------------------------------------------------------
-
-#include <AsmMacroIoLib.h>
-
-/**
-  Set Buffer to Value for Size bytes.
-
-  @param  Buffer   Memory to set.
-  @param  Length   Number of bytes to set
-  @param  Value    Value of the set operation.
-
-  @return Buffer
-
-VOID *
-EFIAPI
-InternalMemSetMem (
-  OUT     VOID                      *Buffer,
-  IN      UINTN                     Length,
-  IN      UINT8                     Value
-  )
-**/
-ASM_FUNC(InternalMemSetMem)
-  stmfd  sp!, {r4-r7, lr}
-  tst    r0, #3
-  movne  r3, #0
-  moveq  r3, #1
-  cmp    r1, #127
-  movls lr, #0
-  andhi  lr, r3, #1
-  cmp    lr, #0
-  mov    r12, r0
-  bne    L31
-L32:
-  mov    r3, #0
-  b      L43
-L31:
-  vdup.8  q0,r2
-  vmov    q1,q0
-  vmov    q2,q0
-  vmov    q3,q0
-  vmov    q4,q0
-  vmov    q5,q0
-  vmov    q6,q0
-  vmov    q7,q0
-  b        L32
-L34:
-  cmp      lr, #0
-  streqb  r2, [r12], #1
-  subeq    r1, r1, #1
-  beq      L43
-  sub      r1, r1, #128
-  cmp      r1, #127
-  cmp      r1, #31
-  movls    lr, r3
-  vstm    r12!, {d0-d15}
-L43:
-  cmp      r1, #0
-  bne      L34
-  ldmfd    sp!, {pc}
diff --git a/ArmPkg/Library/BaseMemoryLibVstm/Arm/SetMem.asm b/ArmPkg/Library/BaseMemoryLibVstm/Arm/SetMem.asm
deleted file mode 100644
index c4a7c2b72008..000000000000
--- a/ArmPkg/Library/BaseMemoryLibVstm/Arm/SetMem.asm
+++ /dev/null
@@ -1,78 +0,0 @@ 
-;------------------------------------------------------------------------------
-;
-; SetMem() worker for ARM
-;
-; This file started out as C code that did 64 bit moves if the buffer was
-; 32-bit aligned, else it does a byte copy. It also does a byte copy for
-; any trailing bytes. Update to use VSTM/VLDM to do 128 byte writes.
-;
-; Copyright (c) 2008 - 2010, Apple Inc. 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.
-;
-
-/**
-  Set Buffer to Value for Size bytes.
-
-  @param  Buffer   Memory to set.
-  @param  Length   Number of bytes to set
-  @param  Value    Value of the set operation.
-
-  @return Buffer
-
-VOID *
-EFIAPI
-InternalMemSetMem (
-  OUT     VOID                      *Buffer,
-  IN      UINTN                     Length,
-  IN      UINT8                     Value
-  )
-**/
-
-
-    INCLUDE AsmMacroExport.inc
-
- RVCT_ASM_EXPORT InternalMemSetMem
-  stmfd  sp!, {lr}
-  tst    r0, #3
-  movne  r3, #0
-  moveq  r3, #1
-  cmp    r1, #127
-  movls lr, #0
-  andhi  lr, r3, #1
-  cmp    lr, #0
-  mov    r12, r0
-  bne    L31
-L32
-  mov    r3, #0
-  b      L43
-L31
-  vdup.8  q0,r2
-  vmov    q1,q0
-  vmov    q2,q0
-  vmov    q3,q0
-  vmov    q4,q0
-  vmov    q5,q0
-  vmov    q6,q0
-  vmov    q7,q0
-  b        L32
-L34
-  cmp      lr, #0
-  streqb  r2, [r12], #1
-  subeq    r1, r1, #1
-  beq      L43
-  sub      r1, r1, #128
-  cmp      r1, #127
-  movls    lr, r3
-  vstm    r12!, {d0-d15}
-L43
-  cmp      r1, #0
-  bne      L34
-  ldmfd    sp!, {pc}
-
-  END
diff --git a/ArmPkg/Library/BaseMemoryLibVstm/BaseMemoryLibVstm.inf b/ArmPkg/Library/BaseMemoryLibVstm/BaseMemoryLibVstm.inf
deleted file mode 100644
index 4c388fa8984d..000000000000
--- a/ArmPkg/Library/BaseMemoryLibVstm/BaseMemoryLibVstm.inf
+++ /dev/null
@@ -1,70 +0,0 @@ 
-## @file
-#  Instance of Base Memory Library with some ARM vldm/vstm assembly.
-#
-#  This is a copy of the MdePkg BaseMemoryLib with the CopyMem and
-#  SetMem worker functions replaced with assembler that uses
-#  vldm/vstm (part of NEON SIMD, optional in ARMv7-A).
-#
-#  Note: You need to enable NEON in SEC to use this library
-#  // Enable NEON register in case folks want to use them for optimizations (CopyMem)
-#  mrc     p15, 0, r0, c1, c0, 2
-#  orr     r0, r0, #0x00f00000   // Enable VPF access (V* instructions)
-#  mcr     p15, 0, r0, c1, c0, 2
-#  mov     r0, #0x40000000       // Set EN bit in FPEXC
-#  msr     FPEXC,r0
-#
-#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
-#  Portions copyright (c) 2010, Apple Inc. 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.
-#
-#
-##
-
-[Defines]
-  INF_VERSION                    = 0x00010005
-  BASE_NAME                      = BaseMemoryLibVstm
-  FILE_GUID                      = 09EE1E8D-7A2E-4573-8117-68A18569C1F5
-  MODULE_TYPE                    = BASE
-  VERSION_STRING                 = 1.0
-  LIBRARY_CLASS                  = BaseMemoryLib
-
-
-#
-#  VALID_ARCHITECTURES           = ARM
-#
-
-[Sources.ARM]
-  ScanMem64Wrapper.c
-  ScanMem32Wrapper.c
-  ScanMem16Wrapper.c
-  ScanMem8Wrapper.c
-  ZeroMemWrapper.c
-  CompareMemWrapper.c
-  SetMem64Wrapper.c
-  SetMem32Wrapper.c
-  SetMem16Wrapper.c
-  SetMemWrapper.c
-  CopyMemWrapper.c
-  MemLibGeneric.c
-  MemLibGuid.c
-  MemLibInternals.h
-  Arm/CopyMem.asm
-  Arm/CopyMem.S
-  Arm/SetMem.asm
-  Arm/SetMem.S
-
-
-[Packages]
-  MdePkg/MdePkg.dec
-  ArmPkg/ArmPkg.dec
-
-[LibraryClasses]
-  DebugLib
-  BaseLib
-
diff --git a/ArmPkg/Library/BaseMemoryLibVstm/CompareMemWrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/CompareMemWrapper.c
deleted file mode 100644
index c83988f59ecb..000000000000
--- a/ArmPkg/Library/BaseMemoryLibVstm/CompareMemWrapper.c
+++ /dev/null
@@ -1,66 +0,0 @@ 
-/** @file
-  CompareMem() implementation.
-
-  The following BaseMemoryLib instances contain the same copy of this file:
-    BaseMemoryLib
-    BaseMemoryLibMmx
-    BaseMemoryLibSse2
-    BaseMemoryLibRepStr
-    BaseMemoryLibOptDxe
-    BaseMemoryLibOptPei
-    PeiMemoryLib
-    UefiMemoryLib
-
-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.
-
-**/
-
-#include "MemLibInternals.h"
-
-/**
-  Compares the contents of two buffers.
-
-  This function compares Length bytes of SourceBuffer to Length bytes of DestinationBuffer.
-  If all Length bytes of the two buffers are identical, then 0 is returned.  Otherwise, the
-  value returned is the first mismatched byte in SourceBuffer subtracted from the first
-  mismatched byte in DestinationBuffer.
-
-  If Length > 0 and DestinationBuffer is NULL, then ASSERT().
-  If Length > 0 and SourceBuffer is NULL, then ASSERT().
-  If Length is greater than (MAX_ADDRESS - DestinationBuffer + 1), then ASSERT().
-  If Length is greater than (MAX_ADDRESS - SourceBuffer + 1), then ASSERT().
-
-  @param  DestinationBuffer Pointer to the destination buffer to compare.
-  @param  SourceBuffer      Pointer to the source buffer to compare.
-  @param  Length            Number of bytes to compare.
-
-  @return 0                 All Length bytes of the two buffers are identical.
-  @retval Non-zero          The first mismatched byte in SourceBuffer subtracted from the first
-                            mismatched byte in DestinationBuffer.
-
-**/
-INTN
-EFIAPI
-CompareMem (
-  IN CONST VOID  *DestinationBuffer,
-  IN CONST VOID  *SourceBuffer,
-  IN UINTN       Length
-  )
-{
-  if (Length == 0 || DestinationBuffer == SourceBuffer) {
-    return 0;
-  }
-  ASSERT (DestinationBuffer != NULL);
-  ASSERT (SourceBuffer != NULL);
-  ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)DestinationBuffer));
-  ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)SourceBuffer));
-
-  return InternalMemCompareMem (DestinationBuffer, SourceBuffer, Length);
-}
diff --git a/ArmPkg/Library/BaseMemoryLibVstm/CopyMem.c b/ArmPkg/Library/BaseMemoryLibVstm/CopyMem.c
deleted file mode 100644
index b30faed5607d..000000000000
--- a/ArmPkg/Library/BaseMemoryLibVstm/CopyMem.c
+++ /dev/null
@@ -1,62 +0,0 @@ 
-/** @file
-  Implementation of the InternalMemCopyMem routine. This function is broken
-  out into its own source file so that it can be excluded from a build for a
-  particular platform easily if an optimized version is desired.
-
-  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.
-
-**/
-
-
-
-
-#include "MemLibInternals.h"
-
-/**
-  Copy Length bytes from Source to Destination.
-
-  @param  DestinationBuffer Target of copy
-  @param  SourceBuffer      Place to copy from
-  @param  Length            Number of bytes to copy
-
-  @return Destination
-
-**/
-VOID *
-EFIAPI
-InternalMemCopyMem (
-  OUT     VOID                      *DestinationBuffer,
-  IN      CONST VOID                *SourceBuffer,
-  IN      UINTN                     Length
-  )
-{
-  //
-  // Declare the local variables that actually move the data elements as
-  // volatile to prevent the optimizer from replacing this function with
-  // the intrinsic memcpy()
-  //
-  volatile UINT8                    *Destination8;
-  CONST UINT8                       *Source8;
-
-  if (SourceBuffer > DestinationBuffer) {
-    Destination8 = (UINT8*)DestinationBuffer;
-    Source8 = (CONST UINT8*)SourceBuffer;
-    while (Length-- != 0) {
-      *(Destination8++) = *(Source8++);
-    }
-  } else if (SourceBuffer < DestinationBuffer) {
-    Destination8 = (UINT8*)DestinationBuffer + Length;
-    Source8 = (CONST UINT8*)SourceBuffer + Length;
-    while (Length-- != 0) {
-      *(--Destination8) = *(--Source8);
-    }
-  }
-  return DestinationBuffer;
-}
diff --git a/ArmPkg/Library/BaseMemoryLibVstm/CopyMemWrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/CopyMemWrapper.c
deleted file mode 100644
index 2adfb3114910..000000000000
--- a/ArmPkg/Library/BaseMemoryLibVstm/CopyMemWrapper.c
+++ /dev/null
@@ -1,63 +0,0 @@ 
-/** @file
-  CopyMem() implementation.
-
-  The following BaseMemoryLib instances contain the same copy of this file:
-
-    BaseMemoryLib
-    BaseMemoryLibMmx
-    BaseMemoryLibSse2
-    BaseMemoryLibRepStr
-    BaseMemoryLibOptDxe
-    BaseMemoryLibOptPei
-    PeiMemoryLib
-    UefiMemoryLib
-
-  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.
-
-**/
-
-#include "MemLibInternals.h"
-
-/**
-  Copies a source buffer to a destination buffer, and returns the destination buffer.
-
-  This function copies Length bytes from SourceBuffer to DestinationBuffer, and returns
-  DestinationBuffer.  The implementation must be reentrant, and it must handle the case
-  where SourceBuffer overlaps DestinationBuffer.
-
-  If Length is greater than (MAX_ADDRESS - DestinationBuffer + 1), then ASSERT().
-  If Length is greater than (MAX_ADDRESS - SourceBuffer + 1), then ASSERT().
-
-  @param  DestinationBuffer   Pointer to the destination buffer of the memory copy.
-  @param  SourceBuffer        Pointer to the source buffer of the memory copy.
-  @param  Length              Number of bytes to copy from SourceBuffer to DestinationBuffer.
-
-  @return DestinationBuffer.
-
-**/
-VOID *
-EFIAPI
-CopyMem (
-  OUT VOID       *DestinationBuffer,
-  IN CONST VOID  *SourceBuffer,
-  IN UINTN       Length
-  )
-{
-  if (Length == 0) {
-    return DestinationBuffer;
-  }
-  ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)DestinationBuffer));
-  ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)SourceBuffer));
-
-  if (DestinationBuffer == SourceBuffer) {
-    return DestinationBuffer;
-  }
-  return InternalMemCopyMem (DestinationBuffer, SourceBuffer, Length);
-}
diff --git a/ArmPkg/Library/BaseMemoryLibVstm/MemLibGeneric.c b/ArmPkg/Library/BaseMemoryLibVstm/MemLibGeneric.c
deleted file mode 100644
index 54c27012955f..000000000000
--- a/ArmPkg/Library/BaseMemoryLibVstm/MemLibGeneric.c
+++ /dev/null
@@ -1,264 +0,0 @@ 
-/** @file
-  Architecture Independent Base Memory Library Implementation.
-
-  The following BaseMemoryLib instances contain the same copy of this file:
-    BaseMemoryLib
-    PeiMemoryLib
-    UefiMemoryLib
-
-  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.
-
-**/
-
-#include "MemLibInternals.h"
-
-/**
-  Fills a target buffer with a 16-bit value, and returns the target buffer.
-
-  @param  Buffer  Pointer to the target buffer to fill.
-  @param  Length  Count of 16-bit value to fill.
-  @param  Value   Value with which to fill Length bytes of Buffer.
-
-  @return Buffer
-
-**/
-VOID *
-EFIAPI
-InternalMemSetMem16 (
-  OUT     VOID                      *Buffer,
-  IN      UINTN                     Length,
-  IN      UINT16                    Value
-  )
-{
-  do {
-    ((UINT16*)Buffer)[--Length] = Value;
-  } while (Length != 0);
-  return Buffer;
-}
-
-/**
-  Fills a target buffer with a 32-bit value, and returns the target buffer.
-
-  @param  Buffer  Pointer to the target buffer to fill.
-  @param  Length  Count of 32-bit value to fill.
-  @param  Value   Value with which to fill Length bytes of Buffer.
-
-  @return Buffer
-
-**/
-VOID *
-EFIAPI
-InternalMemSetMem32 (
-  OUT     VOID                      *Buffer,
-  IN      UINTN                     Length,
-  IN      UINT32                    Value
-  )
-{
-  do {
-    ((UINT32*)Buffer)[--Length] = Value;
-  } while (Length != 0);
-  return Buffer;
-}
-
-/**
-  Fills a target buffer with a 64-bit value, and returns the target buffer.
-
-  @param  Buffer  Pointer to the target buffer to fill.
-  @param  Length  Count of 64-bit value to fill.
-  @param  Value   Value with which to fill Length bytes of Buffer.
-
-  @return Buffer
-
-**/
-VOID *
-EFIAPI
-InternalMemSetMem64 (
-  OUT     VOID                      *Buffer,
-  IN      UINTN                     Length,
-  IN      UINT64                    Value
-  )
-{
-  do {
-    ((UINT64*)Buffer)[--Length] = Value;
-  } while (Length != 0);
-  return Buffer;
-}
-
-/**
-  Set Buffer to 0 for Size bytes.
-
-  @param  Buffer Memory to set.
-  @param  Length Number of bytes to set
-
-  @return Buffer
-
-**/
-VOID *
-EFIAPI
-InternalMemZeroMem (
-  OUT     VOID                      *Buffer,
-  IN      UINTN                     Length
-  )
-{
-  return InternalMemSetMem (Buffer, Length, 0);
-}
-
-/**
-  Compares two memory buffers of a given length.
-
-  @param  DestinationBuffer First memory buffer
-  @param  SourceBuffer      Second memory buffer
-  @param  Length            Length of DestinationBuffer and SourceBuffer memory
-                            regions to compare. Must be non-zero.
-
-  @return 0                 All Length bytes of the two buffers are identical.
-  @retval Non-zero          The first mismatched byte in SourceBuffer subtracted from the first
-                            mismatched byte in DestinationBuffer.
-
-**/
-INTN
-EFIAPI
-InternalMemCompareMem (
-  IN      CONST VOID                *DestinationBuffer,
-  IN      CONST VOID                *SourceBuffer,
-  IN      UINTN                     Length
-  )
-{
-  while ((--Length != 0) &&
-         (*(INT8*)DestinationBuffer == *(INT8*)SourceBuffer)) {
-    DestinationBuffer = (INT8*)DestinationBuffer + 1;
-    SourceBuffer = (INT8*)SourceBuffer + 1;
-  }
-  return (INTN)*(UINT8*)DestinationBuffer - (INTN)*(UINT8*)SourceBuffer;
-}
-
-/**
-  Scans a target buffer for an 8-bit value, and returns a pointer to the
-  matching 8-bit value in the target buffer.
-
-  @param  Buffer  Pointer to the target buffer to scan.
-  @param  Length  Count of 8-bit value to scan. Must be non-zero.
-  @param  Value   Value to search for in the target buffer.
-
-  @return Pointer to the first occurrence or NULL if not found.
-
-**/
-CONST VOID *
-EFIAPI
-InternalMemScanMem8 (
-  IN      CONST VOID                *Buffer,
-  IN      UINTN                     Length,
-  IN      UINT8                     Value
-  )
-{
-  CONST UINT8                       *Pointer;
-
-  Pointer = (CONST UINT8*)Buffer;
-  do {
-    if (*Pointer == Value) {
-      return Pointer;
-    }
-    Pointer++;
-  } while (--Length != 0);
-  return NULL;
-}
-
-/**
-  Scans a target buffer for a 16-bit value, and returns a pointer to the
-  matching 16-bit value in the target buffer.
-
-  @param  Buffer  Pointer to the target buffer to scan.
-  @param  Length  Count of 16-bit value to scan. Must be non-zero.
-  @param  Value   Value to search for in the target buffer.
-
-  @return Pointer to the first occurrence or NULL if not found.
-
-**/
-CONST VOID *
-EFIAPI
-InternalMemScanMem16 (
-  IN      CONST VOID                *Buffer,
-  IN      UINTN                     Length,
-  IN      UINT16                    Value
-  )
-{
-  CONST UINT16                      *Pointer;
-
-  Pointer = (CONST UINT16*)Buffer;
-  do {
-    if (*Pointer == Value) {
-      return Pointer;
-    }
-    Pointer++;
-  } while (--Length != 0);
-  return NULL;
-}
-
-/**
-  Scans a target buffer for a 32-bit value, and returns a pointer to the
-  matching 32-bit value in the target buffer.
-
-  @param  Buffer  Pointer to the target buffer to scan.
-  @param  Length  Count of 32-bit value to scan. Must be non-zero.
-  @param  Value   Value to search for in the target buffer.
-
-  @return Pointer to the first occurrence or NULL if not found.
-
-**/
-CONST VOID *
-EFIAPI
-InternalMemScanMem32 (
-  IN      CONST VOID                *Buffer,
-  IN      UINTN                     Length,
-  IN      UINT32                    Value
-  )
-{
-  CONST UINT32                      *Pointer;
-
-  Pointer = (CONST UINT32*)Buffer;
-  do {
-    if (*Pointer == Value) {
-      return Pointer;
-    }
-    Pointer++;
-  } while (--Length != 0);
-  return NULL;
-}
-
-/**
-  Scans a target buffer for a 64-bit value, and returns a pointer to the
-  matching 64-bit value in the target buffer.
-
-  @param  Buffer  Pointer to the target buffer to scan.
-  @param  Length  Count of 64-bit value to scan. Must be non-zero.
-  @param  Value   Value to search for in the target buffer.
-
-  @return Pointer to the first occurrence or NULL if not found.
-
-**/
-CONST VOID *
-EFIAPI
-InternalMemScanMem64 (
-  IN      CONST VOID                *Buffer,
-  IN      UINTN                     Length,
-  IN      UINT64                    Value
-  )
-{
-  CONST UINT64                      *Pointer;
-
-  Pointer = (CONST UINT64*)Buffer;
-  do {
-    if (*Pointer == Value) {
-      return Pointer;
-    }
-    Pointer++;
-  } while (--Length != 0);
-  return NULL;
-}
diff --git a/ArmPkg/Library/BaseMemoryLibVstm/MemLibGuid.c b/ArmPkg/Library/BaseMemoryLibVstm/MemLibGuid.c
deleted file mode 100644
index dc9e2c319ba9..000000000000
--- a/ArmPkg/Library/BaseMemoryLibVstm/MemLibGuid.c
+++ /dev/null
@@ -1,132 +0,0 @@ 
-/** @file
-  Implementation of GUID functions.
-
-  The following BaseMemoryLib instances contain the same copy of this file:
-
-    BaseMemoryLib
-    BaseMemoryLibMmx
-    BaseMemoryLibSse2
-    BaseMemoryLibRepStr
-    BaseMemoryLibOptDxe
-    BaseMemoryLibOptPei
-    PeiMemoryLib
-    UefiMemoryLib
-
-  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.
-
-**/
-
-#include "MemLibInternals.h"
-
-/**
-  Copies a source GUID to a destination GUID.
-
-  This function copies the contents of the 128-bit GUID specified by SourceGuid to
-  DestinationGuid, and returns DestinationGuid.
-
-  If DestinationGuid is NULL, then ASSERT().
-  If SourceGuid is NULL, then ASSERT().
-
-  @param  DestinationGuid   Pointer to the destination GUID.
-  @param  SourceGuid        Pointer to the source GUID.
-
-  @return DestinationGuid.
-
-**/
-GUID *
-EFIAPI
-CopyGuid (
-  OUT GUID       *DestinationGuid,
-  IN CONST GUID  *SourceGuid
-  )
-{
-  WriteUnaligned64 (
-    (UINT64*)DestinationGuid,
-    ReadUnaligned64 ((CONST UINT64*)SourceGuid)
-    );
-  WriteUnaligned64 (
-    (UINT64*)DestinationGuid + 1,
-    ReadUnaligned64 ((CONST UINT64*)SourceGuid + 1)
-    );
-  return DestinationGuid;
-}
-
-/**
-  Compares two GUIDs.
-
-  This function compares Guid1 to Guid2.  If the GUIDs are identical then TRUE is returned.
-  If there are any bit differences in the two GUIDs, then FALSE is returned.
-
-  If Guid1 is NULL, then ASSERT().
-  If Guid2 is NULL, then ASSERT().
-
-  @param  Guid1       A pointer to a 128 bit GUID.
-  @param  Guid2       A pointer to a 128 bit GUID.
-
-  @retval TRUE        Guid1 and Guid2 are identical.
-  @retval FALSE       Guid1 and Guid2 are not identical.
-
-**/
-BOOLEAN
-EFIAPI
-CompareGuid (
-  IN CONST GUID  *Guid1,
-  IN CONST GUID  *Guid2
-  )
-{
-  return (CompareMem(Guid1, Guid2, sizeof(GUID) == 0)) ? TRUE : FALSE;
-}
-
-/**
-  Scans a target buffer for a GUID, and returns a pointer to the matching GUID
-  in the target buffer.
-
-  This function searches the target buffer specified by Buffer and Length from
-  the lowest address to the highest address at 128-bit increments for the 128-bit
-  GUID value that matches Guid.  If a match is found, then a pointer to the matching
-  GUID in the target buffer is returned.  If no match is found, then NULL is returned.
-  If Length is 0, then NULL is returned.
-
-  If Length > 0 and Buffer is NULL, then ASSERT().
-  If Buffer is not aligned on a 32-bit boundary, then ASSERT().
-  If Length is not aligned on a 128-bit boundary, then ASSERT().
-  If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
-
-  @param  Buffer  Pointer to the target buffer to scan.
-  @param  Length  Number of bytes in Buffer to scan.
-  @param  Guid    Value to search for in the target buffer.
-
-  @return A pointer to the matching Guid in the target buffer or NULL otherwise.
-
-**/
-VOID *
-EFIAPI
-ScanGuid (
-  IN CONST VOID  *Buffer,
-  IN UINTN       Length,
-  IN CONST GUID  *Guid
-  )
-{
-  CONST GUID                        *GuidPtr;
-
-  ASSERT (((UINTN)Buffer & (sizeof (Guid->Data1) - 1)) == 0);
-  ASSERT (Length <= (MAX_ADDRESS - (UINTN)Buffer + 1));
-  ASSERT ((Length & (sizeof (*GuidPtr) - 1)) == 0);
-
-  GuidPtr = (GUID*)Buffer;
-  Buffer  = GuidPtr + Length / sizeof (*GuidPtr);
-  while (GuidPtr < (CONST GUID*)Buffer) {
-    if (CompareGuid (GuidPtr, Guid)) {
-      return (VOID*)GuidPtr;
-    }
-    GuidPtr++;
-  }
-  return NULL;
-}
diff --git a/ArmPkg/Library/BaseMemoryLibVstm/MemLibInternals.h b/ArmPkg/Library/BaseMemoryLibVstm/MemLibInternals.h
deleted file mode 100644
index 10c741f2c311..000000000000
--- a/ArmPkg/Library/BaseMemoryLibVstm/MemLibInternals.h
+++ /dev/null
@@ -1,234 +0,0 @@ 
-/** @file
-  Declaration of internal functions for Base Memory Library.
-
-  The following BaseMemoryLib instances contain the same copy of this file:
-    BaseMemoryLib
-    BaseMemoryLibMmx
-    BaseMemoryLibSse2
-    BaseMemoryLibRepStr
-    BaseMemoryLibOptDxe
-    BaseMemoryLibOptPei
-
-  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.
-
-**/
-
-#ifndef __MEM_LIB_INTERNALS__
-#define __MEM_LIB_INTERNALS__
-
-#include <Base.h>
-#include <Library/BaseMemoryLib.h>
-#include <Library/BaseLib.h>
-#include <Library/DebugLib.h>
-
-/**
-  Copy Length bytes from Source to Destination.
-
-  @param  DestinationBuffer Target of copy
-  @param  SourceBuffer      Place to copy from
-  @param  Length            Number of bytes to copy
-
-  @return Destination
-
-**/
-VOID *
-EFIAPI
-InternalMemCopyMem (
-  OUT     VOID                      *DestinationBuffer,
-  IN      CONST VOID                *SourceBuffer,
-  IN      UINTN                     Length
-  );
-
-/**
-  Set Buffer to Value for Size bytes.
-
-  @param  Buffer   Memory to set.
-  @param  Length   Number of bytes to set
-  @param  Value    Value of the set operation.
-
-  @return Buffer
-
-**/
-VOID *
-EFIAPI
-InternalMemSetMem (
-  OUT     VOID                      *Buffer,
-  IN      UINTN                     Length,
-  IN      UINT8                     Value
-  );
-
-/**
-  Fills a target buffer with a 16-bit value, and returns the target buffer.
-
-  @param  Buffer  Pointer to the target buffer to fill.
-  @param  Length  Count of 16-bit value to fill.
-  @param  Value   Value with which to fill Length bytes of Buffer.
-
-  @return Buffer
-
-**/
-VOID *
-EFIAPI
-InternalMemSetMem16 (
-  OUT     VOID                      *Buffer,
-  IN      UINTN                     Length,
-  IN      UINT16                    Value
-  );
-
-/**
-  Fills a target buffer with a 32-bit value, and returns the target buffer.
-
-  @param  Buffer  Pointer to the target buffer to fill.
-  @param  Length  Count of 32-bit value to fill.
-  @param  Value   Value with which to fill Length bytes of Buffer.
-
-  @return Buffer
-
-**/
-VOID *
-EFIAPI
-InternalMemSetMem32 (
-  OUT     VOID                      *Buffer,
-  IN      UINTN                     Length,
-  IN      UINT32                    Value
-  );
-
-/**
-  Fills a target buffer with a 64-bit value, and returns the target buffer.
-
-  @param  Buffer  Pointer to the target buffer to fill.
-  @param  Length  Count of 64-bit value to fill.
-  @param  Value   Value with which to fill Length bytes of Buffer.
-
-  @return Buffer
-
-**/
-VOID *
-EFIAPI
-InternalMemSetMem64 (
-  OUT     VOID                      *Buffer,
-  IN      UINTN                     Length,
-  IN      UINT64                    Value
-  );
-
-/**
-  Set Buffer to 0 for Size bytes.
-
-  @param  Buffer Memory to set.
-  @param  Length Number of bytes to set
-
-  @return Buffer
-
-**/
-VOID *
-EFIAPI
-InternalMemZeroMem (
-  OUT     VOID                      *Buffer,
-  IN      UINTN                     Length
-  );
-
-/**
-  Compares two memory buffers of a given length.
-
-  @param  DestinationBuffer First memory buffer
-  @param  SourceBuffer      Second memory buffer
-  @param  Length            Length of DestinationBuffer and SourceBuffer memory
-                            regions to compare. Must be non-zero.
-
-  @return 0                 All Length bytes of the two buffers are identical.
-  @retval Non-zero          The first mismatched byte in SourceBuffer subtracted from the first
-                            mismatched byte in DestinationBuffer.
-
-**/
-INTN
-EFIAPI
-InternalMemCompareMem (
-  IN      CONST VOID                *DestinationBuffer,
-  IN      CONST VOID                *SourceBuffer,
-  IN      UINTN                     Length
-  );
-
-/**
-  Scans a target buffer for an 8-bit value, and returns a pointer to the
-  matching 8-bit value in the target buffer.
-
-  @param  Buffer  Pointer to the target buffer to scan.
-  @param  Length  Count of 8-bit value to scan. Must be non-zero.
-  @param  Value   Value to search for in the target buffer.
-
-  @return Pointer to the first occurrence or NULL if not found.
-
-**/
-CONST VOID *
-EFIAPI
-InternalMemScanMem8 (
-  IN      CONST VOID                *Buffer,
-  IN      UINTN                     Length,
-  IN      UINT8                     Value
-  );
-
-/**
-  Scans a target buffer for a 16-bit value, and returns a pointer to the
-  matching 16-bit value in the target buffer.
-
-  @param  Buffer  Pointer to the target buffer to scan.
-  @param  Length  Count of 16-bit value to scan. Must be non-zero.
-  @param  Value   Value to search for in the target buffer.
-
-  @return Pointer to the first occurrence or NULL if not found.
-
-**/
-CONST VOID *
-EFIAPI
-InternalMemScanMem16 (
-  IN      CONST VOID                *Buffer,
-  IN      UINTN                     Length,
-  IN      UINT16                    Value
-  );
-
-/**
-  Scans a target buffer for a 32-bit value, and returns a pointer to the
-  matching 32-bit value in the target buffer.
-
-  @param  Buffer  Pointer to the target buffer to scan.
-  @param  Length  Count of 32-bit value to scan. Must be non-zero.
-  @param  Value   Value to search for in the target buffer.
-
-  @return Pointer to the first occurrence or NULL if not found.
-
-**/
-CONST VOID *
-EFIAPI
-InternalMemScanMem32 (
-  IN      CONST VOID                *Buffer,
-  IN      UINTN                     Length,
-  IN      UINT32                    Value
-  );
-
-/**
-  Scans a target buffer for a 64-bit value, and returns a pointer to the
-  matching 64-bit value in the target buffer.
-
-  @param  Buffer  Pointer to the target buffer to scan.
-  @param  Length  Count of 64-bit value to scan. Must be non-zero.
-  @param  Value   Value to search for in the target buffer.
-
-  @return Pointer to the first occurrence or NULL if not found.
-
-**/
-CONST VOID *
-EFIAPI
-InternalMemScanMem64 (
-  IN      CONST VOID                *Buffer,
-  IN      UINTN                     Length,
-  IN      UINT64                    Value
-  );
-
-#endif
diff --git a/ArmPkg/Library/BaseMemoryLibVstm/ScanMem16Wrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/ScanMem16Wrapper.c
deleted file mode 100644
index 1c727b3e8077..000000000000
--- a/ArmPkg/Library/BaseMemoryLibVstm/ScanMem16Wrapper.c
+++ /dev/null
@@ -1,67 +0,0 @@ 
-/** @file
-  ScanMem16() implementation.
-
-  The following BaseMemoryLib instances contain the same copy of this file:
-
-    BaseMemoryLib
-    BaseMemoryLibMmx
-    BaseMemoryLibSse2
-    BaseMemoryLibRepStr
-    BaseMemoryLibOptDxe
-    BaseMemoryLibOptPei
-    PeiMemoryLib
-    UefiMemoryLib
-
-  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.
-
-**/
-
-#include "MemLibInternals.h"
-
-/**
-  Scans a target buffer for a 16-bit value, and returns a pointer to the matching 16-bit value
-  in the target buffer.
-
-  This function searches the target buffer specified by Buffer and Length from the lowest
-  address to the highest address for a 16-bit value that matches Value.  If a match is found,
-  then a pointer to the matching byte in the target buffer is returned.  If no match is found,
-  then NULL is returned.  If Length is 0, then NULL is returned.
-
-  If Length > 0 and Buffer is NULL, then ASSERT().
-  If Buffer is not aligned on a 16-bit boundary, then ASSERT().
-  If Length is not aligned on a 16-bit boundary, then ASSERT().
-  If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
-
-  @param  Buffer      Pointer to the target buffer to scan.
-  @param  Length      Number of bytes in Buffer to scan.
-  @param  Value       Value to search for in the target buffer.
-
-  @return A pointer to the matching byte in the target buffer or NULL otherwise.
-
-**/
-VOID *
-EFIAPI
-ScanMem16 (
-  IN CONST VOID  *Buffer,
-  IN UINTN       Length,
-  IN UINT16      Value
-  )
-{
-  if (Length == 0) {
-    return NULL;
-  }
-
-  ASSERT (Buffer != NULL);
-  ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
-  ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
-  ASSERT ((Length & (sizeof (Value) - 1)) == 0);
-
-  return (VOID*)InternalMemScanMem16 (Buffer, Length / sizeof (Value), Value);
-}
diff --git a/ArmPkg/Library/BaseMemoryLibVstm/ScanMem32Wrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/ScanMem32Wrapper.c
deleted file mode 100644
index 79ab60ced84c..000000000000
--- a/ArmPkg/Library/BaseMemoryLibVstm/ScanMem32Wrapper.c
+++ /dev/null
@@ -1,66 +0,0 @@ 
-/** @file
-  ScanMem32() implementation.
-
-  The following BaseMemoryLib instances contain the same copy of this file:
-    BaseMemoryLib
-    BaseMemoryLibMmx
-    BaseMemoryLibSse2
-    BaseMemoryLibRepStr
-    BaseMemoryLibOptDxe
-    BaseMemoryLibOptPei
-    PeiMemoryLib
-    UefiMemoryLib
-
-  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.
-
-**/
-
-#include "MemLibInternals.h"
-
-/**
-  Scans a target buffer for a 32-bit value, and returns a pointer to the matching 32-bit value
-  in the target buffer.
-
-  This function searches the target buffer specified by Buffer and Length from the lowest
-  address to the highest address for a 32-bit value that matches Value.  If a match is found,
-  then a pointer to the matching byte in the target buffer is returned.  If no match is found,
-  then NULL is returned.  If Length is 0, then NULL is returned.
-
-  If Length > 0 and Buffer is NULL, then ASSERT().
-  If Buffer is not aligned on a 32-bit boundary, then ASSERT().
-  If Length is not aligned on a 32-bit boundary, then ASSERT().
-  If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
-
-  @param  Buffer      Pointer to the target buffer to scan.
-  @param  Length      Number of bytes in Buffer to scan.
-  @param  Value       Value to search for in the target buffer.
-
-  @return A pointer to the matching byte in the target buffer or NULL otherwise.
-
-**/
-VOID *
-EFIAPI
-ScanMem32 (
-  IN CONST VOID  *Buffer,
-  IN UINTN       Length,
-  IN UINT32      Value
-  )
-{
-  if (Length == 0) {
-    return NULL;
-  }
-
-  ASSERT (Buffer != NULL);
-  ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
-  ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
-  ASSERT ((Length & (sizeof (Value) - 1)) == 0);
-
-  return (VOID*)InternalMemScanMem32 (Buffer, Length / sizeof (Value), Value);
-}
diff --git a/ArmPkg/Library/BaseMemoryLibVstm/ScanMem64Wrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/ScanMem64Wrapper.c
deleted file mode 100644
index d11e50b9d5f6..000000000000
--- a/ArmPkg/Library/BaseMemoryLibVstm/ScanMem64Wrapper.c
+++ /dev/null
@@ -1,67 +0,0 @@ 
-/** @file
-  ScanMem64() implementation.
-
-  The following BaseMemoryLib instances contain the same copy of this file:
-
-    BaseMemoryLib
-    BaseMemoryLibMmx
-    BaseMemoryLibSse2
-    BaseMemoryLibRepStr
-    BaseMemoryLibOptDxe
-    BaseMemoryLibOptPei
-    PeiMemoryLib
-    UefiMemoryLib
-
-  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.
-
-**/
-
-#include "MemLibInternals.h"
-
-/**
-  Scans a target buffer for a 64-bit value, and returns a pointer to the matching 64-bit value
-  in the target buffer.
-
-  This function searches the target buffer specified by Buffer and Length from the lowest
-  address to the highest address for a 64-bit value that matches Value.  If a match is found,
-  then a pointer to the matching byte in the target buffer is returned.  If no match is found,
-  then NULL is returned.  If Length is 0, then NULL is returned.
-
-  If Length > 0 and Buffer is NULL, then ASSERT().
-  If Buffer is not aligned on a 64-bit boundary, then ASSERT().
-  If Length is not aligned on a 64-bit boundary, then ASSERT().
-  If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
-
-  @param  Buffer      Pointer to the target buffer to scan.
-  @param  Length      Number of bytes in Buffer to scan.
-  @param  Value       Value to search for in the target buffer.
-
-  @return A pointer to the matching byte in the target buffer or NULL otherwise.
-
-**/
-VOID *
-EFIAPI
-ScanMem64 (
-  IN CONST VOID  *Buffer,
-  IN UINTN       Length,
-  IN UINT64      Value
-  )
-{
-  if (Length == 0) {
-    return NULL;
-  }
-
-  ASSERT (Buffer != NULL);
-  ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
-  ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
-  ASSERT ((Length & (sizeof (Value) - 1)) == 0);
-
-  return (VOID*)InternalMemScanMem64 (Buffer, Length / sizeof (Value), Value);
-}
diff --git a/ArmPkg/Library/BaseMemoryLibVstm/ScanMem8Wrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/ScanMem8Wrapper.c
deleted file mode 100644
index c6c6d5f39ba4..000000000000
--- a/ArmPkg/Library/BaseMemoryLibVstm/ScanMem8Wrapper.c
+++ /dev/null
@@ -1,99 +0,0 @@ 
-/** @file
-  ScanMem8() and ScanMemN() implementation.
-
-  The following BaseMemoryLib instances contain the same copy of this file:
-
-    BaseMemoryLib
-    BaseMemoryLibMmx
-    BaseMemoryLibSse2
-    BaseMemoryLibRepStr
-    BaseMemoryLibOptDxe
-    BaseMemoryLibOptPei
-    PeiMemoryLib
-    UefiMemoryLib
-
-  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.
-
-**/
-
-#include "MemLibInternals.h"
-
-/**
-  Scans a target buffer for an 8-bit value, and returns a pointer to the matching 8-bit value
-  in the target buffer.
-
-  This function searches the target buffer specified by Buffer and Length from the lowest
-  address to the highest address for an 8-bit value that matches Value.  If a match is found,
-  then a pointer to the matching byte in the target buffer is returned.  If no match is found,
-  then NULL is returned.  If Length is 0, then NULL is returned.
-
-  If Length > 0 and Buffer is NULL, then ASSERT().
-  If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
-
-  @param  Buffer      Pointer to the target buffer to scan.
-  @param  Length      Number of bytes in Buffer to scan.
-  @param  Value       Value to search for in the target buffer.
-
-  @return A pointer to the matching byte in the target buffer or NULL otherwise.
-
-**/
-VOID *
-EFIAPI
-ScanMem8 (
-  IN CONST VOID  *Buffer,
-  IN UINTN       Length,
-  IN UINT8       Value
-  )
-{
-  if (Length == 0) {
-    return NULL;
-  }
-  ASSERT (Buffer != NULL);
-  ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
-
-  return (VOID*)InternalMemScanMem8 (Buffer, Length, Value);
-}
-
-/**
-  Scans a target buffer for a UINTN sized value, and returns a pointer to the matching
-  UINTN sized value in the target buffer.
-
-  This function searches the target buffer specified by Buffer and Length from the lowest
-  address to the highest address for a UINTN sized value that matches Value.  If a match is found,
-  then a pointer to the matching byte in the target buffer is returned.  If no match is found,
-  then NULL is returned.  If Length is 0, then NULL is returned.
-
-  If Length > 0 and Buffer is NULL, then ASSERT().
-  If Buffer is not aligned on a UINTN boundary, then ASSERT().
-  If Length is not aligned on a UINTN boundary, then ASSERT().
-  If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
-
-  @param  Buffer      Pointer to the target buffer to scan.
-  @param  Length      Number of bytes in Buffer to scan.
-  @param  Value       Value to search for in the target buffer.
-
-  @return A pointer to the matching byte in the target buffer or NULL otherwise.
-
-**/
-VOID *
-EFIAPI
-ScanMemN (
-  IN CONST VOID  *Buffer,
-  IN UINTN       Length,
-  IN UINTN       Value
-  )
-{
-  if (sizeof (UINTN) == sizeof (UINT64)) {
-    return ScanMem64 (Buffer, Length, (UINT64)Value);
-  } else {
-    return ScanMem32 (Buffer, Length, (UINT32)Value);
-  }
-}
-
diff --git a/ArmPkg/Library/BaseMemoryLibVstm/SetMem.c b/ArmPkg/Library/BaseMemoryLibVstm/SetMem.c
deleted file mode 100644
index 5c30e9b45f76..000000000000
--- a/ArmPkg/Library/BaseMemoryLibVstm/SetMem.c
+++ /dev/null
@@ -1,53 +0,0 @@ 
-/** @file
-  Implementation of the EfiSetMem routine. This function is broken
-  out into its own source file so that it can be excluded from a
-  build for a particular platform easily if an optimized version
-  is desired.
-
-  Copyright (c) 2006 - 2010, 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.
-
-**/
-
-
-
-
-#include "MemLibInternals.h"
-
-/**
-  Set Buffer to Value for Size bytes.
-
-  @param  Buffer   Memory to set.
-  @param  Length   Number of bytes to set
-  @param  Value    Value of the set operation.
-
-  @return Buffer
-
-**/
-VOID *
-EFIAPI
-InternalMemSetMem (
-  OUT     VOID                      *Buffer,
-  IN      UINTN                     Length,
-  IN      UINT8                     Value
-  )
-{
-  //
-  // Declare the local variables that actually move the data elements as
-  // volatile to prevent the optimizer from replacing this function with
-  // the intrinsic memset()
-  //
-  volatile UINT8                    *Pointer;
-
-  Pointer = (UINT8*)Buffer;
-  while (Length-- > 0) {
-    *(Pointer++) = Value;
-  }
-  return Buffer;
-}
diff --git a/ArmPkg/Library/BaseMemoryLibVstm/SetMem16Wrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/SetMem16Wrapper.c
deleted file mode 100644
index 8129d21e0dbe..000000000000
--- a/ArmPkg/Library/BaseMemoryLibVstm/SetMem16Wrapper.c
+++ /dev/null
@@ -1,64 +0,0 @@ 
-/** @file
-  SetMem16() implementation.
-
-  The following BaseMemoryLib instances contain the same copy of this file:
-    BaseMemoryLib
-    BaseMemoryLibMmx
-    BaseMemoryLibSse2
-    BaseMemoryLibRepStr
-    BaseMemoryLibOptDxe
-    BaseMemoryLibOptPei
-    PeiMemoryLib
-    UefiMemoryLib
-
-  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.
-
-**/
-
-#include "MemLibInternals.h"
-
-/**
-  Fills a target buffer with a 16-bit value, and returns the target buffer.
-
-  This function fills Length bytes of Buffer with the 16-bit value specified by
-  Value, and returns Buffer. Value is repeated every 16-bits in for Length
-  bytes of Buffer.
-
-  If Length > 0 and Buffer is NULL, then ASSERT().
-  If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
-  If Buffer is not aligned on a 16-bit boundary, then ASSERT().
-  If Length is not aligned on a 16-bit boundary, then ASSERT().
-
-  @param  Buffer  Pointer to the target buffer to fill.
-  @param  Length  Number of bytes in Buffer to fill.
-  @param  Value   Value with which to fill Length bytes of Buffer.
-
-  @return Buffer.
-
-**/
-VOID *
-EFIAPI
-SetMem16 (
-  OUT VOID   *Buffer,
-  IN UINTN   Length,
-  IN UINT16  Value
-  )
-{
-  if (Length == 0) {
-    return Buffer;
-  }
-
-  ASSERT (Buffer != NULL);
-  ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
-  ASSERT ((((UINTN)Buffer) & (sizeof (Value) - 1)) == 0);
-  ASSERT ((Length & (sizeof (Value) - 1)) == 0);
-
-  return InternalMemSetMem16 (Buffer, Length / sizeof (Value), Value);
-}
diff --git a/ArmPkg/Library/BaseMemoryLibVstm/SetMem32Wrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/SetMem32Wrapper.c
deleted file mode 100644
index b57ba4057af6..000000000000
--- a/ArmPkg/Library/BaseMemoryLibVstm/SetMem32Wrapper.c
+++ /dev/null
@@ -1,64 +0,0 @@ 
-/** @file
-  SetMem32() implementation.
-
-  The following BaseMemoryLib instances contain the same copy of this file:
-    BaseMemoryLib
-    BaseMemoryLibMmx
-    BaseMemoryLibSse2
-    BaseMemoryLibRepStr
-    BaseMemoryLibOptDxe
-    BaseMemoryLibOptPei
-    PeiMemoryLib
-    UefiMemoryLib
-
-  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.
-
-**/
-
-#include "MemLibInternals.h"
-
-/**
-  Fills a target buffer with a 32-bit value, and returns the target buffer.
-
-  This function fills Length bytes of Buffer with the 32-bit value specified by
-  Value, and returns Buffer. Value is repeated every 32-bits in for Length
-  bytes of Buffer.
-
-  If Length > 0 and Buffer is NULL, then ASSERT().
-  If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
-  If Buffer is not aligned on a 32-bit boundary, then ASSERT().
-  If Length is not aligned on a 32-bit boundary, then ASSERT().
-
-  @param  Buffer  Pointer to the target buffer to fill.
-  @param  Length  Number of bytes in Buffer to fill.
-  @param  Value   Value with which to fill Length bytes of Buffer.
-
-  @return Buffer.
-
-**/
-VOID *
-EFIAPI
-SetMem32 (
-  OUT VOID   *Buffer,
-  IN UINTN   Length,
-  IN UINT32  Value
-  )
-{
-  if (Length == 0) {
-    return Buffer;
-  }
-
-  ASSERT (Buffer != NULL);
-  ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
-  ASSERT ((((UINTN)Buffer) & (sizeof (Value) - 1)) == 0);
-  ASSERT ((Length & (sizeof (Value) - 1)) == 0);
-
-  return InternalMemSetMem32 (Buffer, Length / sizeof (Value), Value);
-}
diff --git a/ArmPkg/Library/BaseMemoryLibVstm/SetMem64Wrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/SetMem64Wrapper.c
deleted file mode 100644
index f979580b1739..000000000000
--- a/ArmPkg/Library/BaseMemoryLibVstm/SetMem64Wrapper.c
+++ /dev/null
@@ -1,64 +0,0 @@ 
-/** @file
-  SetMem64() implementation.
-
-  The following BaseMemoryLib instances contain the same copy of this file:
-    BaseMemoryLib
-    BaseMemoryLibMmx
-    BaseMemoryLibSse2
-    BaseMemoryLibRepStr
-    BaseMemoryLibOptDxe
-    BaseMemoryLibOptPei
-    PeiMemoryLib
-    UefiMemoryLib
-
-  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.
-
-**/
-
-#include "MemLibInternals.h"
-
-/**
-  Fills a target buffer with a 64-bit value, and returns the target buffer.
-
-  This function fills Length bytes of Buffer with the 64-bit value specified by
-  Value, and returns Buffer. Value is repeated every 64-bits in for Length
-  bytes of Buffer.
-
-  If Length > 0 and Buffer is NULL, then ASSERT().
-  If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
-  If Buffer is not aligned on a 64-bit boundary, then ASSERT().
-  If Length is not aligned on a 64-bit boundary, then ASSERT().
-
-  @param  Buffer  Pointer to the target buffer to fill.
-  @param  Length  Number of bytes in Buffer to fill.
-  @param  Value   Value with which to fill Length bytes of Buffer.
-
-  @return Buffer.
-
-**/
-VOID *
-EFIAPI
-SetMem64 (
-  OUT VOID   *Buffer,
-  IN UINTN   Length,
-  IN UINT64  Value
-  )
-{
-  if (Length == 0) {
-    return Buffer;
-  }
-
-  ASSERT (Buffer != NULL);
-  ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
-  ASSERT ((((UINTN)Buffer) & (sizeof (Value) - 1)) == 0);
-  ASSERT ((Length & (sizeof (Value) - 1)) == 0);
-
-  return InternalMemSetMem64 (Buffer, Length / sizeof (Value), Value);
-}
diff --git a/ArmPkg/Library/BaseMemoryLibVstm/SetMemWrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/SetMemWrapper.c
deleted file mode 100644
index 9240c89e8b87..000000000000
--- a/ArmPkg/Library/BaseMemoryLibVstm/SetMemWrapper.c
+++ /dev/null
@@ -1,91 +0,0 @@ 
-/** @file
-  SetMem() and SetMemN() implementation.
-
-  The following BaseMemoryLib instances contain the same copy of this file:
-
-    BaseMemoryLib
-    BaseMemoryLibMmx
-    BaseMemoryLibSse2
-    BaseMemoryLibRepStr
-    BaseMemoryLibOptDxe
-    BaseMemoryLibOptPei
-    PeiMemoryLib
-    UefiMemoryLib
-
-  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.
-
-**/
-
-#include "MemLibInternals.h"
-
-/**
-  Fills a target buffer with a byte value, and returns the target buffer.
-
-  This function fills Length bytes of Buffer with Value, and returns Buffer.
-
-  If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
-
-  @param  Buffer    Memory to set.
-  @param  Length    Number of bytes to set.
-  @param  Value     Value with which to fill Length bytes of Buffer.
-
-  @return Buffer.
-
-**/
-VOID *
-EFIAPI
-SetMem (
-  OUT VOID  *Buffer,
-  IN UINTN  Length,
-  IN UINT8  Value
-  )
-{
-  if (Length == 0) {
-    return Buffer;
-  }
-
-  ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
-
-  return InternalMemSetMem (Buffer, Length, Value);
-}
-
-/**
-  Fills a target buffer with a value that is size UINTN, and returns the target buffer.
-
-  This function fills Length bytes of Buffer with the UINTN sized value specified by
-  Value, and returns Buffer. Value is repeated every sizeof(UINTN) bytes for Length
-  bytes of Buffer.
-
-  If Length > 0 and Buffer is NULL, then ASSERT().
-  If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
-  If Buffer is not aligned on a UINTN boundary, then ASSERT().
-  If Length is not aligned on a UINTN boundary, then ASSERT().
-
-  @param  Buffer  Pointer to the target buffer to fill.
-  @param  Length  Number of bytes in Buffer to fill.
-  @param  Value   Value with which to fill Length bytes of Buffer.
-
-  @return Buffer.
-
-**/
-VOID *
-EFIAPI
-SetMemN (
-  OUT VOID  *Buffer,
-  IN UINTN  Length,
-  IN UINTN  Value
-  )
-{
-  if (sizeof (UINTN) == sizeof (UINT64)) {
-    return SetMem64 (Buffer, Length, (UINT64)Value);
-  } else {
-    return SetMem32 (Buffer, Length, (UINT32)Value);
-  }
-}
diff --git a/ArmPkg/Library/BaseMemoryLibVstm/ZeroMemWrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/ZeroMemWrapper.c
deleted file mode 100644
index d6c6279f682f..000000000000
--- a/ArmPkg/Library/BaseMemoryLibVstm/ZeroMemWrapper.c
+++ /dev/null
@@ -1,52 +0,0 @@ 
-/** @file
-  ZeroMem() implementation.
-
-  The following BaseMemoryLib instances contain the same copy of this file:
-
-    BaseMemoryLib
-    BaseMemoryLibMmx
-    BaseMemoryLibSse2
-    BaseMemoryLibRepStr
-    BaseMemoryLibOptDxe
-    BaseMemoryLibOptPei
-    PeiMemoryLib
-    UefiMemoryLib
-
-  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.
-
-**/
-
-#include "MemLibInternals.h"
-
-/**
-  Fills a target buffer with zeros, and returns the target buffer.
-
-  This function fills Length bytes of Buffer with zeros, and returns Buffer.
-
-  If Length > 0 and Buffer is NULL, then ASSERT().
-  If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
-
-  @param  Buffer      Pointer to the target buffer to fill with zeros.
-  @param  Length      Number of bytes in Buffer to fill with zeros.
-
-  @return Buffer.
-
-**/
-VOID *
-EFIAPI
-ZeroMem (
-  OUT VOID  *Buffer,
-  IN UINTN  Length
-  )
-{
-  ASSERT (!(Buffer == NULL && Length > 0));
-  ASSERT (Length <= (MAX_ADDRESS - (UINTN)Buffer + 1));
-  return InternalMemZeroMem (Buffer, Length);
-}