use compiler intrinsic for osl_atomic_increment on Windows

Change-Id: I66b2ba5d8e419f6af5eb3f85f8c12effcdaf4d5e
Reviewed-on: https://gerrit.libreoffice.org/20319
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
This commit is contained in:
Noel Grandin
2015-12-01 07:58:12 +02:00
committed by Noel Grandin
parent 06e32106cc
commit e82ca698ec

View File

@ -25,6 +25,10 @@
#include <sal/saldllapi.h>
#include <sal/types.h>
#if defined WNT
#include <intrin.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
@ -58,6 +62,8 @@ SAL_DLLPUBLIC oslInterlockedCount SAL_CALL osl_decrementInterlockedCount(oslInte
*/
#if HAVE_GCC_BUILTIN_ATOMIC
# define osl_atomic_increment(p) __sync_add_and_fetch((p), 1)
#elif defined WNT
# define osl_atomic_increment(p) _InterlockedIncrement(p)
#else
# define osl_atomic_increment(p) osl_incrementInterlockedCount((p))
#endif
@ -75,6 +81,8 @@ SAL_DLLPUBLIC oslInterlockedCount SAL_CALL osl_decrementInterlockedCount(oslInte
*/
#if HAVE_GCC_BUILTIN_ATOMIC
# define osl_atomic_decrement(p) __sync_sub_and_fetch((p), 1)
#elif defined WNT
# define osl_atomic_decrement(p) _InterlockedDecrement(p)
#else
# define osl_atomic_decrement(p) osl_decrementInterlockedCount((p))
#endif