[PD-cvs] externals/tb/volctl~ volctl~.c,1.3,1.4

Tim Blechmann timblech at users.sourceforge.net
Mon Jan 24 22:22:35 CET 2005


Update of /cvsroot/pure-data/externals/tb/volctl~
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15338

Modified Files:
	volctl~.c 
Log Message:
improvement for factor 1

Index: volctl~.c
===================================================================
RCS file: /cvsroot/pure-data/externals/tb/volctl~/volctl~.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** volctl~.c	8 Jan 2005 22:13:53 -0000	1.3
--- volctl~.c	24 Jan 2005 21:22:31 -0000	1.4
***************
*** 54,58 ****
  void *volctl_new(t_symbol *s, int argc, t_atom *argv)
  {
!     if (argc > 2) post("volctl~: extra arguments ignored");
  
      t_volctl *x = (t_volctl *)pd_new(volctl_class);
--- 54,58 ----
  void *volctl_new(t_symbol *s, int argc, t_atom *argv)
  {
!     if (argc > 3) post("volctl~: extra arguments ignored");
  
      t_volctl *x = (t_volctl *)pd_new(volctl_class);
***************
*** 172,175 ****
--- 172,176 ----
  }
  
+ 
  static t_int *volctl_perf_simd(t_int *w)
  {
***************
*** 230,234 ****
      else
      {
! 		if(x->x_target)
  			asm(
  				".set T_FLOAT,4                          \n"
--- 231,281 ----
      else
      {
! 		switch(x->x_target)
! 		{
! 		case 0:
! 			asm(
! 				".set T_FLOAT,4                          \n"
! 			
! 				"xorps     %%xmm0, %%xmm0                \n"
! 				"shrl      $4, %1                        \n"
! 			
! 				"1:                                      \n"
! 				"movaps    %%xmm0, (%0)                  \n" 
! 				"movaps    %%xmm0, 4*T_FLOAT(%0)         \n"
! 				"movaps    %%xmm0, 8*T_FLOAT(%0)         \n"
! 				"movaps    %%xmm0, 12*T_FLOAT(%0)        \n"
! 				"addl      $16*T_FLOAT, %0               \n"
! 				"loop      1b                            \n"
! 				:
! 				:"r"(out),
! 				"c"(w[4])
! 				: "%xmm0");
! 			break;
! 
! 		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;
! 
! 		default:
  			asm(
  				".set T_FLOAT,4                          \n"
***************
*** 258,280 ****
  				"c"(w[4]),"r"(&(t_float)(x->x_target))
  				: "%xmm0", "%xmm1","%xmm2","%xmm3","%xmm4");
! 		else
! 			asm(
! 				".set T_FLOAT,4                          \n"
! 			
! 				"xorps     %%xmm0, %%xmm0                \n"
! 				"shrl      $4, %1                        \n"
! 			
! 				"1:                                      \n"
! 				"movaps    %%xmm0, (%0)                  \n" 
! 				"movaps    %%xmm0, 4*T_FLOAT(%0)         \n"
! 				"movaps    %%xmm0, 8*T_FLOAT(%0)         \n"
! 				"movaps    %%xmm0, 12*T_FLOAT(%0)        \n"
! 				"addl      $16*T_FLOAT, %0               \n"
! 				"loop      1b                            \n"
! 				:
! 				:"r"(out),
! 				"c"(w[4])
! 				: "%xmm0");
! 			
      }
      return (w+5);
--- 305,309 ----
  				"c"(w[4]),"r"(&(t_float)(x->x_target))
  				: "%xmm0", "%xmm1","%xmm2","%xmm3","%xmm4");
! 		}
      }
      return (w+5);





More information about the Pd-cvs mailing list