mirror of
https://github.com/UberGames/ioef.git
synced 2025-01-31 13:00:46 +00:00
use memcpy for copying stuff around to fix alignment problems
This commit is contained in:
parent
9bd6709e10
commit
81c15bc41d
1 changed files with 30 additions and 78 deletions
|
@ -333,28 +333,14 @@ long RllDecodeStereoToMono(unsigned char *from,short *to,unsigned int size,char
|
||||||
|
|
||||||
static void move8_32( byte *src, byte *dst, int spl )
|
static void move8_32( byte *src, byte *dst, int spl )
|
||||||
{
|
{
|
||||||
double *dsrc, *ddst;
|
int i;
|
||||||
int dspl;
|
|
||||||
|
|
||||||
dsrc = (double *)src;
|
for(i = 0; i < 8; ++i)
|
||||||
ddst = (double *)dst;
|
{
|
||||||
dspl = spl>>3;
|
memcpy(dst, src, 32);
|
||||||
|
src += spl;
|
||||||
ddst[0] = dsrc[0]; ddst[1] = dsrc[1]; ddst[2] = dsrc[2]; ddst[3] = dsrc[3];
|
dst += spl;
|
||||||
dsrc += dspl; ddst += dspl;
|
}
|
||||||
ddst[0] = dsrc[0]; ddst[1] = dsrc[1]; ddst[2] = dsrc[2]; ddst[3] = dsrc[3];
|
|
||||||
dsrc += dspl; ddst += dspl;
|
|
||||||
ddst[0] = dsrc[0]; ddst[1] = dsrc[1]; ddst[2] = dsrc[2]; ddst[3] = dsrc[3];
|
|
||||||
dsrc += dspl; ddst += dspl;
|
|
||||||
ddst[0] = dsrc[0]; ddst[1] = dsrc[1]; ddst[2] = dsrc[2]; ddst[3] = dsrc[3];
|
|
||||||
dsrc += dspl; ddst += dspl;
|
|
||||||
ddst[0] = dsrc[0]; ddst[1] = dsrc[1]; ddst[2] = dsrc[2]; ddst[3] = dsrc[3];
|
|
||||||
dsrc += dspl; ddst += dspl;
|
|
||||||
ddst[0] = dsrc[0]; ddst[1] = dsrc[1]; ddst[2] = dsrc[2]; ddst[3] = dsrc[3];
|
|
||||||
dsrc += dspl; ddst += dspl;
|
|
||||||
ddst[0] = dsrc[0]; ddst[1] = dsrc[1]; ddst[2] = dsrc[2]; ddst[3] = dsrc[3];
|
|
||||||
dsrc += dspl; ddst += dspl;
|
|
||||||
ddst[0] = dsrc[0]; ddst[1] = dsrc[1]; ddst[2] = dsrc[2]; ddst[3] = dsrc[3];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
|
@ -367,20 +353,14 @@ static void move8_32( byte *src, byte *dst, int spl )
|
||||||
|
|
||||||
static void move4_32( byte *src, byte *dst, int spl )
|
static void move4_32( byte *src, byte *dst, int spl )
|
||||||
{
|
{
|
||||||
double *dsrc, *ddst;
|
int i;
|
||||||
int dspl;
|
|
||||||
|
|
||||||
dsrc = (double *)src;
|
for(i = 0; i < 4; ++i)
|
||||||
ddst = (double *)dst;
|
{
|
||||||
dspl = spl>>3;
|
memcpy(dst, src, 16);
|
||||||
|
src += spl;
|
||||||
ddst[0] = dsrc[0]; ddst[1] = dsrc[1];
|
dst += spl;
|
||||||
dsrc += dspl; ddst += dspl;
|
}
|
||||||
ddst[0] = dsrc[0]; ddst[1] = dsrc[1];
|
|
||||||
dsrc += dspl; ddst += dspl;
|
|
||||||
ddst[0] = dsrc[0]; ddst[1] = dsrc[1];
|
|
||||||
dsrc += dspl; ddst += dspl;
|
|
||||||
ddst[0] = dsrc[0]; ddst[1] = dsrc[1];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
|
@ -393,28 +373,14 @@ static void move4_32( byte *src, byte *dst, int spl )
|
||||||
|
|
||||||
static void blit8_32( byte *src, byte *dst, int spl )
|
static void blit8_32( byte *src, byte *dst, int spl )
|
||||||
{
|
{
|
||||||
double *dsrc, *ddst;
|
int i;
|
||||||
int dspl;
|
|
||||||
|
|
||||||
dsrc = (double *)src;
|
for(i = 0; i < 8; ++i)
|
||||||
ddst = (double *)dst;
|
{
|
||||||
dspl = spl>>3;
|
memcpy(dst, src, 32);
|
||||||
|
src += 32;
|
||||||
ddst[0] = dsrc[0]; ddst[1] = dsrc[1]; ddst[2] = dsrc[2]; ddst[3] = dsrc[3];
|
dst += spl;
|
||||||
dsrc += 4; ddst += dspl;
|
}
|
||||||
ddst[0] = dsrc[0]; ddst[1] = dsrc[1]; ddst[2] = dsrc[2]; ddst[3] = dsrc[3];
|
|
||||||
dsrc += 4; ddst += dspl;
|
|
||||||
ddst[0] = dsrc[0]; ddst[1] = dsrc[1]; ddst[2] = dsrc[2]; ddst[3] = dsrc[3];
|
|
||||||
dsrc += 4; ddst += dspl;
|
|
||||||
ddst[0] = dsrc[0]; ddst[1] = dsrc[1]; ddst[2] = dsrc[2]; ddst[3] = dsrc[3];
|
|
||||||
dsrc += 4; ddst += dspl;
|
|
||||||
ddst[0] = dsrc[0]; ddst[1] = dsrc[1]; ddst[2] = dsrc[2]; ddst[3] = dsrc[3];
|
|
||||||
dsrc += 4; ddst += dspl;
|
|
||||||
ddst[0] = dsrc[0]; ddst[1] = dsrc[1]; ddst[2] = dsrc[2]; ddst[3] = dsrc[3];
|
|
||||||
dsrc += 4; ddst += dspl;
|
|
||||||
ddst[0] = dsrc[0]; ddst[1] = dsrc[1]; ddst[2] = dsrc[2]; ddst[3] = dsrc[3];
|
|
||||||
dsrc += 4; ddst += dspl;
|
|
||||||
ddst[0] = dsrc[0]; ddst[1] = dsrc[1]; ddst[2] = dsrc[2]; ddst[3] = dsrc[3];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
|
@ -424,23 +390,16 @@ static void blit8_32( byte *src, byte *dst, int spl )
|
||||||
* Description:
|
* Description:
|
||||||
*
|
*
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
#define movs double
|
|
||||||
static void blit4_32( byte *src, byte *dst, int spl )
|
static void blit4_32( byte *src, byte *dst, int spl )
|
||||||
{
|
{
|
||||||
movs *dsrc, *ddst;
|
int i;
|
||||||
int dspl;
|
|
||||||
|
|
||||||
dsrc = (movs *)src;
|
for(i = 0; i < 4; ++i)
|
||||||
ddst = (movs *)dst;
|
{
|
||||||
dspl = spl>>3;
|
memmove(dst, src, 16);
|
||||||
|
src += 16;
|
||||||
ddst[0] = dsrc[0]; ddst[1] = dsrc[1];
|
dst += spl;
|
||||||
dsrc += 2; ddst += dspl;
|
}
|
||||||
ddst[0] = dsrc[0]; ddst[1] = dsrc[1];
|
|
||||||
dsrc += 2; ddst += dspl;
|
|
||||||
ddst[0] = dsrc[0]; ddst[1] = dsrc[1];
|
|
||||||
dsrc += 2; ddst += dspl;
|
|
||||||
ddst[0] = dsrc[0]; ddst[1] = dsrc[1];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
|
@ -453,15 +412,8 @@ static void blit4_32( byte *src, byte *dst, int spl )
|
||||||
|
|
||||||
static void blit2_32( byte *src, byte *dst, int spl )
|
static void blit2_32( byte *src, byte *dst, int spl )
|
||||||
{
|
{
|
||||||
double *dsrc, *ddst;
|
memcpy(dst, src, 8);
|
||||||
int dspl;
|
memcpy(dst+spl, src+8, 8);
|
||||||
|
|
||||||
dsrc = (double *)src;
|
|
||||||
ddst = (double *)dst;
|
|
||||||
dspl = spl>>3;
|
|
||||||
|
|
||||||
ddst[0] = dsrc[0];
|
|
||||||
ddst[dspl] = dsrc[1];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
|
|
Loading…
Reference in a new issue