From 2c004a548955d4d790f134f2809c0e3a1457f12c Mon Sep 17 00:00:00 2001 From: jewelcodes Date: Tue, 8 Oct 2024 16:30:05 -0400 Subject: [PATCH] x86_64: avoid locking bus when unnecessary --- src/platform/x86_64/lock.asm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/platform/x86_64/lock.asm b/src/platform/x86_64/lock.asm index bca6f6b2..9186055b 100644 --- a/src/platform/x86_64/lock.asm +++ b/src/platform/x86_64/lock.asm @@ -72,6 +72,15 @@ acquireLockBlocking: global releaseLock align 16 releaseLock: + pushfq + cli + xor rax, rax + test dword [rdi], 1 + jz .done + mov [rdi], eax + +.done: + popfq ret