audk/MdePkg/Library
Ard Biesheuvel 9cabe9d457 MdePkg/BaseIoLibIntrinsicArmVirt ARM: avoid double word loads and stores
BaseIoLibIntrinsicArmVirt was created to prevent LTO from merging
accesses to MMIO regions, resulting in instructions with multiple
output registers that KVM on ARM cannot emulate (since the exception
syndrome information that KVM relies on can only describe a single
output register)

However, using double word loads on ARM amounts to the same thing,
and so code that relies on doing 64-bit MMIO to regions that are
emulated under KVM (such as the GICv3 TYPER register) will still
suffer from the original issue.

So replace ldrd and strd with equivalent two instruction sequences.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Acked-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2018-11-15 04:31:42 -08:00
..
BaseCacheMaintenanceLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BaseCpuLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BaseDebugLibNull MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BaseDebugLibSerialPort MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BaseDebugPrintErrorLevelLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BaseExtractGuidedSectionLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BaseIoLibIntrinsic MdePkg/BaseIoLibIntrinsicArmVirt ARM: avoid double word loads and stores 2018-11-15 04:31:42 -08:00
BaseLib MdePkg-BaseLib: Fix PathCleanUpDirectories() issue with "\\..\\.." 2018-10-24 13:36:35 +08:00
BaseMemoryLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BaseMemoryLibMmx MdePkg: Clean up source files 2018-06-28 11:19:47 +08:00
BaseMemoryLibOptDxe MdePkg: Clean up source files 2018-06-28 11:19:47 +08:00
BaseMemoryLibOptPei MdePkg: Clean up source files 2018-06-28 11:19:47 +08:00
BaseMemoryLibRepStr MdePkg: Clean up source files 2018-06-28 11:19:47 +08:00
BaseMemoryLibSse2 MdePkg: Clean up source files 2018-06-28 11:19:47 +08:00
BaseOrderedCollectionRedBlackTreeLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BasePcdLibNull MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BasePciCf8Lib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BasePciExpressLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BasePciLibCf8 MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BasePciLibPciExpress MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BasePciSegmentInfoLibNull MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BasePciSegmentLibPci MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BasePeCoffExtraActionLibNull MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BasePeCoffGetEntryPointLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BasePeCoffLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BasePerformanceLibNull MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BasePostCodeLibDebug MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BasePostCodeLibPort80 MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BasePrintLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BaseReportStatusCodeLibNull MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BaseRngLib MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00
BaseS3BootScriptLibNull MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BaseS3IoLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BaseS3PciLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BaseS3PciSegmentLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BaseS3SmbusLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BaseS3StallLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BaseSafeIntLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BaseSerialPortLibNull MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BaseSmbusLibNull MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BaseStackCheckLib MdePkg BaseStackCheckLib: Correct style of file header 2018-03-20 10:25:06 +08:00
BaseSynchronizationLib MdePkg/BaseSynchronizationLib: Fix InternalSync[De|In]crement 2018-11-08 10:00:05 +08:00
BaseTimerLibNullTemplate MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BaseUefiDecompressLib MdePkg BaseUefiDecompressLib: Fix UEFI Decompression logic issue 2018-11-11 11:48:34 +08:00
DxeCoreEntryPoint MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
DxeCoreHobLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
DxeExtractGuidedSectionLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
DxeHobLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
DxeHstiLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
DxeIoLibCpuIo2 MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
DxePcdLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
DxeRuntimeDebugLibSerialPort MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
DxeRuntimePciExpressLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
DxeServicesLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
DxeServicesTableLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
DxeSmbusLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
PciSegmentLibSegmentInfo MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
PeiCoreEntryPoint MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
PeiDxePostCodeLibReportStatusCode MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
PeiExtractGuidedSectionLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
PeiHobLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
PeiIoLibCpuIo MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
PeiMemoryAllocationLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
PeiMemoryLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
PeiPcdLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
PeiPciLibPciCfg2 MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
PeiPciSegmentLibPciCfg2 MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
PeiResourcePublicationLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
PeiServicesLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
PeiServicesTablePointerLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
PeiServicesTablePointerLibIdt MdePkg: Clean up source files 2018-06-28 11:19:47 +08:00
PeiSmbusLibSmbus2Ppi MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
PeimEntryPoint MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
SecPeiDxeTimerLibCpu MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
SmiHandlerProfileLibNull MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
SmmIoLib MdePkg SmmIoLib: Use NULL pointer check instead of useless Status check 2017-06-06 09:07:10 +08:00
SmmIoLibSmmCpuIo2 MdePkg: Clean up source files 2018-06-28 11:19:47 +08:00
SmmLibNull MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
SmmMemLib MdePkg/SmmMemLib: Avoid possible NULL ptr dereference 2018-07-31 13:07:44 +08:00
SmmMemoryAllocationLib MdePkg: Clean up source files 2018-06-28 11:19:47 +08:00
SmmPciExpressLib MdePkg: Add SMM PciExpressLib Instance 2016-09-27 11:01:23 +08:00
SmmPciLibPciRootBridgeIo MdePkg: Clean up source files 2018-06-28 11:19:47 +08:00
SmmPeriodicSmiLib MdePkg: Clean up source files 2018-06-28 11:19:47 +08:00
SmmServicesTableLib MdePkg: Clean up source files 2018-06-28 11:19:47 +08:00
UefiApplicationEntryPoint MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
UefiBootServicesTableLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
UefiDebugLibConOut MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
UefiDebugLibDebugPortProtocol MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
UefiDebugLibStdErr MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
UefiDevicePathLib MdePkg: Fix incorrect check for DisplayOnly text format in AcpiEx 2018-11-11 11:41:04 +08:00
UefiDevicePathLibDevicePathProtocol MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
UefiDriverEntryPoint MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
UefiFileHandleLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
UefiLib MdePkg UefiLib: Check Table against NULL in ScanTableInSDT 2018-10-21 09:57:44 +08:00
UefiMemoryAllocationLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
UefiMemoryLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
UefiPciLibPciRootBridgeIo MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
UefiPciSegmentLibPciRootBridgeIo MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
UefiRuntimeLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
UefiRuntimeServicesTableLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
UefiScsiLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
UefiUsbLib MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00