]>
Commit | Line | Data |
---|---|---|
1 | --- fox-1.7.84/lib/FXAtomic.cpp.orig 2023-06-14 06:50:33.000000000 +0200 | |
2 | +++ fox-1.7.84/lib/FXAtomic.cpp 2023-10-26 06:19:01.695280795 +0200 | |
3 | @@ -721,7 +721,7 @@ FXptr atomicSet(volatile FXptr* ptr,FXpt | |
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__)))) | |
9 | FXptr ret=v; | |
10 | __asm__ __volatile__("xchgl %0, (%1)\n\t" : "=r"(ret) : "r"(ptr), "0"(ret) : "memory", "cc"); | |
11 | return ret; | |
12 | @@ -746,7 +746,7 @@ FXptr atomicAdd(volatile FXptr* ptr,FXiv | |
13 | return (FXptr)_InterlockedExchangeAdd64((volatile LONGLONG*)ptr,(LONGLONG)v); | |
14 | #elif (defined(WIN32) && (_MSC_VER >= 1600)) | |
15 | return (FXptr)_InterlockedExchangeAdd((volatile 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__)))) | |
18 | 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 | @@ -772,7 +772,7 @@ FXptr atomicCas(volatile FXptr* ptr,FXpt | |
22 | return (FXptr)_InterlockedCompareExchange64((volatile LONGLONG*)ptr,(LONGLONG)v,(LONGLONG)expect); | |
23 | #elif defined(WIN32) && (MSC_VER >=1500) | |
24 | return (FXptr)_InterlockedCompareExchange((volatile 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 | FXptr ret; | |
28 | __asm__ __volatile__("lock\n\t" | |
29 | "cmpxchgl %2, (%1)\n\t" : "=a"(ret) : "r"(ptr), "r"(v), "a"(expect) : "memory", "cc"); | |
30 | @@ -800,7 +800,7 @@ FXbool atomicBoolCas(volatile FXptr* ptr | |
31 | return (_InterlockedCompareExchange64((volatile LONGLONG*)ptr,(LONGLONG)v,(LONGLONG)expect)==(LONGLONG)expect); | |
32 | #elif defined(WIN32) && (MSC_VER >=1500) | |
33 | return (_InterlockedCompareExchange((volatile 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__)))) | |
36 | FXbool ret; | |
37 | __asm__ __volatile__ ("lock\n\t" | |
38 | "cmpxchgl %2, (%1)\n\t" |