diff options
author | 2016-03-22 07:28:12 -0700 | |
---|---|---|
committer | 2016-03-22 07:28:12 -0700 | |
commit | ee451cf09de31267c93b64e1fdac7c823cee7e85 (patch) | |
tree | 9963fb08e0403a85505728ea3438fba024074505 /src/opts/SkBitmapProcState_opts_SSSE3.cpp | |
parent | f809d7687a4fb7b88b651b046da2bc0035d6aa09 (diff) |
Revert of Clean up SSSE3 and SSE4 stubs. (patchset #1 id:1 of https://codereview.chromium.org/1810183003/ )
Reason for revert:
I've just had a better idea about how to fix this. Let's revert while I work on it.
Original issue's description:
> Clean up SSSE3 and SSE4 stubs.
>
> We added these stubs to work around OpenBSD's old compiler, which had
> support for SSE2 but not SSSE3 or SSE4.
>
> We now already have other unstubbed files that require SSSE3 and SSE4 compiler
> support. All the compilers we support have SSSE3 and SSE4 support, and all the
> way up to at least AVX2.
>
> (Requiring C++11 has had some nice ripple effects...)
>
>
> And, <immintrin.h> is already auto-included for these files, so no need for smmintrin or tmmintrin.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1810183003
> CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
>
> Committed: https://skia.googlesource.com/skia/+/2b1b40e11afc41452b4d2f74cdebb1b6e6f7cc96
TBR=djsollen@google.com,mtklein@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=skia:
Review URL: https://codereview.chromium.org/1819223003
Diffstat (limited to 'src/opts/SkBitmapProcState_opts_SSSE3.cpp')
-rw-r--r-- | src/opts/SkBitmapProcState_opts_SSSE3.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/opts/SkBitmapProcState_opts_SSSE3.cpp b/src/opts/SkBitmapProcState_opts_SSSE3.cpp index 07b3171c6a..17d7da931a 100644 --- a/src/opts/SkBitmapProcState_opts_SSSE3.cpp +++ b/src/opts/SkBitmapProcState_opts_SSSE3.cpp @@ -10,6 +10,14 @@ #include "SkPaint.h" #include "SkUtils.h" +/* With the exception of the compilers that don't support it, we always build the + * SSSE3 functions and enable the caller to determine SSSE3 support. However for + * compilers that do not support SSSE3 we provide a stub implementation. + */ +#if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSSE3 + +#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 @@ -723,3 +731,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 + +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 |