I suspect S32A_D565_Opaque_neon for Daisy problems.

I don't see any color-order handling logic in the 32-bit code.

BUG=skia:1843

CQ_EXCLUDE_TRYBOTS=client.skia.compile:Build-Win-MSVC-x86-Debug-Trybot,Build-Win-MSVC-x86_64-Debug-Trybot
R=mtklein@google.com

Review URL: https://codereview.chromium.org/1051683003
This commit is contained in:
Mike Klein 2015-04-02 15:41:49 -04:00
parent b1e1472bd5
commit 3f55eed73f

View File

@ -246,13 +246,19 @@ void S32A_D565_Opaque_neon(uint16_t* SK_RESTRICT dst,
"vaddhn.u16 d6, q14, q8 \n\t"
"vshr.u16 q8, q12, #5 \n\t"
"vaddhn.u16 d5, q13, q9 \n\t"
"vqadd.u8 d6, d6, d0 \n\t" // moved up
"vaddhn.u16 d4, q12, q8 \n\t"
// intentionally don't calculate alpha
// result in d4-d6
#ifdef SK_PMCOLOR_IS_RGBA
"vqadd.u8 d6, d6, d0 \n\t"
"vqadd.u8 d5, d5, d1 \n\t"
"vqadd.u8 d4, d4, d2 \n\t"
#else
"vqadd.u8 d6, d6, d2 \n\t"
"vqadd.u8 d5, d5, d1 \n\t"
"vqadd.u8 d4, d4, d0 \n\t"
#endif
// pack 8888 {d4-d6} to 0565 q10
"vshll.u8 q10, d6, #8 \n\t"
@ -326,13 +332,19 @@ void S32A_D565_Opaque_neon(uint16_t* SK_RESTRICT dst,
"vaddhn.u16 d6, q14, q8 \n\t"
"vshr.u16 q8, q12, #5 \n\t"
"vaddhn.u16 d5, q13, q9 \n\t"
"vqadd.u8 d6, d6, d0 \n\t" // moved up
"vaddhn.u16 d4, q12, q8 \n\t"
// intentionally don't calculate alpha
// result in d4-d6
#ifdef SK_PMCOLOR_IS_RGBA
"vqadd.u8 d6, d6, d0 \n\t"
"vqadd.u8 d5, d5, d1 \n\t"
"vqadd.u8 d4, d4, d2 \n\t"
#else
"vqadd.u8 d6, d6, d2 \n\t"
"vqadd.u8 d5, d5, d1 \n\t"
"vqadd.u8 d4, d4, d0 \n\t"
#endif
// pack 8888 {d4-d6} to 0565 q10
"vshll.u8 q10, d6, #8 \n\t"