diff options
Diffstat (limited to 'src/xine-utils/memcpy.c')
-rw-r--r-- | src/xine-utils/memcpy.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/xine-utils/memcpy.c b/src/xine-utils/memcpy.c index b7611ed86..cea2b5b0b 100644 --- a/src/xine-utils/memcpy.c +++ b/src/xine-utils/memcpy.c @@ -39,6 +39,8 @@ #ifdef HAVE_SYS_TIMES_H #include <sys/times.h> +#else +#include <time.h> #endif #include <stdlib.h> @@ -124,7 +126,7 @@ quote of the day: /* for small memory blocks (<256 bytes) this version is faster */ #define small_memcpy(to,from,n)\ {\ -register unsigned long int dummy;\ +register uintptr_t dummy;\ __asm__ __volatile__(\ "rep; movsb"\ :"=&D"(to), "=&S"(from), "=&c"(dummy)\ @@ -154,7 +156,7 @@ int d0, d1, d2; "movsb\n" "2:" : "=&c" (d0), "=&D" (d1), "=&S" (d2) - :"0" (n/4), "q" (n),"1" ((long) to),"2" ((long) from) + :"0" (n/4), "q" (n),"1" ((uintptr_t) to),"2" ((uintptr_t) from) : "memory"); return (to); @@ -191,9 +193,9 @@ static void * sse_memcpy(void * to, const void * from, size_t len) if(len >= MIN_LEN) { - register unsigned long int delta; + register uintptr_t delta; /* Align destinition to MMREG_SIZE -boundary */ - delta = ((unsigned long int)to)&(SSE_MMREG_SIZE-1); + delta = ((uintptr_t)to)&(SSE_MMREG_SIZE-1); if(delta) { delta=SSE_MMREG_SIZE-delta; @@ -202,7 +204,7 @@ static void * sse_memcpy(void * to, const void * from, size_t len) } i = len >> 6; /* len/64 */ len&=63; - if(((unsigned long)from) & 15) + if(((uintptr_t)from) & 15) /* if SRC is misaligned */ for(; i>0; i--) { @@ -263,9 +265,9 @@ static void * mmx_memcpy(void * to, const void * from, size_t len) if(len >= MMX1_MIN_LEN) { - register unsigned long int delta; + register uintptr_t delta; /* Align destinition to MMREG_SIZE -boundary */ - delta = ((unsigned long int)to)&(MMX_MMREG_SIZE-1); + delta = ((uintptr_t)to)&(MMX_MMREG_SIZE-1); if(delta) { delta=MMX_MMREG_SIZE-delta; @@ -328,9 +330,9 @@ static void * mmx2_memcpy(void * to, const void * from, size_t len) if(len >= MIN_LEN) { - register unsigned long int delta; + register uintptr_t delta; /* Align destinition to MMREG_SIZE -boundary */ - delta = ((unsigned long int)to)&(MMX_MMREG_SIZE-1); + delta = ((uintptr_t)to)&(MMX_MMREG_SIZE-1); if(delta) { delta=MMX_MMREG_SIZE-delta; @@ -428,7 +430,7 @@ static uint64_t rdtsc(int config_flags) struct tms tp; return times(&tp); #else - return ((uint64_t)0); + return clock(); #endif /* HAVE_SYS_TIMES_H */ } #endif |