mirror of
https://git.proxmox.com/git/mirror_edk2
synced 2026-02-02 15:58:02 +00:00
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 | ||
| SetMem16Wrapper.c | ||
| SetMem32Wrapper.c | ||
| SetMem64Wrapper.c | ||
| SetMem.c | ||
| SetMemWrapper.c | ||
| ZeroMemWrapper.c | ||