Skip to content

Commit

Permalink
x86: replace function headers by macros.
Browse files Browse the repository at this point in the history
In putuser_64.S, do it the i386 way, and replace the code
in beginning and end of functions with macros, since it's
always the same thing. Save lines.

Signed-off-by: Glauber Costa <gcosta@redhat.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
Glauber Costa authored and Ingo Molnar committed Jul 9, 2008
1 parent 663aa96 commit 766ed42
Showing 1 changed file with 14 additions and 18 deletions.
32 changes: 14 additions & 18 deletions arch/x86/lib/putuser_64.S
Original file line number Diff line number Diff line change
Expand Up @@ -31,62 +31,58 @@
#include <asm/asm-offsets.h>
#include <asm/thread_info.h>

#define ENTER CFI_STARTPROC ; \
GET_THREAD_INFO(%rbx)
#define EXIT ret ; \
CFI_ENDPROC

.text
ENTRY(__put_user_1)
CFI_STARTPROC
GET_THREAD_INFO(%rbx)
ENTER
cmpq TI_addr_limit(%rbx),%rcx
jae bad_put_user
1: movb %al,(%rcx)
xorl %eax,%eax
ret
CFI_ENDPROC
EXIT
ENDPROC(__put_user_1)

ENTRY(__put_user_2)
CFI_STARTPROC
GET_THREAD_INFO(%rbx)
ENTER
mov TI_addr_limit(%rbx),%rbx
sub $1, %rbx
cmpq %rbx ,%rcx
jae bad_put_user
2: movw %ax,(%rcx)
xorl %eax,%eax
ret
CFI_ENDPROC
EXIT
ENDPROC(__put_user_2)

ENTRY(__put_user_4)
CFI_STARTPROC
GET_THREAD_INFO(%rbx)
ENTER
mov TI_addr_limit(%rbx),%rbx
sub $3, %rbx
cmp %rbx, %rcx
jae bad_put_user
3: movl %eax,(%rcx)
xorl %eax,%eax
ret
CFI_ENDPROC
EXIT
ENDPROC(__put_user_4)

ENTRY(__put_user_8)
CFI_STARTPROC
GET_THREAD_INFO(%rbx)
ENTER
mov TI_addr_limit(%rbx),%rbx
sub $7, %rbx
cmp %rbx, %rcx
jae bad_put_user
4: movq %rax,(%rcx)
xorl %eax,%eax
ret
CFI_ENDPROC
EXIT
ENDPROC(__put_user_8)

bad_put_user:
CFI_STARTPROC
movq $(-EFAULT),%rax
ret
CFI_ENDPROC
EXIT
END(bad_put_user)

.section __ex_table,"a"
Expand Down

0 comments on commit 766ed42

Please sign in to comment.