提交 22da5a07 编写于 作者: P Peter Zijlstra 提交者: Borislav Petkov

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: NPeter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: NBorislav Petkov <bp@suse.de>
Link: https://lore.kernel.org/r/20211204134907.841623970@infradead.org
上级 68cf4f2a
......@@ -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
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册