From 29291c8c924ada62bf015aaf70d04616cc2e7314 Mon Sep 17 00:00:00 2001 From: Rene Gollent Date: Mon, 2 Jul 2012 19:42:20 -0400 Subject: [PATCH] Cleanups/optimizations. --- src/system/kernel/arch/x86/arch_x86.S | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/src/system/kernel/arch/x86/arch_x86.S b/src/system/kernel/arch/x86/arch_x86.S index f731299222..d5c51507f7 100644 --- a/src/system/kernel/arch/x86/arch_x86.S +++ b/src/system/kernel/arch/x86/arch_x86.S @@ -278,9 +278,8 @@ FUNCTION(arch_cpu_user_strlcpy): /* If count is now 0, skip straight to null terminating as our loop will otherwise overflow */ - cmp $0,%ecx - jne .L_user_strlcpy_copy_begin - movb $0,(%edi) + jnz .L_user_strlcpy_copy_begin + movb $0,(%edi) jmp .L_user_strlcpy_source_count .L_user_strlcpy_copy_begin: @@ -289,30 +288,24 @@ FUNCTION(arch_cpu_user_strlcpy): /* move data by bytes */ movsb cmpb $0,-1(%esi) - je .L_user_strlcpy_copy_loop_done + je .L_user_strlcpy_source_done loop .L_user_strlcpy_copy_loop -.L_user_strlcpy_copy_loop_done: - /* check if we copied the entire source string */ - cmp $0,%ecx - jne .L_user_strlcpy_source_done - -.L_user_strlcpy_zero_terminate: /* null terminate string */ movb $0,(%edi) - dec %esi + dec %esi /* count remaining bytes in src */ .L_user_strlcpy_source_count: not %ecx - movb $0,%al + xor %al,%al repnz scasb .L_user_strlcpy_source_done: movl %esi,%eax subl 20(%esp),%eax - subl $1,%eax + dec %eax /* restore the old fault handler */ movl %ebx,(%edx)