diff options
author | Alex Auvolat <alex@adnab.me> | 2016-07-14 11:45:11 +0200 |
---|---|---|
committer | Alex Auvolat <alex@adnab.me> | 2016-07-14 11:45:11 +0200 |
commit | 2f13288a23da4dfaf6c40e1e943f83d8fa43145a (patch) | |
tree | 3b550ad22a00676470ceb2815afd21f42dfd8aae /src/common/libc/string.c | |
parent | 477911553e0443fcafad5bd96c97314aa2f8d9ea (diff) | |
download | kogata-2f13288a23da4dfaf6c40e1e943f83d8fa43145a.tar.gz kogata-2f13288a23da4dfaf6c40e1e943f83d8fa43145a.zip |
Fix sme warnings...
Diffstat (limited to 'src/common/libc/string.c')
-rw-r--r-- | src/common/libc/string.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/common/libc/string.c b/src/common/libc/string.c index 82c290f..d2a5f2f 100644 --- a/src/common/libc/string.c +++ b/src/common/libc/string.c @@ -107,9 +107,17 @@ int memcmp(const void *va, const void *vb, size_t count) { } void *memset(void *dest, int val, size_t count) { + uint8_t uval = (val & 0xFF); + uint32_t wval = (uval<<24)|(uval<<16)|(uval<<8)|uval; + + uint32_t *dest_w = (uint32_t*)dest; + for (size_t i = 0; i < count/4; i++) { + dest_w[i] = wval; + } + uint8_t *dest_c = (uint8_t*)dest; - for (size_t i = 0; i < count; i++) { - dest_c[i] = val; + for (size_t i = count - (count%4); i < count; i++) { + dest_c[i] = uval; } return dest; } |