fix memcpy/memset clobbers, etc.

This commit is contained in:
Kevin Lange 2015-05-26 23:38:21 -07:00
parent afb5543771
commit a4d749a91a

View File

@ -19,18 +19,18 @@
((A)[(size_t)(B)/(8*sizeof *(A))] OP (size_t)1<<((size_t)(B)%(8*sizeof *(A))))
void * memcpy(void * restrict dest, const void * restrict src, size_t n) {
asm volatile("cld; rep movsb"
:
asm volatile("rep movsb"
: "=c"((int){0})
: "D"(dest), "S"(src), "c"(n)
: "cc", "memory");
: "flags", "memory");
return dest;
}
void * memset(void * dest, int c, size_t n) {
asm volatile("cld; rep stosb"
:
asm volatile("rep stosb"
: "=c"((int){0})
: "D"(dest), "a"(c), "c"(n)
: "cc", "memory");
: "flags", "memory");
return dest;
}