aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/i386/dsputil_mmx.h
diff options
context:
space:
mode:
authorVictor Pollex <victor.pollex@web.de>2008-07-08 09:24:11 +0000
committerBenoit Fouet <benoit.fouet@free.fr>2008-07-08 09:24:11 +0000
commit1835cda65a80f14b5945c95a1456dfdbef04cbc6 (patch)
tree2e0d3335dc47a3481daa5a4333c8ee86f165d734 /libavcodec/i386/dsputil_mmx.h
parentf6f848397a635eb7a5e52515d21e045421aa440c (diff)
downloadffmpeg-1835cda65a80f14b5945c95a1456dfdbef04cbc6.tar.gz
Make LOAD4/STORE4 macros more generic.
Patch by Victor Pollex victor pollex web de Original thread: [PATCH] mmx implementation of vc-1 inverse transformations Date: 06/21/2008 03:37 PM Originally committed as revision 14108 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/i386/dsputil_mmx.h')
-rw-r--r--libavcodec/i386/dsputil_mmx.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/libavcodec/i386/dsputil_mmx.h b/libavcodec/i386/dsputil_mmx.h
index 142854684b..d944dbd43c 100644
--- a/libavcodec/i386/dsputil_mmx.h
+++ b/libavcodec/i386/dsputil_mmx.h
@@ -57,6 +57,18 @@ extern const uint64_t ff_pb_FC;
extern const double ff_pd_1[2];
extern const double ff_pd_2[2];
+#define LOAD4(stride,in,a,b,c,d)\
+ "movq 0*"#stride"+"#in", "#a"\n\t"\
+ "movq 1*"#stride"+"#in", "#b"\n\t"\
+ "movq 2*"#stride"+"#in", "#c"\n\t"\
+ "movq 3*"#stride"+"#in", "#d"\n\t"
+
+#define STORE4(stride,out,a,b,c,d)\
+ "movq "#a", 0*"#stride"+"#out"\n\t"\
+ "movq "#b", 1*"#stride"+"#out"\n\t"\
+ "movq "#c", 2*"#stride"+"#out"\n\t"\
+ "movq "#d", 3*"#stride"+"#out"\n\t"
+
/* in/out: mma=mma+mmb, mmb=mmb-mma */
#define SUMSUB_BA( a, b ) \
"paddw "#b", "#a" \n\t"\