On 05/09/19 07:23, Xiaoyu lu wrote: > From: Xiaoyu Lu <xiaoyux...@intel.com> > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1089 > > This is for the upcoming upgrade to OpenSSL_1_1_1b > > Compiler optimization(Visual Studio) may automatically use _ftol2 > instead of some type conversion. For example: > > OpensslLib.lib(drbg_lib.obj) : error LNK2001: > unresolved external symbol __ftol2 > > This patch add _ftol2 function for the compiler intrinsic. > > Cc: Jian J Wang <jian.j.w...@intel.com> > Cc: Ting Ye <ting...@intel.com> > Signed-off-by: Xiaoyu Lu <xiaoyux...@intel.com> > --- > CryptoPkg/Library/IntrinsicLib/Ia32/MathFtol.c | 22 ++++++++++++++++++++++ > CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf | 4 +++- > 2 files changed, 25 insertions(+), 1 deletion(-) > create mode 100644 CryptoPkg/Library/IntrinsicLib/Ia32/MathFtol.c > > diff --git a/CryptoPkg/Library/IntrinsicLib/Ia32/MathFtol.c > b/CryptoPkg/Library/IntrinsicLib/Ia32/MathFtol.c > new file mode 100644 > index 0000000..147a19a > --- /dev/null > +++ b/CryptoPkg/Library/IntrinsicLib/Ia32/MathFtol.c > @@ -0,0 +1,22 @@ > +/** @file > + 64-bit Math Worker Function. > + The 32-bit versions of C compiler generate calls to library routines > + to handle 64-bit math. These functions use non-standard calling > conventions. > + > +Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> > +SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > +/* > + * Floating point to integer conversion. > + */ > +__declspec(naked) void _ftol2 (void) > +{ > + _asm { > + fistp qword ptr [esp-8] > + mov edx, [esp-4] > + mov eax, [esp-8] > + ret > + } > +} > diff --git a/CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf > b/CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf > index 5a20967..fcbb933 100644 > --- a/CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf > +++ b/CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf > @@ -1,7 +1,7 @@ > ## @file > # Intrinsic Routines Wrapper Library Instance. > # > -# Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR> > +# Copyright (c) 2010 - 2019, Intel Corporation. All rights reserved.<BR> > # SPDX-License-Identifier: BSD-2-Clause-Patent > # > ## > @@ -29,9 +29,11 @@ > > Ia32/MathLShiftS64.c | MSFT > Ia32/MathRShiftU64.c | MSFT > + Ia32/MathFtol.c | MSFT > > Ia32/MathLShiftS64.c | INTEL > Ia32/MathRShiftU64.c | INTEL > + Ia32/MathFtol.c | INTEL > > Ia32/MathLShiftS64.nasm | GCC > Ia32/MathRShiftU64.nasm | GCC >
Thank you for splitting this out; this is a nice improvement for the structure of the patch series. Thanks Laszlo -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#40370): https://edk2.groups.io/g/devel/message/40370 Mute This Topic: https://groups.io/mt/31552210/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-