]> granicus.if.org Git - handbrake/commitdiff
Update the fmac scalar patch. Instead of a workaround, apply the fix from Libav,...
authorRodeo <tdskywalker@gmail.com>
Sat, 8 Sep 2012 22:08:24 +0000 (22:08 +0000)
committerRodeo <tdskywalker@gmail.com>
Sat, 8 Sep 2012 22:08:24 +0000 (22:08 +0000)
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4943 b64f7644-9d1e-0410-96f1-a4d463321fa5

contrib/ffmpeg/A07-fmac-scalar-asm.patch

index 2ccaee8a2567743790197b6f43ab8abb01b9dcd1..b0ca0f0841f49206a619a36e2ae82d9e58c17bd9 100644 (file)
@@ -1,20 +1,20 @@
-diff --git a/libavutil/x86/float_dsp_init.c b/libavutil/x86/float_dsp_init.c
-index d259a36..3729d91 100644
---- a/libavutil/x86/float_dsp_init.c
-+++ b/libavutil/x86/float_dsp_init.c
-@@ -38,11 +38,13 @@ void ff_float_dsp_init_x86(AVFloatDSPContext *fdsp)
-     if (mm_flags & AV_CPU_FLAG_SSE && HAVE_SSE) {
-         fdsp->vector_fmul = ff_vector_fmul_sse;
--        fdsp->vector_fmac_scalar = ff_vector_fmac_scalar_sse;
-+        // buggy under 64-bit Windows: http://bugzilla.libav.org/show_bug.cgi?id=336
-+        // fdsp->vector_fmac_scalar = ff_vector_fmac_scalar_sse;
-     }
-     if (mm_flags & AV_CPU_FLAG_AVX && HAVE_AVX) {
-         fdsp->vector_fmul = ff_vector_fmul_avx;
--        fdsp->vector_fmac_scalar = ff_vector_fmac_scalar_avx;
-+        // buggy under 64-bit Windows: http://bugzilla.libav.org/show_bug.cgi?id=336
-+        // fdsp->vector_fmac_scalar = ff_vector_fmac_scalar_avx;
-     }
- #endif
- }
+diff --git a/libavutil/x86/float_dsp.asm b/libavutil/x86/float_dsp.asm
+index c4e0c66..d379d8f 100644
+--- a/libavutil/x86/float_dsp.asm
++++ b/libavutil/x86/float_dsp.asm
+@@ -60,12 +60,12 @@ cglobal vector_fmac_scalar, 3,3,3, dst, src, len
+ %else
+ cglobal vector_fmac_scalar, 4,4,3, dst, src, mul, len
+ %endif
+-%if WIN64
+-    SWAP 0, 2
+-%endif
+ %if ARCH_X86_32
+     VBROADCASTSS m0, mulm
+ %else
++%if WIN64
++    mova       xmm0, xmm2
++%endif
+     shufps     xmm0, xmm0, 0
+ %if cpuflag(avx)
+     vinsertf128  m0, m0, xmm0, 1