Bug 777614 - Re-apply 759683 - Handle compilers that don't support SSSE3 intrinsics r=nrc
authorGeorge Wright <gw@gwright.org.uk>
Thu, 13 Sep 2012 14:55:33 -0400
changeset 107526 21d43bc68505b2feb836fafba7ebdd3f64a1c66f
parent 107525 2e3a9cb6edb9565a8c4b0e1719f4c06bb8e398ba
child 107527 dab1d80a04f4b553a7166a4ededafbd70911e757
push id82
push usershu@rfrn.org
push dateFri, 05 Oct 2012 13:20:22 +0000
reviewersnrc
bugs777614, 759683
milestone18.0a1
Bug 777614 - Re-apply 759683 - Handle compilers that don't support SSSE3 intrinsics r=nrc
gfx/skia/src/opts/opts_check_SSE2.cpp
--- a/gfx/skia/src/opts/opts_check_SSE2.cpp
+++ b/gfx/skia/src/opts/opts_check_SSE2.cpp
@@ -81,35 +81,39 @@ static inline bool hasSSE2() {
 #if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSSE3
 /* If we know SSSE3 is supported at compile time, don't even bother checking. */
 static inline bool hasSSSE3() {
     return true;
 }
 #else
 
 static inline bool hasSSSE3() {
+#if defined(SK_BUILD_SSSE3)
     int cpu_info[4] = { 0 };
     getcpuid(1, cpu_info);
     return (cpu_info[2] & 0x200) != 0;
+#else
+    return false;
+#endif
 }
 #endif
 
 static bool cachedHasSSE2() {
     static bool gHasSSE2 = hasSSE2();
     return gHasSSE2;
 }
 
 static bool cachedHasSSSE3() {
     static bool gHasSSSE3 = hasSSSE3();
     return gHasSSSE3;
 }
 
 void SkBitmapProcState::platformProcs() {
     if (cachedHasSSSE3()) {
-#if !defined(SK_BUILD_FOR_ANDROID)
+#if !defined(SK_BUILD_FOR_ANDROID) && defined(SK_BUILD_SSSE3)
         // Disable SSSE3 optimization for Android x86
         if (fSampleProc32 == S32_opaque_D32_filter_DX) {
             fSampleProc32 = S32_opaque_D32_filter_DX_SSSE3;
         } else if (fSampleProc32 == S32_alpha_D32_filter_DX) {
             fSampleProc32 = S32_alpha_D32_filter_DX_SSSE3;
         }
 
         if (fSampleProc32 == S32_opaque_D32_filter_DXDY) {