On Aug 28, 2015 2:31 PM, "Brian Paul" <bri...@vmware.com> wrote:
>
> v2: fix errant _GNU_SOURCE test, per Matt Turner.
> ---
>  src/gallium/auxiliary/util/u_math.h | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
>
> diff --git a/src/gallium/auxiliary/util/u_math.h
b/src/gallium/auxiliary/util/u_math.h
> index 56bd185..c551974 100644
> --- a/src/gallium/auxiliary/util/u_math.h
> +++ b/src/gallium/auxiliary/util/u_math.h
> @@ -389,6 +389,26 @@ unsigned ffs( unsigned u )
>  #define ffs __builtin_ffs
>  #endif
>
> +#ifdef HAVE___BUILTIN_FFSLL
> +#define ffsll __builtin_ffsll
> +#else
> +static inline int
> +ffsll(long long int val)
> +{
> +   int bit;
> +

Might be better to do

if (val & 0xffffffff)
    return ffs(val &0xffffffff);
else
    return ffs(val >> 32);

That may be a little cheaper.  I don't know if its actually better but its
one less ffs call (which may cross a library boundary)
--Jason

> +   bit = ffs((unsigned) (val & 0xffffffff));
> +   if (bit != 0)
> +      return bit;
> +
> +   bit = ffs((unsigned) (val >> 32));
> +   if (bit != 0)
> +      return 32 + bit;
> +
> +   return 0;
> +}
> +#endif
> +
>  #endif /* FFS_DEFINED */
>
>  /**
> --
> 1.9.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to