[Mplayer-cvslog] CVS: main/libac3/mmx srfft_3dnow.c,1.9,1.10 srfftp_3dnow.h,1.4,1.5
Nick Kurshev
nickols_k at users.sourceforge.net
Fri Jun 1 17:56:06 CEST 2001
Update of /cvsroot/mplayer/main/libac3/mmx
In directory usw-pr-cvs1:/tmp/cvs-serv30024/main/libac3/mmx
Modified Files:
srfft_3dnow.c srfftp_3dnow.h
Log Message:
Better insns scheduling and moving out local variables
Index: srfft_3dnow.c
===================================================================
RCS file: /cvsroot/mplayer/main/libac3/mmx/srfft_3dnow.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -r1.9 -r1.10
*** srfft_3dnow.c 2001/05/31 17:58:56 1.9
--- srfft_3dnow.c 2001/06/01 15:56:04 1.10
***************
*** 298,302 ****
--- 298,304 ----
"punpckldq %%mm5,%%mm2\n\t"
#endif
+ "movq 24(%4), %%mm3\n\t"
"pfsub %%mm2, %%mm0\n\t"
+ "movq %%mm3, %%mm4\n\t"
"movq %%mm0, %%mm1\n\t"
"pfmul %%mm6, %%mm0\n\t"
***************
*** 304,312 ****
"pfmul %5, %%mm0\n\t"
"movq %%mm0, %%mm1\n\t"
- "movq 24(%4), %%mm3\n\t"
- "movq %%mm3, %%mm4\n\t"
"pfmul %%mm6, %%mm1\n\t"
- "pfadd %%mm1, %%mm3\n\t"
"pfmul %%mm7, %%mm0\n\t"
"pfadd %%mm0, %%mm4\n\t"
"movq %%mm4, 24(%0)\n\t"
--- 306,312 ----
"pfmul %5, %%mm0\n\t"
"movq %%mm0, %%mm1\n\t"
"pfmul %%mm6, %%mm1\n\t"
"pfmul %%mm7, %%mm0\n\t"
+ "pfadd %%mm1, %%mm3\n\t"
"pfadd %%mm0, %%mm4\n\t"
"movq %%mm4, 24(%0)\n\t"
***************
*** 440,445 ****
{
register complex_t *x2k, *x3k, *x4k, *wB;
- register float a_r, a_i, a1_r, a1_i, u_r, u_i, v_r, v_i;
- complex_t a, a1, u, v;
TRANS_FILL_MM6_MM7_3DNOW();
--- 440,443 ----
***************
*** 471,475 ****
void fft_asmb16(complex_t *x, complex_t *wTB)
{
- complex_t a, a1, u, v;
int k = 2;
--- 469,472 ----
Index: srfftp_3dnow.h
===================================================================
RCS file: /cvsroot/mplayer/main/libac3/mmx/srfftp_3dnow.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** srfftp_3dnow.h 2001/05/31 17:58:56 1.4
--- srfftp_3dnow.h 2001/06/01 15:56:04 1.5
***************
*** 130,146 ****
"pfmul %%mm2, %%mm0\n\t" /* u *= HSQRT2_3DNOW; */\
"movq %6, %%mm1\n\t" /* a1 = A2;*/\
"movq %%mm1, %%mm2\n\t"\
"pfadd %%mm0, %%mm1\n\t" /*A2 = a1 + u;*/\
"pfsub %%mm0, %%mm2\n\t" /*A2 = a1 - u;*/\
"movq %%mm1, %0\n\t"\
"movq %%mm2, %1\n\t"\
! "movq %7, %%mm1\n\t" /* a1 = A6;*/\
! "movq %%mm1, %%mm2\n\t"\
! "movq %%mm3, %%mm4\n\t"\
! "pfmul %%mm6, %%mm4\n\t"/*A6.re = a1.re + v.re;*/\
! "pfadd %%mm4, %%mm1\n\t"/*A6.im = a1.im - v.im;*/\
! "pfmul %%mm7, %%mm3\n\t"/*A14.re = a1.re - v.re;*/\
"pfadd %%mm3, %%mm2\n\t"/*A14.im = a1.im + v.im;*/\
! "movq %%mm1, %2\n\t"\
"movq %%mm2, %3"\
:"=m"(A2), "=m"(A10), "=m"(A6), "=m"(A14)\
--- 130,146 ----
"pfmul %%mm2, %%mm0\n\t" /* u *= HSQRT2_3DNOW; */\
"movq %6, %%mm1\n\t" /* a1 = A2;*/\
+ "movq %7, %%mm5\n\t" /* a1 = A6;*/\
"movq %%mm1, %%mm2\n\t"\
+ "movq %%mm3, %%mm4\n\t"\
"pfadd %%mm0, %%mm1\n\t" /*A2 = a1 + u;*/\
+ "pfmul %%mm6, %%mm4\n\t"/*A6.re = a1.re + v.re;*/\
"pfsub %%mm0, %%mm2\n\t" /*A2 = a1 - u;*/\
+ "pfmul %%mm7, %%mm3\n\t"/*A14.re = a1.re - v.re;*/\
"movq %%mm1, %0\n\t"\
"movq %%mm2, %1\n\t"\
! "movq %%mm5, %%mm2\n\t"\
! "pfadd %%mm4, %%mm5\n\t"/*A6.im = a1.im - v.im;*/\
"pfadd %%mm3, %%mm2\n\t"/*A14.im = a1.im + v.im;*/\
! "movq %%mm5, %2\n\t"\
"movq %%mm2, %3"\
:"=m"(A2), "=m"(A10), "=m"(A6), "=m"(A14)\
***************
*** 170,178 ****
PFNACC_MM("%%mm2","%%mm3")\
"pfacc %%mm0, %%mm0\n\t"\
"punpckldq %%mm0,%%mm2\n\t"/*mm2 = v.re | a.re*/\
"movq %%mm2, %%mm3\n\t"\
"pfmul %%mm7, %%mm3\n\t"\
- "movq %%mm4, %%mm5\n\t"\
- "pfmul %%mm6, %%mm5\n\t"\
"pfadd %%mm3, %%mm5\n\t"\
PSWAP_MM("%%mm5","%%mm3")/* mm5 = v*/\
--- 170,178 ----
PFNACC_MM("%%mm2","%%mm3")\
"pfacc %%mm0, %%mm0\n\t"\
+ "movq %%mm4, %%mm5\n\t"\
"punpckldq %%mm0,%%mm2\n\t"/*mm2 = v.re | a.re*/\
+ "pfmul %%mm6, %%mm5\n\t"\
"movq %%mm2, %%mm3\n\t"\
"pfmul %%mm7, %%mm3\n\t"\
"pfadd %%mm3, %%mm5\n\t"\
PSWAP_MM("%%mm5","%%mm3")/* mm5 = v*/\
***************
*** 183,199 ****
__asm__ __volatile__(\
"movq %4, %%mm0\n\t"/* a1 = A1*/\
"movq %%mm0, %%mm1\n\t"\
"pfadd %%mm4, %%mm0\n\t"/*A1 = a1 + u*/\
"pfsub %%mm4, %%mm1\n\t"/*A9 = a1 - u*/\
"movq %%mm0, %0\n\t"\
"movq %%mm1, %1\n\t"\
- "movq %5, %%mm2\n\t"/* a1 = A5*/\
- "movq %%mm2, %%mm3\n\t"\
- "pfsub %%mm5, %%mm2\n\t"/*A5 = a1 - v*/\
- "pfadd %%mm5, %%mm3\n\t"/*A9 = a1 + v*/\
"movq %%mm2, %2\n\t"\
"movq %%mm3, %3"\
:"=m"(A1), "=m"(A9), "=m"(A5), "=m"(A13)\
! :"0"(A1), "2"(A5), "m"(u), "m"(v)\
:"memory");\
}
--- 183,199 ----
__asm__ __volatile__(\
"movq %4, %%mm0\n\t"/* a1 = A1*/\
+ "movq %5, %%mm2\n\t"/* a1 = A5*/\
"movq %%mm0, %%mm1\n\t"\
+ "movq %%mm2, %%mm3\n\t"\
"pfadd %%mm4, %%mm0\n\t"/*A1 = a1 + u*/\
+ "pfsub %%mm5, %%mm2\n\t"/*A5 = a1 - v*/\
"pfsub %%mm4, %%mm1\n\t"/*A9 = a1 - u*/\
+ "pfadd %%mm5, %%mm3\n\t"/*A9 = a1 + v*/\
"movq %%mm0, %0\n\t"\
"movq %%mm1, %1\n\t"\
"movq %%mm2, %2\n\t"\
"movq %%mm3, %3"\
:"=m"(A1), "=m"(A9), "=m"(A5), "=m"(A13)\
! :"0"(A1), "2"(A5)\
:"memory");\
}
_______________________________________________
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