20 #ifndef __JackAtomic_WIN32__
21 #define __JackAtomic_WIN32__
23 #include "JackTypes.h"
33 #define inline __inline
39 inline char CAS(
volatile UInt32 value, UInt32 newvalue,
volatile void * addr)
48 LOCK cmpxchg dword ptr [esi], ebx
58 #define LOCK "lock ; "
60 static inline char CAS(
volatile UInt32 value, UInt32 newvalue,
volatile void* addr)
63 __asm__ __volatile__ (
65 LOCK
"cmpxchg %2, (%1) \n\t"
68 :
"c" (addr),
"d" (newvalue),
"a" (value)