Commit c1eb677e authored by Geoff Simmons's avatar Geoff Simmons

Micro-tweaking wipe().

parent 61abf67e
Pipeline #231 skipped
......@@ -752,23 +752,20 @@ wipe(void * const dst, size_t len, uint8_t val)
volatile uint8_t *p = (volatile uint8_t *)dst;
while (((uintptr_t)p & (sizeof(uint64_t)-1)) && len) {
*p = val;
p++;
*p++ = val;
len--;
}
if (len >= sizeof(uint64_t)) {
volatile uint64_t *p64;
volatile uint64_t *p64 = (volatile void *)p;
uint64_t val64 = (uint64_t)0x0101010101010101 * val;
do {
p64 = (volatile void *)p;
*p64 = val64;
p += sizeof(uint64_t);
*p64++ = val64;
len -= sizeof(uint64_t);
} while (len >= sizeof(uint64_t));
p = (volatile void *)p64;
}
while (len) {
*p = val;
p++;
*p++ = val;
len--;
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment