INSN
#define ATOMIC_OP16_NV(OP, INSN) \
INSN w0, w0, w1 /* calc new (return) value */ ;\
#define SYNC_OP16_FETCH(OP, INSN) \
INSN w0, w0, w1 /* calc new (return) value */ ;\
#define ATOMIC_OP32(OP, INSN) \
INSN w2, w0, w1 /* calculate new value */ ;\
#define SYNC_FETCH_OP32(OP, INSN) \
INSN w2, w0, w1 /* calculate new value */ ;\
#define ATOMIC_OP32_NV(OP, INSN) \
INSN w0, w0, w1 /* calc new (return) value */ ;\
#define SYNC_OP32_FETCH(OP, INSN) \
INSN w0, w0, w1 /* calc new (return) value */ ;\
#define ATOMIC_OP64(OP, INSN) \
INSN x2, x0, x1 /* calculate new value */ ;\
#define SYNC_FETCH_OP64(OP, INSN) \
INSN x2, x0, x1 /* calculate new value */ ;\
#define ATOMIC_OP64_NV(OP, INSN) \
INSN x0, x0, x1 /* calc new (return) value */ ;\
#define SYNC_OP64_FETCH(OP, INSN) \
INSN x0, x0, x1 /* calc new (return) value */ ;\
#define ATOMIC_OP8(OP, INSN) \
INSN w2, w0, w1 /* calculate new value */ ;\
#define SYNC_FETCH_OP8(OP, INSN) \
INSN w2, w0, w1 /* calculate new value */ ;\
#define ATOMIC_OP8_NV(OP, INSN) \
INSN w0, w0, w1 /* calc new (return) value */ ;\
#define SYNC_OP8_FETCH(OP, INSN) \
INSN w0, w0, w1 /* calc new (return) value */ ;\
#define ATOMIC_OP16(OP, INSN) \
INSN w2, w0, w1 /* calculate new value */ ;\
#define SYNC_FETCH_OP16(OP, INSN) \
INSN w2, w0, w1 /* calculate new value */ ;\