1 #define FACTOR_FORCE_INLINE __attribute__((always_inline)) inline
4 __attribute__((always_inline)) inline static bool cas(volatile cell* ptr,
7 return __sync_bool_compare_and_swap(ptr, old_val, new_val);
9 __attribute__((always_inline)) inline static bool cas(volatile fixnum* ptr,
12 return __sync_bool_compare_and_swap(ptr, old_val, new_val);
15 __attribute__((always_inline)) inline static cell fetch_add(volatile cell* ptr,
17 return __sync_fetch_and_add(ptr, val);
19 __attribute__((always_inline)) inline static fixnum fetch_add(
20 volatile fixnum* ptr, fixnum val) {
21 return __sync_fetch_and_add(ptr, val);
24 __attribute__((always_inline)) inline static cell fetch_subtract(
25 volatile cell* ptr, cell val) {
26 return __sync_fetch_and_sub(ptr, val);
28 __attribute__((always_inline)) inline static fixnum fetch_subtract(
29 volatile fixnum* ptr, fixnum val) {
30 return __sync_fetch_and_sub(ptr, val);
33 __attribute__((always_inline)) inline static void fence() {