| diff --git a/third_party/libopenjpeg20/mct.c b/third_party/libopenjpeg20/mct.c | |
| index b79d4b87c..81ec223d8 100644 | |
| --- a/third_party/libopenjpeg20/mct.c | |
| +++ b/third_party/libopenjpeg20/mct.c | |
| @@ -37,13 +37,16 @@ | |
| * 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) | |
| +#define USE_SSE4 | |
| #include <smmintrin.h> | |
| #endif | |
| @@ -72,7 +75,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 +144,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, | |
| @@ -209,7 +212,7 @@ OPJ_FLOAT64 opj_mct_getnorm(OPJ_UINT32 compno) | |
| /* <summary> */ | |
| /* Forward irreversible MCT. */ | |
| /* </summary> */ | |
| -#ifdef __SSE4_1__ | |
| +#ifdef USE_SSE4 | |
| void opj_mct_encode_real( | |
| OPJ_INT32* OPJ_RESTRICT c0, | |
| OPJ_INT32* OPJ_RESTRICT c1, | |
| @@ -389,7 +392,7 @@ void opj_mct_decode_real( | |
| OPJ_SIZE_T n) | |
| { | |
| OPJ_UINT32 i; | |
| -#ifdef __SSE__ | |
| +#ifdef USE_SSE | |
| __m128 vrv, vgu, vgv, vbu; | |
| vrv = _mm_set1_ps(1.402f); | |
| vgu = _mm_set1_ps(0.34413f); |