diff options
Diffstat (limited to 'kernel/libc/string/memcpy.c')
-rw-r--r-- | kernel/libc/string/memcpy.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/kernel/libc/string/memcpy.c b/kernel/libc/string/memcpy.c index 8b03536..ac7a57b 100644 --- a/kernel/libc/string/memcpy.c +++ b/kernel/libc/string/memcpy.c @@ -4,16 +4,20 @@ void *memcpy(void *dest, const void *src, u32 n) { unsigned char *d = dest; const unsigned char *s = src; - for (; n >= 8; n -= 8, d += 8, s += 8) + for (; n >= 8; n -= 8, d += 8, s += 8) { *(u64 *)d = *(u64 *)s; + } - for (; n >= 4; n -= 4, d += 4, s += 4) + for (; n >= 4; n -= 4, d += 4, s += 4) { *(u32 *)d = *(u32 *)s; + } - for (; n >= 2; n -= 2, d += 2, s += 2) + for (; n >= 2; n -= 2, d += 2, s += 2) { *(u16 *)d = *(u16 *)s; + } - for (; n; n--) + for (; n; n--) { *d++ = *s++; + } return dest; } |