Commit 92628753 authored by Glauber Costa's avatar Glauber Costa Committed by Ingo Molnar

x86: adapt x86_64 getuser functions.

Instead of doing a sub after the addition, use the
offset directly at the memory operand of the mov instructions.
This is the way i386 do.
Signed-off-by: default avatarGlauber Costa <gcosta@redhat.com>
Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 9aa03881
...@@ -47,49 +47,40 @@ ENDPROC(__get_user_1) ...@@ -47,49 +47,40 @@ ENDPROC(__get_user_1)
ENTRY(__get_user_2) ENTRY(__get_user_2)
CFI_STARTPROC CFI_STARTPROC
GET_THREAD_INFO(%rdx)
addq $1,%rax addq $1,%rax
jc 20f jc bad_get_user
GET_THREAD_INFO(%rdx)
cmpq threadinfo_addr_limit(%rdx),%rax cmpq threadinfo_addr_limit(%rdx),%rax
jae 20f jae bad_get_user
decq %rax 2: movzwl -1(%rax),%edx
2: movzwl (%rax),%edx
xorl %eax,%eax xorl %eax,%eax
ret ret
20: decq %rax
jmp bad_get_user
CFI_ENDPROC CFI_ENDPROC
ENDPROC(__get_user_2) ENDPROC(__get_user_2)
ENTRY(__get_user_4) ENTRY(__get_user_4)
CFI_STARTPROC CFI_STARTPROC
GET_THREAD_INFO(%rdx)
addq $3,%rax addq $3,%rax
jc 30f jc bad_get_user
GET_THREAD_INFO(%rdx)
cmpq threadinfo_addr_limit(%rdx),%rax cmpq threadinfo_addr_limit(%rdx),%rax
jae 30f jae bad_get_user
subq $3,%rax 3: movl -3(%rax),%edx
3: movl (%rax),%edx
xorl %eax,%eax xorl %eax,%eax
ret ret
30: subq $3,%rax
jmp bad_get_user
CFI_ENDPROC CFI_ENDPROC
ENDPROC(__get_user_4) ENDPROC(__get_user_4)
ENTRY(__get_user_8) ENTRY(__get_user_8)
CFI_STARTPROC CFI_STARTPROC
GET_THREAD_INFO(%rdx)
addq $7,%rax addq $7,%rax
jc 40f jc bad_get_user
GET_THREAD_INFO(%rdx)
cmpq threadinfo_addr_limit(%rdx),%rax cmpq threadinfo_addr_limit(%rdx),%rax
jae 40f jae bad_get_user
subq $7,%rax 4: movq -7(%rax),%rdx
4: movq (%rax),%rdx
xorl %eax,%eax xorl %eax,%eax
ret ret
40: subq $7,%rax
jmp bad_get_user
CFI_ENDPROC CFI_ENDPROC
ENDPROC(__get_user_8) ENDPROC(__get_user_8)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment