[PD-cvs] pd/src d_ctl.c,1.3.4.8,1.3.4.9 d_delay.c,1.2.4.4,1.2.4.5 g_array.c,1.3.4.3,1.3.4.4 g_canvas.h,1.3.4.2,1.3.4.3 g_text.c,1.5.4.1,1.5.4.2 m_pd.h,1.4.4.7,1.4.4.8 m_simd.c,1.1.4.4,1.1.4.5 m_simd_def.h,1.1.4.1,1.1.4.2 m_simd_sse_gcc.h,1.1.4.6,1.1.4.7 m_simd_sse_vc.h,1.1.4.7,1.1.4.8 m_simd_ve_gcc.h,1.1.4.5,1.1.4.6 s_audio.c,1.5.4.6,1.5.4.7 s_audio_asio.cpp,1.1.4.20,1.1.4.21 s_main.c,1.7.4.6,1.7.4.7

Tim Blechmann timblech at users.sourceforge.net
Fri Jan 14 19:34:16 CET 2005


Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4786

Modified Files:
      Tag: devel_0_38
	d_ctl.c d_delay.c g_array.c g_canvas.h g_text.c m_pd.h 
	m_simd.c m_simd_def.h m_simd_sse_gcc.h m_simd_sse_vc.h 
	m_simd_ve_gcc.h s_audio.c s_audio_asio.cpp s_main.c 
Log Message:
first simd cleanup

Index: s_audio_asio.cpp
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/s_audio_asio.cpp,v
retrieving revision 1.1.4.20
retrieving revision 1.1.4.21
diff -C2 -d -r1.1.4.20 -r1.1.4.21
*** s_audio_asio.cpp	14 Dec 2004 09:48:08 -0000	1.1.4.20
--- s_audio_asio.cpp	14 Jan 2005 18:34:13 -0000	1.1.4.21
***************
*** 57,63 ****
  
  /* public function prototypes */
! extern "C" void asio_open_audio(int naudioindev, int *audioindev, int nchindev, 
! 					 int *chindev, int naudiooutdev, int *audiooutdev,
! 					 int nchoutdev, int *choutdev, int srate, int scheduler);
  extern "C" void asio_close_audio(void);
  extern "C" void asio_getdevs(char *indevlist, int *nindevs,
--- 57,63 ----
  
  /* public function prototypes */
! // extern "C" void asio_open_audio(int naudioindev, int *audioindev, int nchindev, 
! // 					 int *chindev, int naudiooutdev, int *audiooutdev,
! // 					 int nchoutdev, int *choutdev, int srate, int scheduler);
  extern "C" void asio_close_audio(void);
  extern "C" void asio_getdevs(char *indevlist, int *nindevs,

Index: s_main.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_main.c,v
retrieving revision 1.7.4.6
retrieving revision 1.7.4.7
diff -C2 -d -r1.7.4.6 -r1.7.4.7
*** s_main.c	3 Jan 2005 17:46:40 -0000	1.7.4.6
--- s_main.c	14 Jan 2005 18:34:14 -0000	1.7.4.7
***************
*** 8,12 ****
   */
  
! char pd_version[] = "Pd version 0.38.0 devel\n";
  char pd_compiletime[] = __TIME__;
  char pd_compiledate[] = __DATE__;
--- 8,12 ----
   */
  
! char pd_version[] = "Pd version 0.38.1 devel\n";
  char pd_compiletime[] = __TIME__;
  char pd_compiledate[] = __DATE__;
***************
*** 61,65 ****
  static t_symbol *sys_guidir;
  t_namelist *sys_externlist;
! static t_namelist *sys_openlist;
  static t_namelist *sys_messagelist;
  static int sys_version;
--- 61,65 ----
  static t_symbol *sys_guidir;
  t_namelist *sys_externlist;
! static t_namelist *sys_openlist=NULL;
  static t_namelist *sys_messagelist;
  static int sys_version;

Index: m_simd.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/m_simd.c,v
retrieving revision 1.1.4.4
retrieving revision 1.1.4.5
diff -C2 -d -r1.1.4.4 -r1.1.4.5
*** m_simd.c	11 Jan 2005 21:41:14 -0000	1.1.4.4
--- m_simd.c	14 Jan 2005 18:34:13 -0000	1.1.4.5
***************
*** 37,41 ****
  }
  
- 
  void copyvec(t_float *dst,const t_float *src,int n)
  {
--- 37,40 ----
***************
*** 112,182 ****
  }
  
- float env_tilde_accum_8(t_float* in, t_float* hp, t_int n)
- {
- 	float ret = 0;
- 	int i;
- 	
- 	n>>=3;
- 	for (i = 0; i !=n; ++i)
- 	{
- 		in--;
- 		ret += *hp++ * (*in * *in);
- 		in--;
- 		ret += *hp++ * (*in * *in);
- 		in--;
- 		ret += *hp++ * (*in * *in);
- 		in--;
- 		ret += *hp++ * (*in * *in);
- 		in--;
- 		ret += *hp++ * (*in * *in);
- 		in--;
- 		ret += *hp++ * (*in * *in);
- 		in--;
- 		ret += *hp++ * (*in * *in);
- 		in--;
- 		ret += *hp++ * (*in * *in);
- 	}
- 	return ret;
- }
- 
- float peakvec(t_float* vec, t_int n, t_float cur_max)
- {
- 	int i;
- 	for (i = 0; i != n; ++i)
- 	{
- 		float f = *vec++;
- 		if (f > cur_max) cur_max = f;
- 		else if (-f > cur_max) cur_max = -f;
- 	}
- 	return cur_max;
- }
- 
- void line_tilde_slope(t_float* out, t_int n, t_float* value,
- 					  t_float* slopes, t_float* slopestep)
- {
- 	n>>=3;
- 	t_float slope = slopes[0];
- 	t_float f = *value;
- 	while (n--)
- 	{
- 		*out++ = f;
- 		f += slope;
- 		*out++ = f;
- 		f += slope;
- 		*out++ = f;
- 		f += slope;
- 		*out++ = f;
- 		f += slope;
- 		*out++ = f;
- 		f += slope;
- 		*out++ = f;
- 		f += slope;
- 		*out++ = f;
- 		f += slope;
- 		*out++ = f;
- 		f += slope;
- 	}
- }
- 
  
  #ifdef DONTUSESIMD
--- 111,114 ----
***************
*** 227,246 ****
  }
  
- float env_tilde_accum_simd(t_float* in, t_float* hp, t_int n)
- {
- 	return env_tilde_accum_8(in, hp, n);
- }
- 
- float peakvec_simd(t_float* vec, t_int n, t_float cur_max)
- {
- 	return peakvec(vec, n, cur_max);
- }
- 
- 
- /* float testfloat_simd(t_float f) */
- /* { */
- /* 	testfloat(f); */
- /* } */
- 
  #endif /* DONTUSESIMD */
  
--- 159,162 ----

Index: s_audio.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_audio.c,v
retrieving revision 1.5.4.6
retrieving revision 1.5.4.7
diff -C2 -d -r1.5.4.6 -r1.5.4.7
*** s_audio.c	11 Jan 2005 21:41:14 -0000	1.5.4.6
--- s_audio.c	14 Jan 2005 18:34:13 -0000	1.5.4.7
***************
*** 68,74 ****
  extern int sys_callbackscheduler;
  
- float peakvec_simd(t_float* vec, t_int n, t_float cur_max);
  float peakvec(t_float* vec, t_int n, t_float cur_max);
- 
  static float (*peak_fp)(t_float*, t_int, t_float) = peakvec;
  
--- 68,72 ----
***************
*** 458,461 ****
--- 456,473 ----
  }
  
+ /* tb: default value of peak_fp {*/
+ float peakvec(t_float* vec, t_int n, t_float cur_max)
+ {
+ 	int i;
+ 	for (i = 0; i != n; ++i)
+ 	{
+ 		float f = *vec++;
+ 		if (f > cur_max) cur_max = f;
+ 		else if (-f > cur_max) cur_max = -f;
+ 	}
+ 	return cur_max;
+ }
+ /* } */
+ 
  int sys_send_dacs(void)
  {

Index: g_text.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_text.c,v
retrieving revision 1.5.4.1
retrieving revision 1.5.4.2
diff -C2 -d -r1.5.4.1 -r1.5.4.2
*** g_text.c	5 Nov 2004 14:27:46 -0000	1.5.4.1
--- g_text.c	14 Jan 2005 18:34:13 -0000	1.5.4.2
***************
*** 753,762 ****
                  "black");
          }
!         else
!         {
!             sys_vgui(".x%lx.c delete %lx.l\n", glist_getcanvas(glist), x);
!             sys_unqueuegui(x);
!         }
      }
  }
  
--- 753,760 ----
                  "black");
          }
!         else sys_vgui(".x%lx.c delete %lx.l\n", glist_getcanvas(glist), x);
      }
+     if (!vis)
+         sys_unqueuegui(x);
  }
  

Index: d_ctl.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/d_ctl.c,v
retrieving revision 1.3.4.8
retrieving revision 1.3.4.9
diff -C2 -d -r1.3.4.8 -r1.3.4.9
*** d_ctl.c	14 Jan 2005 17:33:19 -0000	1.3.4.8
--- d_ctl.c	14 Jan 2005 18:34:12 -0000	1.3.4.9
***************
*** 108,112 ****
      int x_retarget;
  	float* x_slopes; /* tb: for simd-optimized line */
! 	float x_slopestep;  /* tb: 4*x->x_inc */
  } t_line;
  
--- 108,112 ----
      int x_retarget;
  	float* x_slopes; /* tb: for simd-optimized line */
! 	float x_slopestep; /* tb: 4*x->x_inc */
  } t_line;
  
***************
*** 147,150 ****
--- 147,177 ----
  
  /* tb: vectorized / simd version { */
+ static void line_tilde_slope(t_float* out, t_int n, t_float* value,
+ 							 t_float* slopes, t_float* slopestep)
+ {
+ 	t_float slope = slopes[0];
+ 	t_float f = *value;
+ 	n>>=3;
+ 	while (n--)
+ 	{
+ 		*out++ = f;
+ 		f += slope;
+ 		*out++ = f;
+ 		f += slope;
+ 		*out++ = f;
+ 		f += slope;
+ 		*out++ = f;
+ 		f += slope;
+ 		*out++ = f;
+ 		f += slope;
+ 		*out++ = f;
+ 		f += slope;
+ 		*out++ = f;
+ 		f += slope;
+ 		*out++ = f;
+ 		f += slope;
+ 	}
+ }
+ 
  static t_int *line_tilde_perf8(t_int *w)
  {
***************
*** 169,194 ****
      {
          float f = x->x_value;
! 		float slope = x->x_inc;
! 		n >>= 3;
!         while (n--) 
! 		{ 
! 			*out++ = f;
! 			f += slope;
! 			*out++ = f;
! 			f += slope;
! 			*out++ = f;
! 			f += slope;
! 			*out++ = f;
! 			f += slope;
! 			*out++ = f;
! 			f += slope;
! 			*out++ = f;
! 			f += slope;
! 			*out++ = f;
! 			f += slope;
! 			*out++ = f;
! 			f += slope;
! 		}
! 
          x->x_value += x->x_biginc;
          x->x_ticksleft--;
--- 196,200 ----
      {
          float f = x->x_value;
! 		line_tilde_slope_simd(out, n, &x->x_value, x->x_slopes, &x->x_slopestep);
          x->x_value += x->x_biginc;
          x->x_ticksleft--;
***************
*** 232,238 ****
      {
          float f = x->x_value;
- 
  		line_tilde_slope_simd(out, n, &x->x_value, x->x_slopes, &x->x_slopestep);
- 
          x->x_value += x->x_biginc;
          x->x_ticksleft--;
--- 238,242 ----
***************
*** 732,736 ****
  
  /* tb: loop unrolling and simd */
! float env_tilde_accum_8(t_float* in, t_float* hp, t_int n);
  
  static t_int *env_tilde_perf8(t_int *w)
--- 736,767 ----
  
  /* tb: loop unrolling and simd */
! static float env_tilde_accum_8(t_float* in, t_float* hp, t_int n)
! {
! 	float ret = 0;
! 	int i;
! 	
! 	n>>=3;
! 	for (i = 0; i !=n; ++i)
! 	{
! 		in--;
! 		ret += *hp++ * (*in * *in);
! 		in--;
! 		ret += *hp++ * (*in * *in);
! 		in--;
! 		ret += *hp++ * (*in * *in);
! 		in--;
! 		ret += *hp++ * (*in * *in);
! 		in--;
! 		ret += *hp++ * (*in * *in);
! 		in--;
! 		ret += *hp++ * (*in * *in);
! 		in--;
! 		ret += *hp++ * (*in * *in);
! 		in--;
! 		ret += *hp++ * (*in * *in);
! 	}
! 	return ret;
! }
! 
  
  static t_int *env_tilde_perf8(t_int *w)

Index: m_pd.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_pd.h,v
retrieving revision 1.4.4.7
retrieving revision 1.4.4.8
diff -C2 -d -r1.4.4.7 -r1.4.4.8
*** m_pd.h	11 Jan 2005 21:41:14 -0000	1.4.4.7
--- m_pd.h	14 Jan 2005 18:34:13 -0000	1.4.4.8
***************
*** 671,675 ****
  EXTERN void copyvec_simd_unalignedsrc(t_float *dst,const t_float *src,int n);
  
! /* general, non-simd functions */
  EXTERN void copyvec(t_float *dst,const t_float *src,int n);
  EXTERN void addvec(t_float *dst,const t_float *src,int n);
--- 671,675 ----
  EXTERN void copyvec_simd_unalignedsrc(t_float *dst,const t_float *src,int n);
  
! /* not vectorized, not simd functions */
  EXTERN void copyvec(t_float *dst,const t_float *src,int n);
  EXTERN void addvec(t_float *dst,const t_float *src,int n);

Index: g_array.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_array.c,v
retrieving revision 1.3.4.3
retrieving revision 1.3.4.4
diff -C2 -d -r1.3.4.3 -r1.3.4.4
*** g_array.c	14 Dec 2004 09:32:43 -0000	1.3.4.3
--- g_array.c	14 Jan 2005 18:34:13 -0000	1.3.4.4
***************
*** 976,1012 ****
  
  
- /* /\* add user to t_garray list *\/ */
- /* static void garray_adduser(t_garray *x, int *size, t_float **vec) */
- /* { */
- /* 	t_arrayuser * list = x->a_user */
- /* 	t_arrayuser * elem = getbytes (sizeof (t_arrayuser)); */
- 	
- /* 	elem->n_ptr = size; */
- /* 	elem->vec_prt = vec; */
- /* 	elem->next = NULL; */
- 	
- /* 	while(list->next != NULL) list = list->next; */
- 	
- /* 	list->next = elem; */
- 
- /* 	return; */
- /* } */
- 
- /* /\* add user to t_garray list *\/ */
- /* static void garray_updateusers(t_garray *x) */
- /* { */
- /* 	t_arrayuser * list = x->a_user */
- /* 	t_arrayuser * elem = getbytes (sizeof (t_arrayuser)); */
- 	
- /* 	elem->n_ptr = size; */
- /* 	elem->vec_prt = vec; */
- /* 	elem->next = NULL; */
- 	
- /* 	while(list->next != NULL) list = list->next; */
- 	
- /* 	list->next = elem; */
- 
- /* 	return; */
- /* } */
  
      /* routine that checks if we're just an array of floats and if
--- 976,979 ----
***************
*** 1031,1036 ****
      else
      {
- /* 		garray_adduser(x, size, vec); */
- 
          *size = garray_npoints(x);
          *vec =  (float *)garray_vec(x);
--- 998,1001 ----

Index: g_canvas.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_canvas.h,v
retrieving revision 1.3.4.2
retrieving revision 1.3.4.3
diff -C2 -d -r1.3.4.2 -r1.3.4.3
*** g_canvas.h	14 Dec 2004 09:36:08 -0000	1.3.4.2
--- g_canvas.h	14 Jan 2005 18:34:13 -0000	1.3.4.3
***************
*** 215,226 ****
  
  
- /* /\* tb: for easy updating when array changes *\/ */
- /* typedef struct _arrayuser */
- /* { */
- /* 	char** vec_prt;           /\* pointer pointing to _array.a_vec *\/ */
- /* 	t_int*   n_prt;             /\* pointer pointing to _array.a_n *\/ */
- /* 	struct _arrayusers* next;  /\* next element in list *\/ */
- /* } t_arrayuser; */
- 
  struct _array
  {
--- 215,218 ----
***************
*** 232,236 ****
      t_gpointer a_gp;    /* pointer to scalar or array element we're in */
      t_gstub *a_stub;
- /* 	t_arrayuser * a_user; */
  };
  
--- 224,227 ----

Index: m_simd_sse_gcc.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/m_simd_sse_gcc.h,v
retrieving revision 1.1.4.6
retrieving revision 1.1.4.7
diff -C2 -d -r1.1.4.6 -r1.1.4.7
*** m_simd_sse_gcc.h	11 Jan 2005 21:41:14 -0000	1.1.4.6
--- m_simd_sse_gcc.h	14 Jan 2005 18:34:13 -0000	1.1.4.7
***************
*** 44,51 ****
  t_int *sigrsqrt_perf_simd(t_int *w);
  
! float sumvec_simd(t_float* in, t_int n);
  
! //#define sum_vecsimd                sumvec_8
! #define sigwrap_perf_simd          sigwrap_perform  /* SIMD not implemented */
  
  #endif /* __M_SIMD_SSE_GCC_H */
--- 44,55 ----
  t_int *sigrsqrt_perf_simd(t_int *w);
  
! /* functions in s_audio.c */
! float peakvec_simd(t_float* vec, t_int n, t_float cur_max);
  
! /* SIMD not implemented */
! #define sigwrap_perf_simd          sigwrap_perform
! 
! /* random dsp: */
! float sumvec_simd(t_float* in, t_int n);
  
  #endif /* __M_SIMD_SSE_GCC_H */

Index: m_simd_sse_vc.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/m_simd_sse_vc.h,v
retrieving revision 1.1.4.7
retrieving revision 1.1.4.8
diff -C2 -d -r1.1.4.7 -r1.1.4.8
*** m_simd_sse_vc.h	12 Jan 2005 15:20:25 -0000	1.1.4.7
--- m_simd_sse_vc.h	14 Jan 2005 18:34:13 -0000	1.1.4.8
***************
*** 41,49 ****
  t_int *sigrsqrt_perf_simd(t_int *w);
  
! #define sum_vecsimd             sumvec_8         /* SIMD not implemented */
! #define env_tilde_accum_simd    env_tilde_accum_8 /* SIMD not implemented */
! #define copyvec_simd_unalignedsrc copyvec_8      /* SIMD not implemented */
! #define sigwrap_perf_simd       sigwrap_perform  /* SIMD not implemented */
! #define line_tilde_slope_simd   line_tilde_slope /* SIMD not implemented */
  
  
--- 41,53 ----
  t_int *sigrsqrt_perf_simd(t_int *w);
  
! /* functions in s_audio.c */
! #define peakvec_simd            peakvec
! 
! /* SIMD not implemented: */
! #define sum_vecsimd                sumvec_8
! #define env_tilde_accum_simd       env_tilde_accum_8
! #define copyvec_simd_unalignedsrc  copyvec_8
! #define sigwrap_perf_simd          sigwrap_perform
! #define line_tilde_slope_simd      line_tilde_slope
  
  

Index: m_simd_def.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/m_simd_def.h,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -C2 -d -r1.1.4.1 -r1.1.4.2
*** m_simd_def.h	5 Nov 2004 13:33:19 -0000	1.1.4.1
--- m_simd_def.h	14 Jan 2005 18:34:13 -0000	1.1.4.2
***************
*** 20,23 ****
--- 20,25 ----
  /* functions in d_ctl.c */
  #define sig_tilde_perf_simd     sig_tilde_perf8
+ #define sigwrap_perf_simd       sigwrap_perform
+ #define line_tilde_slope_simd   line_tilde_slope
  
  /* functions in d_arithmetic.c */
***************
*** 42,44 ****
--- 44,51 ----
  #define sigrsqrt_perf_simd      sigrsqrt_perform /* SIMD not implemented */
  
+ /* functions in s_audio.c */
+ #define peakvec_simd            peakvec
+ 
+ #define sum_vecsimd             sumvec_8
+ 
  #endif /* __M_SIMD_DEF_H */

Index: m_simd_ve_gcc.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/m_simd_ve_gcc.h,v
retrieving revision 1.1.4.5
retrieving revision 1.1.4.6
diff -C2 -d -r1.1.4.5 -r1.1.4.6
*** m_simd_ve_gcc.h	12 Jan 2005 15:18:33 -0000	1.1.4.5
--- m_simd_ve_gcc.h	14 Jan 2005 18:34:13 -0000	1.1.4.6
***************
*** 41,49 ****
  t_int *sigrsqrt_perf_simd(t_int *w);
  
! #define env_tilde_accum_simd       env_tilde_accum_8 /* SIMD not implemented */
! #define copyvec_simd_unalignedsrc  copyvec_8 /* SIMD not implemented */
! #define sum_vecsimd                sumvec_8 /* SIMD not implemented */
! #define line_tilde_slope_simd      line_tilde_slope /* SIMD not implemented */
! #define peakvec_simd               peakvec /* SIMD not implemented */
  
  #endif /* __M_SIMD_VE_GCC_H */
--- 41,51 ----
  t_int *sigrsqrt_perf_simd(t_int *w);
  
! /* SIMD not implemented */
! #define env_tilde_accum_simd       env_tilde_accum_8
! #define copyvec_simd_unalignedsrc  copyvec_8
! #define sum_vecsimd                sumvec_8
! #define line_tilde_slope_simd      line_tilde_slope
! #define peakvec_simd               peakvec
! 
  
  #endif /* __M_SIMD_VE_GCC_H */

Index: d_delay.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/d_delay.c,v
retrieving revision 1.2.4.4
retrieving revision 1.2.4.5
diff -C2 -d -r1.2.4.4 -r1.2.4.5
*** d_delay.c	11 Jan 2005 21:41:14 -0000	1.2.4.4
--- d_delay.c	14 Jan 2005 18:34:13 -0000	1.2.4.5
***************
*** 8,12 ****
  
  #include "m_simd.h"
- #define DEL_SIMD
  
  extern int ugen_getsortno(void);
--- 8,11 ----
***************
*** 68,74 ****
      nsamps += ((- nsamps) & (SAMPBLK - 1));
      nsamps += DEFDELVS;
! #ifdef DEL_SIMD
! 	nsamps += (SIMD_BYTEALIGN - nsamps) % SIMD_BYTEALIGN; 
  #endif
      x->x_cspace.c_n = nsamps;
      x->x_cspace.c_vec =
--- 67,75 ----
      nsamps += ((- nsamps) & (SAMPBLK - 1));
      nsamps += DEFDELVS;
! 
! #ifdef SIMD_BYTEALIGN
! 	nsamps += (SIMD_BYTEALIGN - nsamps) % SIMD_BYTEALIGN; /* tb: for simd */
  #endif
+ 
      x->x_cspace.c_n = nsamps;
      x->x_cspace.c_vec =





More information about the Pd-cvs mailing list