## @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 - 2016, 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.
#
#
##

[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/ScanMem64.S
  Ia32/ScanMem32.nasm
  Ia32/ScanMem32.S
  Ia32/ScanMem16.nasm
  Ia32/ScanMem16.S
  Ia32/ScanMem8.nasm
  Ia32/ScanMem8.S
  Ia32/CompareMem.nasm
  Ia32/CompareMem.S
  Ia32/ZeroMem.nasm
  Ia32/ZeroMem.S
  Ia32/SetMem64.nasm
  Ia32/SetMem64.S
  Ia32/SetMem32.nasm
  Ia32/SetMem32.S
  Ia32/SetMem16.nasm
  Ia32/SetMem16.S
  Ia32/SetMem.nasm
  Ia32/SetMem.S
  Ia32/CopyMem.nasm
  Ia32/CopyMem.S
  Ia32/ScanMem64.nasm
  Ia32/ScanMem64.asm
  Ia32/ScanMem32.nasm
  Ia32/ScanMem32.asm
  Ia32/ScanMem16.nasm
  Ia32/ScanMem16.asm
  Ia32/ScanMem8.nasm
  Ia32/ScanMem8.asm
  Ia32/CompareMem.nasm
  Ia32/CompareMem.asm
  Ia32/ZeroMem.nasm
  Ia32/ZeroMem.asm
  Ia32/SetMem64.nasm
  Ia32/SetMem64.asm
  Ia32/SetMem32.nasm
  Ia32/SetMem32.asm
  Ia32/SetMem16.nasm
  Ia32/SetMem16.asm
  Ia32/SetMem.nasm
  Ia32/SetMem.asm
  Ia32/CopyMem.nasm
  Ia32/CopyMem.asm
  Ia32/IsZeroBuffer.nasm
  MemLibGuid.c

[Sources.X64]
  X64/ScanMem64.nasm
  X64/ScanMem64.asm
  X64/ScanMem64.S
  X64/ScanMem32.nasm
  X64/ScanMem32.asm
  X64/ScanMem32.S
  X64/ScanMem16.nasm
  X64/ScanMem16.asm
  X64/ScanMem16.S
  X64/ScanMem8.nasm
  X64/ScanMem8.asm
  X64/ScanMem8.S
  X64/CompareMem.nasm
  X64/CompareMem.asm
  X64/CompareMem.S
  X64/ZeroMem.nasm
  X64/ZeroMem.asm
  X64/ZeroMem.S
  X64/SetMem64.nasm
  X64/SetMem64.asm
  X64/SetMem64.S
  X64/SetMem32.nasm
  X64/SetMem32.asm
  X64/SetMem32.S
  X64/SetMem16.nasm
  X64/SetMem16.asm
  X64/SetMem16.S
  X64/SetMem.nasm
  X64/SetMem.asm
  X64/SetMem.S
  X64/CopyMem.nasm
  X64/CopyMem.asm
  X64/CopyMem.S
  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

  Arm/ScanMem.asm     |RVCT
  Arm/SetMem.asm      |RVCT
  Arm/CopyMem.asm     |RVCT
  Arm/CompareMem.asm  |RVCT
  Arm/CompareGuid.asm |RVCT

[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
  SetMem64Wrapper.c
  SetMem32Wrapper.c
  SetMem16Wrapper.c
  SetMemWrapper.c
  CopyMemWrapper.c
  IsZeroBufferWrapper.c

[Packages]
  MdePkg/MdePkg.dec

[LibraryClasses]
  DebugLib
  BaseLib

