aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/core/SkPreConfig.h
diff options
context:
space:
mode:
authorGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-02-25 18:14:08 +0000
committerGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-02-25 18:14:08 +0000
commit88a954335acc3e4737e7e08c86233a6b246299f3 (patch)
tree8cbff0dd4b31e4551e97b5492f6288aea9066d10 /include/core/SkPreConfig.h
parentb4c5f06c037c2151f873cb3d7aa9b33034e38cdd (diff)
Enable the SSSE3 files to be built for Android when SSSE3 is not present.
Committed: http://code.google.com/p/skia/source/detail?r=13547 R=reed@google.com, mtklein@google.com Author: djsollen@google.com Review URL: https://codereview.chromium.org/169753004 git-svn-id: http://skia.googlecode.com/svn/trunk@13583 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'include/core/SkPreConfig.h')
-rw-r--r--include/core/SkPreConfig.h32
1 files changed, 11 insertions, 21 deletions
diff --git a/include/core/SkPreConfig.h b/include/core/SkPreConfig.h
index 1c2e24fba6..406a159d89 100644
--- a/include/core/SkPreConfig.h
+++ b/include/core/SkPreConfig.h
@@ -116,40 +116,30 @@
// Are we in GCC?
#ifndef SK_CPU_SSE_LEVEL
- #if defined(__SSE2__)
- #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE2
+ // These checks must be done in descending order to ensure we set the highest
+ // available SSE level.
+ #if defined(__SSSE3__)
+ #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSSE3
#elif defined(__SSE3__)
#define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE3
- #elif defined(__SSSE3__)
- #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSSE3
+ #elif defined(__SSE2__)
+ #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE2
#endif
#endif
// Are we in VisualStudio?
#ifndef SK_CPU_SSE_LEVEL
+ // These checks must be done in descending order to ensure we set the highest
+ // available SSE level.
#if defined (_M_IX86_FP)
- #if _M_IX86_FP == 1
- #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE1
- #elif _M_IX86_FP >= 2
+ #if _M_IX86_FP >= 2
#define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE2
+ #elif _M_IX86_FP == 1
+ #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE1
#endif
#endif
#endif
-// 64bit intel guarantees at least SSE2
-#if defined(__x86_64__) || defined(_WIN64)
- #if !defined(SK_CPU_SSE_LEVEL) || (SK_CPU_SSE_LEVEL < SK_CPU_SSE_LEVEL_SSE2)
- #undef SK_CPU_SSE_LEVEL
- #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE2
- #endif
-#endif
-
-// Android x86 NDK ABI requires SSE3 support
-#if defined(SK_BUILD_FOR_ANDROID)
- #undef SK_CPU_SSE_LEVEL
- #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE3
-#endif
-
//////////////////////////////////////////////////////////////////////
// ARM defines