From c4f8ef91f18d854a4ede7a94e95b2eab898d6963 Mon Sep 17 00:00:00 2001 From: Jon Santmyer Date: Sun, 10 Aug 2025 15:40:19 -0400 Subject: working usermode objdir iteration --- arch/x86_64/lock.s | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 arch/x86_64/lock.s (limited to 'arch/x86_64/lock.s') diff --git a/arch/x86_64/lock.s b/arch/x86_64/lock.s new file mode 100644 index 0000000..b63f078 --- /dev/null +++ b/arch/x86_64/lock.s @@ -0,0 +1,19 @@ +.global _mtx_acquire +.type _mtx_acquire @function +_mtx_acquire: + lock btsw $0, (%rdi) + jc .spin + ret +.spin: + pause + testb $1, (%rdi) + jnz .spin + jmp _mtx_acquire +.size _mtx_acquire, . - _mtx_acquire + +.global _mtx_release +.type _mtx_release @function +_mtx_release: + movb $0, (%rdi) + ret +.size _mtx_release, . - _mtx_release -- cgit v1.2.1