## @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.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]
  MemLibInternals.h
  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

