mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1025900 - #include intrin.h directly in Atomics.h instead of declaring functions manually from it; r=froydnj
This is basically more of bug 1022049. --HG-- extra : rebase_source : 39cf2745d47d90ba1684c2c26a38f9781a4d179e
This commit is contained in:
parent
6df6805088
commit
812dd4b759
@ -514,19 +514,9 @@ struct AtomicIntrinsics<T*, Order> : public IntrinsicMemoryOps<T*, Order>,
|
||||
* version of Windows we support. Therefore, we only provide operations
|
||||
* on 32-bit datatypes for 32-bit Windows versions; for 64-bit Windows
|
||||
* versions, we support 64-bit datatypes as well.
|
||||
*
|
||||
* To avoid namespace pollution issues, we declare whatever functions we
|
||||
* need ourselves.
|
||||
*/
|
||||
|
||||
extern "C" {
|
||||
long __cdecl _InterlockedExchangeAdd(long volatile* aDst, long aVal);
|
||||
long __cdecl _InterlockedOr(long volatile* aDst, long aVal);
|
||||
long __cdecl _InterlockedXor(long volatile* aDst, long aVal);
|
||||
long __cdecl _InterlockedAnd(long volatile* aDst, long aVal);
|
||||
long __cdecl _InterlockedExchange(long volatile *aDst, long aVal);
|
||||
long __cdecl _InterlockedCompareExchange(long volatile *aDst, long aNewVal, long aOldVal);
|
||||
}
|
||||
# include <intrin.h>
|
||||
|
||||
# pragma intrinsic(_InterlockedExchangeAdd)
|
||||
# pragma intrinsic(_InterlockedOr)
|
||||
@ -639,22 +629,6 @@ struct PrimitiveIntrinsics<4>
|
||||
|
||||
# if defined(_M_X64)
|
||||
|
||||
extern "C" {
|
||||
long long __cdecl _InterlockedExchangeAdd64(long long volatile* aDst,
|
||||
long long aVal);
|
||||
long long __cdecl _InterlockedOr64(long long volatile* aDst,
|
||||
long long aVal);
|
||||
long long __cdecl _InterlockedXor64(long long volatile* aDst,
|
||||
long long aVal);
|
||||
long long __cdecl _InterlockedAnd64(long long volatile* aDst,
|
||||
long long aVal);
|
||||
long long __cdecl _InterlockedExchange64(long long volatile* aDst,
|
||||
long long aVal);
|
||||
long long __cdecl _InterlockedCompareExchange64(long long volatile* aDst,
|
||||
long long aNewVal,
|
||||
long long aOldVal);
|
||||
}
|
||||
|
||||
# pragma intrinsic(_InterlockedExchangeAdd64)
|
||||
# pragma intrinsic(_InterlockedOr64)
|
||||
# pragma intrinsic(_InterlockedXor64)
|
||||
@ -713,8 +687,6 @@ struct PrimitiveIntrinsics<8>
|
||||
|
||||
# endif
|
||||
|
||||
extern "C" { void _ReadWriteBarrier(); }
|
||||
|
||||
# pragma intrinsic(_ReadWriteBarrier)
|
||||
|
||||
template<MemoryOrdering Order> struct Barrier;
|
||||
|
Loading…
Reference in New Issue
Block a user