diff options
-rw-r--r-- | src/core/SkBitmapProcState_matrixProcs.cpp | 10 |
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) |