mirror of https://gitee.com/openkylin/linux.git
x86, asm: Use a lower case name for the end macro in atomic64_386_32.S
Use a lowercase name for the end macro, which somehow fixes a binutils 2.16 problem. Signed-off-by: Luca Barbieri <luca@luca-barbieri.com> LKML-Reference: <tip-30246557a06bb20618bed906a06d1e1e0faa8bb4@git.kernel.org> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
This commit is contained in:
parent
30246557a0
commit
417484d47e
|
@ -26,35 +26,37 @@
|
|||
.endm
|
||||
|
||||
#define BEGIN(op) \
|
||||
.macro END; \
|
||||
.macro endp; \
|
||||
CFI_ENDPROC; \
|
||||
ENDPROC(atomic64_##op##_386); \
|
||||
.purgem END; \
|
||||
.purgem endp; \
|
||||
.endm; \
|
||||
ENTRY(atomic64_##op##_386); \
|
||||
CFI_STARTPROC; \
|
||||
LOCK v;
|
||||
|
||||
#define ENDP endp
|
||||
|
||||
#define RET \
|
||||
UNLOCK v; \
|
||||
ret
|
||||
|
||||
#define RET_END \
|
||||
#define RET_ENDP \
|
||||
RET; \
|
||||
END
|
||||
ENDP
|
||||
|
||||
#define v %ecx
|
||||
BEGIN(read)
|
||||
movl (v), %eax
|
||||
movl 4(v), %edx
|
||||
RET_END
|
||||
RET_ENDP
|
||||
#undef v
|
||||
|
||||
#define v %esi
|
||||
BEGIN(set)
|
||||
movl %ebx, (v)
|
||||
movl %ecx, 4(v)
|
||||
RET_END
|
||||
RET_ENDP
|
||||
#undef v
|
||||
|
||||
#define v %esi
|
||||
|
@ -63,14 +65,14 @@ BEGIN(xchg)
|
|||
movl 4(v), %edx
|
||||
movl %ebx, (v)
|
||||
movl %ecx, 4(v)
|
||||
RET_END
|
||||
RET_ENDP
|
||||
#undef v
|
||||
|
||||
#define v %ecx
|
||||
BEGIN(add)
|
||||
addl %eax, (v)
|
||||
adcl %edx, 4(v)
|
||||
RET_END
|
||||
RET_ENDP
|
||||
#undef v
|
||||
|
||||
#define v %ecx
|
||||
|
@ -79,14 +81,14 @@ BEGIN(add_return)
|
|||
adcl 4(v), %edx
|
||||
movl %eax, (v)
|
||||
movl %edx, 4(v)
|
||||
RET_END
|
||||
RET_ENDP
|
||||
#undef v
|
||||
|
||||
#define v %ecx
|
||||
BEGIN(sub)
|
||||
subl %eax, (v)
|
||||
sbbl %edx, 4(v)
|
||||
RET_END
|
||||
RET_ENDP
|
||||
#undef v
|
||||
|
||||
#define v %ecx
|
||||
|
@ -98,14 +100,14 @@ BEGIN(sub_return)
|
|||
adcl 4(v), %edx
|
||||
movl %eax, (v)
|
||||
movl %edx, 4(v)
|
||||
RET_END
|
||||
RET_ENDP
|
||||
#undef v
|
||||
|
||||
#define v %esi
|
||||
BEGIN(inc)
|
||||
addl $1, (v)
|
||||
adcl $0, 4(v)
|
||||
RET_END
|
||||
RET_ENDP
|
||||
#undef v
|
||||
|
||||
#define v %esi
|
||||
|
@ -116,14 +118,14 @@ BEGIN(inc_return)
|
|||
adcl $0, %edx
|
||||
movl %eax, (v)
|
||||
movl %edx, 4(v)
|
||||
RET_END
|
||||
RET_ENDP
|
||||
#undef v
|
||||
|
||||
#define v %esi
|
||||
BEGIN(dec)
|
||||
subl $1, (v)
|
||||
sbbl $0, 4(v)
|
||||
RET_END
|
||||
RET_ENDP
|
||||
#undef v
|
||||
|
||||
#define v %esi
|
||||
|
@ -134,7 +136,7 @@ BEGIN(dec_return)
|
|||
sbbl $0, %edx
|
||||
movl %eax, (v)
|
||||
movl %edx, 4(v)
|
||||
RET_END
|
||||
RET_ENDP
|
||||
#undef v
|
||||
|
||||
#define v %ecx
|
||||
|
@ -156,7 +158,7 @@ BEGIN(add_unless)
|
|||
jne 1b
|
||||
xorl %eax, %eax
|
||||
jmp 2b
|
||||
END
|
||||
ENDP
|
||||
#undef v
|
||||
|
||||
#define v %esi
|
||||
|
@ -177,7 +179,7 @@ BEGIN(inc_not_zero)
|
|||
testl %edx, %edx
|
||||
jne 1b
|
||||
jmp 2b
|
||||
END
|
||||
ENDP
|
||||
#undef v
|
||||
|
||||
#define v %esi
|
||||
|
@ -190,5 +192,5 @@ BEGIN(dec_if_positive)
|
|||
movl %eax, (v)
|
||||
movl %edx, 4(v)
|
||||
1:
|
||||
RET_END
|
||||
RET_ENDP
|
||||
#undef v
|
||||
|
|
Loading…
Reference in New Issue