lkml.org 
[lkml]   [2008]   [Jun]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 19/39] change testing logic in putuser_64.S
    Date
    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 <gcosta@redhat.com>
    ---
    arch/x86/lib/putuser_64.S | 33 ++++++++++++---------------------
    1 files changed, 12 insertions(+), 21 deletions(-)

    diff --git a/arch/x86/lib/putuser_64.S b/arch/x86/lib/putuser_64.S
    index ce5fcd5..a96bd8a 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)

    --
    1.5.5.1


    \
     
     \ /
      Last update: 2008-06-27 23:47    [W:0.023 / U:0.144 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site