try_cmpxchg 141 B

1234567
  1. cat <<EOF
  2. ${int} r, o = *old;
  3. r = raw_${atomic}_cmpxchg${order}(v, o, new);
  4. if (unlikely(r != o))
  5. *old = r;
  6. return likely(r == o);
  7. EOF