Changeset View
Changeset View
Standalone View
Standalone View
head/contrib/compiler-rt/lib/builtins/ffssi2.c
Property | Old Value | New Value |
---|---|---|
svn:eol-style | null | native \ No newline at end of property |
svn:keywords | null | FreeBSD=%H \ No newline at end of property |
svn:mime-type | null | text/plain \ No newline at end of property |
/* ===-- ffssi2.c - Implement __ffssi2 -------------------------------------=== | |||||
* | |||||
* The LLVM Compiler Infrastructure | |||||
* | |||||
* This file is dual licensed under the MIT and the University of Illinois Open | |||||
* Source Licenses. See LICENSE.TXT for details. | |||||
* | |||||
* ===----------------------------------------------------------------------=== | |||||
* | |||||
* This file implements __ffssi2 for the compiler_rt library. | |||||
* | |||||
* ===----------------------------------------------------------------------=== | |||||
*/ | |||||
#include "int_lib.h" | |||||
/* Returns: the index of the least significant 1-bit in a, or | |||||
* the value zero if a is zero. The least significant bit is index one. | |||||
*/ | |||||
COMPILER_RT_ABI si_int | |||||
__ffssi2(si_int a) | |||||
{ | |||||
if (a == 0) | |||||
{ | |||||
return 0; | |||||
} | |||||
return __builtin_ctz(a) + 1; | |||||
} |