Mercurial > libavcodec.hg
comparison i386/dsputil_mmx.c @ 2892:41315d0120b3 libavcodec
replace a few mov + psrlq with pshufw, there are more cases which could benefit from this but they would require us to duplicate some functions ...
the trick is from various places (my own code in libpostproc, a patch on the x264 list, ...)
author | michael |
---|---|
date | Wed, 21 Sep 2005 21:17:09 +0000 |
parents | f4afa3812818 |
children | d3a726717baf |
comparison
equal
deleted
inserted
replaced
2891:4c6eb826e9cb | 2892:41315d0120b3 |
---|---|
1619 "movq (%1), %%mm1 \n\t" | 1619 "movq (%1), %%mm1 \n\t" |
1620 MMABS_SUM_MMX2(%%mm1, %%mm7, %%mm0) | 1620 MMABS_SUM_MMX2(%%mm1, %%mm7, %%mm0) |
1621 "movq 64(%1), %%mm1 \n\t" | 1621 "movq 64(%1), %%mm1 \n\t" |
1622 MMABS_SUM_MMX2(%%mm1, %%mm7, %%mm0) | 1622 MMABS_SUM_MMX2(%%mm1, %%mm7, %%mm0) |
1623 | 1623 |
1624 "movq %%mm0, %%mm1 \n\t" | 1624 "pshufw $0x0E, %%mm0, %%mm1 \n\t" |
1625 "psrlq $32, %%mm0 \n\t" | |
1626 "paddusw %%mm1, %%mm0 \n\t" | 1625 "paddusw %%mm1, %%mm0 \n\t" |
1627 "movq %%mm0, %%mm1 \n\t" | 1626 "pshufw $0x01, %%mm0, %%mm1 \n\t" |
1628 "psrlq $16, %%mm0 \n\t" | |
1629 "paddusw %%mm1, %%mm0 \n\t" | 1627 "paddusw %%mm1, %%mm0 \n\t" |
1630 "movd %%mm0, %0 \n\t" | 1628 "movd %%mm0, %0 \n\t" |
1631 | 1629 |
1632 : "=r" (sum) | 1630 : "=r" (sum) |
1633 : "r"(temp) | 1631 : "r"(temp) |