gold patch committed: Provide own version of ffsll

Dave Korn dave.korn.cygwin@googlemail.com
Sat Mar 28 13:31:00 GMT 2009


Ian Lance Taylor wrote:
> gold uses ffsll, particularly since gcc expands it inline when
> possible.  However, some systems don't have ffsll.  I committed this
> patch to add a version when the system does not have it.  I also tweaked
> the other replacement functions, adding declarations so that they would
> build without warnings.

  Did you consider adding these to libiberty instead?  I don't know if they're
all appropriate but some of them might well make handy additions, mightn't
they?  Also:

+int
+ffsll (long long arg)
+{
+  unsigned long long i;
+  int ret;
+
+  ret = 0;
+  for (i = (unsigned long long) arg; i != 0; i >>= 1)
+    ++ret;
+  return ret;
+}

... does that really find the first set bit?  It looks to me like it counts
all the one bits.  Possibly the terminating condition was meant to test "(i &
1) != 0"?


    cheers,
      DaveK



More information about the Binutils mailing list