MdePkg/BaseMemoryLibOptDxe: add accelerated ARM routines
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>
This commit is contained in:
@ -27,7 +27,7 @@
|
||||
|
||||
|
||||
#
|
||||
# VALID_ARCHITECTURES = IA32 X64
|
||||
# VALID_ARCHITECTURES = IA32 X64 ARM
|
||||
#
|
||||
|
||||
[Sources]
|
||||
@ -79,19 +79,6 @@
|
||||
Ia32/CopyMem.nasm
|
||||
Ia32/CopyMem.asm
|
||||
Ia32/IsZeroBuffer.nasm
|
||||
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
|
||||
|
||||
[Sources.X64]
|
||||
X64/ScanMem64.nasm
|
||||
@ -128,6 +115,21 @@
|
||||
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
|
||||
|
Reference in New Issue
Block a user