[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