I'm using ADSP21489.
As I understand ADSP21489 support SIMD and the start adress of memory could be odd, but the quantity of elements must be even.
In chapter "Implications of Using SIMD Mode" of Run-Time Library Manual for SHARC Processors mention that the start adress of memory must be even:
"If the variable ptr is initialized using ptr=&a[i] and the value of the scalar i is odd,
then you cannot use ptr to pass an array to a DSP library function."
volatile float X;
volatile float K;
volatile float Y;
int pm *pk = (int pm *)&K;
int dm *px = (int dm *)&X;
int *py = &Y;
for (int i = 0; i < 254; i++)
*py++ = (*pk++)*(*px++);
rmsf( &Y, 254 );
I can't understand about (What Prevents the Compiler From Automatically Exploiting
SIMD Mode of VisualDSP++ 5.0 C/C++ Compiler Manual for SHARC Processors, p. 1-273)
"The code accesses memory locations that are not double-word aligned"
Is it mean that the first address must be even or the quantity of elements must be even?