opcodes/
[deliverable/binutils-gdb.git] / gold / ffsll.c
index aeae845f094dc9c6121ca1d1ca0d3d7057a0d19f..b247bc30af3c0e9a06969533d543d8366890380c 100644 (file)
@@ -36,8 +36,13 @@ ffsll (long long arg)
   unsigned long long i;
   int ret;
 
-  ret = 0;
-  for (i = (unsigned long long) arg; i != 0; i >>= 1)
-    ++ret;
+  if (arg == 0)
+    ret = 0;
+  else
+    {
+      ret = 1;
+      for (i = (unsigned long long) arg; (i & 1) == 0; i >>= 1)
+       ++ret;
+    }
   return ret;
 }
This page took 0.036861 seconds and 4 git commands to generate.