diff options
Diffstat (limited to 'contrib/mpeg2dec/P00-mingw-disable-sse.patch')
-rw-r--r-- | contrib/mpeg2dec/P00-mingw-disable-sse.patch | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/contrib/mpeg2dec/P00-mingw-disable-sse.patch b/contrib/mpeg2dec/P00-mingw-disable-sse.patch new file mode 100644 index 000000000..ee23632b9 --- /dev/null +++ b/contrib/mpeg2dec/P00-mingw-disable-sse.patch @@ -0,0 +1,30 @@ +Index: libmpeg2/cpu_accel.c +=================================================================== +--- mpeg2dec/libmpeg2/cpu_accel.c (revision 1205) ++++ mpeg2dec/libmpeg2/cpu_accel.c (working copy) +@@ -111,7 +111,13 @@ + + cpuid (0x80000000, eax, ebx, ecx, edx); + if (eax < 0x80000001) /* no extended capabilities */ +- return accel; ++ { ++#if defined(__x86_64__) ++ // SSE code is broken on mingw64, so disable it. ++ accel &= ~(MPEG2_ACCEL_X86_SSE2|MPEG2_ACCEL_X86_SSE3); ++#endif ++ return accel; ++ } + + cpuid (0x80000001, eax, ebx, ecx, edx); + +@@ -120,6 +126,10 @@ + + if (AMD && (edx & 0x00400000)) /* AMD MMX extensions */ + accel |= MPEG2_ACCEL_X86_MMXEXT; ++#if defined(__x86_64__) ++ // SSE code is broken on mingw64, so disable it. ++ accel &= ~(MPEG2_ACCEL_X86_SSE2|MPEG2_ACCEL_X86_SSE3); ++#endif + } + #endif /* ACCEL_DETECT */ + |