Re: [PATCH v3 26/31] arm64: Miscellaneous library functions

From: Catalin Marinas
Date: Wed Sep 12 2012 - 17:14:07 EST


On Fri, Sep 07, 2012 at 08:52:13PM +0100, Arnd Bergmann wrote:
> On Friday 07 September 2012, Catalin Marinas wrote:
> > +/*
> > + * Use compiler builtins for simple inline operations.
> > + */
> > +static inline unsigned long __ffs(unsigned long word)
> > +{
> > + return __builtin_ffsl(word) - 1;
> > +}
> > +
> > +static inline int ffs(int x)
> > +{
> > + return __builtin_ffs(x);
> > +}
> > +
> > +static inline unsigned long __fls(unsigned long word)
> > +{
> > + return BITS_PER_LONG - 1 - __builtin_clzl(word);
> > +}
> > +
> > +static inline int fls(int x)
> > +{
> > + return x ? sizeof(x) * BITS_PER_BYTE - __builtin_clz(x) : 0;
> > +}
>
> Still waiting for the generic version of these.

What about these: