_Asm_mov_to_ar(_AREG_CCV, old_val, _UP_MEM_FENCE);
return _Asm_cmpxchg(AO_T_SIZE, _SEM_REL, addr,
new_val, _LDHINT_NONE, _UP_MEM_FENCE);
-
}
#define AO_HAVE_fetch_compare_and_swap_release
_Asm_mov_to_ar(_AREG_CCV, old_val, _DOWN_MEM_FENCE);
return _Asm_cmpxchg(_SZ_B, _SEM_ACQ, addr,
new_val, _LDHINT_NONE, _DOWN_MEM_FENCE);
-
}
#define AO_HAVE_char_fetch_compare_and_swap_acquire
_Asm_mov_to_ar(_AREG_CCV, old_val, _UP_MEM_FENCE);
return _Asm_cmpxchg(_SZ_B, _SEM_REL, addr,
new_val, _LDHINT_NONE, _UP_MEM_FENCE);
-
}
#define AO_HAVE_char_fetch_compare_and_swap_release
_Asm_mov_to_ar(_AREG_CCV, old_val, _DOWN_MEM_FENCE);
return _Asm_cmpxchg(_SZ_B, _SEM_ACQ, addr,
new_val, _LDHINT_NONE, _DOWN_MEM_FENCE);
-
}
#define AO_HAVE_short_fetch_compare_and_swap_acquire
_Asm_mov_to_ar(_AREG_CCV, old_val, _UP_MEM_FENCE);
return _Asm_cmpxchg(_SZ_B, _SEM_REL, addr,
new_val, _LDHINT_NONE, _UP_MEM_FENCE);
-
}
#define AO_HAVE_short_fetch_compare_and_swap_release