Fix an issue with "Rearrange MIPS INSN* masks" patch.
[platform/upstream/binutils.git] / gold / ffsll.c
index aeae845..292ad80 100644 (file)
@@ -1,6 +1,6 @@
 /* ffsll.c -- version of ffsll for gold.  */
 
-/* Copyright 2009 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2014 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;
 }