vmx: fix splat_alpha for ppc64le
authorOded Gabbay <oded.gabbay@gmail.com>
Thu, 25 Jun 2015 12:59:53 +0000 (15:59 +0300)
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>
Thu, 2 Jul 2015 07:03:54 +0000 (10:03 +0300)
The permutation vector isn't correct for LE, so correct its values
in case we are in LE mode.

v2:

- replace _LITTLE_ENDIAN with WORDS_BIGENDIAN for consistency
- change #ifndef to #ifdef for readability

Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
pixman/pixman-vmx.c

index c33631c0edb500a67aaaca1901fc2250a6c9a3c1..d0a4fc82138219ec57761e9a4b51a5b18fcd5303 100644 (file)
 static force_inline vector unsigned int
 splat_alpha (vector unsigned int pix)
 {
+#ifdef WORDS_BIGENDIAN
     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));
+#else
+    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));
+#endif
 }
 
 static force_inline vector unsigned int