audk/MdePkg/Library
Michael D Kinney 02b7b861b1 MdePkg/BaseSafeIntLib: Fix VS20xx IA32 link failures
https://bugzilla.tianocore.org/show_bug.cgi?id=2525

SafeUint64Mult() looks for 64-bit overflows and performs
several 32-bit multiples with 64-bit results to check for
all possible overflow conditions.  IA32 builds using VS20xx
with optimizations enabled are producing a reference to
the _allmull intrinsic.

The fix is to use MultU64x64() instead of '*' for
these operations.  These are safe because the inputs
are guaranteed to have the upper 32-bits clear, which
means MultU64x64() can never overflow with those inputs.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Sean Brogan <sean.brogan@microsoft.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Bret Barkelew <bret.barkelew@microsoft.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2020-02-13 01:42:50 +00:00
..
BaseCacheMaintenanceLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseCpuLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseDebugLibNull MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseDebugLibSerialPort MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseDebugPrintErrorLevelLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseExtractGuidedSectionLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseIoLibIntrinsic MdePkg BaseIoLibIntrinsic: Remove __inline__ attribute for IO functions 2019-10-24 09:41:32 +08:00
BaseLib MdePkg/BaseLib: Base64Decode(): don't declare variables in nested blocks 2019-07-17 16:36:57 +02:00
BaseMemoryLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseMemoryLibMmx MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseMemoryLibOptDxe MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseMemoryLibOptPei MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseMemoryLibRepStr MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseMemoryLibSse2 MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseOrderedCollectionRedBlackTreeLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BasePcdLibNull MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BasePciCf8Lib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BasePciExpressLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BasePciLibCf8 MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BasePciLibPciExpress MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BasePciSegmentInfoLibNull MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BasePciSegmentLibPci MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BasePeCoffExtraActionLibNull MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BasePeCoffGetEntryPointLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BasePeCoffLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BasePerformanceLibNull MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BasePostCodeLibDebug MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BasePostCodeLibPort80 MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BasePrintLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseReportStatusCodeLibNull MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseRngLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseRngLibNull MdePkg: add null version of RngLib 2019-11-14 01:32:15 +00:00
BaseS3BootScriptLibNull MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseS3IoLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseS3PciLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseS3PciSegmentLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseS3SmbusLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseS3StallLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseSafeIntLib MdePkg/BaseSafeIntLib: Fix VS20xx IA32 link failures 2020-02-13 01:42:50 +00:00
BaseSerialPortLibNull MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseSmbusLibNull MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseStackCheckLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseSynchronizationLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseTimerLibNullTemplate MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseUefiDecompressLib MdePkg/BaseUefiDecompressLib: Add missing description for parameter 2019-08-13 17:16:14 +08:00
DxeCoreEntryPoint MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
DxeCoreHobLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
DxeExtractGuidedSectionLib MdePkg/Library/Dxe: Fix various typos 2020-02-10 22:30:07 +00:00
DxeHobLib MdePkg/Library/Dxe: Fix various typos 2020-02-10 22:30:07 +00:00
DxeHstiLib MdePkg/DxeHstiLib: Added checks to improve error handling. 2019-09-02 12:17:56 +08:00
DxeIoLibCpuIo2 MdePkg/Library/Dxe: Fix various typos 2020-02-10 22:30:07 +00:00
DxePcdLib MdePkg/Library/Dxe: Fix various typos 2020-02-10 22:30:07 +00:00
DxeRuntimeDebugLibSerialPort MdePkg: Do not use CreateEventEx unless required 2020-01-10 03:25:59 +00:00
DxeRuntimePciExpressLib MdePkg/Library/Dxe: Fix various typos 2020-02-10 22:30:07 +00:00
DxeServicesLib MdePkg/Library/Dxe: Fix various typos 2020-02-10 22:30:07 +00:00
DxeServicesTableLib MdePkg/Library/Dxe: Fix various typos 2020-02-10 22:30:07 +00:00
DxeSmbusLib MdePkg/Library/Dxe: Fix various typos 2020-02-10 22:30:07 +00:00
MmServicesTableLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
PciSegmentLibSegmentInfo MdePkg/Library/Pci: Fix various typos 2020-02-10 22:30:07 +00:00
PeiCoreEntryPoint MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
PeiDxePostCodeLibReportStatusCode MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
PeiExtractGuidedSectionLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
PeiHobLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
PeiIoLibCpuIo MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
PeiMemoryAllocationLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
PeiMemoryLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
PeiPcdLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
PeiPciLibPciCfg2 MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
PeiPciSegmentLibPciCfg2 MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
PeiResourcePublicationLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
PeiServicesLib MdePkg/PeiServicesLib.c: Change comments of PeiServicesResetSystem2 2019-04-28 09:40:12 +08:00
PeiServicesTablePointerLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
PeiServicesTablePointerLibIdt MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
PeiSmbusLibSmbus2Ppi MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
PeimEntryPoint MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
SecPeiDxeTimerLibCpu MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
SmiHandlerProfileLibNull MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
SmmIoLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
SmmIoLibSmmCpuIo2 MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
SmmLibNull MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
SmmMemLib MdePkg/Library/Smm: Fix various typos 2020-02-10 22:30:07 +00:00
SmmMemoryAllocationLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
SmmPciExpressLib MdePkg/Library/Smm: Fix various typos 2020-02-10 22:30:07 +00:00
SmmPciLibPciRootBridgeIo MdePkg/Library/Smm: Fix various typos 2020-02-10 22:30:07 +00:00
SmmPeriodicSmiLib MdePkg/Library/Smm: Fix various typos 2020-02-10 22:30:07 +00:00
SmmServicesTableLib MdePkg/Library/Smm: Fix various typos 2020-02-10 22:30:07 +00:00
StandaloneMmDriverEntryPoint MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
StandaloneMmServicesTableLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
UefiApplicationEntryPoint MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
UefiBootServicesTableLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
UefiDebugLibConOut MdePkg: Do not use CreateEventEx unless required 2020-01-10 03:25:59 +00:00
UefiDebugLibDebugPortProtocol MdePkg: Do not use CreateEventEx unless required 2020-01-10 03:25:59 +00:00
UefiDebugLibStdErr MdePkg: Do not use CreateEventEx unless required 2020-01-10 03:25:59 +00:00
UefiDevicePathLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
UefiDevicePathLibDevicePathProtocol MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
UefiDriverEntryPoint MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
UefiFileHandleLib MdePkg/UefiFileHandleLib: Tolerate more Root handle FileNames 2019-11-04 08:52:57 +08:00
UefiLib MdePkg: Update the comments of IsLanguageSupported 2019-11-20 15:03:24 +00:00
UefiMemoryAllocationLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
UefiMemoryLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
UefiPciLibPciRootBridgeIo MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
UefiPciSegmentLibPciRootBridgeIo MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
UefiRuntimeLib MdePkg: Do not use CreateEventEx unless required 2020-01-10 03:25:59 +00:00
UefiRuntimeServicesTableLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
UefiScsiLib MdePkg: Implement SCSI commands for Security Protocol In/Out 2019-09-29 16:43:45 +08:00
UefiUsbLib MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00