This adds ARM support to BaseMemoryLibOptDxe, partially based on the cortex-strings library (ScanMem) and the existing CopyMem() implementation from BaseMemoryLibStm in ArmPkg. All string routines are accelerated except ScanMem16, ScanMem32, ScanMem64 and IsZeroBuffer, which can wait for another day. (Very few occurrences exist in the codebase) Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Liming Gao <liming.gao@intel.com>
154 lines
3.4 KiB
INI
154 lines
3.4 KiB
INI
## @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
|
|
#
|
|
|
|
[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
|
|
|
|
[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
|
|
|
|
[Sources.ARM]
|
|
Arm/ScanMem.S |GCC
|
|
Arm/SetMem.S |GCC
|
|
Arm/CopyMem.S |GCC
|
|
Arm/CompareMem.S |GCC
|
|
|
|
Arm/ScanMem.asm |RVCT
|
|
Arm/SetMem.asm |RVCT
|
|
Arm/CopyMem.asm |RVCT
|
|
Arm/CompareMem.asm |RVCT
|
|
|
|
Arm/ScanMemGeneric.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
|
|
MemLibGuid.c
|
|
|
|
[Packages]
|
|
MdePkg/MdePkg.dec
|
|
|
|
[LibraryClasses]
|
|
DebugLib
|
|
BaseLib
|
|
|