[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