beautypg.com

Texas Instruments TMS320C64X User Manual

Page 112

background image

DSP_blk_move

4-84

Block Move (Overlapping)

DSP_blk_move

Function

void DSP_blk_move(short * x, short * r, int nx)

Arguments

x [nx]

Block of data to be moved.

r [nx]

Destination of block of data.

nx

Number of elements in block. Must be multiple of 8 and

32.

Description

This routine moves nx 16-bit elements from one memory location pointed to
by x to another pointed to by r. The source and destination blocks can be
overlapped.

Algorithm

This is the C equivalent of the assembly code without restrictions. Note that
the assembly code is hand optimized and restrictions may apply.

void DSP_blk_move(short *x, short *r, int nx)
{
int i;

if( r < x )
{
for (I = 0; I < nx; i++)
r[i] = x[i];
} else
{
for (I = nx−1; I >= 0; i−−)
r[i] = x[i];
}
}

Special Requirements nx must be a multiple of 8 and

32.

Implementation Notes

-

Twin input and output pointers are used.

-

Bank Conflicts: No bank conflicts occur.

-

Interruptibility: The code is fully interruptible.

Benchmarks

Cycles

nx/4+18

Codesize

112 bytes