diff options
Diffstat (limited to 'EdkCompatibilityPkg/Foundation/Library/EfiCommonLib/Ia32/GetPowerOfTwo.S')
-rw-r--r-- | EdkCompatibilityPkg/Foundation/Library/EfiCommonLib/Ia32/GetPowerOfTwo.S | 136 |
1 files changed, 68 insertions, 68 deletions
diff --git a/EdkCompatibilityPkg/Foundation/Library/EfiCommonLib/Ia32/GetPowerOfTwo.S b/EdkCompatibilityPkg/Foundation/Library/EfiCommonLib/Ia32/GetPowerOfTwo.S index b3ee8ee126..2f4c3b76e9 100644 --- a/EdkCompatibilityPkg/Foundation/Library/EfiCommonLib/Ia32/GetPowerOfTwo.S +++ b/EdkCompatibilityPkg/Foundation/Library/EfiCommonLib/Ia32/GetPowerOfTwo.S @@ -1,68 +1,68 @@ -#/*++ -# -#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: -# -# GetPowerOfTwo.c -# -#Abstract: -# -# Calculates the largest integer that is both -# a power of two and less than Input -# -#--*/ -#include "EfiBind.h" -#--------------------------------------------------------------------------- - .686: - #.MODEL flat,C - .code: - -#--------------------------------------------------------------------------- -.globl ASM_PFX(GetPowerOfTwo) -#UINT64 -#GetPowerOfTwo ( -# IN UINT64 Input -# ) -#/*++ -# -#Routine Description: -# -# Calculates the largest integer that is both -# a power of two and less than Input -# -#Arguments: -# -# Input - value to calculate power of two -# -#Returns: -# -# the largest integer that is both a power of -# two and less than Input -# -#--*/ -ASM_PFX(GetPowerOfTwo): - xorl %eax, %eax - movl %eax, %edx - movl 8(%esp), %ecx # dword ptr Input[4] - jecxz _F - bsrl %ecx, %ecx - btsl %ecx, %edx - jmp _Exit -_F: - movl 4(%esp), %ecx # dword ptr Input[0] - jecxz _Exit - bsrl %ecx, %ecx - btsl %ecx, %eax -_Exit: - - ret -#GetPowerOfTwo 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:
+#
+# GetPowerOfTwo.c
+#
+#Abstract:
+#
+# Calculates the largest integer that is both
+# a power of two and less than Input
+#
+#--*/
+#include "EfiBind.h"
+#---------------------------------------------------------------------------
+ .686:
+ #.MODEL flat,C
+ .code:
+
+#---------------------------------------------------------------------------
+.globl ASM_PFX(GetPowerOfTwo)
+#UINT64
+#GetPowerOfTwo (
+# IN UINT64 Input
+# )
+#/*++
+#
+#Routine Description:
+#
+# Calculates the largest integer that is both
+# a power of two and less than Input
+#
+#Arguments:
+#
+# Input - value to calculate power of two
+#
+#Returns:
+#
+# the largest integer that is both a power of
+# two and less than Input
+#
+#--*/
+ASM_PFX(GetPowerOfTwo):
+ xorl %eax, %eax
+ movl %eax, %edx
+ movl 8(%esp), %ecx # dword ptr Input[4]
+ jecxz _F
+ bsrl %ecx, %ecx
+ btsl %ecx, %edx
+ jmp _Exit
+_F:
+ movl 4(%esp), %ecx # dword ptr Input[0]
+ jecxz _Exit
+ bsrl %ecx, %ecx
+ btsl %ecx, %eax
+_Exit:
+
+ ret
+#GetPowerOfTwo ENDP
+
|