| 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 |