__membar
#define __membar(_f) do { __asm volatile(_f ::: "memory"); } while (0)
#define __membar(_f) do { __asm volatile(_f ::: "memory"); } while (0)
#define __membar(_f) do { __asm volatile(_f ::: "memory"); } while (0)
#define __membar(_f) do { __asm volatile(_f ::: "memory"); } while (0)
#define __membar() do { \
#define __membar(_f) do { __asm volatile(_f ::: "memory"); } while (0)
#define __membar(_f) do { __asm volatile(_f ::: "memory"); } while (0)
#define __membar(_f) do {__asm volatile(_f ::: "memory"); } while (0)
#define __membar(_m) __asm volatile("membar " _m ::: "memory")