summaryrefslogtreecommitdiffstats
path: root/binutils-2.23/libiberty/ffs.c
diff options
context:
space:
mode:
authorBen Cheng <bccheng@google.com>2013-04-09 11:29:01 -0700
committerBen Cheng <bccheng@google.com>2013-04-09 11:29:01 -0700
commitf226517827d64cc8f9dccb0952731601ac13ef2a (patch)
tree84b1056255b318a87b7a47b2684655660cab66f0 /binutils-2.23/libiberty/ffs.c
parent30fe22e2cc89991b16ab3853f95c7319574456ce (diff)
downloadtoolchain_binutils-f226517827d64cc8f9dccb0952731601ac13ef2a.tar.gz
toolchain_binutils-f226517827d64cc8f9dccb0952731601ac13ef2a.tar.bz2
toolchain_binutils-f226517827d64cc8f9dccb0952731601ac13ef2a.zip
Initial checkin for binutils 2.23.2 (needed by aarch64)
Change-Id: I7e5f319e9e632cc0ccc8a4ec1051169ed2849ca4
Diffstat (limited to 'binutils-2.23/libiberty/ffs.c')
-rw-r--r--binutils-2.23/libiberty/ffs.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/binutils-2.23/libiberty/ffs.c b/binutils-2.23/libiberty/ffs.c
new file mode 100644
index 00000000..603cbe8e
--- /dev/null
+++ b/binutils-2.23/libiberty/ffs.c
@@ -0,0 +1,26 @@
+/* ffs -- Find the first bit set in the parameter
+
+@deftypefn Supplemental int ffs (int @var{valu})
+
+Find the first (least significant) bit set in @var{valu}. Bits are
+numbered from right to left, starting with bit 1 (corresponding to the
+value 1). If @var{valu} is zero, zero is returned.
+
+@end deftypefn
+
+*/
+
+int
+ffs (register int valu)
+{
+ register int bit;
+
+ if (valu == 0)
+ return 0;
+
+ for (bit = 1; !(valu & 1); bit++)
+ valu >>= 1;
+
+ return bit;
+}
+