[Mesa-dev] [PATCH 02/14] util: added ffsll() function
Jason Ekstrand
jason at jlekstrand.net
Mon Aug 31 07:41:51 PDT 2015
On Aug 31, 2015 7:35 AM, "Brian Paul" <brianp at vmware.com> wrote:
>
> On 08/28/2015 07:36 PM, Jason Ekstrand wrote:
>>
>>
>> On Aug 28, 2015 2:31 PM, "Brian Paul" <brianp at vmware.com
>> <mailto:brianp at 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)
>
>
> I like that too, but I just copied the implementation from imports.c
> As was suggested, we can look at consolidating this function and a few
others into src/util/ later.
Seems like as good a reason as any any to keep it as-is.
Reviewed-by: Jason Ekstrand <jason.ekstrand at intel.com>
> -Brian
>
>> --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 at lists.freedesktop.org <mailto:mesa-dev at lists.freedesktop.org>
>> > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>> <
https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.freedesktop.org_mailman_listinfo_mesa-2Ddev&d=BQMFaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=T0t4QG7chq2ZwJo6wilkFznRSFy-8uDKartPGbomVj8&m=u0DJgAjhxxl7RyNVZSQ37HS6W5StpIt-qUTJtm0MFVk&s=_xGcOvu0RaFHWkqySgjs5TAsOM1kiitqJg77nThabd0&e=
>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150831/979bfd3d/attachment.html>
More information about the mesa-dev
mailing list