Browse Source

use asm fastcopy only on i386

pull/85/head
HappyDOGE 2 years ago
parent
commit
786efaa9e8
  1. 6
      materialsystem/cmatqueuedrendercontext.cpp

6
materialsystem/cmatqueuedrendercontext.cpp

@ -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;

Loading…
Cancel
Save