## @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 - 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.
#
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = BaseMemoryLibOptDxe
  FILE_GUID                      = 02BD55C2-AB1D-4b75-B0FD-9A63AE09B31D
  MODULE_TYPE                    = BASE
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = BaseMemoryLib 


#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources]
  MemLibInternals.h

[Sources.Ia32]
  Ia32/ScanMem64.S
  Ia32/ScanMem32.S
  Ia32/ScanMem16.S
  Ia32/ScanMem8.S
  Ia32/CompareMem.S
  Ia32/ZeroMem.S
  Ia32/SetMem64.S
  Ia32/SetMem32.S
  Ia32/SetMem16.S
  Ia32/SetMem.S
  Ia32/CopyMem.S
  Ia32/ScanMem64.asm
  Ia32/ScanMem32.asm
  Ia32/ScanMem16.asm
  Ia32/ScanMem8.asm
  Ia32/CompareMem.asm
  Ia32/ZeroMem.asm
  Ia32/SetMem64.asm
  Ia32/SetMem32.asm
  Ia32/SetMem16.asm
  Ia32/SetMem.asm
  Ia32/CopyMem.asm
  ScanMem64Wrapper.c
  ScanMem32Wrapper.c
  ScanMem16Wrapper.c
  ScanMem8Wrapper.c
  ZeroMemWrapper.c
  CompareMemWrapper.c
  SetMem64Wrapper.c
  SetMem32Wrapper.c
  SetMem16Wrapper.c
  SetMemWrapper.c
  CopyMemWrapper.c
  MemLibGuid.c

[Sources.X64]
  X64/ScanMem64.asm
  X64/ScanMem64.S
  X64/ScanMem32.asm
  X64/ScanMem32.S
  X64/ScanMem16.asm
  X64/ScanMem16.S
  X64/ScanMem8.asm
  X64/ScanMem8.S
  X64/CompareMem.asm
  X64/CompareMem.S
  X64/ZeroMem.asm
  X64/ZeroMem.S
  X64/SetMem64.asm
  X64/SetMem64.S
  X64/SetMem32.asm
  X64/SetMem32.S
  X64/SetMem16.asm
  X64/SetMem16.S
  X64/SetMem.asm
  X64/SetMem.S
  X64/CopyMem.asm
  X64/CopyMem.S
  ScanMem64Wrapper.c
  ScanMem32Wrapper.c
  ScanMem16Wrapper.c
  ScanMem8Wrapper.c
  ZeroMemWrapper.c
  CompareMemWrapper.c
  SetMem64Wrapper.c
  SetMem32Wrapper.c
  SetMem16Wrapper.c
  SetMemWrapper.c
  CopyMemWrapper.c
  MemLibGuid.c

[Packages]
  MdePkg/MdePkg.dec

[LibraryClasses]
  DebugLib
  BaseLib

