## @file
#  Instance of Base Memory Library optimized for use in DXE phase.
#
#  Base Memory Library that is optimized for use in DXE phase.
#  Uses REP, MMX, XMM registers as required for best performance.
#
#  Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
#
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = BaseMemoryLibOptDxe
  MODULE_UNI_FILE                = BaseMemoryLibOptDxe.uni
  FILE_GUID                      = 02BD55C2-AB1D-4b75-B0FD-9A63AE09B31D
  MODULE_TYPE                    = BASE
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = BaseMemoryLib


#
#  VALID_ARCHITECTURES           = IA32 X64 AARCH64
#

[Sources]
  MemLibInternals.h

[Sources.Ia32]
  Ia32/ScanMem64.nasm
  Ia32/ScanMem32.nasm
  Ia32/ScanMem16.nasm
  Ia32/ScanMem8.nasm
  Ia32/CompareMem.nasm
  Ia32/ZeroMem.nasm
  Ia32/SetMem64.nasm
  Ia32/SetMem32.nasm
  Ia32/SetMem16.nasm
  Ia32/SetMem.nasm
  Ia32/CopyMem.nasm
  Ia32/IsZeroBuffer.nasm
  MemLibGuid.c

[Sources.X64]
  X64/ScanMem64.nasm
  X64/ScanMem32.nasm
  X64/ScanMem16.nasm
  X64/ScanMem8.nasm
  X64/CompareMem.nasm
  X64/ZeroMem.nasm
  X64/SetMem64.nasm
  X64/SetMem32.nasm
  X64/SetMem16.nasm
  X64/SetMem.nasm
  X64/CopyMem.nasm
  X64/IsZeroBuffer.nasm
  MemLibGuid.c

[Defines.AARCH64]
  #
  # The ARM implementations of this library may perform unaligned accesses, and
  # may use DC ZVA instructions that are only allowed when the MMU and D-cache
  # are on. Since SEC, PEI_CORE and PEIM modules may execute with the MMU off,
  # omit them from the supported module types list for this library.
  #
  LIBRARY_CLASS = BaseMemoryLib|DXE_CORE DXE_DRIVER DXE_RUNTIME_DRIVER UEFI_DRIVER UEFI_APPLICATION

[Sources.AARCH64]
  AArch64/ScanMem.S
  AArch64/SetMem.S
  AArch64/CopyMem.S
  AArch64/CompareMem.S
  AArch64/CompareGuid.S
  AArch64/ScanMemGeneric.c
  AArch64/MemLibGuid.c

[Sources]
  ScanMem64Wrapper.c
  ScanMem32Wrapper.c
  ScanMem16Wrapper.c
  ScanMem8Wrapper.c
  ZeroMemWrapper.c
  CompareMemWrapper.c
  SetMemNWrapper.c
  SetMem64Wrapper.c
  SetMem32Wrapper.c
  SetMem16Wrapper.c
  SetMemWrapper.c
  CopyMemWrapper.c
  IsZeroBufferWrapper.c

[Packages]
  MdePkg/MdePkg.dec

[LibraryClasses]
  DebugLib
  BaseLib

