Texas Instruments TMS320C64X Manuel d'utilisateur Page 110

  • Télécharger
  • Ajouter à mon manuel
  • Imprimer
  • Page
    / 169
  • Table des matières
  • MARQUE LIVRES
  • Noté. / 5. Basé sur avis des utilisateurs
Vue de la page 109
DSP_blk_eswap64
4-82
Endian-Swap a Block of 64-Bit Values
DSP_blk_eswap64
Function void blk_eswap64(void * restrict x, void * restrict r, int nx)
Arguments x[nx] Source data. Must be double-word aligned.
r[nx] Destination array. Must be double-word aligned.
nx Number of 64-bit values to swap. Must be multiple of 2.
Description The data in the x[] array is endian swapped, meaning that the byte-order of the
bytes within each double-word of the r[] array is reversed. This facilitates
moving big-endian data to a little-endian system or vice-versa.
When the r pointer is non-NULL, the endian-swap occurs out-of-place, similar
to a block move. When the r pointer is NULL, the endian-swap occurs in-place,
allowing the swap to occur without using any additional storage.
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_eswap64(void *x, void *r, int nx)
{
int i;
char *_x, *_r;
if (r)
{
_x = (char *)x;
_r = (char *)r;
} else
{
_x = (char *)x;
_r = (char *)r;
}
for (i = 0; i < nx; i++)
{
char t0, t1, t2, t3, t4, t5, t6, t7;
t0 = _x[i*8 + 7];
t1 = _x[i*8 + 6];
Vue de la page 109
1 2 ... 105 106 107 108 109 110 111 112 113 114 115 ... 168 169

Commentaires sur ces manuels

Pas de commentaire