diff --git a/src/mem.h b/src/mem.h index 1850839..fc01493 100644 --- a/src/mem.h +++ b/src/mem.h @@ -1,9 +1,15 @@ #ifndef MEM_H #define MEM_H -static inline void * memcpy(void * dest, const void * src, size_t n) +static inline void memcpy(void * dest, const void * src, size_t n) { - return __builtin_memcpy(dest, src, n); + uint32_t r0, r1, r2; + __asm__ __volatile__ ( + "cld\n\t" + "rep movsb" + : "=&c" (r0), "=&S" (r1), "=&D" (r2) + : "2" (dest), "1" (src), "0" (n) + : "memory"); } static inline void * memmove(void * dest, const void * src, size_t count)