48
48
inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr,
54
56
"bne %0, %3, 2f\n" // if (prev != old_value) goto 2
57
59
"beqz %2, 1b\n" // start again on atomic error
58
60
"nop\n" // delay slot nop
61
64
: "Ir" (old_value), "r" (new_value), "m" (*ptr)