mirror of https://github.com/acidanthera/audk.git
01f688be90
Since the default BaseMemoryLib should be callable from any context, including ones where unaligned accesses are not allowed, it implements InternalCopyMem() and InternalSetMem() using byte accesses only. However, especially in a context where the MMU is off, such narrow accesses may be disproportionately costly, and so if the size and alignment of the access allow it, use 32-bit or even 64-bit loads and stores (the latter may be beneficial even on a 32-bit architectures like ARM, which has load pair/store pair instructions) Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Liming Gao <liming.gao@intel.com> |
||
---|---|---|
.. | ||
BaseMemoryLib.inf | ||
BaseMemoryLib.uni | ||
CompareMemWrapper.c | ||
CopyMem.c | ||
CopyMemWrapper.c | ||
IsZeroBufferWrapper.c | ||
MemLibGeneric.c | ||
MemLibGuid.c | ||
MemLibInternals.h | ||
ScanMem8Wrapper.c | ||
ScanMem16Wrapper.c | ||
ScanMem32Wrapper.c | ||
ScanMem64Wrapper.c | ||
SetMem.c | ||
SetMem16Wrapper.c | ||
SetMem32Wrapper.c | ||
SetMem64Wrapper.c | ||
SetMemWrapper.c | ||
ZeroMemWrapper.c |