]> git.proxmox.com Git - mirror_edk2.git/commit - MdePkg/Library/BaseMemoryLibOptDxe/BaseMemoryLibOptDxe.inf
MdePkg/BaseMemoryLibOptDxe ARM|AARCH64: implement accelerated GUID functions
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Fri, 16 Sep 2016 10:25:52 +0000 (11:25 +0100)
committerArd Biesheuvel <ard.biesheuvel@linaro.org>
Wed, 21 Sep 2016 07:43:17 +0000 (08:43 +0100)
commit217b3ac093d2c1ae2ce066984a9c4302331c07c2
tree0db89a1337720240e17146e21b02fddacbee55cc
parent60fe5e8a9c8deafcc302c715a91947d75d38e544
MdePkg/BaseMemoryLibOptDxe ARM|AARCH64: implement accelerated GUID functions

As reported by Vishal, CompareGuid() is a hotspot, and switching from
BaseMemoryLibStm in ArmPkg/ to BaseMemoryLibOptDxe causes a noticeable
performance regression due to the fact that BaseMemoryLibOptDxe uses
unaligned accessors explicitly to implement CompareGuid() and the related
functions.

Since BaseMemoryLibOptDxe on ARM and AARCH64 can only be used in contexts
where unaligned accesses are allowed, reimplement these functions for ARM
and AARCH64 specifically, using wide accessors that can tolerate any
misalignment.

Reported-by: "Oliyil Kunnil, Vishal" <vishalo@qti.qualcomm.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
MdePkg/Library/BaseMemoryLibOptDxe/AArch64/CompareGuid.S [new file with mode: 0644]
MdePkg/Library/BaseMemoryLibOptDxe/Arm/CompareGuid.S [new file with mode: 0644]
MdePkg/Library/BaseMemoryLibOptDxe/Arm/CompareGuid.asm [new file with mode: 0644]
MdePkg/Library/BaseMemoryLibOptDxe/Arm/MemLibGuid.c [new file with mode: 0644]
MdePkg/Library/BaseMemoryLibOptDxe/BaseMemoryLibOptDxe.inf