aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/opts/SkBlitRow_opts_arm_neon.cpp
diff options
context:
space:
mode:
authorGravatar kevin.petit <kevin.petit@arm.com>2014-08-09 11:22:54 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-08-09 11:22:54 -0700
commit0be677d35c7ef1bf8a7a694d1838fa11333d1bec (patch)
tree078a63927a692cd362a1b21b0d42b3d6e9fd3e31 /src/opts/SkBlitRow_opts_arm_neon.cpp
parentd5fa1a455aad61f3e99081fe7a9b065cb3b115c6 (diff)
Fix S32A_D565_Opaque for RGBA on arm64
Signed-off-by: Kévin PETIT <kevin.petit@arm.com> BUG=skia:2813 R=halcanary@google.com, djsollen@google.com, mtklein@google.com Author: kevin.petit@arm.com Review URL: https://codereview.chromium.org/458453002
Diffstat (limited to 'src/opts/SkBlitRow_opts_arm_neon.cpp')
-rw-r--r--src/opts/SkBlitRow_opts_arm_neon.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/opts/SkBlitRow_opts_arm_neon.cpp b/src/opts/SkBlitRow_opts_arm_neon.cpp
index 1911a068b1..94ab77ca1d 100644
--- a/src/opts/SkBlitRow_opts_arm_neon.cpp
+++ b/src/opts/SkBlitRow_opts_arm_neon.cpp
@@ -423,8 +423,15 @@ void S32A_D565_Opaque_neon(uint16_t* SK_RESTRICT dst,
"ushr v5.8h, v22.8h, #5 \t\n"
"addhn2 v6.16b, v22.8h, v5.8h \t\n"
"uqadd v7.16b, v1.16b, v7.16b \t\n"
+#if SK_PMCOLOR_BYTE_ORDER(B,G,R,A)
"uqadd v20.16b, v2.16b, v20.16b \t\n"
"uqadd v6.16b, v0.16b, v6.16b \t\n"
+#elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A)
+ "uqadd v20.16b, v0.16b, v20.16b \t\n"
+ "uqadd v6.16b, v2.16b, v6.16b \t\n"
+#else
+#error "This function only supports BGRA and RGBA."
+#endif
"shll v22.8h, v20.8b, #8 \t\n"
"shll v5.8h, v7.8b, #8 \t\n"
"sri v22.8h, v5.8h, #5 \t\n"
@@ -1643,11 +1650,7 @@ const SkBlitRow::Proc sk_blitrow_platform_565_procs_arm_neon[] = {
// no dither
S32_D565_Opaque_neon,
S32_D565_Blend_neon,
-#ifdef SK_CPU_ARM32
S32A_D565_Opaque_neon,
-#else
- NULL,
-#endif
S32A_D565_Blend_neon,
// dither