---
 libavcodec/x86/dsputil_mmx.c    |    3 +++
 libavcodec/x86/dsputil_yasm.asm |   13 ++++++++++---
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/libavcodec/x86/dsputil_mmx.c b/libavcodec/x86/dsputil_mmx.c
index fca09b4..46af122 100644
--- a/libavcodec/x86/dsputil_mmx.c
+++ b/libavcodec/x86/dsputil_mmx.c
@@ -2502,6 +2502,8 @@ int  ff_add_hfyu_left_prediction_sse4(uint8_t *dst, const 
uint8_t *src,
 
 float ff_scalarproduct_float_sse(const float *v1, const float *v2, int order);
 
+void ff_vector_fmul_3dnow(float *dst, const float *src0, const float *src1,
+                          int len);
 void ff_vector_fmul_sse(float *dst, const float *src0, const float *src1,
                         int len);
 void ff_vector_fmul_avx(float *dst, const float *src0, const float *src1,
@@ -2804,6 +2806,7 @@ static void dsputil_init_3dnow(DSPContext *c, 
AVCodecContext *avctx,
 #endif
 
     c->vorbis_inverse_coupling = vorbis_inverse_coupling_3dnow;
+    c->vector_fmul             = ff_vector_fmul_3dnow;
 
 #if HAVE_7REGS
     c->add_hfyu_median_prediction = add_hfyu_median_prediction_cmov;
diff --git a/libavcodec/x86/dsputil_yasm.asm b/libavcodec/x86/dsputil_yasm.asm
index 708ee67..078bd91 100644
--- a/libavcodec/x86/dsputil_yasm.asm
+++ b/libavcodec/x86/dsputil_yasm.asm
@@ -1139,14 +1139,17 @@ ALIGN 16
 .loop
     mova      m0,   [src0q + lenq]
     mova      m1,   [src0q + lenq + mmsize]
-    mulps     m0, m0, [src1q + lenq]
-    mulps     m1, m1, [src1q + lenq + mmsize]
+    MULPS     m0, m0, [src1q + lenq]
+    MULPS     m1, m1, [src1q + lenq + mmsize]
     mova      [dstq + lenq], m0
     mova      [dstq + lenq + mmsize], m1
 
     sub       lenq, 2*mmsize
     jge       .loop
-%if mmsize == 32
+%if mmsize == 8
+    femms
+    RET
+%elif mmsize == 32
     vzeroupper
     RET
 %else
@@ -1154,7 +1157,11 @@ ALIGN 16
 %endif
 %endmacro
 
+INIT_MMX 3dnow
+%define MULPS pfmul
+VECTOR_FMUL
 INIT_XMM sse
+%define MULPS mulps
 VECTOR_FMUL
 INIT_YMM avx
 VECTOR_FMUL
-- 
1.7.1

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to