1*4882a593Smuzhiyuncat <<EOF 2*4882a593Smuzhiyunstatic __always_inline bool 3*4882a593Smuzhiyun${arch}${atomic}_try_cmpxchg${order}(${atomic}_t *v, ${int} *old, ${int} new) 4*4882a593Smuzhiyun{ 5*4882a593Smuzhiyun ${int} r, o = *old; 6*4882a593Smuzhiyun r = ${arch}${atomic}_cmpxchg${order}(v, o, new); 7*4882a593Smuzhiyun if (unlikely(r != o)) 8*4882a593Smuzhiyun *old = r; 9*4882a593Smuzhiyun return likely(r == o); 10*4882a593Smuzhiyun} 11*4882a593SmuzhiyunEOF 12