On Fri, Jul 18, 2014 at 2:10 PM, Tom Stellard <thomas.stell...@amd.com> wrote:
> v2: > - Preserve word boundaries. > --- > src/gallium/auxiliary/util/u_math.h | 17 +++++++++++++++++ > 1 file changed, 17 insertions(+) > > diff --git a/src/gallium/auxiliary/util/u_math.h > b/src/gallium/auxiliary/util/u_math.h > index b9ed197..5de181a 100644 > --- a/src/gallium/auxiliary/util/u_math.h > +++ b/src/gallium/auxiliary/util/u_math.h > @@ -812,6 +812,23 @@ util_bswap16(uint16_t n) > (n << 8); > } > > +static INLINE void* > +util_memcpy_cpu_to_le32(void *dest, void *src, size_t n) > I don't know where Mesa is with C99 standards, but if you are utilizing C99 keywords, I think "restrict" would help here to show that the two pointers do not overlap. I'm not sure if have to mark 'd' and 's' as restrict to get the benefit if they are initialized by a typecast, but it probably wouldn't be a bad idea. This may be a no-go with C++ however. > +{ > +#ifdef PIPE_ARCH_BIG_ENDIAN > + size_t i, e; > + asset(n % 4 == 0); > + > + for (i = 0, e = n / 4; i < e; i++) { > + uint32_t *d = (uint32_t*)dest; > + uint32_t *s = (uint32_t*)src; > + d[i] = util_bswap32(s[i]); > + } > + return dest; > +#else > + return memcpy(dest, src, n); > +#endif > +} > > /** > * Clamp X to [MIN, MAX]. > -- > 1.8.1.5 > > _______________________________________________ > 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