blob: 65f646dae62ec929ee2be262d23ecf238ac9f975 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#include <string.h>
void *memcpy(void *dest, const void *src, uint32_t n) {
unsigned char *d = dest;
const unsigned char *s = src;
for (; n >= 8; n -= 8, d += 8, s += 8) {
*(uint64_t *)d = *(uint64_t *)s;
}
for (; n >= 4; n -= 4, d += 4, s += 4) {
*(uint32_t *)d = *(uint32_t *)s;
}
for (; n >= 2; n -= 2, d += 2, s += 2) {
*(uint16_t *)d = *(uint16_t *)s;
}
for (; n; n--) {
*d++ = *s++;
}
return dest;
}
|