diff options
author | DJ Delorie <dj@delorie.com> | 2001-07-05 17:29:17 +0000 |
---|---|---|
committer | DJ Delorie <dj@delorie.com> | 2001-07-05 17:29:17 +0000 |
commit | 4e606e6fd6b08884fbf28da68403cc9f5e6f2e87 (patch) | |
tree | a4c280c65a67fa4ce6b26711c5d97789346b0dc2 /libiberty/ffs.c | |
parent | e0bf4fcf4a4bbf071d6ad2d7a5a94176b399f610 (diff) | |
download | binutils-redhat-4e606e6fd6b08884fbf28da68403cc9f5e6f2e87.tar.gz |
merge from gcc
Diffstat (limited to 'libiberty/ffs.c')
-rw-r--r-- | libiberty/ffs.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/libiberty/ffs.c b/libiberty/ffs.c new file mode 100644 index 0000000000..8ffb03e7c5 --- /dev/null +++ b/libiberty/ffs.c @@ -0,0 +1,29 @@ +/* ffs -- Find the first bit set in the parameter + +NAME + ffs -- Find the first bit set in the parameter + +SYNOPSIS + int ffs (int valu) + +DESCRIPTION + Find the first bit set in the parameter. Bits are numbered from + right to left, starting with bit 1. + +*/ + +int +ffs (valu) + register int valu; +{ + register int bit; + + if (valu == 0) + return 0; + + for (bit = 1; !(valu & 1); bit++) + valu >>= 1; + + return bit; +} + |