asm volatile("movl %1, %%edi\n"
"rep movsb\n" ::"S"(src),
"r"(dest),
asm volatile("movl %1, %%edi\n"
"rep movsb\n" ::"S"(src),
"r"(dest),
if (dest_ptr < src_ptr) {
for (size_t i = 0; i < num; i++) {
*(dest_ptr + i) = *(src_ptr + i);
if (dest_ptr < src_ptr) {
for (size_t i = 0; i < num; i++) {
*(dest_ptr + i) = *(src_ptr + i);