Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(215)

Side by Side Diff: src/opts/SkBlitRow_opts_arm_neon.cpp

Issue 458453002: Fix S32A_D565_Opaque for RGBA on arm64 (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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 };
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698