aboutsummaryrefslogtreecommitdiffstats
path: root/src/opts/SkBlitRow_opts_arm.cpp
diff options
context:
space:
mode:
authorHenrik Smiding <henrik.smiding@stericsson.com>2012-08-11 23:08:19 +0200
committerEvan McClain <aeroevan@gmail.com>2013-05-26 09:30:04 -0400
commit49cd20ffc0969087a8b6c1406e7cb7e59738a7f5 (patch)
tree1ad355c7ba07d50a7ea324d835bd46633a4149df /src/opts/SkBlitRow_opts_arm.cpp
parent1f089a2a9abd7fbb7f9cdf7a57a37a3639fb84c2 (diff)
downloadexternal_skia-49cd20ffc0969087a8b6c1406e7cb7e59738a7f5.zip
external_skia-49cd20ffc0969087a8b6c1406e7cb7e59738a7f5.tar.gz
external_skia-49cd20ffc0969087a8b6c1406e7cb7e59738a7f5.tar.bz2
Add optimization of Skia S32A_Opaque blitter
Adds optimization of Skia S32A_Opaque_BlitRow32 blitter using ARM NEON instruction set. Special cases for when alpha is zero or opaque. Improves performance platform wide. Change-Id: I0ffeb23b128e61cfe581ad121f227631d2918686 Signed-off-by: Henrik Smiding <henrik.smiding@stericsson.com> Signed-off-by: Patrik Ryd <patrik.ryd@stericsson.com>
Diffstat (limited to 'src/opts/SkBlitRow_opts_arm.cpp')
-rw-r--r--src/opts/SkBlitRow_opts_arm.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/opts/SkBlitRow_opts_arm.cpp b/src/opts/SkBlitRow_opts_arm.cpp
index 361acbe..f41c342 100644
--- a/src/opts/SkBlitRow_opts_arm.cpp
+++ b/src/opts/SkBlitRow_opts_arm.cpp
@@ -508,7 +508,16 @@ static void S32A_D565_Opaque_v7(uint16_t* SK_RESTRICT dst,
///////////////////////////////////////////////////////////////////////////////
-#if defined(__ARM_HAVE_NEON) && defined(SK_CPU_LENDIAN) && defined(TEST_SRC_ALPHA)
+#if defined(__ARM_HAVE_NEON) && defined(SK_CPU_LENDIAN) && defined(ENABLE_OPTIMIZED_S32A_BLITTERS)
+
+/* External function in file S32A_Opaque_BlitRow32_neon.S */
+extern "C" void S32A_Opaque_BlitRow32_neon(SkPMColor* SK_RESTRICT dst,
+ const SkPMColor* SK_RESTRICT src,
+ int count, U8CPU alpha);
+
+#define S32A_Opaque_BlitRow32_PROC S32A_Opaque_BlitRow32_neon
+
+#elif defined(__ARM_HAVE_NEON) && defined(SK_CPU_LENDIAN) && defined(TEST_SRC_ALPHA)
static void S32A_Opaque_BlitRow32_neon_test_alpha(SkPMColor* SK_RESTRICT dst,
const SkPMColor* SK_RESTRICT src,