From 2b8d4b4aa6c0e423bf4512c09261dca225954ba0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Tue, 13 Jan 2009 17:03:08 +0000 Subject: really made array access 64bit able svn path=/trunk/externals/iem/iem_spec2/; revision=10531 --- src/spec2_tab_conv~.c | 7 +++--- src/spec2_tabreceive_enable~.c | 44 ++++++++++++++++++---------------- src/spec2_tabreceive~.c | 54 +++++++++++++++++++++++------------------- 3 files changed, 57 insertions(+), 48 deletions(-) diff --git a/src/spec2_tab_conv~.c b/src/spec2_tab_conv~.c index 42d279c..9b596ce 100644 --- a/src/spec2_tab_conv~.c +++ b/src/spec2_tab_conv~.c @@ -39,7 +39,8 @@ static t_int *spec2_tab_conv_tilde_perform(t_int *w) t_float *out = (t_float *)(w[2]); t_spec2_tab_conv_tilde *x = (t_spec2_tab_conv_tilde *)(w[3]); t_float sum=0.0f; - t_float *vec1, *vec2, *vec3, *win; + t_float *vec1, *vec2, *vec3; + iemarray_t*win; int i, m, n = (int)(w[4])+1; int j, ws=x->x_winsize; @@ -61,7 +62,7 @@ static t_int *spec2_tab_conv_tilde_perform(t_int *w) { sum = 0.0f; for(j=0; jx_winsize = (int)(atom_getint(argv)); x->x_spec = (t_float *)0; - x->x_beg_array = (t_float *)0; + x->x_beg_array = (iemarray_t *)0; x->x_blocksize = 0; x->x_has_changed = 1; outlet_new(&x->x_obj, &s_signal); diff --git a/src/spec2_tabreceive_enable~.c b/src/spec2_tabreceive_enable~.c index 54efc38..96377db 100644 --- a/src/spec2_tabreceive_enable~.c +++ b/src/spec2_tabreceive_enable~.c @@ -38,11 +38,13 @@ static t_int *spec2_tabreceive_enable_tilde_perform(t_int *w) t_spec2_tabreceive_enable_tilde *x = (t_spec2_tabreceive_enable_tilde *)(w[1]); t_float *out = (t_float *)(w[2]); int n = w[3]+1; - t_float *vec = x->x_vec; + iemarray_t *vec = x->x_vec; if(vec && x->x_enable) - while(n--) - *out++ = *vec++; + while(n--) { + *out++ = iemarray_getfloat(vec, 0); + vec++; + } else while(n--) *out++ = 0.0f; @@ -54,34 +56,34 @@ static t_int *spec2_tabreceive_enable_tilde_perf16(t_int *w) t_spec2_tabreceive_enable_tilde *x = (t_spec2_tabreceive_enable_tilde *)(w[1]); t_float *out = (t_float *)(w[2]); int n = w[3]; - t_float *vec = x->x_vec; + iemarray_t *vec = x->x_vec; if(vec && x->x_enable) { while(n) { - out[0] = vec[0]; - out[1] = vec[1]; - out[2] = vec[2]; - out[3] = vec[3]; - out[4] = vec[4]; - out[5] = vec[5]; - out[6] = vec[6]; - out[7] = vec[7]; - out[8] = vec[8]; - out[9] = vec[9]; - out[10] = vec[10]; - out[11] = vec[11]; - out[12] = vec[12]; - out[13] = vec[13]; - out[14] = vec[14]; - out[15] = vec[15]; + out[0] = iemarray_getfloat(vec, 0); + out[1] = iemarray_getfloat(vec, 1); + out[2] = iemarray_getfloat(vec, 2); + out[3] = iemarray_getfloat(vec, 3); + out[4] = iemarray_getfloat(vec, 4); + out[5] = iemarray_getfloat(vec, 5); + out[6] = iemarray_getfloat(vec, 6); + out[7] = iemarray_getfloat(vec, 7); + out[8] = iemarray_getfloat(vec, 8); + out[9] = iemarray_getfloat(vec, 9); + out[10] = iemarray_getfloat(vec, 10); + out[11] = iemarray_getfloat(vec, 11); + out[12] = iemarray_getfloat(vec, 12); + out[13] = iemarray_getfloat(vec, 13); + out[14] = iemarray_getfloat(vec, 14); + out[15] = iemarray_getfloat(vec, 15); vec += 16; out += 16; n -= 16; } - out[0] = vec[0]; + out[0] = iemarray_getfloat(vec, 0); } else { diff --git a/src/spec2_tabreceive~.c b/src/spec2_tabreceive~.c index f0b3577..4c5d3c4 100644 --- a/src/spec2_tabreceive~.c +++ b/src/spec2_tabreceive~.c @@ -28,14 +28,20 @@ static t_int *spec2_tabreceive_tilde_perform(t_int *w) t_float *out = (t_float *)(w[2]); int n = w[3]+1; iemarray_t *vec = x->x_vec; - if(vec) - while(n--) + while(n--) { +#ifdef __x86_64__ + t_word wp=*vec++; + *out++=wp.w_float; +#else *out++ = *vec++; - else - while(n--) - *out++ = 0.0f; - return(w+4); +#endif + } + else + while(n--) + *out++ = 0.0f; + return(w+4); + } static t_int *spec2_tabreceive_tilde_perf16(t_int *w) @@ -49,28 +55,28 @@ static t_int *spec2_tabreceive_tilde_perf16(t_int *w) { while(n) { - out[0] = vec[0]; - out[1] = vec[1]; - out[2] = vec[2]; - out[3] = vec[3]; - out[4] = vec[4]; - out[5] = vec[5]; - out[6] = vec[6]; - out[7] = vec[7]; - out[8] = vec[8]; - out[9] = vec[9]; - out[10] = vec[10]; - out[11] = vec[11]; - out[12] = vec[12]; - out[13] = vec[13]; - out[14] = vec[14]; - out[15] = vec[15]; - + out[0] = iemarray_getfloat(vec, 0); + out[1] = iemarray_getfloat(vec, 1); + out[2] = iemarray_getfloat(vec, 2); + out[3] = iemarray_getfloat(vec, 3); + out[4] = iemarray_getfloat(vec, 4); + out[5] = iemarray_getfloat(vec, 5); + out[6] = iemarray_getfloat(vec, 6); + out[7] = iemarray_getfloat(vec, 7); + out[8] = iemarray_getfloat(vec, 8); + out[9] = iemarray_getfloat(vec, 9); + out[10] = iemarray_getfloat(vec, 10); + out[11] = iemarray_getfloat(vec, 11); + out[12] = iemarray_getfloat(vec, 12); + out[13] = iemarray_getfloat(vec, 13); + out[14] = iemarray_getfloat(vec, 14); + out[15] = iemarray_getfloat(vec, 15); + vec += 16; out += 16; n -= 16; } - out[0] = vec[0]; + out[0] = iemarray_getfkiat(vec, 0); } else { -- cgit v1.2.1