Преглед изворни кода

x86: use macros from asm.h.

In putuser_32.S and putuser_64.S, replace things like .quad, .long,
and explicit references to [r|e]ax for the apropriate macros
in asm/asm.h.

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>
Glauber Costa пре 17 година
родитељ
комит
2528de431d
3 измењених фајлова са 45 додато и 41 уклоњено
  1. 22 21
      arch/x86/lib/putuser_32.S
  2. 21 20
      arch/x86/lib/putuser_64.S
  3. 2 0
      include/asm-x86/asm.h

+ 22 - 21
arch/x86/lib/putuser_32.S

@@ -11,6 +11,7 @@
 #include <linux/linkage.h>
 #include <linux/linkage.h>
 #include <asm/dwarf2.h>
 #include <asm/dwarf2.h>
 #include <asm/thread_info.h>
 #include <asm/thread_info.h>
+#include <asm/asm.h>
 
 
 
 
 /*
 /*
@@ -26,50 +27,50 @@
  */
  */
 
 
 #define ENTER	CFI_STARTPROC ; \
 #define ENTER	CFI_STARTPROC ; \
-		GET_THREAD_INFO(%ebx)
+		GET_THREAD_INFO(%_ASM_BX)
 #define EXIT	ret ; \
 #define EXIT	ret ; \
 		CFI_ENDPROC
 		CFI_ENDPROC
 
 
 .text
 .text
 ENTRY(__put_user_1)
 ENTRY(__put_user_1)
 	ENTER
 	ENTER
-	cmp TI_addr_limit(%ebx),%ecx
+	cmp TI_addr_limit(%_ASM_BX),%_ASM_CX
 	jae bad_put_user
 	jae bad_put_user
-1:	movb %al,(%ecx)
+1:	movb %al,(%_ASM_CX)
 	xor %eax,%eax
 	xor %eax,%eax
 	EXIT
 	EXIT
 ENDPROC(__put_user_1)
 ENDPROC(__put_user_1)
 
 
 ENTRY(__put_user_2)
 ENTRY(__put_user_2)
 	ENTER
 	ENTER
-	mov TI_addr_limit(%ebx),%ebx
-	sub $1,%ebx
-	cmp %ebx,%ecx
+	mov TI_addr_limit(%_ASM_BX),%_ASM_BX
+	sub $1,%_ASM_BX
+	cmp %_ASM_BX,%_ASM_CX
 	jae bad_put_user
 	jae bad_put_user
-2:	movw %ax,(%ecx)
+2:	movw %ax,(%_ASM_CX)
 	xor %eax,%eax
 	xor %eax,%eax
 	EXIT
 	EXIT
 ENDPROC(__put_user_2)
 ENDPROC(__put_user_2)
 
 
 ENTRY(__put_user_4)
 ENTRY(__put_user_4)
 	ENTER
 	ENTER
-	mov TI_addr_limit(%ebx),%ebx
-	sub $3,%ebx
-	cmp %ebx,%ecx
+	mov TI_addr_limit(%_ASM_BX),%_ASM_BX
+	sub $3,%_ASM_BX
+	cmp %_ASM_BX,%_ASM_CX
 	jae bad_put_user
 	jae bad_put_user
-3:	movl %eax,(%ecx)
+3:	movl %eax,(%_ASM_CX)
 	xor %eax,%eax
 	xor %eax,%eax
 	EXIT
 	EXIT
 ENDPROC(__put_user_4)
 ENDPROC(__put_user_4)
 
 
 ENTRY(__put_user_8)
 ENTRY(__put_user_8)
 	ENTER
 	ENTER
-	mov TI_addr_limit(%ebx),%ebx
-	sub $7,%ebx
-	cmp %ebx,%ecx
+	mov TI_addr_limit(%_ASM_BX),%_ASM_BX
+	sub $7,%_ASM_BX
+	cmp %_ASM_BX,%_ASM_CX
 	jae bad_put_user
 	jae bad_put_user
-4:	movl %eax,(%ecx)
-5:	movl %edx,4(%ecx)
+4:	movl %_ASM_AX,(%_ASM_CX)
+5:	movl %edx,4(%_ASM_CX)
 	xor %eax,%eax
 	xor %eax,%eax
 	EXIT
 	EXIT
 ENDPROC(__put_user_8)
 ENDPROC(__put_user_8)
@@ -81,9 +82,9 @@ bad_put_user:
 END(bad_put_user)
 END(bad_put_user)
 
 
 .section __ex_table,"a"
 .section __ex_table,"a"
-	.long 1b,bad_put_user
-	.long 2b,bad_put_user
-	.long 3b,bad_put_user
-	.long 4b,bad_put_user
-	.long 5b,bad_put_user
+	_ASM_PTR 1b,bad_put_user
+	_ASM_PTR 2b,bad_put_user
+	_ASM_PTR 3b,bad_put_user
+	_ASM_PTR 4b,bad_put_user
+	_ASM_PTR 5b,bad_put_user
 .previous
 .previous

+ 21 - 20
arch/x86/lib/putuser_64.S

@@ -30,64 +30,65 @@
 #include <asm/errno.h>
 #include <asm/errno.h>
 #include <asm/asm-offsets.h>
 #include <asm/asm-offsets.h>
 #include <asm/thread_info.h>
 #include <asm/thread_info.h>
+#include <asm/asm.h>
 
 
 #define ENTER   CFI_STARTPROC ; \
 #define ENTER   CFI_STARTPROC ; \
-                GET_THREAD_INFO(%rbx)
+                GET_THREAD_INFO(%_ASM_BX)
 #define EXIT    ret ; \
 #define EXIT    ret ; \
                 CFI_ENDPROC
                 CFI_ENDPROC
 
 
 	.text
 	.text
 ENTRY(__put_user_1)
 ENTRY(__put_user_1)
 	ENTER
 	ENTER
-	cmp TI_addr_limit(%rbx),%rcx
+	cmp TI_addr_limit(%_ASM_BX),%_ASM_CX
 	jae bad_put_user
 	jae bad_put_user
-1:	movb %al,(%rcx)
+1:	movb %al,(%_ASM_CX)
 	xor %eax,%eax
 	xor %eax,%eax
 	EXIT
 	EXIT
 ENDPROC(__put_user_1)
 ENDPROC(__put_user_1)
 
 
 ENTRY(__put_user_2)
 ENTRY(__put_user_2)
 	ENTER
 	ENTER
-	mov TI_addr_limit(%rbx),%rbx
-	sub  $1, %rbx
-	cmp %rbx ,%rcx
+	mov TI_addr_limit(%_ASM_BX),%_ASM_BX
+	sub  $1, %_ASM_BX
+	cmp %_ASM_BX ,%_ASM_CX
 	jae  bad_put_user
 	jae  bad_put_user
-2:	movw %ax,(%rcx)
+2:	movw %ax,(%_ASM_CX)
 	xor %eax,%eax
 	xor %eax,%eax
 	EXIT
 	EXIT
 ENDPROC(__put_user_2)
 ENDPROC(__put_user_2)
 
 
 ENTRY(__put_user_4)
 ENTRY(__put_user_4)
 	ENTER
 	ENTER
-	mov TI_addr_limit(%rbx),%rbx
-	sub  $3, %rbx
-	cmp  %rbx, %rcx
+	mov TI_addr_limit(%_ASM_BX),%_ASM_BX
+	sub  $3, %_ASM_BX
+	cmp  %_ASM_BX, %_ASM_CX
 	jae bad_put_user
 	jae bad_put_user
-3:	movl %eax,(%rcx)
+3:	movl %eax,(%_ASM_CX)
 	xor %eax,%eax
 	xor %eax,%eax
 	EXIT
 	EXIT
 ENDPROC(__put_user_4)
 ENDPROC(__put_user_4)
 
 
 ENTRY(__put_user_8)
 ENTRY(__put_user_8)
 	ENTER
 	ENTER
-	mov TI_addr_limit(%rbx),%rbx
-	sub  $7, %rbx
-	cmp  %rbx, %rcx
+	mov TI_addr_limit(%_ASM_BX),%_ASM_BX
+	sub  $7, %_ASM_BX
+	cmp  %_ASM_BX, %_ASM_CX
 	jae bad_put_user
 	jae bad_put_user
-4:	movq %rax,(%rcx)
+4:	movq %_ASM_AX,(%_ASM_CX)
 	xor %eax,%eax
 	xor %eax,%eax
 	EXIT
 	EXIT
 ENDPROC(__put_user_8)
 ENDPROC(__put_user_8)
 
 
 bad_put_user:
 bad_put_user:
 	CFI_STARTPROC
 	CFI_STARTPROC
-	mov $(-EFAULT),%rax
+	mov $(-EFAULT),%eax
 	EXIT
 	EXIT
 END(bad_put_user)
 END(bad_put_user)
 
 
 .section __ex_table,"a"
 .section __ex_table,"a"
-	.quad 1b,bad_put_user
-	.quad 2b,bad_put_user
-	.quad 3b,bad_put_user
-	.quad 4b,bad_put_user
+	_ASM_PTR 1b,bad_put_user
+	_ASM_PTR 2b,bad_put_user
+	_ASM_PTR 3b,bad_put_user
+	_ASM_PTR 4b,bad_put_user
 .previous
 .previous

+ 2 - 0
include/asm-x86/asm.h

@@ -28,6 +28,8 @@
 #define _ASM_SUB	__ASM_SIZE(sub)
 #define _ASM_SUB	__ASM_SIZE(sub)
 #define _ASM_XADD	__ASM_SIZE(xadd)
 #define _ASM_XADD	__ASM_SIZE(xadd)
 #define _ASM_AX		__ASM_REG(ax)
 #define _ASM_AX		__ASM_REG(ax)
+#define _ASM_BX		__ASM_REG(bx)
+#define _ASM_CX		__ASM_REG(cx)
 #define _ASM_DX		__ASM_REG(dx)
 #define _ASM_DX		__ASM_REG(dx)
 
 
 /* Exception table entry */
 /* Exception table entry */