From e8ea848785d723e6b4e963230217a5eea854a23a Mon Sep 17 00:00:00 2001 From: Amanieu d'Antras Date: Sat, 23 Dec 2017 08:45:25 +0100 Subject: [PATCH] Fix argument order for __sync_val_compare_and_swap --- src/arm_linux.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/arm_linux.rs b/src/arm_linux.rs index a48a969..2291edf 100644 --- a/src/arm_linux.rs +++ b/src/arm_linux.rs @@ -71,7 +71,7 @@ unsafe fn atomic_rmw u32>(ptr: *mut T, f: F) -> u32 { } // Generic atomic compare-exchange operation -unsafe fn atomic_cmpxchg(oldval: u32, newval: u32, ptr: *mut T) -> u32 { +unsafe fn atomic_cmpxchg(ptr: *mut T, oldval: u32, newval: u32) -> u32 { let aligned_ptr = align_ptr(ptr); let (shift, mask) = get_shift_mask(ptr); @@ -99,8 +99,8 @@ macro_rules! atomic_rmw { macro_rules! atomic_cmpxchg { ($name:ident, $ty:ty) => { #[cfg_attr(not(feature = "mangled-names"), no_mangle)] - pub unsafe extern "C" fn $name(oldval: $ty, newval: $ty, ptr: *mut $ty) -> $ty { - atomic_cmpxchg(oldval as u32, newval as u32, ptr) as $ty + pub unsafe extern "C" fn $name(ptr: *mut $ty, oldval: $ty, newval: $ty) -> $ty { + atomic_cmpxchg(ptr, oldval as u32, newval as u32) as $ty } } }