X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=bootcensus;a=blobdiff_plain;f=src%2Flibc%2Fstring_asm.s;h=ce9b19ae3283c572c81de55ec7adf344a552cf9e;hp=7bb6f40bebe20bc76ddeb1b6d4f1853ba13b71ea;hb=dc4024a91c78d31e33a53ead656f7f0fe761810e;hpb=5a961b914da78d534e8e2dc6bfb5103114dbff54 diff --git a/src/libc/string_asm.s b/src/libc/string_asm.s index 7bb6f40..ce9b19a 100644 --- a/src/libc/string_asm.s +++ b/src/libc/string_asm.s @@ -34,6 +34,7 @@ memset: mov %edi, %edx and $3, %edx + jz msmain jmp *mspre_tab(,%edx,4) mspre_tab: .long msmain, mspre1, mspre2, mspre3 @@ -84,6 +85,7 @@ memset16: mov %edi, %edx and $3, %edx + jz ms16main jmp *ms16pre_tab(,%edx,4) ms16pre_tab: .long ms16main, ms16pre1, ms16pre2, ms16pre3 @@ -145,27 +147,12 @@ memcpy: cmp $0, %ecx jz mcdone - mov %edi, %edx - and $3, %edx - jmp *mcpre_tab(,%edx,4) - -mcpre_tab: .long mcmain, mcpre1, mcpre2, mcpre3 -mcpre1: movsw - dec %ecx -mcpre2: movsw - dec %ecx -mcpre3: movsw - dec %ecx - jz mcdone - -mcmain: - push %ecx + mov %ecx, %edx shr $2, %ecx rep movsl - pop %ecx - and $3, %ecx - jmp *mcpost_tab(,%ecx,4) + and $3, %edx + jmp *mcpost_tab(,%edx,4) mcpost_tab: .long mcdone, mcpost1, mcpost2, mcpost3 mcpost3:movsb