diff options
Diffstat (limited to 'klibc/klibc/memset.c')
-rw-r--r-- | klibc/klibc/memset.c | 30 |
1 files changed, 0 insertions, 30 deletions
diff --git a/klibc/klibc/memset.c b/klibc/klibc/memset.c deleted file mode 100644 index 522cc59a1e..0000000000 --- a/klibc/klibc/memset.c +++ /dev/null @@ -1,30 +0,0 @@ -/* - * memset.c - */ - -#include <string.h> -#include <stdint.h> - -void *memset(void *dst, int c, size_t n) -{ - char *q = dst; - -#if defined(__i386__) - size_t nl = n >> 2; - asm volatile("cld ; rep ; stosl ; movl %3,%0 ; rep ; stosb" - : "+c" (nl), "+D" (q) - : "a" ((unsigned char)c * 0x01010101U), "r" (n & 3)); -#elif defined(__x86_64__) - size_t nq = n >> 3; - asm volatile("cld ; rep ; stosq ; movl %3,%%ecx ; rep ; stosb" - : "+c" (nq), "+D" (q) - : "a" ((unsigned char)c * 0x0101010101010101U), - "r" ((uint32_t)n & 7)); -#else - while ( n-- ) { - *q++ = c; - } -#endif - - return dst; -} |