diff options
Diffstat (limited to 'intern')
-rw-r--r-- | intern/atomic/atomic_ops.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/intern/atomic/atomic_ops.h b/intern/atomic/atomic_ops.h index dc06a51f859..06eb8f21da6 100644 --- a/intern/atomic/atomic_ops.h +++ b/intern/atomic/atomic_ops.h @@ -45,6 +45,7 @@ * arm7 architecture does have both 32 and 64bit atomics, however * it's gcc doesn't have __GCC_HAVE_SYNC_COMPARE_AND_SWAP_n defined. */ +# define JE_FORCE_SYNC_COMPARE_AND_SWAP_1 # define JE_FORCE_SYNC_COMPARE_AND_SWAP_8 # define JE_FORCE_SYNC_COMPARE_AND_SWAP_4 #endif @@ -399,6 +400,12 @@ atomic_fetch_and_and_uint8(uint8_t *p, uint8_t b) return _InterlockedAnd8((char *)p, (char)b); #endif } +#elif defined(JE_FORCE_SYNC_COMPARE_AND_SWAP_1) +ATOMIC_INLINE uint8_t +atomic_fetch_and_and_uint8(uint8_t *p, uint8_t b) +{ + return __sync_fetch_and_and(p, b); +} #else # error "Missing implementation for 8-bit atomic operations" #endif |