BPF_XCHG
case BPF_XCHG:
} else if (imm == BPF_XCHG) {
case BPF_XCHG:
case BPF_XCHG:
case BPF_XCHG:
case BPF_XCHG:
if (code == BPF_XCHG) {
case BPF_XCHG:
case BPF_XCHG:
case BPF_XCHG:
case BPF_XCHG:
case BPF_XCHG:
case BPF_XCHG:
case BPF_XCHG:
case BPF_XCHG: {
insn->imm == BPF_XCHG)
if (atomic_op != BPF_XCHG)
case BPF_XCHG:
if (atomic_op != BPF_XCHG)
case BPF_XCHG:
case BPF_XCHG:
insn->imm == BPF_XCHG) {
insn_buf[1] = BPF_ATOMIC_OP(BPF_DW, BPF_XCHG, BPF_REG_1, BPF_REG_0, 0);
case BPF_XCHG:
BPF_TEST_CLOBBER_ATOMIC(BPF_DW, BPF_XCHG),
BPF_TEST_CLOBBER_ATOMIC(BPF_W, BPF_XCHG),
case BPF_XCHG:
case BPF_XCHG:
return __bpf_fill_atomic64(self, BPF_XCHG);
return __bpf_fill_atomic32(self, BPF_XCHG);
case BPF_XCHG:
} else if (op == BPF_XCHG) { /* Aliased, XCHG */
return __bpf_fill_atomic_reg_pairs(self, BPF_DW, BPF_XCHG);
return __bpf_fill_atomic_reg_pairs(self, BPF_W, BPF_XCHG);
BPF_ATOMIC_OP_TEST1(BPF_W, BPF_XCHG, xchg, 0x12, 0xab, 0xab),
BPF_ATOMIC_OP_TEST2(BPF_W, BPF_XCHG, xchg, 0x12, 0xab, 0xab),
BPF_ATOMIC_OP_TEST3(BPF_W, BPF_XCHG, xchg, 0x12, 0xab, 0xab),
BPF_ATOMIC_OP_TEST4(BPF_W, BPF_XCHG, xchg, 0x12, 0xab, 0xab),
BPF_ATOMIC_OP_TEST1(BPF_DW, BPF_XCHG, xchg, 0x12, 0xab, 0xab),
BPF_ATOMIC_OP_TEST2(BPF_DW, BPF_XCHG, xchg, 0x12, 0xab, 0xab),
BPF_ATOMIC_OP_TEST3(BPF_DW, BPF_XCHG, xchg, 0x12, 0xab, 0xab),
BPF_ATOMIC_OP_TEST4(BPF_DW, BPF_XCHG, xchg, 0x12, 0xab, 0xab),
insn->imm == BPF_XCHG) {
exp = BPF_ATOMIC_OP(BPF_DW, BPF_XCHG, BPF_REG_1, BPF_REG_0, 0);
BPF_ATOMIC_OP(BPF_DW, BPF_XCHG, BPF_REG_10, BPF_REG_2, -8))
__ATOMIC_FETCH_OP_TEST(BPF_REG_1, BPF_REG_2, 0x010, BPF_XCHG, 0x011, 0x011),
__ATOMIC_FETCH_OP_TEST(BPF_REG_0, BPF_REG_1, 0x010, BPF_XCHG, 0x011, 0x011),
__ATOMIC_FETCH_OP_TEST(BPF_REG_1, BPF_REG_0, 0x010, BPF_XCHG, 0x011, 0x011),
__ATOMIC_FETCH_OP_TEST(BPF_REG_2, BPF_REG_3, 0x010, BPF_XCHG, 0x011, 0x011),
__ATOMIC_FETCH_OP_TEST(BPF_REG_4, BPF_REG_5, 0x010, BPF_XCHG, 0x011, 0x011),
__ATOMIC_FETCH_OP_TEST(BPF_REG_9, BPF_REG_8, 0x010, BPF_XCHG, 0x011, 0x011),
__INVALID_ATOMIC_ACCESS_TEST(BPF_XCHG),
BPF_ATOMIC_OP(BPF_W, BPF_XCHG, BPF_REG_10, BPF_REG_1, -4),
BPF_ATOMIC_OP(BPF_DW, BPF_XCHG, BPF_REG_10, BPF_REG_1, -8),