diff options
author | rpj <rpj> | 2004-10-08 12:03:18 +0000 |
---|---|---|
committer | rpj <rpj> | 2004-10-08 12:03:18 +0000 |
commit | 9da8fdcb33373b4b2e1de2a8b7af3ed4b5811245 (patch) | |
tree | 1e232efaa8472fbf0d61816995cb4fddc7e9b5ed /ptw32_InterlockedCompareExchange.c | |
parent | b0cf9efa6afeb8a7dbddf124dae173a2d633c801 (diff) |
Mutex speedups
Diffstat (limited to 'ptw32_InterlockedCompareExchange.c')
-rw-r--r-- | ptw32_InterlockedCompareExchange.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/ptw32_InterlockedCompareExchange.c b/ptw32_InterlockedCompareExchange.c index 299fc36..e3c5162 100644 --- a/ptw32_InterlockedCompareExchange.c +++ b/ptw32_InterlockedCompareExchange.c @@ -51,7 +51,7 @@ * we can call it through a pointer. */ -PTW32_INTERLOCKED_LONG WINAPI +INLINE PTW32_INTERLOCKED_LONG WINAPI ptw32_InterlockedCompareExchange (PTW32_INTERLOCKED_LPLONG location, PTW32_INTERLOCKED_LONG value, PTW32_INTERLOCKED_LONG comparand) @@ -69,6 +69,7 @@ ptw32_InterlockedCompareExchange (PTW32_INTERLOCKED_LPLONG location, #if defined(_M_IX86) || defined(_X86_) #if defined(_MSC_VER) || defined(__WATCOMC__) +#define HAVE_INLINABLE_INTERLOCKED_CMPXCHG _asm { PUSH ecx @@ -86,6 +87,7 @@ ptw32_InterlockedCompareExchange (PTW32_INTERLOCKED_LPLONG location, } #elif defined(__BORLANDC__) +#define HAVE_INLINABLE_INTERLOCKED_CMPXCHG _asm { PUSH ecx @@ -103,6 +105,7 @@ ptw32_InterlockedCompareExchange (PTW32_INTERLOCKED_LPLONG location, } #elif defined(__GNUC__) +#define HAVE_INLINABLE_INTERLOCKED_CMPXCHG __asm__ ( @@ -139,3 +142,10 @@ ptw32_InterlockedCompareExchange (PTW32_INTERLOCKED_LPLONG location, #endif } + +#if 0 +#if defined(PTW32_BUILD_INLINED) && defined(HAVE_INLINABLE_INTERLOCKED_CMPXCHG) +#undef PTW32_INTERLOCKED_COMPARE_EXCHANGE +#define PTW32_INTERLOCKED_COMPARE_EXCHANGE ptw32_InterlockedCompareExchange +#endif +#endif |