3 ;Copyright (c) 2006, Intel Corporation
4 ;All rights reserved. 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 ;---------------------------------------------------------------------------
27 ;---------------------------------------------------------------------------
37 ; Calculates and floors logarithms based on 2
41 ; Operand - value to calculate logarithm
45 ; The largest integer that is less than or equal
46 ; to the logarithm of Operand based on 2
52 cmp dword ptr [esp + 4], 0 ; (UINT32 *(&Operand))
54 cmp dword ptr [esp + 8], 0 ; (UINT32 *(&Operand)) + 1
63 bt [esp + 4], ecx ; (UINT32 *(&Operand))
69 bt [esp + 8], eax ; (UINT32 *(&Operand)) + 1