aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/x86/x86util.asm
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-05-12 04:51:24 +0200
committerMichael Niedermayer <michaelni@gmx.at>2011-05-12 04:51:24 +0200
commit612122b187d711257eecd517e4049cef3bb0b7f0 (patch)
tree2e0ed86f6f73bbc993a0e7787f331e21d1c7c064 /libavcodec/x86/x86util.asm
parent4ea216e761e02d3f6973b316feaf3484be91a14f (diff)
parent5705b02079449c685a3dd337fcc3a8b440dca4a0 (diff)
downloadffmpeg-612122b187d711257eecd517e4049cef3bb0b7f0.tar.gz
Merge remote branch 'qatar/master'
* qatar/master: (32 commits) 10-bit H.264 x86 chroma v loopfilter asm Port SMPTE S302M audio decoder from FFmbc 0.3. [Copyright headers corrected] Fix crash of interlaced MPEG2 decoding h264pred: fix one more aliasing violation. doc/APIchanges: fill in missing hashes and dates. flacenc: use proper initializers for AVOption default values. lavc: deprecate named constants for deprecated antialias_algo. aac: workaround for compilation on cygwin swscale: extend YUV422p support to 10bits depth tiff: add support for inverted FillOrder for uncompressed data Remove unused softfloat implementation. h264pred: fix aliasing violations. rotozoom: Eliminate French variable name. rotozoom: Check return value of fread(). rotozoom: Return an error value instead of calling exit(). rotozoom: Make init_demo() return int and check for errors on invocation. rotozoom: Drop silly UINT8 typedef. rotozoom: Drop some unnecessary parentheses. rotozoom: K&R coding style cosmetics rtsp: Only do keepalive using GET_PARAMETER if the server supports it ... Conflicts: Changelog cmdutils.c doc/APIchanges doc/general.texi ffmpeg.c ffplay.c libavcodec/h264pred_template.c libavcodec/resample.c libavutil/pixfmt.h libavutil/softfloat.c libavutil/softfloat.h tests/rotozoom.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/x86/x86util.asm')
-rw-r--r--libavcodec/x86/x86util.asm24
1 files changed, 21 insertions, 3 deletions
diff --git a/libavcodec/x86/x86util.asm b/libavcodec/x86/x86util.asm
index b28a6198f7..a96b065509 100644
--- a/libavcodec/x86/x86util.asm
+++ b/libavcodec/x86/x86util.asm
@@ -24,16 +24,20 @@
;******************************************************************************
%macro SBUTTERFLY 4
+%if avx_enabled == 0
mova m%4, m%2
punpckl%1 m%2, m%3
punpckh%1 m%4, m%3
+%else
+ punpckh%1 m%4, m%2, m%3
+ punpckl%1 m%2, m%3
+%endif
SWAP %3, %4
%endmacro
%macro SBUTTERFLY2 4
- mova m%4, m%2
- punpckh%1 m%2, m%3
- punpckl%1 m%4, m%3
+ punpckl%1 m%4, m%2, m%3
+ punpckh%1 m%2, m%2, m%3
SWAP %2, %4, %3
%endmacro
@@ -444,3 +448,17 @@
%macro PMINUB_MMXEXT 3 ; dst, src, ignored
pminub %1, %2
%endmacro
+
+%macro SPLATW 2-3 0
+%if mmsize == 16
+ pshuflw %1, %2, (%3)*0x55
+ punpcklqdq %1, %1
+%else
+ pshufw %1, %2, (%3)*0x55
+%endif
+%endmacro
+
+%macro CLIPW 3 ;(dst, min, max)
+ pmaxsw %1, %2
+ pminsw %1, %3
+%endmacro