OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2014 The Android Open Source Project | 2 * Copyright 2014 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 #if defined(__clang__) || (defined(__GNUC__) && !defined(SK_BUILD_FOR_MAC)) | 8 #if defined(__clang__) || (defined(__GNUC__) && !defined(SK_BUILD_FOR_MAC)) |
9 | 9 |
10 #define EXTRACT_ALPHA(var1, var2) \ | 10 #define EXTRACT_ALPHA(var1, var2) \ |
(...skipping 30 matching lines...) Expand all Loading... |
41 * memory latency worse-case. | 41 * memory latency worse-case. |
42 */ | 42 */ |
43 | 43 |
44 #ifdef __clang__ | 44 #ifdef __clang__ |
45 .text | 45 .text |
46 #else | 46 #else |
47 .section .text.sse4.2,"ax",@progbits | 47 .section .text.sse4.2,"ax",@progbits |
48 .type S32A_Opaque_BlitRow32_SSE4_asm, @function | 48 .type S32A_Opaque_BlitRow32_SSE4_asm, @function |
49 #endif | 49 #endif |
50 .p2align 4 | 50 .p2align 4 |
51 #if defined(__clang__) && defined(SK_BUILD_FOR_MAC) | 51 #if defined(SK_BUILD_FOR_MAC) |
52 .global _S32A_Opaque_BlitRow32_SSE4_asm | 52 .global _S32A_Opaque_BlitRow32_SSE4_asm |
| 53 .private_extern _S32A_Opaque_BlitRow32_SSE4_asm |
53 _S32A_Opaque_BlitRow32_SSE4_asm: | 54 _S32A_Opaque_BlitRow32_SSE4_asm: |
54 #else | 55 #else |
55 .global S32A_Opaque_BlitRow32_SSE4_asm | 56 .global S32A_Opaque_BlitRow32_SSE4_asm |
| 57 .hidden S32A_Opaque_BlitRow32_SSE4_asm |
56 S32A_Opaque_BlitRow32_SSE4_asm: | 58 S32A_Opaque_BlitRow32_SSE4_asm: |
57 #endif | 59 #endif |
58 .cfi_startproc | 60 .cfi_startproc |
59 prefetcht0 (%rsi) | 61 prefetcht0 (%rsi) |
60 movl %edx, %ecx // Pixel count | 62 movl %edx, %ecx // Pixel count |
61 movq %rdi, %rdx // Destination pointer | 63 movq %rdi, %rdx // Destination pointer |
62 movq %rsi, %rax // Source pointer | 64 movq %rsi, %rax // Source pointer |
63 | 65 |
64 // Setup SSE constants | 66 // Setup SSE constants |
65 movdqa .LAlphaCheckMask(%rip), %xmm7 // 0xFF000000 mask to check alpha | 67 movdqa .LAlphaCheckMask(%rip), %xmm7 // 0xFF000000 mask to check alpha |
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
457 .section .rodata | 459 .section .rodata |
458 #endif | 460 #endif |
459 .p2align 4 | 461 .p2align 4 |
460 .LAlphaCheckMask: | 462 .LAlphaCheckMask: |
461 .long 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000 | 463 .long 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000 |
462 .LInverseAlphaCalc: | 464 .LInverseAlphaCalc: |
463 .word 256, 256, 256, 256, 256, 256, 256, 256 | 465 .word 256, 256, 256, 256, 256, 256, 256, 256 |
464 .LResultMergeMask: | 466 .LResultMergeMask: |
465 .long 0x00FF00FF, 0x00FF00FF, 0x00FF00FF, 0x00FF00FF | 467 .long 0x00FF00FF, 0x00FF00FF, 0x00FF00FF, 0x00FF00FF |
466 #endif | 468 #endif |
OLD | NEW |