| Index: src/ports/SkAtomics_sync.h
|
| diff --git a/src/ports/SkAtomics_sync.h b/src/ports/SkAtomics_sync.h
|
| index b0d17527f07f0c50271c09d9b6699423b72dd3fa..8135ae2e2ae28714bc6d133fa25c2c318231a86b 100644
|
| --- a/src/ports/SkAtomics_sync.h
|
| +++ b/src/ports/SkAtomics_sync.h
|
| @@ -16,14 +16,26 @@ static inline __attribute__((always_inline)) int32_t sk_atomic_inc(int32_t* addr
|
| return __sync_fetch_and_add(addr, 1);
|
| }
|
|
|
| +static inline __attribute__((always_inline)) int64_t sk_atomic_inc(int64_t* addr) {
|
| + return __sync_fetch_and_add(addr, 1);
|
| +}
|
| +
|
| static inline __attribute__((always_inline)) int32_t sk_atomic_add(int32_t* addr, int32_t inc) {
|
| return __sync_fetch_and_add(addr, inc);
|
| }
|
|
|
| +static inline __attribute__((always_inline)) int64_t sk_atomic_add(int64_t* addr, int64_t inc) {
|
| + return __sync_fetch_and_add(addr, inc);
|
| +}
|
| +
|
| static inline __attribute__((always_inline)) int32_t sk_atomic_dec(int32_t* addr) {
|
| return __sync_fetch_and_add(addr, -1);
|
| }
|
|
|
| +static inline __attribute__((always_inline)) int64_t sk_atomic_dec(int64_t* addr) {
|
| + return __sync_fetch_and_add(addr, -1);
|
| +}
|
| +
|
| static inline __attribute__((always_inline)) void sk_membar_acquire__after_atomic_dec() { }
|
|
|
| static inline __attribute__((always_inline)) bool sk_atomic_cas(int32_t* addr,
|
| @@ -32,6 +44,12 @@ static inline __attribute__((always_inline)) bool sk_atomic_cas(int32_t* addr,
|
| return __sync_bool_compare_and_swap(addr, before, after);
|
| }
|
|
|
| +static inline __attribute__((always_inline)) bool sk_atomic_cas(int64_t* addr,
|
| + int64_t before,
|
| + int64_t after) {
|
| + return __sync_bool_compare_and_swap(addr, before, after);
|
| +}
|
| +
|
| static inline __attribute__((always_inline)) void* sk_atomic_cas(void** addr,
|
| void* before,
|
| void* after) {
|
|
|