Home | History | Annotate | Line # | Download | only in libiberty
      1  1.1  skrll /* ffs -- Find the first bit set in the parameter
      2  1.1  skrll 
      3  1.1  skrll @deftypefn Supplemental int ffs (int @var{valu})
      4  1.1  skrll 
      5  1.1  skrll Find the first (least significant) bit set in @var{valu}.  Bits are
      6  1.1  skrll numbered from right to left, starting with bit 1 (corresponding to the
      7  1.1  skrll value 1).  If @var{valu} is zero, zero is returned.
      8  1.1  skrll 
      9  1.1  skrll @end deftypefn
     10  1.1  skrll 
     11  1.1  skrll */
     12  1.1  skrll 
     13  1.1  skrll int
     14  1.1  skrll ffs (register int valu)
     15  1.1  skrll {
     16  1.1  skrll   register int bit;
     17  1.1  skrll 
     18  1.1  skrll   if (valu == 0)
     19  1.1  skrll     return 0;
     20  1.1  skrll 
     21  1.1  skrll   for (bit = 1; !(valu & 1); bit++)
     22  1.1  skrll   	valu >>= 1;
     23  1.1  skrll 
     24  1.1  skrll   return bit;
     25  1.1  skrll }
     26  1.1  skrll 
     27