diff options
author | kevin.petit <kevin.petit@arm.com> | 2014-08-09 11:22:54 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-08-09 11:22:54 -0700 |
commit | 0be677d35c7ef1bf8a7a694d1838fa11333d1bec (patch) | |
tree | 078a63927a692cd362a1b21b0d42b3d6e9fd3e31 /src/opts/SkBlitRow_opts_arm_neon.cpp | |
parent | d5fa1a455aad61f3e99081fe7a9b065cb3b115c6 (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.cpp | 11 |
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 |