|
@@ -24,9 +24,9 @@ if aso note{ gcc 4.1+ 64 bit memory atomic operations model }end link{
|
|
|
#define _aso_inc64(p) __sync_fetch_and_add(p,1)
|
|
|
#define _aso_dec64(p) __sync_fetch_and_sub(p,1)
|
|
|
#if _ast_sizeof_pointer == 8
|
|
|
- #define _aso_casptr(p,o,n) ((void*)__sync_val_compare_and_swap(p,(uint64_t)o,(uint64_t)n))
|
|
|
+ #define _aso_casptr(p,o,n) ((void*)__sync_val_compare_and_swap(p,o,n))
|
|
|
#else
|
|
|
- #define _aso_casptr(p,o,n) ((void*)__sync_val_compare_and_swap(p,(uint32_t)o,(uint32_t)n))
|
|
|
+ #define _aso_casptr(p,o,n) ((void*)__sync_val_compare_and_swap(p,o,n))
|
|
|
#endif
|
|
|
}
|
|
|
elif aso note{ gcc 4.1+ 32 bit memory atomic operations model }end link{
|
|
@@ -48,7 +48,7 @@ elif aso note{ gcc 4.1+ 32 bit memory atomic operations model }end link{
|
|
|
#define _aso_cas32(p,o,n) __sync_val_compare_and_swap(p,o,n)
|
|
|
#define _aso_inc32(p) __sync_fetch_and_add(p,1)
|
|
|
#define _aso_dec32(p) __sync_fetch_and_sub(p,1)
|
|
|
- #define _aso_casptr(p,o,n) ((void*)__sync_val_compare_and_swap(p,(uint32_t)o,(uint32_t)n))
|
|
|
+ #define _aso_casptr(p,o,n) ((void*)__sync_val_compare_and_swap(p,o,n))
|
|
|
}
|
|
|
elif aso note{ <atomic.h> atomic_cas_64 }end link{
|
|
|
#include "FEATURE/common"
|
|
@@ -74,9 +74,9 @@ elif aso note{ <atomic.h> atomic_cas_64 }end link{
|
|
|
#define _aso_inc64(p) (atomic_add_64_nv(p,1)-1)
|
|
|
#define _aso_dec64(p) (atomic_add_64_nv(p,-1)+1)
|
|
|
#if _ast_sizeof_pointer == 8
|
|
|
- #define _aso_casptr(p,o,n) ((void*)atomic_cas_64((uint64_t*)p,(uint64_t)o,(uint64_t)n))
|
|
|
+ #define _aso_casptr(p,o,n) ((void*)atomic_cas_64((uint64_t*)p,o,n))
|
|
|
#else
|
|
|
- #define _aso_casptr(p,o,n) ((void*)atomic_cas_32((uint32_t*)p,(uint32_t)o,(uint32_t)n))
|
|
|
+ #define _aso_casptr(p,o,n) ((void*)atomic_cas_32((uint32_t*)p,o,n))
|
|
|
#endif
|
|
|
}
|
|
|
elif aso note{ <atomic.h> atomic_cas_32 }end link{
|
|
@@ -98,7 +98,7 @@ elif aso note{ <atomic.h> atomic_cas_32 }end link{
|
|
|
#define _aso_cas32(p,o,n) atomic_cas_32(p,o,n)
|
|
|
#define _aso_inc32(p) (atomic_add_32_nv(p,1)-1)
|
|
|
#define _aso_dec32(p) (atomic_add_32_nv(p,-1)+1)
|
|
|
- #define _aso_casptr(p,o,n) ((void*)atomic_cas_32((uint32_t*)p,(uint32_t)o,(uint32_t)n))
|
|
|
+ #define _aso_casptr(p,o,n) ((void*)atomic_cas_32((uint32_t*)p,o,n))
|
|
|
}
|
|
|
elif aso -latomic note{ <atomic.h> atomic_cas_64 with -latomic }end link{
|
|
|
#include "FEATURE/common"
|
|
@@ -125,9 +125,9 @@ elif aso -latomic note{ <atomic.h> atomic_cas_64 with -latomic }end link{
|
|
|
#define _aso_inc64(p) (atomic_add_64_nv(p,1)-1)
|
|
|
#define _aso_dec64(p) (atomic_add_64_nv(p,-1)+1)
|
|
|
#if _ast_sizeof_pointer == 8
|
|
|
- #define _aso_casptr(p,o,n) ((void*)atomic_cas_64((uint64_t*)p,(uint64_t)o,(uint64_t)n))
|
|
|
+ #define _aso_casptr(p,o,n) ((void*)atomic_cas_64((uint64_t*)p,o,n))
|
|
|
#else
|
|
|
- #define _aso_casptr(p,o,n) ((void*)atomic_cas_32((uint32_t*)p,(uint32_t)o,(uint32_t)n))
|
|
|
+ #define _aso_casptr(p,o,n) ((void*)atomic_cas_32((uint32_t*)p,o,n))
|
|
|
#endif
|
|
|
}
|
|
|
elif aso note{ <atomic.h> atomic_cas_32 with -latomic }end link{
|
|
@@ -150,7 +150,7 @@ elif aso note{ <atomic.h> atomic_cas_32 with -latomic }end link{
|
|
|
#define _aso_cas32(p,o,n) atomic_cas_32(p,o,n)
|
|
|
#define _aso_inc32(p) (atomic_add_32_nv(p,1)-1)
|
|
|
#define _aso_dec32(p) (atomic_add_32_nv(p,-1)+1)
|
|
|
- #define _aso_casptr(p,o,n) ((void*)atomic_cas_32((uint32_t*)p,(uint32_t)o,(uint32_t)n))
|
|
|
+ #define _aso_casptr(p,o,n) ((void*)atomic_cas_32((uint32_t*)p,o,n))
|
|
|
}
|
|
|
elif aso note{ <atomic.h> cas64 }end link{
|
|
|
#include "FEATURE/common"
|
|
@@ -176,9 +176,9 @@ elif aso note{ <atomic.h> cas64 }end link{
|
|
|
#define _aso_inc64(p) (atomic_add_64_nv(p,1)-1)
|
|
|
#define _aso_dec64(p) (atomic_add_64_nv(p,-1)+1)
|
|
|
#if _ast_sizeof_pointer == 8
|
|
|
- #define _aso_casptr(p,o,n) ((void*)cas64((uint64_t*)p,(uint64_t)o,(uint64_t)n))
|
|
|
+ #define _aso_casptr(p,o,n) ((void*)cas64((uint64_t*)p,o,n))
|
|
|
#else
|
|
|
- #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,(uint32_t)o,(uint32_t)n))
|
|
|
+ #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,o,n))
|
|
|
#endif
|
|
|
}
|
|
|
elif aso note{ <atomic.h> just cas64 }end link{
|
|
@@ -199,9 +199,9 @@ elif aso note{ <atomic.h> just cas64 }end link{
|
|
|
#define _aso_cas32(p,o,n) cas32(p,o,n)
|
|
|
#define _aso_cas64(p,o,n) cas64(p,o,n)
|
|
|
#if _ast_sizeof_pointer == 8
|
|
|
- #define _aso_casptr(p,o,n) ((void*)cas64((uint64_t*)p,(uint64_t)o,(uint64_t)n))
|
|
|
+ #define _aso_casptr(p,o,n) ((void*)cas64((uint64_t*)p,o,n))
|
|
|
#else
|
|
|
- #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,(uint32_t)o,(uint32_t)n))
|
|
|
+ #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,o,n))
|
|
|
#endif
|
|
|
}
|
|
|
elif aso note{ <atomic.h> cas32 }end link{
|
|
@@ -223,7 +223,7 @@ elif aso note{ <atomic.h> cas32 }end link{
|
|
|
#define _aso_cas32(p,o,n) cas32(p,o,n)
|
|
|
#define _aso_inc32(p) (atomic_add_32_nv(p,1)-1)
|
|
|
#define _aso_dec32(p) (atomic_add_32_nv(p,-1)+1)
|
|
|
- #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,(uint32_t)o,(uint32_t)n))
|
|
|
+ #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,o,n))
|
|
|
}
|
|
|
elif aso note{ <atomic.h> just cas32 }end link{
|
|
|
#include "FEATURE/common"
|
|
@@ -240,7 +240,7 @@ elif aso note{ <atomic.h> just cas32 }end link{
|
|
|
#define _aso_cas8(p,o,n) cas8(p,o,n)
|
|
|
#define _aso_cas16(p,o,n) cas16(p,o,n)
|
|
|
#define _aso_cas32(p,o,n) cas32(p,o,n)
|
|
|
- #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,(uint32_t)o,(uint32_t)n))
|
|
|
+ #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,o,n))
|
|
|
}
|
|
|
elif aso note{ winix Interlocked }end link{
|
|
|
#include <windows.h>
|
|
@@ -261,7 +261,7 @@ elif aso note{ winix Interlocked }end link{
|
|
|
#define _aso_cas64(p,o,n) InterlockedCompareExchange64((LONGLONG volatile*)p,n,o)
|
|
|
#define _aso_inc64(p) (InterlockedIncrement64((LONGLONG volatile*)p)-1)
|
|
|
#define _aso_dec64(p) (InterlockedDecrement64((LONGLONG volatile*)p)+1)
|
|
|
- #define _aso_casptr(p,o,n) ((void*)InterlockedCompareExchange64((LONGLONG volatile*)p,(LONGLONG)n,(LONGLONG)o))
|
|
|
+ #define _aso_casptr(p,o,n) ((void*)InterlockedCompareExchange64((LONGLONG volatile*)p,n,o))
|
|
|
#else
|
|
|
#if _BLD_posix
|
|
|
#include "dl.h"
|
|
@@ -345,7 +345,7 @@ elif aso note{ winix Interlocked }end link{
|
|
|
return _aso_InterlockedDecrement64(p);
|
|
|
}
|
|
|
#endif
|
|
|
- #define _aso_casptr(p,o,n) ((void*)InterlockedCompareExchange((LONG volatile*)p,(LONG)n,(LONG)o))
|
|
|
+ #define _aso_casptr(p,o,n) ((void*)InterlockedCompareExchange((LONG volatile*)p,n,o))
|
|
|
#endif
|
|
|
}
|
|
|
elif aso note{ AIX fetch and add }end link{
|
|
@@ -361,9 +361,9 @@ elif aso note{ AIX fetch and add }end link{
|
|
|
#define _aso_decint(p) fetch_and_add((atomic_p)p,-1)
|
|
|
#define _aso_casint(p,o,n) (compare_and_swap((atomic_p)p,(int*)&o,(int)n) ? o : *p)
|
|
|
#if _ast_sizeof_pointer == 8
|
|
|
- #define _aso_casptr(p,o,n) (compare_and_swaplp((atomic_l)p,(long*)&o,(long)n) ? o : *(void**)p)
|
|
|
+ #define _aso_casptr(p,o,n) (compare_and_swaplp((atomic_l)p,(long*)&o,n) ? o : *(void**)p)
|
|
|
#else
|
|
|
- #define _aso_casptr(p,o,n) (compare_and_swap((atomic_p)p,(int*)&o,(int)n) ? o : *(void**)p)
|
|
|
+ #define _aso_casptr(p,o,n) (compare_and_swap((atomic_p)p,(int*)&o,n) ? o : *(void**)p)
|
|
|
#endif
|
|
|
}
|
|
|
elif aso note{ MIPS compare and swap }end link{
|
|
@@ -374,7 +374,7 @@ elif aso note{ MIPS compare and swap }end link{
|
|
|
}
|
|
|
}end && {
|
|
|
#define _aso_cas32(p,o,n) (__compare_and_swap(p,o,n) ? o : *p)
|
|
|
- #define _aso_casptr(p,o,n) (__compare_and_swap((long*)p,(long)o,(long)n) ? o : *(void**)p)
|
|
|
+ #define _aso_casptr(p,o,n) (__compare_and_swap((long*)p,o,n) ? o : *(void**)p)
|
|
|
}
|
|
|
elif aso note{ i386|i386-64 asm compare and swap }end link{
|
|
|
#include "FEATURE/common"
|
|
@@ -457,9 +457,9 @@ elif aso note{ i386|i386-64 asm compare and swap }end link{
|
|
|
#define _aso_cas32(p,o,n) cas32(p,o,n)
|
|
|
#if _ast_sizeof_pointer == 8
|
|
|
#define _aso_cas64(p,o,n) cas64(p,o,n)
|
|
|
- #define _aso_casptr(p,o,n) ((void*)cas64((uint64_t*)p,(uint64_t)o,(uint64_t)n))
|
|
|
+ #define _aso_casptr(p,o,n) ((void*)cas64((uint64_t*)p,o,n))
|
|
|
#else
|
|
|
- #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,(uint32_t)o,(uint32_t)n))
|
|
|
+ #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,o,n))
|
|
|
#endif
|
|
|
}
|
|
|
elif aso note{ ia64 asm compare and swap }end link{
|
|
@@ -527,9 +527,9 @@ elif aso note{ ia64 asm compare and swap }end link{
|
|
|
#define _aso_cas32(p,o,n) cas32(p,o,n)
|
|
|
#define _aso_cas64(p,o,n) cas64(p,o,n)
|
|
|
#if _ast_sizeof_pointer == 8
|
|
|
- #define _aso_casptr(p,o,n) ((void*)cas64((uint64_t*)p,(uint64_t)o,(uint64_t)n))
|
|
|
+ #define _aso_casptr(p,o,n) ((void*)cas64((uint64_t*)p,o,n))
|
|
|
#else
|
|
|
- #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,(uint32_t)o,(uint32_t)n))
|
|
|
+ #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,o,n))
|
|
|
#endif
|
|
|
}
|
|
|
elif aso note{ ppc asm compare and swap }end link{
|
|
@@ -625,9 +625,9 @@ elif aso note{ ppc asm compare and swap }end link{
|
|
|
#define _aso_cas32(p,o,n) cas32(p,o,n)
|
|
|
#define _aso_cas64(p,o,n) cas64(p,o,n)
|
|
|
#if _ast_sizeof_pointer == 8
|
|
|
- #define _aso_casptr(p,o,n) ((void*)cas64((uint64_t*)p,(uint64_t)o,(uint64_t)n))
|
|
|
+ #define _aso_casptr(p,o,n) ((void*)cas64((uint64_t*)p,o,n))
|
|
|
#else
|
|
|
- #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,(uint32_t)o,(uint32_t)n))
|
|
|
+ #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,o,n))
|
|
|
#endif
|
|
|
}
|
|
|
endif
|