aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/opts/SkBitmapProcState_opts_SSSE3.cpp
diff options
context:
space:
mode:
authorGravatar mtklein <mtklein@google.com>2016-03-22 07:28:12 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-03-22 07:28:12 -0700
commitee451cf09de31267c93b64e1fdac7c823cee7e85 (patch)
tree9963fb08e0403a85505728ea3438fba024074505 /src/opts/SkBitmapProcState_opts_SSSE3.cpp
parentf809d7687a4fb7b88b651b046da2bc0035d6aa09 (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.cpp36
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