1 /* 2 * Copyright 2014 The Android Open Source Project 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #ifndef SkBlitRow_opts_SSE4_DEFINED 9 #define SkBlitRow_opts_SSE4_DEFINED 10 11 #include "SkBlitRow.h" 12 13 #ifdef CRBUG_399842_FIXED 14 15 /* Check if we are able to build assembly code, GCC/AT&T syntax: 16 * 1) Clang and GCC are generally OK. OS X's old LLVM-GCC 4.2 can't handle it; 17 * 2) We're intentionally not linking this in even when supported (Clang) on Windows; 18 * 3) MemorySanitizer cannot instrument assembly at all. 19 */ 20 #if /* 1)*/ (defined(__clang__) || (defined(__GNUC__) && !defined(SK_BUILD_FOR_MAC))) \ 21 /* 2)*/ && !defined(SK_BUILD_FOR_WIN) \ 22 /* 3)*/ && !defined(MEMORY_SANITIZER) 23 extern "C" void S32A_Opaque_BlitRow32_SSE4_asm(SkPMColor* SK_RESTRICT dst, 24 const SkPMColor* SK_RESTRICT src, 25 int count, U8CPU alpha); 26 27 #define SK_ATT_ASM_SUPPORTED 28 #endif 29 30 #endif // CRBUG_399842_FIXED 31 32 #endif 33 34