From: Glauber Costa Date: Tue, 24 Jun 2008 19:51:59 +0000 (-0300) Subject: x86: change testing logic in putuser_64.S. X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=663aa96df32af9c4141ef3179282f95c7537643a;p=openwrt%2Fstaging%2Fblogic.git x86: change testing logic in putuser_64.S. Instead of operating over a register we need to put back into normal state afterwards (the memory position), just sub from rbx, which is trashed anyway. We can save a few instructions. Also, this is the i386 way. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar --- diff --git a/arch/x86/lib/putuser_64.S b/arch/x86/lib/putuser_64.S index ce5fcd5d8c16..a96bd8a5298e 100644 --- a/arch/x86/lib/putuser_64.S +++ b/arch/x86/lib/putuser_64.S @@ -46,48 +46,39 @@ ENDPROC(__put_user_1) ENTRY(__put_user_2) CFI_STARTPROC GET_THREAD_INFO(%rbx) - addq $1,%rcx - jc 20f - cmpq TI_addr_limit(%rbx),%rcx - jae 20f - decq %rcx + mov TI_addr_limit(%rbx),%rbx + sub $1, %rbx + cmpq %rbx ,%rcx + jae bad_put_user 2: movw %ax,(%rcx) xorl %eax,%eax ret -20: decq %rcx - jmp bad_put_user CFI_ENDPROC ENDPROC(__put_user_2) ENTRY(__put_user_4) CFI_STARTPROC GET_THREAD_INFO(%rbx) - addq $3,%rcx - jc 30f - cmpq TI_addr_limit(%rbx),%rcx - jae 30f - subq $3,%rcx + mov TI_addr_limit(%rbx),%rbx + sub $3, %rbx + cmp %rbx, %rcx + jae bad_put_user 3: movl %eax,(%rcx) xorl %eax,%eax ret -30: subq $3,%rcx - jmp bad_put_user CFI_ENDPROC ENDPROC(__put_user_4) ENTRY(__put_user_8) CFI_STARTPROC GET_THREAD_INFO(%rbx) - addq $7,%rcx - jc 40f - cmpq TI_addr_limit(%rbx),%rcx - jae 40f - subq $7,%rcx + mov TI_addr_limit(%rbx),%rbx + sub $7, %rbx + cmp %rbx, %rcx + jae bad_put_user 4: movq %rax,(%rcx) xorl %eax,%eax ret -40: subq $7,%rcx - jmp bad_put_user CFI_ENDPROC ENDPROC(__put_user_8)