X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=EdkCompatibilityPkg%2FFoundation%2FLibrary%2FEfiCommonLib%2FIa32%2FPower10U64.S;h=a40c56bcb1b15d33dff5586af3f4b140b42b6f83;hp=9d4bd3bee1620baf40a10fac89e975f71751b91e;hb=3e99020dbf0a159e34b84e7ae9125f2e368d5390;hpb=b962b6b54d90ef655c2567712e6cfe00bc3c3450 diff --git a/EdkCompatibilityPkg/Foundation/Library/EfiCommonLib/Ia32/Power10U64.S b/EdkCompatibilityPkg/Foundation/Library/EfiCommonLib/Ia32/Power10U64.S index 9d4bd3bee1..a40c56bcb1 100644 --- a/EdkCompatibilityPkg/Foundation/Library/EfiCommonLib/Ia32/Power10U64.S +++ b/EdkCompatibilityPkg/Foundation/Library/EfiCommonLib/Ia32/Power10U64.S @@ -1,82 +1,84 @@ -#/*++ -# -#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: -# -# Power10U64.c -# -#Abstract: -# -# Calculates Operand * 10 ^ Power -# -#--*/ -# -##include "Tiano.h" -#include "EfiBind.h" -#--------------------------------------------------------------------------- - .686: - #.MODEL flat,C - .code: - -.globl ASM_PFX(DivU64x32) -#--------------------------------------------------------------------------- -# -#UINT64 -#MultU64x32 ( -# IN UINT64 Multiplicand, -# IN UINTN Multiplier -# ); -# -#UINT64 -#Power10U64 ( -# IN UINT64 Operand, -# IN UINTN Power -# ) -#/*++ -# -#Routine Description: -# -# Raise 10 to the power of Power, and multiply the result with Operand -# -#Arguments: -# -# Operand - multiplicand -# Power - power -# -#Returns: -# -# Operand * 10 ^ Power -# -#--*/ -ASM_PFX(Power10U64): - pushl %ebp - movl %esp, %ebp - movl 8(%ebp), %eax # dword ptr Operand[0] - movl 0xC(%ebp), %edx # dword ptr Operand[4] - movl 0x10(%ebp), %ecx #Power - jcxz _Power10U64_Done - -_Power10U64_Wend: - pushl $10 - push 0xC(%ebp) - push 0x8(%ebp) - call ASM_PFX(MultU64x32) - addl $0xc, %esp - movl %eax, 8(%ebp) # dword ptr Operand[0] - movl %edx, 0xC(%ebp) # dword ptr Operand[4] - loopl _Power10U64_Wend - -_Power10U64_Done: - - popl %ebp - ret -#Power10U64 ENDP - +#/*++ +# +#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: +# +# Power10U64.c +# +#Abstract: +# +# Calculates Operand * 10 ^ Power +# +#--*/ +# +##include "Tiano.h" +#include "EfiBind.h" +#--------------------------------------------------------------------------- + .686: + #.MODEL flat,C + .code: + +.globl ASM_PFX(DivU64x32) +#--------------------------------------------------------------------------- +# +#UINT64 +#MultU64x32 ( +# IN UINT64 Multiplicand, +# IN UINTN Multiplier +# ); +# +#UINT64 +#Power10U64 ( +# IN UINT64 Operand, +# IN UINTN Power +# ) +#/*++ +# +#Routine Description: +# +# Raise 10 to the power of Power, and multiply the result with Operand +# +#Arguments: +# +# Operand - multiplicand +# Power - power +# +#Returns: +# +# Operand * 10 ^ Power +# +#--*/ +ASM_PFX(Power10U64): + pushl %ebp + movl %esp, %ebp + movl 8(%ebp), %eax # dword ptr Operand[0] + movl 0xC(%ebp), %edx # dword ptr Operand[4] + movl 0x10(%ebp), %ecx #Power + jcxz _Power10U64_Done + +_Power10U64_Wend: + pushl %ecx + pushl $10 + push 0xC(%ebp) + push 0x8(%ebp) + call ASM_PFX(MultU64x32) + addl $0xc, %esp + popl %ecx + movl %eax, 8(%ebp) # dword ptr Operand[0] + movl %edx, 0xC(%ebp) # dword ptr Operand[4] + loopl _Power10U64_Wend + +_Power10U64_Done: + + popl %ebp + ret +#Power10U64 ENDP +