diff options
author | Michael D Kinney <michael.d.kinney@intel.com> | 2020-02-12 13:17:24 -0800 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2020-02-13 01:42:50 +0000 |
commit | 02b7b861b18afd1744f462878060abda38eccb44 (patch) | |
tree | c3e57e79a341bde4a4189ae731f096a767800dd7 /BaseTools/Source/Python/AutoGen/IncludesAutoGen.py | |
parent | ec97412b7c413573a681e275d55f50dea490fb24 (diff) | |
download | edk2-02b7b861b18afd1744f462878060abda38eccb44.tar.gz edk2-02b7b861b18afd1744f462878060abda38eccb44.tar.bz2 edk2-02b7b861b18afd1744f462878060abda38eccb44.zip |
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>
Diffstat (limited to 'BaseTools/Source/Python/AutoGen/IncludesAutoGen.py')
0 files changed, 0 insertions, 0 deletions