audk/MdePkg/Library
Ard Biesheuvel 217b3ac093 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>
2016-09-21 08:43:17 +01:00
..
BaseCacheMaintenanceLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BaseCpuLib MdePkg BaseCpuLib: Convert X64/CpuSleep.asm to NASM 2016-06-28 09:51:45 +08:00
BaseDebugLibNull MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BaseDebugLibSerialPort MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BaseDebugPrintErrorLevelLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BaseExtractGuidedSectionLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BaseIoLibIntrinsic MdePkg: Convert IoLibEbc.c source file to DOS format 2015-12-17 08:30:58 +00:00
BaseLib MdePkg/BaseLib AARCH64: terminate stack frame list on stack switch 2016-09-09 13:46:52 +01:00
BaseMemoryLib MdePkg/BaseMemoryLib: widen aligned accesses to 32 or 64 bits 2016-09-13 16:28:15 +01:00
BaseMemoryLibMmx MdePkg BaseMemoryLib: Add assembly implementation of API IsZeroBuffer() 2016-08-22 18:54:31 +08:00
BaseMemoryLibOptDxe MdePkg/BaseMemoryLibOptDxe ARM|AARCH64: implement accelerated GUID functions 2016-09-21 08:43:17 +01:00
BaseMemoryLibOptPei MdePkg BaseMemoryLib: Add assembly implementation of API IsZeroBuffer() 2016-08-22 18:54:31 +08:00
BaseMemoryLibRepStr MdePkg BaseMemoryLib: Add assembly implementation of API IsZeroBuffer() 2016-08-22 18:54:31 +08:00
BaseMemoryLibSse2 MdePkg BaseMemoryLibSse2: Add SSE2 implementation of API IsZeroBuffer() 2016-08-22 18:54:31 +08:00
BaseOrderedCollectionRedBlackTreeLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BasePalLibNull MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BasePcdLibNull MdePkg: Follow PI1.4a to fix artificial limitation of SkuId range 2016-05-23 10:48:53 +08:00
BasePciCf8Lib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BasePciExpressLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BasePciLibCf8 MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BasePciLibPciExpress MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BasePciSegmentLibPci MdePkg: Add PciSegmentLib instance based on PciLib 2016-01-18 04:50:04 +00:00
BasePeCoffExtraActionLibNull MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BasePeCoffGetEntryPointLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BasePeCoffLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BasePerformanceLibNull MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BasePostCodeLibDebug MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BasePostCodeLibPort80 MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BasePrintLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BaseReportStatusCodeLibNull MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BaseRngLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BaseS3BootScriptLibNull MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BaseS3IoLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BaseS3PciLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BaseS3SmbusLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BaseS3StallLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BaseSerialPortLibNull MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BaseSmbusLibNull MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BaseStackCheckLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BaseSynchronizationLib MdePkg/BaseSynchronizationLib: spin lock alignment is 32 at least 2016-07-14 09:52:39 +08:00
BaseTimerLibNullTemplate MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BaseUefiDecompressLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
DxeCoreEntryPoint MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
DxeCoreHobLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
DxeExtendedSalLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
DxeExtractGuidedSectionLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
DxeHobLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
DxeHstiLib MdePkg/Hsti: Fix a memory allocation check issue. 2016-06-06 09:18:24 +08:00
DxeIoLibCpuIo2 MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
DxeIoLibEsal MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
DxePalLibEsal MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
DxePcdLib MdePkg: Follow PI1.4a to fix artificial limitation of SkuId range 2016-05-23 10:48:53 +08:00
DxePciLibEsal MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
DxePciSegmentLibEsal MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
DxeRuntimeExtendedSalLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
DxeRuntimePciExpressLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
DxeSalLibEsal MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
DxeServicesLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
DxeServicesTableLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
DxeSmbusLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
DxeTimerLibEsal MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
PeiCoreEntryPoint MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
PeiDxePostCodeLibReportStatusCode MdePkg PeiDxePostCodeLibReportStatusCode: Correct files with CRLF line ending 2016-07-29 09:18:12 +08:00
PeiExtractGuidedSectionLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
PeiHobLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
PeiIoLibCpuIo MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
PeiMemoryAllocationLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
PeiMemoryLib MdePkg BaseMemoryLib: Add C implementation of API IsZeroBuffer() 2016-08-22 18:54:30 +08:00
PeiPalLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
PeiPcdLib MdePkg: Follow PI1.4a to fix artificial limitation of SkuId range 2016-05-23 10:48:53 +08:00
PeiPciLibPciCfg2 MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
PeiPciSegmentLibPciCfg2 MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
PeiResourcePublicationLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
PeiServicesLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
PeiServicesTablePointerLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
PeiServicesTablePointerLibIdt MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
PeiServicesTablePointerLibKr7 MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
PeiSmbusLibSmbus2Ppi MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
PeimEntryPoint MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
SecPeiDxeTimerLibCpu MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
SmmIoLibSmmCpuIo2 MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
SmmLibNull MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
SmmMemLib MdePkg-SmmMemLib: Enhance SmmIsBufferOutsideSmmValid() check for fixed comm buffer. 2016-04-29 12:49:26 +08:00
SmmMemoryAllocationLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
SmmPciLibPciRootBridgeIo MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
SmmPeriodicSmiLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
SmmServicesTableLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
UefiApplicationEntryPoint MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
UefiBootServicesTableLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
UefiDebugLibConOut MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
UefiDebugLibDebugPortProtocol MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
UefiDebugLibStdErr MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
UefiDevicePathLib MdePkg: Replace UnicodeStrToAsciiStr() with UnicodeStrToAsciiStrS() 2016-06-21 12:46:23 +08:00
UefiDevicePathLibDevicePathProtocol MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
UefiDriverEntryPoint MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
UefiFileHandleLib MdePkg: Replace UnicodeStrToAsciiStr() with UnicodeStrToAsciiStrS() 2016-06-21 12:46:23 +08:00
UefiLib MdePkg/UefiLib: introduce EfiEventGroupSignal 2016-03-23 12:05:39 +01:00
UefiMemoryAllocationLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
UefiMemoryLib MdePkg BaseMemoryLib: Add C implementation of API IsZeroBuffer() 2016-08-22 18:54:30 +08:00
UefiPalLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
UefiPciLibPciRootBridgeIo MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
UefiPciSegmentLibPciRootBridgeIo MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
UefiRuntimeLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
UefiRuntimeServicesTableLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
UefiSalLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
UefiScsiLib MdePkg UefiScsiLib: Raise the Tpl of async IO callback to TPL_NOTIFY 2015-12-22 13:58:09 +00:00
UefiUsbLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00