On Mon, Apr 25, 2016 at 04:36:44PM +0100, Emil Velikov wrote: > On 25 April 2016 at 16:07, Jonathan Gray <j...@jsg.id.au> wrote: > > On Mon, Apr 25, 2016 at 03:14:57PM +0100, Emil Velikov wrote: > >> On 23 April 2016 at 15:36, Jason Ekstrand <ja...@jlekstrand.net> wrote: > >> > Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> > >> > > >> And pushed. Thanks Jason. > >> > >> > In general, we should be using mesa compat headers for this sort of thing > >> > rather than hand-rolling it. > >> > > >> Fully agree with you here. Since ffs is c99 and all targets that mesa > >> support have it, we don't need one here. > >> .Iirc the GNU one ffsll was another thing. > > > > ffs is POSIX not c99 as far as I can tell, and before that 4.2BSD as a > > thin wrapper around the vax ffs instruction. > > > Indeed. Not sure what I was smoking. > > > According to http://linux.die.net/man/3/ffsll > > "The ffsl() and ffsll() functions are glibc extensions" > > > >> > >> Fwiw we have an implementation in src/mesa/main/imports.* that we can nuke. > >> > >> Jonathan can you do the honours ? Feel free to send over a patch that > >> drops the __builtin_bswap32 workaround and inlines it. > > > > Add a bswap32 to src/mesa/main/imports.* as _mesa_bswap32 you mean? > > > > src/gallium/auxiliary/util/u_math.h has a util_bswap32 but non gallium > > drivers shouldn't be using those definitions? > These are distinct things: > > - Check if Windows builds work fine without the custom ffs > implementation. If they don't move it to include/posix_strings.h. > How to check - wire up your github with AppVeyour. The latter can do > the builds for you.
It isn't in the VC 2015 CRT according to https://msdn.microsoft.com/en-us/library/634ca0c2.aspx so I doubt it. _BitScanForward builtin seems to be as close as it gets. > > - Inline the ifndef __builtin_bswap32 implementation in the i965 code > (as mentioned by Matt). The compiler will fold/optimise things as > needed. Or add a BE32_TO_CPU/betoh32 type macro to src/mesa/main/compiler.h and use that? Though that entire block depends on indirect inclusion to set BYTE_ORDER and needs to be overhauled. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev