---
libavcodec/x86/fft_mmx.asm | 19 ++++---------------
libavcodec/x86/fmtconvert.asm | 17 ++---------------
libavutil/x86/x86util.asm | 12 ++++++++++++
3 files changed, 18 insertions(+), 30 deletions(-)
diff --git a/libavcodec/x86/fft_mmx.asm b/libavcodec/x86/fft_mmx.asm
index cf38716..a409850 100644
--- a/libavcodec/x86/fft_mmx.asm
+++ b/libavcodec/x86/fft_mmx.asm
@@ -105,7 +105,8 @@ SECTION_TEXT
pfadd %5, %4 ; {t6,t5}
pxor %3, [ps_m1p1] ; {t8,t7}
mova %6, %1
- pswapd %3, %3
+ movd [r0+12], %3
+ punpckhdq %3, [r0+8]
pfadd %1, %5 ; {r0,i0}
pfsub %6, %5 ; {r2,i2}
mova %4, %2
@@ -469,8 +470,8 @@ fft8 %+ SUFFIX:
mova Z(2), m2
T2_3DNOW m4, m5, Z(4), Z(5)
T2_3DNOW m6, m7, Z2(6), Z2(7)
- pswapd m0, m5
- pswapd m2, m7
+ PSWAPD m0, m5
+ PSWAPD m2, m7
pxor m0, [ps_m1p1]
pxor m2, [ps_m1p1]
pfsub m5, m0
@@ -500,18 +501,6 @@ fft8 %+ SUFFIX:
INIT_MMX 3dnowext
FFT48_3DNOW
-
-%macro pswapd 2
-%ifidn %1, %2
- movd [r0+12], %1
- punpckhdq %1, [r0+8]
-%else
- movq %1, %2
- psrlq %1, 32
- punpckldq %1, %2
-%endif
-%endmacro
-
INIT_MMX 3dnow
FFT48_3DNOW
diff --git a/libavcodec/x86/fmtconvert.asm b/libavcodec/x86/fmtconvert.asm
index 68616f2..1782624 100644
--- a/libavcodec/x86/fmtconvert.asm
+++ b/libavcodec/x86/fmtconvert.asm
@@ -247,16 +247,6 @@ FLOAT_TO_INT16_INTERLEAVE2
INIT_XMM sse2
FLOAT_TO_INT16_INTERLEAVE2
-
-%macro PSWAPD_SSE 2
- pshufw %1, %2, 0x4e
-%endmacro
-%macro PSWAPD_3DNOW 2
- movq %1, %2
- psrlq %1, 32
- punpckldq %1, %2
-%endmacro
-
%macro FLOAT_TO_INT16_INTERLEAVE6 0
; void float_to_int16_interleave6_sse(int16_t *dst, const float **src, int len)
cglobal float_to_int16_interleave6, 2, 8, 0, dst, src, src1, src2, src3, src4,
src5, len
@@ -286,11 +276,11 @@ cglobal float_to_int16_interleave6, 2, 8, 0, dst, src,
src1, src2, src3, src4, s
packssdw mm0, mm3
packssdw mm1, mm4
packssdw mm2, mm5
- pswapd mm3, mm0
+ PSWAPD mm3, mm0
punpcklwd mm0, mm1
punpckhwd mm1, mm2
punpcklwd mm2, mm3
- pswapd mm3, mm0
+ PSWAPD mm3, mm0
punpckldq mm0, mm2
punpckhdq mm2, mm1
punpckldq mm1, mm3
@@ -306,12 +296,9 @@ cglobal float_to_int16_interleave6, 2, 8, 0, dst, src,
src1, src2, src3, src4, s
%endmacro ; FLOAT_TO_INT16_INTERLEAVE6
INIT_MMX sse
-%define pswapd PSWAPD_SSE
FLOAT_TO_INT16_INTERLEAVE6
INIT_MMX 3dnow
-%define pswapd PSWAPD_3DNOW
FLOAT_TO_INT16_INTERLEAVE6
-%undef pswapd
INIT_MMX 3dnowext
FLOAT_TO_INT16_INTERLEAVE6
diff --git a/libavutil/x86/x86util.asm b/libavutil/x86/x86util.asm
index 6911a9c..71593a3 100644
--- a/libavutil/x86/x86util.asm
+++ b/libavutil/x86/x86util.asm
@@ -306,6 +306,18 @@
%endif
%endmacro
+%macro PSWAPD 2
+%if cpuflag(sse)
+ pshufw %1, %2, 0x4e
+%elif cpuflag(3dnowext)
+ pswapd %1, %2
+%elif cpuflag(3dnow)
+ movq %1, %2
+ psrlq %1, 32
+ punpckldq %1, %2
+%endif
+%endmacro
+
%macro DEINTB 5 ; mask, reg1, mask, reg2, optional src to fill masks from
%ifnum %5
pand m%3, m%5, m%4 ; src .. y6 .. y4
--
1.7.2.5
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel