| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2012 The Android Open Source Project | 2 * Copyright 2012 The Android Open Source Project |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "SkBlitRow_opts_arm_neon.h" | 8 #include "SkBlitRow_opts_arm_neon.h" |
| 9 | 9 |
| 10 #include "SkBlitMask.h" | 10 #include "SkBlitMask.h" |
| (...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 416 "ushr v18.8h, v5.8h, #6 \t\n" | 416 "ushr v18.8h, v5.8h, #6 \t\n" |
| 417 "ushr v21.8h, v17.8h, #5 \t\n" | 417 "ushr v21.8h, v17.8h, #5 \t\n" |
| 418 "addhn2 v7.16b, v5.8h, v18.8h \t\n" | 418 "addhn2 v7.16b, v5.8h, v18.8h \t\n" |
| 419 "addhn2 v20.16b, v17.8h, v21.8h \t\n" | 419 "addhn2 v20.16b, v17.8h, v21.8h \t\n" |
| 420 "mov v22.16b, v4.16b \t\n" | 420 "mov v22.16b, v4.16b \t\n" |
| 421 "addhn v6.8b, v6.8h, v19.8h \t\n" | 421 "addhn v6.8b, v6.8h, v19.8h \t\n" |
| 422 "umlal2 v22.8h, v3.16b, v16.16b \t\n" | 422 "umlal2 v22.8h, v3.16b, v16.16b \t\n" |
| 423 "ushr v5.8h, v22.8h, #5 \t\n" | 423 "ushr v5.8h, v22.8h, #5 \t\n" |
| 424 "addhn2 v6.16b, v22.8h, v5.8h \t\n" | 424 "addhn2 v6.16b, v22.8h, v5.8h \t\n" |
| 425 "uqadd v7.16b, v1.16b, v7.16b \t\n" | 425 "uqadd v7.16b, v1.16b, v7.16b \t\n" |
| 426 #if SK_PMCOLOR_BYTE_ORDER(B,G,R,A) |
| 426 "uqadd v20.16b, v2.16b, v20.16b \t\n" | 427 "uqadd v20.16b, v2.16b, v20.16b \t\n" |
| 427 "uqadd v6.16b, v0.16b, v6.16b \t\n" | 428 "uqadd v6.16b, v0.16b, v6.16b \t\n" |
| 429 #elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A) |
| 430 "uqadd v20.16b, v0.16b, v20.16b \t\n" |
| 431 "uqadd v6.16b, v2.16b, v6.16b \t\n" |
| 432 #else |
| 433 #error "This function only supports BGRA and RGBA." |
| 434 #endif |
| 428 "shll v22.8h, v20.8b, #8 \t\n" | 435 "shll v22.8h, v20.8b, #8 \t\n" |
| 429 "shll v5.8h, v7.8b, #8 \t\n" | 436 "shll v5.8h, v7.8b, #8 \t\n" |
| 430 "sri v22.8h, v5.8h, #5 \t\n" | 437 "sri v22.8h, v5.8h, #5 \t\n" |
| 431 "shll v17.8h, v6.8b, #8 \t\n" | 438 "shll v17.8h, v6.8b, #8 \t\n" |
| 432 "shll2 v23.8h, v20.16b, #8 \t\n" | 439 "shll2 v23.8h, v20.16b, #8 \t\n" |
| 433 "shll2 v7.8h, v7.16b, #8 \t\n" | 440 "shll2 v7.8h, v7.16b, #8 \t\n" |
| 434 "sri v22.8h, v17.8h, #11 \t\n" | 441 "sri v22.8h, v17.8h, #11 \t\n" |
| 435 "sri v23.8h, v7.8h, #5 \t\n" | 442 "sri v23.8h, v7.8h, #5 \t\n" |
| 436 "shll2 v6.8h, v6.16b, #8 \t\n" | 443 "shll2 v6.8h, v6.16b, #8 \t\n" |
| 437 "st1 {v22.8h}, [%[dst]], #16 \t\n" | 444 "st1 {v22.8h}, [%[dst]], #16 \t\n" |
| (...skipping 1198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1636 count--; | 1643 count--; |
| 1637 } | 1644 } |
| 1638 } | 1645 } |
| 1639 | 1646 |
| 1640 /////////////////////////////////////////////////////////////////////////////// | 1647 /////////////////////////////////////////////////////////////////////////////// |
| 1641 | 1648 |
| 1642 const SkBlitRow::Proc sk_blitrow_platform_565_procs_arm_neon[] = { | 1649 const SkBlitRow::Proc sk_blitrow_platform_565_procs_arm_neon[] = { |
| 1643 // no dither | 1650 // no dither |
| 1644 S32_D565_Opaque_neon, | 1651 S32_D565_Opaque_neon, |
| 1645 S32_D565_Blend_neon, | 1652 S32_D565_Blend_neon, |
| 1646 #ifdef SK_CPU_ARM32 | |
| 1647 S32A_D565_Opaque_neon, | 1653 S32A_D565_Opaque_neon, |
| 1648 #else | |
| 1649 NULL, | |
| 1650 #endif | |
| 1651 S32A_D565_Blend_neon, | 1654 S32A_D565_Blend_neon, |
| 1652 | 1655 |
| 1653 // dither | 1656 // dither |
| 1654 S32_D565_Opaque_Dither_neon, | 1657 S32_D565_Opaque_Dither_neon, |
| 1655 S32_D565_Blend_Dither_neon, | 1658 S32_D565_Blend_Dither_neon, |
| 1656 S32A_D565_Opaque_Dither_neon, | 1659 S32A_D565_Opaque_Dither_neon, |
| 1657 NULL, // S32A_D565_Blend_Dither | 1660 NULL, // S32A_D565_Blend_Dither |
| 1658 }; | 1661 }; |
| 1659 | 1662 |
| 1660 const SkBlitRow::Proc32 sk_blitrow_platform_32_procs_arm_neon[] = { | 1663 const SkBlitRow::Proc32 sk_blitrow_platform_32_procs_arm_neon[] = { |
| (...skipping 13 matching lines...) Expand all Loading... |
| 1674 S32A_Opaque_BlitRow32_neon_src_alpha, // S32A_Opaque, | 1677 S32A_Opaque_BlitRow32_neon_src_alpha, // S32A_Opaque, |
| 1675 #else | 1678 #else |
| 1676 S32A_Opaque_BlitRow32_neon, // S32A_Opaque, | 1679 S32A_Opaque_BlitRow32_neon, // S32A_Opaque, |
| 1677 #endif | 1680 #endif |
| 1678 #ifdef SK_CPU_ARM32 | 1681 #ifdef SK_CPU_ARM32 |
| 1679 S32A_Blend_BlitRow32_neon // S32A_Blend | 1682 S32A_Blend_BlitRow32_neon // S32A_Blend |
| 1680 #else | 1683 #else |
| 1681 NULL | 1684 NULL |
| 1682 #endif | 1685 #endif |
| 1683 }; | 1686 }; |
| OLD | NEW |