From 2f629cd14dfee9c000b100c41530e8831907677b Mon Sep 17 00:00:00 2001 From: Heiko Schaefer Date: Thu, 9 Jan 2003 19:28:43 +0000 Subject: memcpy tweaking by Jonathan Brown CVS patchset: 3848 CVS date: 2003/01/09 19:28:43 --- src/xine-utils/memcpy.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src') diff --git a/src/xine-utils/memcpy.c b/src/xine-utils/memcpy.c index a04b9437f..c2f3b2a84 100644 --- a/src/xine-utils/memcpy.c +++ b/src/xine-utils/memcpy.c @@ -168,10 +168,15 @@ static void * sse_memcpy(void * to, const void * from, size_t len) /* PREFETCH has effect even for MOVSB instruction ;) */ __asm__ __volatile__ ( " prefetchnta (%0)\n" + " prefetchnta 32(%0)\n" " prefetchnta 64(%0)\n" + " prefetchnta 96(%0)\n" " prefetchnta 128(%0)\n" + " prefetchnta 160(%0)\n" " prefetchnta 192(%0)\n" + " prefetchnta 224(%0)\n" " prefetchnta 256(%0)\n" + " prefetchnta 288(%0)\n" : : "r" (from) ); if(len >= MIN_LEN) @@ -193,6 +198,7 @@ static void * sse_memcpy(void * to, const void * from, size_t len) { __asm__ __volatile__ ( "prefetchnta 320(%0)\n" + "prefetchnta 352(%0)\n" "movups (%0), %%xmm0\n" "movups 16(%0), %%xmm1\n" "movups 32(%0), %%xmm2\n" @@ -215,6 +221,7 @@ static void * sse_memcpy(void * to, const void * from, size_t len) { __asm__ __volatile__ ( "prefetchnta 320(%0)\n" + "prefetchnta 352(%0)\n" "movaps (%0), %%xmm0\n" "movaps 16(%0), %%xmm1\n" "movaps 32(%0), %%xmm2\n" @@ -300,10 +307,15 @@ void * mmx2_memcpy(void * to, const void * from, size_t len) /* PREFETCH has effect even for MOVSB instruction ;) */ __asm__ __volatile__ ( " prefetchnta (%0)\n" + " prefetchnta 32(%0)\n" " prefetchnta 64(%0)\n" + " prefetchnta 96(%0)\n" " prefetchnta 128(%0)\n" + " prefetchnta 160(%0)\n" " prefetchnta 192(%0)\n" + " prefetchnta 224(%0)\n" " prefetchnta 256(%0)\n" + " prefetchnta 288(%0)\n" : : "r" (from) ); if(len >= MIN_LEN) @@ -323,6 +335,7 @@ void * mmx2_memcpy(void * to, const void * from, size_t len) { __asm__ __volatile__ ( "prefetchnta 320(%0)\n" + "prefetchnta 352(%0)\n" "movq (%0), %%mm0\n" "movq 8(%0), %%mm1\n" "movq 16(%0), %%mm2\n" -- cgit v1.2.3