|
@@ -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
|