summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSiarhei Siamashka <siarhei.siamashka@nokia.com>2009-08-12 20:22:24 +0300
committerSiarhei Siamashka <siarhei.siamashka@nokia.com>2009-08-13 18:17:13 +0300
commit29c2ae4a0cf924cb011467687a4c43237fb2316c (patch)
tree8bfd04fba07f4dda90261463d8fc029d3756b3fd
parented4598f08a359346d14fe5b2bbb7b74c40332b18 (diff)
ARM: a fix to pass blitters-test for 'neon_composite_over_n_8_0565'
Inline assembly for handling <8 pixels width did not pass blitters-test. Fortunately gcc has no problems compiling alternative implementation which is using RVCT style intrinsics, so it can be used instead.
-rw-r--r--pixman/pixman-arm-neon.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
index 14f7482..4125d1b 100644
--- a/pixman/pixman-arm-neon.c
+++ b/pixman/pixman-arm-neon.c
@@ -835,7 +835,7 @@ neon_composite_over_n_8_0565 (pixman_implementation_t * impl,
w = width;
-#ifndef USE_GCC_INLINE_ASM
+#if 1 /* #ifndef USE_GCC_INLINE_ASM */
uint8x8_t alpha;
uint16x8_t dval, temp;
uint8x8x4_t sval8temp;
@@ -872,6 +872,7 @@ neon_composite_over_n_8_0565 (pixman_implementation_t * impl,
if (w&4)
vst1q_lane_u64 ((void *)dst4, vreinterpretq_u64_u16 (temp),1);
#else
+ /* this code has some bug (does not pass blitters-test) */
asm volatile (
"vdup.32 d0, %[src]\n\t"
"vdup.8 d1, d0[1]\n\t"