ARM: restore fallback to ARMv6 implementation from NEON in the delegate chain
authorSiarhei Siamashka <siarhei.siamashka@nokia.com>
Mon, 4 Oct 2010 01:49:08 +0000 (04:49 +0300)
committerSiarhei Siamashka <siarhei.siamashka@nokia.com>
Sun, 10 Oct 2010 22:07:07 +0000 (01:07 +0300)
After fast path cache introduction, the overhead of having this fallback is
insignificant. On the other hand, some of the ARM assembly optimizations (for
example nearest neighbor scaling) do not need NEON.

pixman/pixman-arm-neon.c

index 54b5540..be5d403 100644 (file)
@@ -355,9 +355,13 @@ BIND_COMBINE_U (out_reverse)
 pixman_implementation_t *
 _pixman_implementation_create_arm_neon (void)
 {
-    pixman_implementation_t *general = _pixman_implementation_create_fast_path ();
+#ifdef USE_ARM_SIMD
+    pixman_implementation_t *fallback = _pixman_implementation_create_arm_simd ();
+#else
+    pixman_implementation_t *fallback = _pixman_implementation_create_fast_path ();
+#endif
     pixman_implementation_t *imp =
-       _pixman_implementation_create (general, arm_neon_fast_paths);
+       _pixman_implementation_create (fallback, arm_neon_fast_paths);
 
     imp->combine_32[PIXMAN_OP_OVER] = neon_combine_over_u;
     imp->combine_32[PIXMAN_OP_ADD] = neon_combine_add_u;