ARM: a fix to pass blitters-test for 'neon_composite_over_n_8_0565'
authorSiarhei Siamashka <siarhei.siamashka@nokia.com>
Wed, 12 Aug 2009 17:22:24 +0000 (20:22 +0300)
committerSiarhei Siamashka <siarhei.siamashka@nokia.com>
Thu, 13 Aug 2009 15:17:13 +0000 (18:17 +0300)
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.

pixman/pixman-arm-neon.c

index 14f7482..4125d1b 100644 (file)
@@ -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"