precision: _MSC_VER >= 1020 supports #pragma once
prefer higher-level interface for atomic load
Sun Studio C and C++ differ in asm register syntax
minor: add missing argument to macro definition
workaround Sun Studio C++ __typeof__ bug in 32-bit

workaround Sun Studio C++ __typeof__ bug in 32-bit compilation
where __typeof__() might truncate types larger than 4 bytes
(e.g. int64_t) to 4 bytes
IBM xlC atomics need __fence, not 'volatile'

IBM xlC does not appear to treat 'volatile' pointer as compiler fence.
Supplement with xlC intrinsic __fence() for compiler fence.
Peterson's algorithm for mutual exclusion

Peterson's algorithm for mutual exclusion between two threads
(test code to exercise plasma atomics)