]>
Commit | Line | Data |
---|---|---|
910698a6 JB |
1 | --- fox-1.7.57/lib/FXAtomic.cpp.orig 2017-02-06 05:34:36.826461208 +0100 |
2 | +++ fox-1.7.57/lib/FXAtomic.cpp 2017-02-06 05:40:53.793123570 +0100 | |
3 | @@ -404,7 +404,7 @@ | |
4 | return result; | |
5 | #elif (defined(WIN32) && (_MSC_VER >= 1500)) | |
6 | return (FXptr)_InterlockedExchange((LONG*)ptr,(LONG)v); | |
7 | -#elif (defined(HAVE_INLINE_ASSEMBLY) && defined(__i386__)) | |
8 | +#elif (defined(HAVE_INLINE_ASSEMBLY) && (defined(__i386__) || (defined(__x86_64) && defined(__ILP32__)))) | |
71c8b69b JR |
9 | FXptr ret=v; |
10 | __asm__ __volatile__("xchgl %0, (%1)\n\t" : "=r"(ret) : "r"(ptr), "0"(ret) : "memory", "cc"); | |
11 | return ret; | |
910698a6 JB |
12 | @@ -429,7 +429,7 @@ |
13 | return (FXptr)_InterlockedExchangeAdd64((LONGLONG*)ptr,(LONGLONG)v); | |
14 | #elif (defined(WIN32) && (_MSC_VER >= 1600)) | |
15 | return (FXptr)_InterlockedExchangeAdd((LONG*)ptr,(LONG)v); | |
16 | -#elif (defined(HAVE_INLINE_ASSEMBLY) && defined(__i386__)) | |
17 | +#elif (defined(HAVE_INLINE_ASSEMBLY) && (defined(__i386__) || (defined(__x86_64) && defined(__ILP32__)))) | |
71c8b69b JR |
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"); | |
910698a6 JB |
21 | @@ -455,7 +455,7 @@ |
22 | return (FXptr)_InterlockedCompareExchange64((LONGLONG*)ptr,(LONGLONG)v,(LONGLONG)expect); | |
23 | #elif defined(WIN32) && (MSC_VER >=1500) | |
24 | return (FXptr)_InterlockedCompareExchange((LONG*)ptr,(LONG)v,(LONG)expect); | |
25 | -#elif (defined(HAVE_INLINE_ASSEMBLY) && defined(__i386__)) | |
26 | +#elif (defined(HAVE_INLINE_ASSEMBLY) && (defined(__i386__) || (defined(__x86_64) && defined(__ILP32__)))) | |
27 | register FXptr ret; | |
71c8b69b JR |
28 | __asm__ __volatile__("lock\n\t" |
29 | "cmpxchgl %2, (%1)\n\t" : "=a"(ret) : "r"(ptr), "r"(v), "a"(expect) : "memory", "cc"); | |
910698a6 JB |
30 | @@ -483,7 +483,7 @@ |
31 | return (_InterlockedCompareExchange64((LONGLONG*)ptr,(LONGLONG)v,(LONGLONG)expect)==(LONGLONG)expect); | |
32 | #elif defined(WIN32) && (MSC_VER >=1500) | |
33 | return (_InterlockedCompareExchange((LONG*)ptr,(LONG)v,(LONG)expect)==(LONG)expect); | |
34 | -#elif (defined(HAVE_INLINE_ASSEMBLY) && defined(__i386__)) | |
35 | +#elif (defined(HAVE_INLINE_ASSEMBLY) && (defined(__i386__) || (defined(__x86_64) && defined(__ILP32__)))) | |
71c8b69b JR |
36 | register FXbool ret; |
37 | __asm__ __volatile__ ("lock\n\t" | |
38 | "cmpxchgl %2, (%1)\n\t" |