From f16d8d3d7cb939e04ad2a242e8bd058590492fe2 Mon Sep 17 00:00:00 2001 From: Noa <33094578+coolreader18@users.noreply.github.com> Date: Thu, 11 Nov 2021 17:42:18 -0600 Subject: [PATCH] Use :e registers on x86 --- src/elision.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/elision.rs b/src/elision.rs index 66d61618..a9002921 100644 --- a/src/elision.rs +++ b/src/elision.rs @@ -56,6 +56,16 @@ impl AtomicElisionExt for AtomicUsize { fn elision_compare_exchange_acquire(&self, current: usize, new: usize) -> Result { unsafe { let prev: usize; + #[cfg(target_pointer_width = "32")] + asm!( + "xacquire", + "lock", + "cmpxchg [{:e}], {:e}", + in(reg) self, + in(reg) new, + inout("eax") current => prev, + ); + #[cfg(target_pointer_width = "64")] asm!( "xacquire", "lock",