use asm fastcopy only on i386

This commit is contained in:
HappyDOGE 2022-07-28 17:42:21 +03:00
parent 5206f38b9b
commit 786efaa9e8

View file

@ -39,9 +39,7 @@ void FastCopy( byte *pDest, const byte *pSrc, size_t nBytes )
int nBytesFull = nBytes - ( nBytes % BYTES_PER_FULL ); int nBytesFull = nBytes - ( nBytes % BYTES_PER_FULL );
for ( byte *pLimit = pDest + nBytesFull; pDest < pLimit; pDest += BYTES_PER_FULL, pSrc += BYTES_PER_FULL ) for ( byte *pLimit = pDest + nBytesFull; pDest < pLimit; pDest += BYTES_PER_FULL, pSrc += BYTES_PER_FULL )
{ {
#ifdef PLATFORM_64BITS #ifdef __i386__
memcpy( pDest, pSrc, BYTES_PER_FULL);
#else
__asm __asm
{ {
mov esi, pSrc mov esi, pSrc
@ -65,6 +63,8 @@ void FastCopy( byte *pDest, const byte *pSrc, size_t nBytes )
movntps [edi + 96], xmm6 movntps [edi + 96], xmm6
movntps [edi + 112], xmm7 movntps [edi + 112], xmm7
} }
#else
memcpy( pDest, pSrc, BYTES_PER_FULL);
#endif #endif
} }
nBytes -= nBytesFull; nBytes -= nBytesFull;