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

Reply via email to