X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Futil.h;h=c95bcf53bf0ff838087fb0e13dd0a49f613f14b8;hb=d54a3962dcb42f9921be75cf3754525ecef2bab6;hp=d56bcf5f323612626e72a99af21348f89fefa700;hpb=03eaea2400647375400c3bc4d927c399e142a901;p=eradicate diff --git a/src/util.h b/src/util.h index d56bcf5..c95bcf5 100644 --- a/src/util.h +++ b/src/util.h @@ -30,6 +30,7 @@ static INLINE int32_t cround64(double val) extern uint32_t perf_start_count, perf_interval_count; #ifdef __WATCOMC__ +#ifdef USE_MMX void memcpy64(void *dest, void *src, int count); #pragma aux memcpy64 = \ "cploop:" \ @@ -40,7 +41,11 @@ void memcpy64(void *dest, void *src, int count); "dec ecx" \ "jnz cploop" \ "emms" \ - parm[ebx][edx][ecx]; + parm[ebx][edx][ecx] \ + modify[8087]; +#else +#define memcpy64(dest, src, count) memcpy(dest, src, (count) << 3) +#endif void perf_start(void); #pragma aux perf_start = \ @@ -64,6 +69,7 @@ void debug_break(void); #endif #ifdef __GNUC__ +#ifdef USE_MMX #define memcpy64(dest, src, count) asm volatile ( \ "0:\n\t" \ "movq (%1), %%mm0\n\t" \ @@ -73,7 +79,11 @@ void debug_break(void); "dec %2\n\t" \ "jnz 0b\n\t" \ "emms\n\t" \ - :: "r"(dest), "r"(src), "r"(count)) + :: "r"(dest), "r"(src), "r"(count) \ + : "%mm0") +#else +#define memcpy64(dest, src, count) memcpy(dest, src, (count) << 3) +#endif #define perf_start() asm volatile ( \ "xor %%eax, %%eax\n" \