24#include "../all_aligned_atomic_load_store.h"
28#include "../ordered.h"
30#include "../test_and_set_t_is_char.h"
42 :
"=d" (oldval),
"=m" (*addr)
48#define AO_HAVE_test_and_set_full
58 "cas.l %3,%4,%1; seq %0"
59 :
"=d" (
result),
"=m" (*addr)
60 :
"m" (*addr),
"d" (old),
"d" (new_val)
64#define AO_HAVE_compare_and_swap_full
AO_INLINE int AO_compare_and_swap_full(volatile AO_t *addr, AO_t old, AO_t new_val)
AO_INLINE AO_TS_VAL_t AO_test_and_set_full(volatile AO_TS_t *addr)
unsigned long AO_t __attribute__((__aligned__(4)))