Revision 28748a91 libavcodec/i386/cavsdsp_mmx.c

View differences:

libavcodec/i386/cavsdsp_mmx.c
32 32
 *
33 33
 ****************************************************************************/
34 34

  
35
#define SUMSUB_BA( a, b ) \
36
    "paddw "#b", "#a" \n\t"\
37
    "paddw "#b", "#b" \n\t"\
38
    "psubw "#a", "#b" \n\t"
39

  
40
#define SBUTTERFLY(a,b,t,n)\
41
    "movq " #a ", " #t "              \n\t" /* abcd */\
42
    "punpckl" #n " " #b ", " #a "     \n\t" /* aebf */\
43
    "punpckh" #n " " #b ", " #t "     \n\t" /* cgdh */
44

  
45
#define TRANSPOSE4(a,b,c,d,t)\
46
    SBUTTERFLY(a,b,t,wd) /* a=aebf t=cgdh */\
47
    SBUTTERFLY(c,d,b,wd) /* c=imjn b=kolp */\
48
    SBUTTERFLY(a,c,d,dq) /* a=aeim d=bfjn */\
49
    SBUTTERFLY(t,b,c,dq) /* t=cgko c=dhlp */
50

  
51 35
static inline void cavs_idct8_1d(int16_t *block, uint64_t bias)
52 36
{
53 37
    asm volatile(

Also available in: Unified diff