Chromium Code Reviews| Index: src/ports/SkAtomics_sync.h |
| diff --git a/src/ports/SkAtomics_sync.h b/src/ports/SkAtomics_sync.h |
| index ed9e3d1695a1221345a78616db07ec49e4f02620..635508257fa31ac7d8d1d6b43e4153d3f37f5966 100644 |
| --- a/src/ports/SkAtomics_sync.h |
| +++ b/src/ports/SkAtomics_sync.h |
| @@ -17,7 +17,15 @@ static inline __attribute__((always_inline)) int32_t sk_atomic_inc(int32_t* addr |
| } |
| static inline __attribute__((always_inline)) int64_t sk_atomic_inc(int64_t* addr) { |
| +#if defined(SK_BUILD_FOR_ANDROID_FRAMEWORK) && defined(__mips__) && !defined(__LP64__) |
|
petarj
2014/07/18 16:41:04
Can you remove this part: defined(SK_BUILD_FOR_AND
|
| + /** The 32-bit MIPS toolchain for the android framework is missing support |
| + * for __sync* functions that operate on 64-bit values. The workaround is |
| + * to use __atomic* functions until we can move everything to <stdatomic.h>. |
| + */ |
| + return __atomic_fetch_add(addr, 1, __ATOMIC_SEQ_CST); |
| +#else |
| return __sync_fetch_and_add(addr, 1); |
| +#endif |
| } |
| static inline __attribute__((always_inline)) int32_t sk_atomic_add(int32_t* addr, int32_t inc) { |