23#include "../all_atomic_load_store.h"
29#include "../ordered.h"
38#undef AO_TS_INITIALIZER
39#define AO_TS_t struct AO_pa_clearable_loc
40#define AO_TS_INITIALIZER { { 1, 1, 1, 1 } }
44#define AO_TS_VAL_t AO_PA_TS_val
45#define AO_TS_CLEAR AO_PA_TS_clear
46#define AO_TS_SET AO_PA_TS_set
52#define AO_ldcw(a, ret) \
53 __asm__ __volatile__("ldcw 0(%2), %0" \
54 : "=r" (ret), "=m" (*(a)) : "r" (a))
63#define AO_PA_LDCW_ALIGNMENT 16
64#define AO_ldcw_align(addr) \
65 ((volatile unsigned *)(((unsigned long)(addr) \
66 + (AO_PA_LDCW_ALIGNMENT - 1)) \
67 & ~(AO_PA_LDCW_ALIGNMENT - 1)))
73 volatile unsigned int ret;
79#define AO_HAVE_test_and_set_full
89#define AO_CLEAR(addr) AO_pa_clear(addr)
92#undef AO_PA_LDCW_ALIGNMENT
#define AO_compiler_barrier()
AO_INLINE AO_TS_VAL_t AO_test_and_set_full(volatile AO_TS_t *addr)
#define AO_ldcw_align(addr)
AO_INLINE void AO_pa_clear(volatile AO_TS_t *addr)
static double a[MATRIX_SIZE][MATRIX_SIZE]