[Mplayer-cvslog] CVS: main/libavcodec/i386 mpegvideo.c,1.2,1.3
Nick Kurshev
nick at mplayer.dev.hu
Sat Jul 21 07:51:02 CEST 2001
Update of /cvsroot/mplayer/main/libavcodec/i386
In directory mplayer:/var/tmp.root/cvs-serv23149/main/libavcodec/i386
Modified Files:
mpegvideo.c
Log Message:
Better insns scheduling and minor C-improvements.
Index: mpegvideo.c
===================================================================
RCS file: /cvsroot/mplayer/main/libavcodec/i386/mpegvideo.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- mpegvideo.c 20 Jul 2001 10:55:43 -0000 1.2
+++ mpegvideo.c 21 Jul 2001 05:50:59 -0000 1.3
@@ -93,23 +93,23 @@
for(;i<64;i+=4) {
__asm __volatile(
"movq %1, %%mm0\n\t"
- "movq %1, %%mm2\n\t"
"movq %%mm7, %%mm1\n\t"
+ "movq %%mm0, %%mm2\n\t"
+ "movq %%mm0, %%mm3\n\t"
"pcmpgtw %%mm6, %%mm2\n\t"
"pmullw %2, %%mm1\n\t"
"pandn %%mm4, %%mm2\n\t"
"por %%mm5, %%mm2\n\t"
"pmullw %%mm2, %%mm0\n\t" /* mm0 = abs(block[i]). */
+ "pcmpeqw %%mm6, %%mm3\n\t"
"pmullw %%mm0, %%mm1\n\t"
"psraw $3, %%mm1\n\t"
"psubw %%mm5, %%mm1\n\t" /* block[i] --; */
+ "pandn %%mm4, %%mm3\n\t" /* fake of pcmpneqw : mm0 != 0 then mm1 = -1 */
"por %%mm5, %%mm1\n\t" /* block[i] |= 1 */
"pmullw %%mm2, %%mm1\n\t" /* change signs again */
- "movq %1, %%mm3\n\t"
- "pcmpeqw %%mm6, %%mm3\n\t"
- "pandn %%mm4, %%mm3\n\t" /* fake of pcmpneqw : mm0 != 0 then mm1 = -1 */
"pand %%mm3, %%mm1\n\t" /* nullify if was zero */
"movq %%mm1, %0"
:"=m"(block[i])
@@ -146,8 +146,9 @@
for(;i<64;i+=4) {
__asm __volatile(
"movq %1, %%mm0\n\t"
- "movq %1, %%mm2\n\t"
"movq %%mm7, %%mm1\n\t"
+ "movq %%mm0, %%mm2\n\t"
+ "movq %%mm0, %%mm3\n\t"
"pcmpgtw %%mm6, %%mm2\n\t"
"pmullw %2, %%mm1\n\t"
"pandn %%mm4, %%mm2\n\t"
@@ -158,13 +159,12 @@
"pmullw %%mm0, %%mm1\n\t"
"psraw $4, %%mm1\n\t"
+ "pcmpeqw %%mm6, %%mm3\n\t"
"psubw %%mm5, %%mm1\n\t" /* block[i] --; */
+ "pandn %%mm4, %%mm3\n\t" /* fake of pcmpneqw : mm0 != 0 then mm1 = -1 */
"por %%mm5, %%mm1\n\t" /* block[i] |= 1 */
"pmullw %%mm2, %%mm1\n\t" /* change signs again */
- "movq %1, %%mm3\n\t"
- "pcmpeqw %%mm6, %%mm3\n\t"
- "pandn %%mm4, %%mm3\n\t" /* fake of pcmpneqw : mm0 != 0 then mm1 = -1 */
"pand %%mm3, %%mm1\n\t" /* nullify if was zero */
"movq %%mm1, %0"
:"=m"(block[i])
More information about the MPlayer-cvslog
mailing list