gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / gold / ffsll.c
index aeae845f094dc9c6121ca1d1ca0d3d7057a0d19f..eac9dfe4867e74aa390e16aad95c5224333196f0 100644 (file)
@@ -1,6 +1,6 @@
 /* ffsll.c -- version of ffsll for gold.  */
 
-/* Copyright 2009 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2020 Free Software Foundation, Inc.
    Written by Ian Lance Taylor <iant@google.com>.
 
    This file is part of gold.
@@ -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.040282 seconds and 4 git commands to generate.