17 lines
222 B
ArmAsm

.intel_syntax noprefix
.global spin_lock
spin_lock:
mov rdx, rdi
mov rax, 0x0
mov rcx, 0x1
.retry:
xor rax, rax
lock cmpxchg [rdx], cl
jnz .retry
ret
.global spin_unlock
spin_unlock:
movq [rdi], 0x0
ret