]>
Commit | Line | Data |
---|---|---|
71c8b69b JR |
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 | |
3 | @@ -266,7 +266,7 @@ | |
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__))) | |
9 | FXptr ret=v; | |
10 | __asm__ __volatile__("xchgl %0, (%1)\n\t" : "=r"(ret) : "r"(ptr), "0"(ret) : "memory", "cc"); | |
11 | return ret; | |
12 | @@ -290,7 +290,7 @@ | |
13 | return (FXptr)InterlockedExchangeAdd64((LONGLONG*)ptr,(LONGLONG)v); | |
14 | #elif defined(WIN32) | |
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"); | |
21 | @@ -314,7 +314,7 @@ | |
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"); | |
30 | @@ -340,7 +340,7 @@ | |
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__))) | |
36 | register FXbool ret; | |
37 | __asm__ __volatile__ ("lock\n\t" | |
38 | "cmpxchgl %2, (%1)\n\t" |