3 #Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
4 #This program and the accompanying materials
5 #are licensed and made available under the terms and conditions of the BSD License
6 #which accompanies this distribution. The full text of the license may be found at
7 #http://opensource.org/licenses/bsd-license.php
9 #THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 #WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
18 # 64-bit integer logarithm function for IA-32
22 #---------------------------------------------------------------------------
23 #include "EfiBind.h" //For ASM_PFX
24 #---------------------------------------------------------------------------
36 # Calculates and floors logarithms based on 2
40 # Operand - value to calculate logarithm
44 # The largest integer that is less than or equal
45 # to the logarithm of Operand based on 2
51 cmpl $0, 4(%esp) # (UINT32 *(&Operand))
53 cmpl $0, 8(%esp) # (UINT32 *(&Operand)) + 1
62 btl %ecx, 4(%esp) # (UINT32 *(&Operand))
68 btl %eax, 8(%esp) # (UINT32 *(&Operand)) + 1