X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdePkg%2FLibrary%2FBaseLib%2FIa32%2FLShiftU64.s;h=4aa17c637dfdbafca4e9b85777719f9d4b4a22de;hp=94cbc12265fcf101c34d949183d50d8dd4e63f4c;hb=7962c48c972eb3f918114fd01b948c7f5499822b;hpb=88758fe28d4fd2244e21094d255e567ef70dc023 diff --git a/MdePkg/Library/BaseLib/Ia32/LShiftU64.s b/MdePkg/Library/BaseLib/Ia32/LShiftU64.s index 94cbc12265..4aa17c637d 100644 --- a/MdePkg/Library/BaseLib/Ia32/LShiftU64.s +++ b/MdePkg/Library/BaseLib/Ia32/LShiftU64.s @@ -1,39 +1,36 @@ -#------------------------------------------------------------------------------ -# -# Copyright (c) 2006, Intel Corporation -# All rights reserved. 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: -# -# LShiftU64.asm -# -# Abstract: -# -# 64-bit left shift function for IA-32 -# -#------------------------------------------------------------------------------ - - - - - -.global _LShiftU64 -_LShiftU64: - movb 12(%esp),%cl - xorl %eax,%eax - movl 4(%esp),%edx - testb $32,%cl - cmovz %edx, %eax - cmovz 8(%esp), %edx - shldl %cl,%eax,%edx - shll %cl,%eax - ret - - - +#------------------------------------------------------------------------------ +# +# Copyright (c) 2006, Intel Corporation +# All rights reserved. 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: +# +# LShiftU64.asm +# +# Abstract: +# +# 64-bit left shift function for IA-32 +# +#------------------------------------------------------------------------------ + + .686: + #.MODEL flat,C + .code: + +.global _InternalMathLShiftU64 +_InternalMathLShiftU64: + movb 12(%esp), %cl + xorl %eax, %eax + movl 4(%esp), %edx + testb $32, %cl + cmovz %edx, %eax + cmovz 0x8(%esp), %edx + shld %cl,%eax,%edx + shl %cl, %eax + ret