1 #ifndef BOOST_DETAIL_ATOMIC_GCC_ALPHA_HPP 2 #define BOOST_DETAIL_ATOMIC_GCC_ALPHA_HPP 11 #include <boost/atomic/detail/builder.hpp> 54 __asm__ __volatile__ (
"mb" :::
"memory");
65 __asm__ __volatile__ (
"mb" :::
"memory");
79 __asm__ __volatile__ (
"mb" :::
"memory");
92 T v=*
reinterpret_cast<volatile const int *
>(&
i);
99 *
reinterpret_cast<volatile int *
>(&
i)=(
int)v;
108 int current, success;
109 __asm__ __volatile__(
122 :
"+&r" (expected),
"+&r" (desired),
"=&r"(current),
"=&r"(success)
136 T original, modified;
137 __asm__ __volatile__(
147 :
"=&r" (original),
"=&r" (modified)
157 int original, modified;
158 __asm__ __volatile__(
168 :
"=&r" (original),
"=&r" (modified)
178 int original, modified;
179 __asm__ __volatile__(
189 :
"=&r" (original),
"=&r" (modified)
208 T v=*
reinterpret_cast<volatile const T *
>(&
i);
215 *
reinterpret_cast<volatile T *
>(&
i)=v;
224 int current, success;
225 __asm__ __volatile__(
238 :
"+&r" (expected),
"+&r" (desired),
"=&r"(current),
"=&r"(success)
252 T original, modified;
253 __asm__ __volatile__(
263 :
"=&r" (original),
"=&r" (modified)
273 T original, modified;
274 __asm__ __volatile__(
284 :
"=&r" (original),
"=&r" (modified)
294 T original, modified;
295 __asm__ __volatile__(
305 :
"=&r" (original),
"=&r" (modified)
317 class platform_atomic_integral<T, 4> :
public build_atomic_from_typical<build_exchange<atomic_alpha_32<T> > > {
319 typedef build_atomic_from_typical<build_exchange<atomic_alpha_32<T> > >
super;
325 class platform_atomic_integral<T, 8> :
public build_atomic_from_typical<build_exchange<atomic_alpha_64<T> > > {
327 typedef build_atomic_from_typical<build_exchange<atomic_alpha_64<T> > >
super;
333 class platform_atomic_integral<T, 1>:
public build_atomic_from_larger_type<atomic_alpha_32<uint32_t>, T> {
335 typedef build_atomic_from_larger_type<atomic_alpha_32<uint32_t>, T>
super;
342 class platform_atomic_integral<T, 2>:
public build_atomic_from_larger_type<atomic_alpha_32<uint32_t>, T> {
344 typedef build_atomic_from_larger_type<atomic_alpha_32<uint32_t>, T>
super;
T fetch_inc(memory_order order) volatile
static void fence_before(memory_order order)
T fetch_add_var(T c, memory_order order) volatile
void store(T v, memory_order order=memory_order_seq_cst) volatile
T load(memory_order order=memory_order_seq_cst) const volatile
T load(memory_order order=memory_order_seq_cst) const volatile
bool is_lock_free(void) const volatile
void store(T v, memory_order order=memory_order_seq_cst) volatile
static void fence_after(memory_order order)
bool compare_exchange_weak(T &expected, T desired, memory_order success_order, memory_order failure_order) volatile
T fetch_dec(memory_order order) volatile
T fetch_inc(memory_order order) volatile
T fetch_add_var(T c, memory_order order) volatile
bool is_lock_free(void) const volatile
void platform_atomic_thread_fence(memory_order order)
T fetch_dec(memory_order order) volatile
bool compare_exchange_weak(T &expected, T desired, memory_order success_order, memory_order failure_order) volatile