mirror of
https://github.com/reactos/reactos.git
synced 2024-09-29 05:54:05 +00:00
[CRT/INTRIN_X86]
* In Clang these are built-ins. svn path=/trunk/; revision=62389
This commit is contained in:
parent
2675d2c145
commit
3800bc28b3
|
@ -186,10 +186,12 @@ __INTRIN_INLINE short _InterlockedCompareExchange16(volatile short * const Desti
|
||||||
return __sync_val_compare_and_swap(Destination, Comperand, Exchange);
|
return __sync_val_compare_and_swap(Destination, Comperand, Exchange);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __clang__
|
||||||
__INTRIN_INLINE long _InterlockedCompareExchange(volatile long * const Destination, const long Exchange, const long Comperand)
|
__INTRIN_INLINE long _InterlockedCompareExchange(volatile long * const Destination, const long Exchange, const long Comperand)
|
||||||
{
|
{
|
||||||
return __sync_val_compare_and_swap(Destination, Comperand, Exchange);
|
return __sync_val_compare_and_swap(Destination, Comperand, Exchange);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
__INTRIN_INLINE void * _InterlockedCompareExchangePointer(void * volatile * const Destination, void * const Exchange, void * const Comperand)
|
__INTRIN_INLINE void * _InterlockedCompareExchangePointer(void * volatile * const Destination, void * const Exchange, void * const Comperand)
|
||||||
{
|
{
|
||||||
|
@ -224,10 +226,12 @@ __INTRIN_INLINE long _InterlockedExchangeAdd16(volatile short * const Addend, co
|
||||||
return __sync_fetch_and_add(Addend, Value);
|
return __sync_fetch_and_add(Addend, Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __clang__
|
||||||
__INTRIN_INLINE long _InterlockedExchangeAdd(volatile long * const Addend, const long Value)
|
__INTRIN_INLINE long _InterlockedExchangeAdd(volatile long * const Addend, const long Value)
|
||||||
{
|
{
|
||||||
return __sync_fetch_and_add(Addend, Value);
|
return __sync_fetch_and_add(Addend, Value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(_M_AMD64)
|
#if defined(_M_AMD64)
|
||||||
__INTRIN_INLINE long long _InterlockedExchangeAdd64(volatile long long * const Addend, const long long Value)
|
__INTRIN_INLINE long long _InterlockedExchangeAdd64(volatile long long * const Addend, const long long Value)
|
||||||
|
@ -302,6 +306,7 @@ __INTRIN_INLINE long long _InterlockedXor64(volatile long long * const value, co
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef __clang__
|
||||||
__INTRIN_INLINE long _InterlockedDecrement(volatile long * const lpAddend)
|
__INTRIN_INLINE long _InterlockedDecrement(volatile long * const lpAddend)
|
||||||
{
|
{
|
||||||
return __sync_sub_and_fetch(lpAddend, 1);
|
return __sync_sub_and_fetch(lpAddend, 1);
|
||||||
|
@ -311,6 +316,7 @@ __INTRIN_INLINE long _InterlockedIncrement(volatile long * const lpAddend)
|
||||||
{
|
{
|
||||||
return __sync_add_and_fetch(lpAddend, 1);
|
return __sync_add_and_fetch(lpAddend, 1);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
__INTRIN_INLINE short _InterlockedDecrement16(volatile short * const lpAddend)
|
__INTRIN_INLINE short _InterlockedDecrement16(volatile short * const lpAddend)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue