Update of /cvsroot/pure-data/externals/tb/volctl~ In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7620
Modified Files: volctl~.c Log Message: optimized for inplace operation
Index: volctl~.c =================================================================== RCS file: /cvsroot/pure-data/externals/tb/volctl~/volctl~.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** volctl~.c 24 Jan 2005 21:22:31 -0000 1.4 --- volctl~.c 29 Apr 2005 16:29:40 -0000 1.5 *************** *** 180,188 ****
if (x->x_ticksleft) ! { int n = (int)(w[4]); x->x_ticksleft--; ! asm( ".set T_FLOAT,4 \n" --- 180,189 ----
if (x->x_ticksleft) ! { int n = (int)(w[4]); x->x_ticksleft--; ! ! #if defined(__GNUC__) && (defined(_X86_) || defined(__i386__) || defined(__i586__) || defined(__i686__) ) asm( ".set T_FLOAT,4 \n" *************** *** 254,278 ****
case 1: ! asm( ! ".set T_FLOAT,4 \n" ! "shrl $4, %1 \n"
! "1: \n" ! "movaps (%1), %%xmm0 \n" ! "movaps 4*T_FLOAT(%1), %%xmm1 \n" ! "movaps 8*T_FLOAT(%1), %%xmm2 \n" ! "movaps 12*T_FLOAT(%1), %%xmm3 \n" ! "movaps %%xmm0, (%2) \n" ! "movaps %%xmm1, 4*T_FLOAT(%2) \n" ! "movaps %%xmm2, 8*T_FLOAT(%2) \n" ! "movaps %%xmm3, 12*T_FLOAT(%2) \n" ! "addl $16*T_FLOAT,%1 \n" ! "addl $16*T_FLOAT,%2 \n" ! "loop 1b \n" ! : ! :"c"(w[4]),"r"(in),"r"(out) ! :"%xmm0","%xmm1","%xmm2","%xmm3"); break;
--- 255,280 ----
case 1: ! if (in != out) ! asm( ! ".set T_FLOAT,4 \n" ! "shrl $4, %1 \n"
! "1: \n" ! "movaps (%1), %%xmm0 \n" ! "movaps 4*T_FLOAT(%1), %%xmm1 \n" ! "movaps 8*T_FLOAT(%1), %%xmm2 \n" ! "movaps 12*T_FLOAT(%1), %%xmm3 \n" ! "movaps %%xmm0, (%2) \n" ! "movaps %%xmm1, 4*T_FLOAT(%2) \n" ! "movaps %%xmm2, 8*T_FLOAT(%2) \n" ! "movaps %%xmm3, 12*T_FLOAT(%2) \n" ! "addl $16*T_FLOAT,%1 \n" ! "addl $16*T_FLOAT,%2 \n" ! "loop 1b \n" ! : ! :"c"(w[4]),"r"(in),"r"(out) ! :"%xmm0","%xmm1","%xmm2","%xmm3"); break;