The permutation vector isn't correct for LE, so correct its values
in case we are in LE mode.

Signed-off-by: Oded Gabbay <oded.gab...@gmail.com>
---
 pixman/pixman-vmx.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/pixman/pixman-vmx.c b/pixman/pixman-vmx.c
index c33631c..23537f6 100644
--- a/pixman/pixman-vmx.c
+++ b/pixman/pixman-vmx.c
@@ -37,10 +37,17 @@
 static force_inline vector unsigned int
 splat_alpha (vector unsigned int pix)
 {
-    return vec_perm (pix, pix,
-                    (vector unsigned char)AVV (
-                        0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04,
-                        0x08, 0x08, 0x08, 0x08, 0x0C, 0x0C, 0x0C, 0x0C));
+#ifdef _LITTLE_ENDIAN
+        return vec_perm (pix, pix,
+             (vector unsigned char) AVV (
+             0x03, 0x03, 0x03, 0x03, 0x07, 0x07, 0x07, 0x07,
+             0x0B, 0x0B, 0x0B, 0x0B, 0x0F, 0x0F, 0x0F, 0x0F));
+#else
+        return vec_perm (pix, pix,
+             (vector unsigned char)AVV (
+             0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04,
+             0x08, 0x08, 0x08, 0x08, 0x0C, 0x0C, 0x0C, 0x0C));
+#endif
 }
 
 static force_inline vector unsigned int
-- 
2.4.3

_______________________________________________
Pixman mailing list
Pixman@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pixman

Reply via email to