From: Eliot M. <mo...@cs...> - 2013-02-25 02:23:14
|
On 2/24/2013 7:32 PM, Antony Hosking wrote: > > On Feb 25, 2013, at 10:23 AM, Eliot Moss <mo...@cs...> wrote: > Can we not use CMPXCHG8B for double-word volatiles? > That is available on x86-32. Yes, but that is a lock-free kind of thing that will require a loop. However, a close reading of CMPXCHG8B indicates that there is not really a need to read the locations first: the compare might fail (probably will) the first time around the loop, but the effect will be to load the memory value into the registers used as the compare value. Thus it is well suited to loop with a two-instruction loop, and is compact enough for an inline sequence. Eliot |