diff options
author | Mike Melanson <mike@multimedia.cx> | 2004-04-25 03:30:19 +0000 |
---|---|---|
committer | Mike Melanson <mike@multimedia.cx> | 2004-04-25 03:30:19 +0000 |
commit | 78a16bfec6d8b76be256b73b61b047c46766fa70 (patch) | |
tree | 78bac34818f792b6c4ca9accd0efa0ee71b9beb0 /libavcodec | |
parent | 5f9379007c0ccec31d9460e6dbfb8ee23f5e656f (diff) | |
download | ffmpeg-78a16bfec6d8b76be256b73b61b047c46766fa70.tar.gz |
add selected SSE2 ASM macros
Originally committed as revision 3063 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/i386/mmx.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/libavcodec/i386/mmx.h b/libavcodec/i386/mmx.h index 7e94cfd9b1..ad684bc5ac 100644 --- a/libavcodec/i386/mmx.h +++ b/libavcodec/i386/mmx.h @@ -240,4 +240,28 @@ typedef union { #define sfence() __asm__ __volatile__ ("sfence\n\t") +/* SSE2 */ +#define pshufhw_m2r(var,reg,imm) mmx_m2ri(pshufhw, var, reg, imm) +#define pshufhw_r2r(regs,regd,imm) mmx_r2ri(pshufhw, regs, regd, imm) +#define pshuflw_m2r(var,reg,imm) mmx_m2ri(pshuflw, var, reg, imm) +#define pshuflw_r2r(regs,regd,imm) mmx_r2ri(pshuflw, regs, regd, imm) + +#define pshufd_r2r(regs,regd,imm) mmx_r2ri(pshufd, regs, regd, imm) + +#define movdqa_m2r(var,reg) mmx_m2r (movdqa, var, reg) +#define movdqa_r2m(reg,var) mmx_r2m (movdqa, reg, var) +#define movdqa_r2r(regs,regd) mmx_r2r (movdqa, regs, regd) +#define movdqu_m2r(var,reg) mmx_m2r (movdqu, var, reg) +#define movdqu_r2m(reg,var) mmx_r2m (movdqu, reg, var) +#define movdqu_r2r(regs,regd) mmx_r2r (movdqu, regs, regd) + +#define pmullw_r2m(reg,var) mmx_r2m (pmullw, reg, var) + +#define pslldq_i2r(imm,reg) mmx_i2r (pslldq, imm, reg) +#define psrldq_i2r(imm,reg) mmx_i2r (psrldq, imm, reg) + +#define punpcklqdq_r2r(regs,regd) mmx_r2r (punpcklqdq, regs, regd) +#define punpckhqdq_r2r(regs,regd) mmx_r2r (punpckhqdq, regs, regd) + + #endif /* AVCODEC_I386MMX_H */ |