[Mplayer-cvslog] CVS: main/libac3/downmix downmix_3dnow.S,1.2,1.3

Nick Kurshev nickols_k at users.sourceforge.net
Tue Jun 12 17:57:25 CEST 2001


Update of /cvsroot/mplayer/main/libac3/downmix
In directory usw-pr-cvs1:/tmp/cvs-serv1001/main/libac3/downmix

Modified Files:
	downmix_3dnow.S 
Log Message:
Partial loops unrolling

Index: downmix_3dnow.S
===================================================================
RCS file: /cvsroot/mplayer/main/libac3/downmix/downmix_3dnow.S,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** downmix_3dnow.S	2001/05/17 17:45:23	1.2
--- downmix_3dnow.S	2001/06/12 15:57:23	1.3
***************
*** 57,61 ****
  	movd	8(%ebx), %mm7    /* slev */
  	punpckldq %mm7, %mm7     /* slev | slev */
! 
  .loop:	
  	movq	(%eax), %mm0 	 /* left */
--- 57,61 ----
  	movd	8(%ebx), %mm7    /* slev */
  	punpckldq %mm7, %mm7     /* slev | slev */
! .align 16
  .loop:	
  	movq	(%eax), %mm0 	 /* left */
***************
*** 115,118 ****
--- 115,119 ----
  	movd	8(%ebx), %mm7    /* slev */
  	punpckldq %mm7, %mm7     /* slev | slev */
+ .align 16
  .loop3:	
  	movq	(%eax), %mm0 	 /* left */
***************
*** 171,175 ****
  	movd	8(%ebx), %mm7    /* slev */
  	punpckldq %mm7, %mm7     /* slev | slev */
! 
  .loop4:	
  	movq	(%eax), %mm0 	 /* left */
--- 172,176 ----
  	movd	8(%ebx), %mm7    /* slev */
  	punpckldq %mm7, %mm7     /* slev | slev */
! .align 16
  .loop4:	
  	movq	(%eax), %mm0 	 /* left */
***************
*** 229,233 ****
  	movd	8(%ebx), %mm7    /* slev */
  	punpckldq %mm7, %mm7     /* slev | slev */
! 
  .loop5:	
  	movq	(%eax), %mm0 	 /* left */
--- 230,234 ----
  	movd	8(%ebx), %mm7    /* slev */
  	punpckldq %mm7, %mm7     /* slev | slev */
! .align 16
  .loop5:	
  	movq	(%eax), %mm0 	 /* left */
***************
*** 283,287 ****
  	movd	4(%ebx), %mm6    /* clev */
  	punpckldq %mm6, %mm6     /* clev | clev */
! 
  .loop6:	
  	movq	(%eax), %mm0 	 /* left */
--- 284,288 ----
  	movd	4(%ebx), %mm6    /* clev */
  	punpckldq %mm6, %mm6     /* clev | clev */
! .align 16
  .loop6:	
  	movq	(%eax), %mm0 	 /* left */
***************
*** 331,357 ****
  	movl 12(%ebp), %ebx	/* left */
  	movl 16(%ebp), %edx	/* right */
! 	movl $128, %ecx
! 
  .loop1:
  	movq (%ebx), %mm0	/* l1 | l0 */
  	movq (%edx), %mm1	/* r1 | r0 */
  	movq %mm0, %mm2		/* l1 | l0 */
! 	psrlq $32, %mm2		/* l1 */
! 	movq %mm1, %mm3		/* r1 | r0 */
! 	psrlq $32, %mm3		/* r1 */
  	punpckldq %mm1, %mm0	/* r0 | l0 */
! 	punpckldq %mm3, %mm2	/* r1 | l1 */
  
  	pf2id %mm0, %mm0	/* r0 | l0 --> int_32 */
! 
  	pf2id %mm2, %mm2	/* r1 | l1 --> int_32 */
! 
  	packssdw %mm2, %mm0	/* r1 l1 r0 l0 --> int_16 */
- 
  	movq %mm0, (%eax)
! 	addl $8, %eax
! 	addl $8, %ebx
! 	addl $8, %edx
  
  	decl %ecx
  	jnz .loop1
--- 332,362 ----
  	movl 12(%ebp), %ebx	/* left */
  	movl 16(%ebp), %edx	/* right */
! 	movl $64, %ecx
! .align 16
  .loop1:
  	movq (%ebx), %mm0	/* l1 | l0 */
  	movq (%edx), %mm1	/* r1 | r0 */
+ 	movq 8(%ebx), %mm3
+ 	movq 8(%edx), %mm4
  	movq %mm0, %mm2		/* l1 | l0 */
! 	movq %mm3, %mm5
  	punpckldq %mm1, %mm0	/* r0 | l0 */
! 	punpckldq %mm4, %mm3
! 	punpckhdq %mm1, %mm2	/* r1 | l1 */
! 	punpckhdq %mm4, %mm5
  
  	pf2id %mm0, %mm0	/* r0 | l0 --> int_32 */
! 	pf2id %mm3, %mm3
  	pf2id %mm2, %mm2	/* r1 | l1 --> int_32 */
! 	pf2id %mm5, %mm5
  	packssdw %mm2, %mm0	/* r1 l1 r0 l0 --> int_16 */
  	movq %mm0, (%eax)
! 	packssdw %mm5, %mm3
! 	movq %mm3, 8(%eax)
  
+ 	addl $16, %eax
+ 	addl $16, %ebx
+ 	addl $16, %edx
+ 
  	decl %ecx
  	jnz .loop1
***************
*** 386,402 ****
  	movl 12(%ebp), %ebx	/* left */
  	punpckldq %mm7, %mm7    /* sqrt2 | sqrt2 */
! 	movl $128, %ecx
! 
  .loop2:
  	movq  (%ebx), %mm0	/* c1 | c0 */
  	pfmul %mm7, %mm0
  
  	pf2id %mm0, %mm0	/* c1 c0 --> int_32 */
  
  	packssdw %mm0, %mm0	/* c1 c1 c0 c0 --> int_16 */
  
  	movq %mm0, (%eax)
! 	addl $8, %eax
! 	addl $8, %ebx
  
  	decl %ecx
--- 391,412 ----
  	movl 12(%ebp), %ebx	/* left */
  	punpckldq %mm7, %mm7    /* sqrt2 | sqrt2 */
! 	movl $64, %ecx
! .align 16
  .loop2:
  	movq  (%ebx), %mm0	/* c1 | c0 */
+ 	movq 8(%ebx), %mm1
  	pfmul %mm7, %mm0
+ 	pfmul %mm7, %mm1
  
  	pf2id %mm0, %mm0	/* c1 c0 --> int_32 */
+ 	pf2id %mm1, %mm1
  
  	packssdw %mm0, %mm0	/* c1 c1 c0 c0 --> int_16 */
+ 	packssdw %mm1, %mm1
  
  	movq %mm0, (%eax)
! 	movq %mm1, 8(%eax)
! 	addl $16, %eax
! 	addl $16, %ebx
  
  	decl %ecx


_______________________________________________
Mplayer-cvslog mailing list
Mplayer-cvslog at lists.sourceforge.net
http://lists.sourceforge.net/lists/listinfo/mplayer-cvslog



More information about the MPlayer-cvslog mailing list