## @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 ARM 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.ARM, 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.ARM]
  Arm/ScanMem.S       |GCC
  Arm/SetMem.S        |GCC
  Arm/CopyMem.S       |GCC
  Arm/CompareMem.S    |GCC
  Arm/CompareGuid.S   |GCC

[Sources.AARCH64]
  AArch64/ScanMem.S
  AArch64/SetMem.S
  AArch64/CopyMem.S
  AArch64/CompareMem.S
  AArch64/CompareGuid.S

[Sources.ARM, Sources.AARCH64]
  Arm/ScanMemGeneric.c
  Arm/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

