1 --- fox-1.7.49/lib/FXAtomic.cpp.orig 2016-01-03 21:32:28.624304727 +0100
2 +++ fox-1.7.49/lib/FXAtomic.cpp 2016-01-03 21:34:45.642765297 +0100
4 FXptr atomicSet(volatile FXptr* ptr,FXptr v){
5 #if defined(WIN32) && ((_MSC_VER >= 1400) || (__BORLANDC__ >= 0x500))
6 return (FXptr)InterlockedExchangePointer(ptr,v);
7 -#elif ((defined(__GNUC__) || defined(__INTEL_COMPILER)) && defined(__i386__))
8 +#elif ((defined(__GNUC__) || defined(__INTEL_COMPILER)) && (defined(__i386__) || defined(__ILP32__)))
10 __asm__ __volatile__("xchgl %0, (%1)\n\t" : "=r"(ret) : "r"(ptr), "0"(ret) : "memory", "cc");
13 return (FXptr)InterlockedExchangeAdd64((LONGLONG*)ptr,(LONGLONG)v);
15 return (FXptr)InterlockedExchangeAdd((LONG*)ptr,(LONG)v);
16 -#elif ((defined(__GNUC__) || defined(__INTEL_COMPILER)) && defined(__i386__))
17 +#elif ((defined(__GNUC__) || defined(__INTEL_COMPILER)) && (defined(__i386__) || defined(__ILP32__)))
18 register FXptr ret=(void*)v;
19 __asm__ __volatile__ ("lock\n\t"
20 "xaddl %0, (%1)\n\t" : "=r"(ret) : "r"(ptr), "0"(ret) : "memory", "cc");
22 FXptr atomicCas(volatile FXptr* ptr,FXptr expect,FXptr v){
23 #if defined(WIN32) && ((_MSC_VER >= 1400) || (__BORLANDC__ >= 0x500))
24 return (FXptr)InterlockedCompareExchangePointer((void**)ptr,v,expect);
25 -#elif ((defined(__GNUC__) || defined(__INTEL_COMPILER)) && defined(__i386__))
26 +#elif ((defined(__GNUC__) || defined(__INTEL_COMPILER)) && (defined(__i386__) || defined(__ILP32__)))
27 register FXptr ret=(FXptr)v;
28 __asm__ __volatile__("lock\n\t"
29 "cmpxchgl %2, (%1)\n\t" : "=a"(ret) : "r"(ptr), "r"(v), "a"(expect) : "memory", "cc");
31 FXbool atomicBoolCas(volatile FXptr* ptr,FXptr expect,FXptr v){
32 #if defined(WIN32) && ((_MSC_VER >= 1400) || (__BORLANDC__ >= 0x500))
33 return (InterlockedCompareExchangePointer((void**)ptr,v,expect)==expect);
34 -#elif ((defined(__GNUC__) || defined(__INTEL_COMPILER)) && defined(__i386__))
35 +#elif ((defined(__GNUC__) || defined(__INTEL_COMPILER)) && (defined(__i386__) || defined(__ILP32__)))
37 __asm__ __volatile__ ("lock\n\t"
38 "cmpxchgl %2, (%1)\n\t"