Home | History | Annotate | Download | only in opts
      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