Lines Matching full:cmpxchg
186 <li><a href="#i_cmpxchg">'<tt>cmpxchg</tt>' Instruction</a></li>
1611 <p>Atomic instructions (<a href="#i_cmpxchg"><code>cmpxchg</code></a>,
1643 (<a href="#i_cmpxchg"><code>cmpxchg</code></a> and
5134 <a name="i_cmpxchg">'<tt>cmpxchg</tt>' Instruction</a>
5141 cmpxchg [volatile] <ty>* <pointer>, <ty> <cmp>, <ty> <new> [singlethread] <ordering> <i>; yields {ty}</i>
5145 <p>The '<tt>cmpxchg</tt>' instruction is used to atomically modify memory.
5150 <p>There are three arguments to the '<code>cmpxchg</code>' instruction: an
5158 <code>cmpxchg</code> is marked as <code>volatile</code>, then the
5160 of this <code>cmpxchg</code> with other <a href="#volatile">volatile
5166 <code>cmpxchg</code> synchronizes with other atomic operations.</p>
5169 <code>cmpxchg</code> is only atomic with respect to code (usually signal
5170 handlers) running in the same thread as the <code>cmpxchg</code>. Otherwise the
5171 cmpxchg is atomic with respect to all other code in the system.</p>
5173 <p>The pointer passed into cmpxchg must have alignment greater than or equal to
5183 <p>A successful <code>cmpxchg</code> is a read-modify-write instruction for the
5185 failed <code>cmpxchg</code> is equivalent to an atomic load with an ordering
5187 <code>cmpxchg</code>'s ordering.</p>
5205 %old = cmpxchg i32* %ptr, i32 %cmp, i32 %squared <i>; yields {i32}</i>