/Linux-v6.6/tools/testing/selftests/bpf/verifier/ |
D | atomic_fetch.c | 10 BPF_ATOMIC_OP(BPF_DW, BPF_AND | BPF_FETCH, BPF_REG_2, BPF_REG_1, 0), 34 BPF_ATOMIC_OP(BPF_DW, BPF_AND | BPF_FETCH, BPF_REG_2, BPF_REG_1, 0), 58 BPF_ATOMIC_OP(BPF_W, BPF_AND | BPF_FETCH, BPF_REG_2, BPF_REG_1, 0), 81 BPF_ATOMIC_OP(BPF_W, BPF_AND | BPF_FETCH, BPF_REG_2, BPF_REG_1, 0), 121 __ATOMIC_FETCH_OP_TEST(BPF_REG_1, BPF_REG_2, 1, BPF_ADD | BPF_FETCH, 2, 3), 122 __ATOMIC_FETCH_OP_TEST(BPF_REG_0, BPF_REG_1, 1, BPF_ADD | BPF_FETCH, 2, 3), 123 __ATOMIC_FETCH_OP_TEST(BPF_REG_1, BPF_REG_0, 1, BPF_ADD | BPF_FETCH, 2, 3), 124 __ATOMIC_FETCH_OP_TEST(BPF_REG_2, BPF_REG_3, 1, BPF_ADD | BPF_FETCH, 2, 3), 125 __ATOMIC_FETCH_OP_TEST(BPF_REG_4, BPF_REG_5, 1, BPF_ADD | BPF_FETCH, 2, 3), 126 __ATOMIC_FETCH_OP_TEST(BPF_REG_9, BPF_REG_8, 1, BPF_ADD | BPF_FETCH, 2, 3), [all …]
|
D | atomic_invalid.c | 15 __INVALID_ATOMIC_ACCESS_TEST(BPF_ADD | BPF_FETCH), 17 __INVALID_ATOMIC_ACCESS_TEST(BPF_ADD | BPF_FETCH), 19 __INVALID_ATOMIC_ACCESS_TEST(BPF_AND | BPF_FETCH), 21 __INVALID_ATOMIC_ACCESS_TEST(BPF_OR | BPF_FETCH), 23 __INVALID_ATOMIC_ACCESS_TEST(BPF_XOR | BPF_FETCH),
|
D | atomic_fetch_add.c | 9 BPF_ATOMIC_OP(BPF_DW, BPF_ADD | BPF_FETCH, BPF_REG_10, BPF_REG_1, -8), 31 BPF_ATOMIC_OP(BPF_W, BPF_ADD | BPF_FETCH, BPF_REG_10, BPF_REG_1, -4), 50 BPF_ATOMIC_OP(BPF_DW, BPF_ADD | BPF_FETCH, BPF_REG_10, BPF_REG_10, -8), 62 BPF_ATOMIC_OP(BPF_DW, BPF_ADD | BPF_FETCH, BPF_REG_10, BPF_REG_2, -8), 75 BPF_ATOMIC_OP(BPF_DW, BPF_ADD | BPF_FETCH, BPF_REG_2, BPF_REG_0, -8), 96 BPF_ATOMIC_OP(BPF_DW, BPF_ADD | BPF_FETCH, BPF_REG_2, BPF_REG_3, 0),
|
D | atomic_and.c | 30 BPF_ATOMIC_OP(BPF_DW, BPF_AND | BPF_FETCH, BPF_REG_10, BPF_REG_1, -8), 60 BPF_ATOMIC_OP(BPF_W, BPF_AND | BPF_FETCH, BPF_REG_10, BPF_REG_1, -4), 85 BPF_ATOMIC_OP(BPF_DW, BPF_AND | BPF_FETCH, BPF_REG_10, BPF_REG_0, -8),
|
D | atomic_or.c | 30 BPF_ATOMIC_OP(BPF_DW, BPF_OR | BPF_FETCH, BPF_REG_10, BPF_REG_1, -8), 60 BPF_ATOMIC_OP(BPF_W, BPF_OR | BPF_FETCH, BPF_REG_10, BPF_REG_1, -4), 88 BPF_ATOMIC_OP(BPF_W, BPF_OR | BPF_FETCH, BPF_REG_10, BPF_REG_1, -8),
|
D | atomic_xor.c | 30 BPF_ATOMIC_OP(BPF_DW, BPF_XOR | BPF_FETCH, BPF_REG_10, BPF_REG_1, -8), 60 BPF_ATOMIC_OP(BPF_W, BPF_XOR | BPF_FETCH, BPF_REG_10, BPF_REG_1, -4),
|
D | atomic_bounds.c | 18 BPF_ATOMIC_OP(BPF_DW, BPF_ADD | BPF_FETCH, BPF_REG_10, BPF_REG_1, -8),
|
/Linux-v6.6/arch/mips/net/ |
D | bpf_jit_comp32.c | 741 case BPF_ADD | BPF_FETCH: in emit_atomic_r32() 747 case BPF_SUB | BPF_FETCH: in emit_atomic_r32() 753 case BPF_OR | BPF_FETCH: in emit_atomic_r32() 759 case BPF_AND | BPF_FETCH: in emit_atomic_r32() 765 case BPF_XOR | BPF_FETCH: in emit_atomic_r32() 777 if (code & BPF_FETCH) { in emit_atomic_r32() 822 case BPF_ADD | BPF_FETCH: in emit_atomic_r64() 828 case BPF_SUB | BPF_FETCH: in emit_atomic_r64() 834 case BPF_OR | BPF_FETCH: in emit_atomic_r64() 840 case BPF_AND | BPF_FETCH: in emit_atomic_r64() [all …]
|
D | bpf_jit_comp64.c | 391 case BPF_ADD | BPF_FETCH: in emit_atomic_r64() 395 case BPF_AND | BPF_FETCH: in emit_atomic_r64() 399 case BPF_OR | BPF_FETCH: in emit_atomic_r64() 403 case BPF_XOR | BPF_FETCH: in emit_atomic_r64() 414 if (code & BPF_FETCH) { in emit_atomic_r64() 853 case BPF_ADD | BPF_FETCH: in build_insn() 855 case BPF_AND | BPF_FETCH: in build_insn() 857 case BPF_OR | BPF_FETCH: in build_insn() 859 case BPF_XOR | BPF_FETCH: in build_insn() 863 } else if (imm & BPF_FETCH) { in build_insn()
|
D | bpf_jit_comp.c | 415 case BPF_ADD | BPF_FETCH: in emit_atomic_r() 419 case BPF_AND | BPF_FETCH: in emit_atomic_r() 423 case BPF_OR | BPF_FETCH: in emit_atomic_r() 427 case BPF_XOR | BPF_FETCH: in emit_atomic_r() 438 if (code & BPF_FETCH) { in emit_atomic_r()
|
/Linux-v6.6/tools/testing/selftests/bpf/ |
D | disasm.c | 221 (insn->imm == (BPF_ADD | BPF_FETCH) || in print_bpf_insn() 222 insn->imm == (BPF_AND | BPF_FETCH) || in print_bpf_insn() 223 insn->imm == (BPF_OR | BPF_FETCH) || in print_bpf_insn() 224 insn->imm == (BPF_XOR | BPF_FETCH))) { in print_bpf_insn()
|
/Linux-v6.6/kernel/bpf/ |
D | disasm.c | 221 (insn->imm == (BPF_ADD | BPF_FETCH) || in print_bpf_insn() 222 insn->imm == (BPF_AND | BPF_FETCH) || in print_bpf_insn() 223 insn->imm == (BPF_OR | BPF_FETCH) || in print_bpf_insn() 224 insn->imm == (BPF_XOR | BPF_FETCH))) { in print_bpf_insn()
|
D | core.c | 2098 case BOP | BPF_FETCH: \ in ___bpf_prog_run()
|
/Linux-v6.6/arch/arm64/net/ |
D | bpf_jit_comp.c | 481 case BPF_ADD | BPF_FETCH: in emit_lse_atomic() 484 case BPF_AND | BPF_FETCH: in emit_lse_atomic() 488 case BPF_OR | BPF_FETCH: in emit_lse_atomic() 491 case BPF_XOR | BPF_FETCH: in emit_lse_atomic() 555 } else if (imm == (BPF_ADD | BPF_FETCH) || in emit_ll_sc_atomic() 556 imm == (BPF_AND | BPF_FETCH) || in emit_ll_sc_atomic() 557 imm == (BPF_OR | BPF_FETCH) || in emit_ll_sc_atomic() 558 imm == (BPF_XOR | BPF_FETCH)) { in emit_ll_sc_atomic() 564 if (imm == (BPF_ADD | BPF_FETCH)) in emit_ll_sc_atomic() 566 else if (imm == (BPF_AND | BPF_FETCH)) in emit_ll_sc_atomic() [all …]
|
/Linux-v6.6/lib/ |
D | test_bpf.c | 1613 if (op & BPF_FETCH) in __bpf_emit_atomic64() 1660 if (op & BPF_FETCH) in __bpf_emit_atomic32() 1808 return __bpf_fill_atomic64(self, BPF_ADD | BPF_FETCH); in bpf_fill_atomic64_add_fetch() 1813 return __bpf_fill_atomic64(self, BPF_AND | BPF_FETCH); in bpf_fill_atomic64_and_fetch() 1818 return __bpf_fill_atomic64(self, BPF_OR | BPF_FETCH); in bpf_fill_atomic64_or_fetch() 1823 return __bpf_fill_atomic64(self, BPF_XOR | BPF_FETCH); in bpf_fill_atomic64_xor_fetch() 1860 return __bpf_fill_atomic32(self, BPF_ADD | BPF_FETCH); in bpf_fill_atomic32_add_fetch() 1865 return __bpf_fill_atomic32(self, BPF_AND | BPF_FETCH); in bpf_fill_atomic32_and_fetch() 1870 return __bpf_fill_atomic32(self, BPF_OR | BPF_FETCH); in bpf_fill_atomic32_or_fetch() 1875 return __bpf_fill_atomic32(self, BPF_XOR | BPF_FETCH); in bpf_fill_atomic32_xor_fetch() [all …]
|
/Linux-v6.6/Documentation/bpf/ |
D | clang-notes.rst | 34 Clang can generate is ``BPF_ADD`` *without* ``BPF_FETCH``. If you need to enable
|
/Linux-v6.6/arch/powerpc/net/ |
D | bpf_jit_comp64.c | 814 if (imm & BPF_FETCH) in bpf_jit_build_body() 819 case BPF_ADD | BPF_FETCH: in bpf_jit_build_body() 823 case BPF_AND | BPF_FETCH: in bpf_jit_build_body() 827 case BPF_OR | BPF_FETCH: in bpf_jit_build_body() 831 case BPF_XOR | BPF_FETCH: in bpf_jit_build_body() 867 if (imm & BPF_FETCH) { in bpf_jit_build_body()
|
D | bpf_jit_comp32.c | 859 if (imm & BPF_FETCH) in bpf_jit_build_body() 864 case BPF_ADD | BPF_FETCH: in bpf_jit_build_body() 868 case BPF_AND | BPF_FETCH: in bpf_jit_build_body() 872 case BPF_OR | BPF_FETCH: in bpf_jit_build_body() 876 case BPF_XOR | BPF_FETCH: in bpf_jit_build_body() 906 if (imm & BPF_FETCH) { in bpf_jit_build_body()
|
/Linux-v6.6/arch/s390/net/ |
D | bpf_jit_comp.c | 1312 (insn->imm & BPF_FETCH) ? src_reg : REG_W0, \ in bpf_jit_insn() 1314 if (is32 && (insn->imm & BPF_FETCH)) \ in bpf_jit_insn() 1318 case BPF_ADD | BPF_FETCH: in bpf_jit_insn() 1323 case BPF_AND | BPF_FETCH: in bpf_jit_insn() 1328 case BPF_OR | BPF_FETCH: in bpf_jit_insn() 1333 case BPF_XOR | BPF_FETCH: in bpf_jit_insn()
|
/Linux-v6.6/Documentation/bpf/standardization/ |
D | instruction-set.rst | 526 BPF_FETCH 0x01 modifier: return old value 527 BPF_XCHG 0xe0 | BPF_FETCH atomic exchange 528 BPF_CMPXCHG 0xf0 | BPF_FETCH atomic compare and exchange 531 The ``BPF_FETCH`` modifier is optional for simple atomic operations, and 532 always set for the complex atomic operations. If the ``BPF_FETCH`` flag
|
/Linux-v6.6/arch/loongarch/net/ |
D | bpf_jit.c | 320 case BPF_ADD | BPF_FETCH: in emit_atomic() 328 case BPF_AND | BPF_FETCH: in emit_atomic() 336 case BPF_OR | BPF_FETCH: in emit_atomic() 344 case BPF_XOR | BPF_FETCH: in emit_atomic()
|
/Linux-v6.6/tools/include/uapi/linux/ |
D | bpf.h | 49 #define BPF_FETCH 0x01 /* not an opcode on its own, used to build others */ macro 50 #define BPF_XCHG (0xe0 | BPF_FETCH) /* atomic exchange */ 51 #define BPF_CMPXCHG (0xf0 | BPF_FETCH) /* atomic compare-and-write */
|
/Linux-v6.6/include/uapi/linux/ |
D | bpf.h | 49 #define BPF_FETCH 0x01 /* not an opcode on its own, used to build others */ macro 50 #define BPF_XCHG (0xe0 | BPF_FETCH) /* atomic exchange */ 51 #define BPF_CMPXCHG (0xf0 | BPF_FETCH) /* atomic compare-and-write */
|
/Linux-v6.6/arch/riscv/net/ |
D | bpf_jit_comp64.c | 518 case BPF_ADD | BPF_FETCH: in emit_atomic() 524 case BPF_AND | BPF_FETCH: in emit_atomic() 530 case BPF_OR | BPF_FETCH: in emit_atomic() 536 case BPF_XOR | BPF_FETCH: in emit_atomic()
|
/Linux-v6.6/arch/x86/net/ |
D | bpf_jit_comp.c | 889 case BPF_ADD | BPF_FETCH: in emit_atomic() 1563 if (insn->imm == (BPF_AND | BPF_FETCH) || in do_jit() 1564 insn->imm == (BPF_OR | BPF_FETCH) || in do_jit() 1565 insn->imm == (BPF_XOR | BPF_FETCH)) { in do_jit()
|