Chromium Code Reviews| Index: src/opts/SkBitmapProcState_opts_SSSE3.cpp |
| diff --git a/src/opts/SkBitmapProcState_opts_SSSE3.cpp b/src/opts/SkBitmapProcState_opts_SSSE3.cpp |
| index f8342ecaad5551c0eef8fcca472d3e85bcda1d8d..af4f1ecc344798085784e74952243cff449efedd 100644 |
| --- a/src/opts/SkBitmapProcState_opts_SSSE3.cpp |
| +++ b/src/opts/SkBitmapProcState_opts_SSSE3.cpp |
| @@ -5,11 +5,19 @@ |
| * found in the LICENSE file. |
| */ |
| -#include <tmmintrin.h> // SSSE3 |
| #include "SkBitmapProcState_opts_SSSE3.h" |
| #include "SkPaint.h" |
| #include "SkUtils.h" |
| +/* With the exception of the Android framework we always build the SSSE3 functions |
| + * and enable the caller to determine SSSE3 support. However for the Android framework |
| + * if the device does not support SSSE3 then the compiler will not supply the required |
| + * -mssse3 option needed to build this file, so instead we provide a stub implementation. |
| + */ |
| +#if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSSE3 || !defined(SK_BUILD_FOR_ANDROID_FRAMEWORK) |
|
mtklein
2014/02/25 17:27:23
Might even want to swap the order of the arguments
|
| + |
| +#include <tmmintrin.h> // SSSE3 |
| + |
| // adding anonymous namespace seemed to force gcc to inline directly the |
| // instantiation, instead of creating the functions |
| // S32_generic_D32_filter_DX_SSSE3<true> and |
| @@ -722,3 +730,31 @@ void S32_alpha_D32_filter_DXDY_SSSE3(const SkBitmapProcState& s, |
| int count, uint32_t* colors) { |
| S32_generic_D32_filter_DXDY_SSSE3<true>(s, xy, count, colors); |
| } |
| + |
| +#else //SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSSE3 |
|
mtklein
2014/02/25 17:27:23
Update this?
|
| + |
| +void S32_opaque_D32_filter_DX_SSSE3(const SkBitmapProcState& s, |
| + const uint32_t* xy, |
| + int count, uint32_t* colors) { |
| + sk_throw(); |
| +} |
| + |
| +void S32_alpha_D32_filter_DX_SSSE3(const SkBitmapProcState& s, |
| + const uint32_t* xy, |
| + int count, uint32_t* colors) { |
| + sk_throw(); |
| +} |
| + |
| +void S32_opaque_D32_filter_DXDY_SSSE3(const SkBitmapProcState& s, |
| + const uint32_t* xy, |
| + int count, uint32_t* colors) { |
| + sk_throw(); |
| +} |
| + |
| +void S32_alpha_D32_filter_DXDY_SSSE3(const SkBitmapProcState& s, |
| + const uint32_t* xy, |
| + int count, uint32_t* colors) { |
| + sk_throw(); |
| +} |
| + |
| +#endif |