Reviewed-by: Qin Long <qin.l...@intel.com> Best Regards & Thanks, LONG, Qin
> -----Original Message----- > From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Liming > Gao > Sent: Wednesday, August 10, 2016 8:24 PM > To: edk2-devel@lists.01.org > Cc: Long, Qin <qin.l...@intel.com> > Subject: [edk2] [Patch] CryptoPkg IntrinsicLib: Add the missing nasm source > file > > Add two name files IntrinsicLib Ia32 MathLShiftS64.nasm and MathRShiftU64.nasm > > Cc: Qin Long <qin.l...@intel.com> > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Liming Gao <liming....@intel.com> > --- > .../Library/IntrinsicLib/Ia32/MathLShiftS64.nasm | 48 +++++++++++++++++++++ > .../Library/IntrinsicLib/Ia32/MathRShiftU64.nasm | 49 > ++++++++++++++++++++++ > CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf | 2 + > 3 files changed, 99 insertions(+) > create mode 100644 CryptoPkg/Library/IntrinsicLib/Ia32/MathLShiftS64.nasm > create mode 100644 CryptoPkg/Library/IntrinsicLib/Ia32/MathRShiftU64.nasm > > diff --git a/CryptoPkg/Library/IntrinsicLib/Ia32/MathLShiftS64.nasm > b/CryptoPkg/Library/IntrinsicLib/Ia32/MathLShiftS64.nasm > new file mode 100644 > index 0000000..a30edbf > --- /dev/null > +++ b/CryptoPkg/Library/IntrinsicLib/Ia32/MathLShiftS64.nasm > @@ -0,0 +1,48 @@ > +;------------------------------------------------------------------------------ > +; > +; Copyright (c) 2016, Intel Corporation. All rights reserved.<BR> > +; This program and the accompanying materials > +; are licensed and made available under the terms and conditions of the BSD > License > +; which accompanies this distribution. The full text of the license may be > found at > +; http://opensource.org/licenses/bsd-license.php. > +; > +; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, > +; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR > IMPLIED. > +; > +; Module Name: > +; > +; MathLShiftS64.nasm > +; > +; Abstract: > +; > +; 64-bit Math Worker Function. > +; Shifts a 64-bit signed value left by a certain number of bits. > +; > +;------------------------------------------------------------------------------ > + > + SECTION .text > + > +global ASM_PFX(__ashldi3) > +;------------------------------------------------------------------------------ > +; > +; void __cdecl __ashldi3 (void) > +; > +;------------------------------------------------------------------------------ > +ASM_PFX(__ashldi3): > + cmp cl,0x40 > + jnc ReturnZero > + cmp cl,0x20 > + jnc More32 > + shld edx,eax,cl > + shl eax,cl > + ret > +More32: > + mov edx,eax > + xor eax,eax > + and cl,0x1f > + shl edx,cl > + ret > +ReturnZero: > + xor eax,eax > + xor edx,edx > + ret > diff --git a/CryptoPkg/Library/IntrinsicLib/Ia32/MathRShiftU64.nasm > b/CryptoPkg/Library/IntrinsicLib/Ia32/MathRShiftU64.nasm > new file mode 100644 > index 0000000..9bf1711 > --- /dev/null > +++ b/CryptoPkg/Library/IntrinsicLib/Ia32/MathRShiftU64.nasm > @@ -0,0 +1,49 @@ > +;------------------------------------------------------------------------------ > +; > +; Copyright (c) 2016, Intel Corporation. All rights reserved.<BR> > +; This program and the accompanying materials > +; are licensed and made available under the terms and conditions of the BSD > License > +; which accompanies this distribution. The full text of the license may be > found at > +; http://opensource.org/licenses/bsd-license.php. > +; > +; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, > +; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR > IMPLIED. > +; > +; Module Name: > +; > +; MathRShiftU64.nasm > +; > +; Abstract: > +; > +; 64-bit Math Worker Function. > +; Shifts a 64-bit unsigned value right by a certain number of bits. > +; > +;------------------------------------------------------------------------------ > + > + SECTION .text > + > +;------------------------------------------------------------------------------ > +; > +; void __cdecl __ashrdi3 (void) > +; > +;------------------------------------------------------------------------------ > +global ASM_PFX(__ashrdi3) > +ASM_PFX(__ashrdi3): > + cmp cl,0x40 > + jnc _Exit > + cmp cl,0x20 > + jnc More32 > + shrd eax,edx,cl > + shr edx,cl > + ret > +More32: > + mov eax,edx > + xor edx,edx > + and cl,0x1f > + shr eax,cl > + ret > +_Exit: > + xor eax,eax > + xor edx,edx > + ret > + > diff --git a/CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf > b/CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf > index de61dc4..9495750 100644 > --- a/CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf > +++ b/CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf > @@ -41,6 +41,8 @@ > > Ia32/MathLShiftS64.S | GCC > Ia32/MathRShiftU64.S | GCC > + Ia32/MathLShiftS64.nasm | GCC > + Ia32/MathRShiftU64.nasm | GCC > > [Sources.X64] > CopyMem.c > -- > 2.8.0.windows.1 > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel