[Mesa-dev] [PATCH 1/3] util: Add util_memcpy_cpu_to_le32() v2

Tom Stellard thomas.stellard at amd.com
Fri Jul 18 12:10:51 PDT 2014


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)
+{
+#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



More information about the mesa-dev mailing list