1 #define FACTOR_FORCE_INLINE __attribute__((always_inline)) inline
4 __attribute__((always_inline))
5 inline static bool cas(volatile cell *ptr, cell old_val, cell new_val)
7 return __sync_bool_compare_and_swap(ptr, old_val, new_val);
9 __attribute__((always_inline))
10 inline static bool cas(volatile fixnum *ptr, fixnum old_val, fixnum new_val)
12 return __sync_bool_compare_and_swap(ptr, old_val, new_val);
15 __attribute__((always_inline))
16 inline static cell add(volatile cell *ptr, cell val)
18 return __sync_add_and_fetch(ptr, val);
20 __attribute__((always_inline))
21 inline static fixnum add(volatile fixnum *ptr, fixnum val)
23 return __sync_add_and_fetch(ptr, val);
26 __attribute__((always_inline))
27 inline static cell subtract(volatile cell *ptr, cell val)
29 return __sync_sub_and_fetch(ptr, val);
31 __attribute__((always_inline))
32 inline static fixnum subtract(volatile fixnum *ptr, fixnum val)
34 return __sync_sub_and_fetch(ptr, val);
37 __attribute__((always_inline))
38 inline static void fence()