diff options
Diffstat (limited to 'lib/builtins/ffsti2.c')
| -rw-r--r-- | lib/builtins/ffsti2.c | 52 | 
1 files changed, 23 insertions, 29 deletions
diff --git a/lib/builtins/ffsti2.c b/lib/builtins/ffsti2.c index dcdb3bd7f807..a2d7ce08ada1 100644 --- a/lib/builtins/ffsti2.c +++ b/lib/builtins/ffsti2.c @@ -1,37 +1,31 @@ -/* ===-- ffsti2.c - Implement __ffsti2 -------------------------------------=== - * - *                     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 __ffsti2 for the compiler_rt library. - * - * ===----------------------------------------------------------------------=== - */ +//===-- ffsti2.c - Implement __ffsti2 -------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +// This file implements __ffsti2 for the compiler_rt library. +// +//===----------------------------------------------------------------------===//  #include "int_lib.h"  #ifdef CRT_HAS_128BIT -/* 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. - */ +// 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 -__ffsti2(ti_int a) -{ -    twords x; -    x.all = a; -    if (x.s.low == 0) -    { -        if (x.s.high == 0) -            return 0; -        return __builtin_ctzll(x.s.high) + (1 + sizeof(di_int) * CHAR_BIT); -    } -    return __builtin_ctzll(x.s.low) + 1; +COMPILER_RT_ABI si_int __ffsti2(ti_int a) { +  twords x; +  x.all = a; +  if (x.s.low == 0) { +    if (x.s.high == 0) +      return 0; +    return __builtin_ctzll(x.s.high) + (1 + sizeof(di_int) * CHAR_BIT); +  } +  return __builtin_ctzll(x.s.low) + 1;  } -#endif /* CRT_HAS_128BIT */ +#endif // CRT_HAS_128BIT  | 
