inline int32_t compare_and_swap( int32_t * dest_, int32_t compare_, int32_t swap_ )
{
- __asm__ __volatile__( "cas %0, %2, %1"
- : "+m" (*dest_), "+r" (swap_)
- : "r" (compare_)
+ __asm__ __volatile__( "cas [%1], %2, %0"
+ : "+r" (swap_)
+ : "r" (dest_), "r" (compare_)
: "memory" );
return swap_;