]> git.sesse.net Git - vlc/commitdiff
contrib: lame: fix sse optimizations build on win32 with gcc 4.9
authorRafaël Carré <funman@videolan.org>
Sun, 8 Jun 2014 19:18:41 +0000 (12:18 -0700)
committerRafaël Carré <funman@videolan.org>
Sun, 8 Jun 2014 19:20:39 +0000 (12:20 -0700)
contrib/src/lame/rules.mak
contrib/src/lame/sse.patch [new file with mode: 0644]

index 1f5578a11b03512c83feb0ea464b88e42df0beaf..5d94b69d8d5dce4d13e3fcc49080fc6f4b9e11bc 100644 (file)
@@ -11,6 +11,7 @@ $(TARBALLS)/lame-$(LAME_VERSION).tar.gz:
 lame: lame-$(LAME_VERSION).tar.gz .sum-lame
        $(UNPACK)
        $(APPLY) $(SRC)/lame/lame-forceinline.patch
+       $(APPLY) $(SRC)/lame/sse.patch
        $(UPDATE_AUTOCONFIG)
        $(MOVE)
 
diff --git a/contrib/src/lame/sse.patch b/contrib/src/lame/sse.patch
new file mode 100644 (file)
index 0000000..7958c64
--- /dev/null
@@ -0,0 +1,30 @@
+xmm_quantize_sub.c: In function 'init_xrpow_core_sse':
+xmm_quantize_sub.c:65:18: warning: SSE vector return without SSE enabled changes the ABI [-W
+psabi]
+     const __m128 vec_fabs_mask = _mm_loadu_ps(&fabs_mask._float[0]);
+                  ^
+In file included from xmm_quantize_sub.c:37:0:
+/usr/lib/gcc/i686-w64-mingw32/4.9.0/include/xmmintrin.h:933:1: error: inlining failed in call to always_inline '_mm_loadu_ps': target specific option mismatch
+ _mm_loadu_ps (float const *__P)
+ ^
+xmm_quantize_sub.c:65:18: error: called from here
+     const __m128 vec_fabs_mask = _mm_loadu_ps(&fabs_mask._float[0]);
+                  ^
+--- lame/libmp3lame/vector/xmm_quantize_sub.c.orig     2014-06-08 12:16:19.455468042 -0700
++++ lame/libmp3lame/vector/xmm_quantize_sub.c  2014-06-08 12:16:09.592356980 -0700
+@@ -35,6 +35,7 @@
+ #ifdef HAVE_XMMINTRIN_H
+ #include <xmmintrin.h>
++#pragma GCC target("sse")
+ typedef union {
+     int32_t _i_32[4]; /* unions are initialized by its first member */
+@@ -124,6 +125,7 @@
+ }
++#pragma GCC target("sse2")
+ void
+ fht_SSE2(FLOAT * fz, int n)
+ {