aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/core/SkBitmapProcState_matrixProcs.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/core/SkBitmapProcState_matrixProcs.cpp b/src/core/SkBitmapProcState_matrixProcs.cpp
index 9a15ad2098..15e7bebbe7 100644
--- a/src/core/SkBitmapProcState_matrixProcs.cpp
+++ b/src/core/SkBitmapProcState_matrixProcs.cpp
@@ -93,6 +93,12 @@ static inline U16CPU fixed_repeat(SkFixed x)
return x & 0xFFFF;
}
+// Visual Studio 2010 (MSC_VER=1600) optimizes bit-shift code incorrectly.
+// See http://code.google.com/p/skia/issues/detail?id=472
+#if defined(_MSC_VER) && (_MSC_VER >= 1600)
+#pragma optimize("", off)
+#endif
+
static inline U16CPU fixed_mirror(SkFixed x)
{
SkFixed s = x << 15 >> 31;
@@ -100,6 +106,10 @@ static inline U16CPU fixed_mirror(SkFixed x)
return (x ^ s) & 0xFFFF;
}
+#if defined(_MSC_VER) && (_MSC_VER >= 1600)
+#pragma optimize("", on)
+#endif
+
static SkBitmapProcState::FixedTileProc choose_tile_proc(unsigned m)
{
if (SkShader::kClamp_TileMode == m)