mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-03-16 12:14:06 +00:00
x86/lib/atomic64_386_32: Rename things
Principally, in order to get rid of #define RET in this code to make place for a new RET, but also to clarify the code, rename a bunch of things: s/UNLOCK/IRQ_RESTORE/ s/LOCK/IRQ_SAVE/ s/BEGIN/BEGIN_IRQ_SAVE/ s/\<RET\>/RET_IRQ_RESTORE/ s/RET_ENDP/\tRET_IRQ_RESTORE\rENDP/ which then leaves RET unused so it can be removed. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Borislav Petkov <bp@suse.de> Link: https://lore.kernel.org/r/20211204134907.841623970@infradead.org
This commit is contained in:
parent
68cf4f2a72
commit
22da5a07c7
1 changed files with 46 additions and 38 deletions
|
@ -9,81 +9,83 @@
|
|||
#include <asm/alternative.h>
|
||||
|
||||
/* if you want SMP support, implement these with real spinlocks */
|
||||
.macro LOCK reg
|
||||
.macro IRQ_SAVE reg
|
||||
pushfl
|
||||
cli
|
||||
.endm
|
||||
|
||||
.macro UNLOCK reg
|
||||
.macro IRQ_RESTORE reg
|
||||
popfl
|
||||
.endm
|
||||
|
||||
#define BEGIN(op) \
|
||||
#define BEGIN_IRQ_SAVE(op) \
|
||||
.macro endp; \
|
||||
SYM_FUNC_END(atomic64_##op##_386); \
|
||||
.purgem endp; \
|
||||
.endm; \
|
||||
SYM_FUNC_START(atomic64_##op##_386); \
|
||||
LOCK v;
|
||||
IRQ_SAVE v;
|
||||
|
||||
#define ENDP endp
|
||||
|
||||
#define RET \
|
||||
UNLOCK v; \
|
||||
#define RET_IRQ_RESTORE \
|
||||
IRQ_RESTORE v; \
|
||||
ret
|
||||
|
||||
#define RET_ENDP \
|
||||
RET; \
|
||||
ENDP
|
||||
|
||||
#define v %ecx
|
||||
BEGIN(read)
|
||||
BEGIN_IRQ_SAVE(read)
|
||||
movl (v), %eax
|
||||
movl 4(v), %edx
|
||||
RET_ENDP
|
||||
RET_IRQ_RESTORE
|
||||
ENDP
|
||||
#undef v
|
||||
|
||||
#define v %esi
|
||||
BEGIN(set)
|
||||
BEGIN_IRQ_SAVE(set)
|
||||
movl %ebx, (v)
|
||||
movl %ecx, 4(v)
|
||||
RET_ENDP
|
||||
RET_IRQ_RESTORE
|
||||
ENDP
|
||||
#undef v
|
||||
|
||||
#define v %esi
|
||||
BEGIN(xchg)
|
||||
BEGIN_IRQ_SAVE(xchg)
|
||||
movl (v), %eax
|
||||
movl 4(v), %edx
|
||||
movl %ebx, (v)
|
||||
movl %ecx, 4(v)
|
||||
RET_ENDP
|
||||
RET_IRQ_RESTORE
|
||||
ENDP
|
||||
#undef v
|
||||
|
||||
#define v %ecx
|
||||
BEGIN(add)
|
||||
BEGIN_IRQ_SAVE(add)
|
||||
addl %eax, (v)
|
||||
adcl %edx, 4(v)
|
||||
RET_ENDP
|
||||
RET_IRQ_RESTORE
|
||||
ENDP
|
||||
#undef v
|
||||
|
||||
#define v %ecx
|
||||
BEGIN(add_return)
|
||||
BEGIN_IRQ_SAVE(add_return)
|
||||
addl (v), %eax
|
||||
adcl 4(v), %edx
|
||||
movl %eax, (v)
|
||||
movl %edx, 4(v)
|
||||
RET_ENDP
|
||||
RET_IRQ_RESTORE
|
||||
ENDP
|
||||
#undef v
|
||||
|
||||
#define v %ecx
|
||||
BEGIN(sub)
|
||||
BEGIN_IRQ_SAVE(sub)
|
||||
subl %eax, (v)
|
||||
sbbl %edx, 4(v)
|
||||
RET_ENDP
|
||||
RET_IRQ_RESTORE
|
||||
ENDP
|
||||
#undef v
|
||||
|
||||
#define v %ecx
|
||||
BEGIN(sub_return)
|
||||
BEGIN_IRQ_SAVE(sub_return)
|
||||
negl %edx
|
||||
negl %eax
|
||||
sbbl $0, %edx
|
||||
|
@ -91,47 +93,52 @@ BEGIN(sub_return)
|
|||
adcl 4(v), %edx
|
||||
movl %eax, (v)
|
||||
movl %edx, 4(v)
|
||||
RET_ENDP
|
||||
RET_IRQ_RESTORE
|
||||
ENDP
|
||||
#undef v
|
||||
|
||||
#define v %esi
|
||||
BEGIN(inc)
|
||||
BEGIN_IRQ_SAVE(inc)
|
||||
addl $1, (v)
|
||||
adcl $0, 4(v)
|
||||
RET_ENDP
|
||||
RET_IRQ_RESTORE
|
||||
ENDP
|
||||
#undef v
|
||||
|
||||
#define v %esi
|
||||
BEGIN(inc_return)
|
||||
BEGIN_IRQ_SAVE(inc_return)
|
||||
movl (v), %eax
|
||||
movl 4(v), %edx
|
||||
addl $1, %eax
|
||||
adcl $0, %edx
|
||||
movl %eax, (v)
|
||||
movl %edx, 4(v)
|
||||
RET_ENDP
|
||||
RET_IRQ_RESTORE
|
||||
ENDP
|
||||
#undef v
|
||||
|
||||
#define v %esi
|
||||
BEGIN(dec)
|
||||
BEGIN_IRQ_SAVE(dec)
|
||||
subl $1, (v)
|
||||
sbbl $0, 4(v)
|
||||
RET_ENDP
|
||||
RET_IRQ_RESTORE
|
||||
ENDP
|
||||
#undef v
|
||||
|
||||
#define v %esi
|
||||
BEGIN(dec_return)
|
||||
BEGIN_IRQ_SAVE(dec_return)
|
||||
movl (v), %eax
|
||||
movl 4(v), %edx
|
||||
subl $1, %eax
|
||||
sbbl $0, %edx
|
||||
movl %eax, (v)
|
||||
movl %edx, 4(v)
|
||||
RET_ENDP
|
||||
RET_IRQ_RESTORE
|
||||
ENDP
|
||||
#undef v
|
||||
|
||||
#define v %esi
|
||||
BEGIN(add_unless)
|
||||
BEGIN_IRQ_SAVE(add_unless)
|
||||
addl %eax, %ecx
|
||||
adcl %edx, %edi
|
||||
addl (v), %eax
|
||||
|
@ -143,7 +150,7 @@ BEGIN(add_unless)
|
|||
movl %edx, 4(v)
|
||||
movl $1, %eax
|
||||
2:
|
||||
RET
|
||||
RET_IRQ_RESTORE
|
||||
3:
|
||||
cmpl %edx, %edi
|
||||
jne 1b
|
||||
|
@ -153,7 +160,7 @@ ENDP
|
|||
#undef v
|
||||
|
||||
#define v %esi
|
||||
BEGIN(inc_not_zero)
|
||||
BEGIN_IRQ_SAVE(inc_not_zero)
|
||||
movl (v), %eax
|
||||
movl 4(v), %edx
|
||||
testl %eax, %eax
|
||||
|
@ -165,7 +172,7 @@ BEGIN(inc_not_zero)
|
|||
movl %edx, 4(v)
|
||||
movl $1, %eax
|
||||
2:
|
||||
RET
|
||||
RET_IRQ_RESTORE
|
||||
3:
|
||||
testl %edx, %edx
|
||||
jne 1b
|
||||
|
@ -174,7 +181,7 @@ ENDP
|
|||
#undef v
|
||||
|
||||
#define v %esi
|
||||
BEGIN(dec_if_positive)
|
||||
BEGIN_IRQ_SAVE(dec_if_positive)
|
||||
movl (v), %eax
|
||||
movl 4(v), %edx
|
||||
subl $1, %eax
|
||||
|
@ -183,5 +190,6 @@ BEGIN(dec_if_positive)
|
|||
movl %eax, (v)
|
||||
movl %edx, 4(v)
|
||||
1:
|
||||
RET_ENDP
|
||||
RET_IRQ_RESTORE
|
||||
ENDP
|
||||
#undef v
|
||||
|
|
Loading…
Add table
Reference in a new issue