tcc-stupidos/libtcc1/atomic.S
2025-03-01 10:28:53 +01:00

28 lines
684 B
ArmAsm

/* ---------------------------------------------- */
#ifdef __leading_underscore
# define _(s) _##s
#else
# define _(s) s
#endif
.text
.align 2
.global _(__atomic_test_and_set)
.type _(__atomic_test_and_set), %function
_(__atomic_test_and_set):
movl 4(%esp), %edx
movl $1, %eax
xchgb (%edx), %al
ret
.size _(__atomic_test_and_set), .-_(__atomic_test_and_set)
.global _(__atomic_clear)
.type _(__atomic_clear), %function
_(__atomic_clear):
movl 4(%esp), %edx
xorl %eax, %eax
xchgb (%edx), %al
ret
.size _(__atomic_clear), .-_(__atomic_clear)