| diff --git a/third_party/libopenjpeg20/mct.c b/third_party/libopenjpeg20/mct.c |
| index 88c8f4092..c4c2e732e 100644 |
| --- a/third_party/libopenjpeg20/mct.c |
| +++ b/third_party/libopenjpeg20/mct.c |
| @@ -37,13 +37,15 @@ |
| * POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| -#ifdef __SSE__ |
| +#if defined(__SSE__) && !defined(_M_IX86) && !defined(__i386) |
| +#define USE_SSE |
| #include <xmmintrin.h> |
| #endif |
| -#ifdef __SSE2__ |
| +#if defined(__SSE2__) && !defined(_M_IX86) && !defined(__i386) |
| +#define USE_SSE2 |
| #include <emmintrin.h> |
| #endif |
| -#ifdef __SSE4_1__ |
| +#if defined(__SSE4_1__) && !defined(_M_IX86) && !defined(__i386) |
| #include <smmintrin.h> |
| #endif |
| |
| @@ -72,7 +74,7 @@ const OPJ_FLOAT64 * opj_mct_get_mct_norms_real() |
| /* <summary> */ |
| /* Forward reversible MCT. */ |
| /* </summary> */ |
| -#ifdef __SSE2__ |
| +#ifdef USE_SSE2 |
| void opj_mct_encode( |
| OPJ_INT32* OPJ_RESTRICT c0, |
| OPJ_INT32* OPJ_RESTRICT c1, |
| @@ -141,7 +143,7 @@ void opj_mct_encode( |
| /* <summary> */ |
| /* Inverse reversible MCT. */ |
| /* </summary> */ |
| -#ifdef __SSE2__ |
| +#ifdef USE_SSE2 |
| void opj_mct_decode( |
| OPJ_INT32* OPJ_RESTRICT c0, |
| OPJ_INT32* OPJ_RESTRICT c1, |
| @@ -216,7 +218,7 @@ void opj_mct_encode_real( |
| OPJ_SIZE_T n) |
| { |
| OPJ_SIZE_T i; |
| -#ifdef __SSE__ |
| +#ifdef USE_SSE |
| const __m128 YR = _mm_set1_ps(0.299f); |
| const __m128 YG = _mm_set1_ps(0.587f); |
| const __m128 YB = _mm_set1_ps(0.114f); |
| @@ -286,7 +288,7 @@ void opj_mct_decode_real( |
| OPJ_SIZE_T n) |
| { |
| OPJ_SIZE_T i; |
| -#ifdef __SSE__ |
| +#ifdef USE_SSE |
| __m128 vrv, vgu, vgv, vbu; |
| vrv = _mm_set1_ps(1.402f); |
| vgu = _mm_set1_ps(0.34413f); |