Home
last modified time | relevance | path

Searched refs:BPF_FETCH (Results 1 – 25 of 25) sorted by relevance

/Linux-v6.1/tools/testing/selftests/bpf/verifier/
Datomic_fetch.c10 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 …]
Datomic_invalid.c15 __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),
Datomic_fetch_add.c9 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),
Datomic_and.c30 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),
Datomic_or.c30 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),
Datomic_xor.c30 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),
Datomic_bounds.c18 BPF_ATOMIC_OP(BPF_DW, BPF_ADD | BPF_FETCH, BPF_REG_10, BPF_REG_1, -8),
/Linux-v6.1/arch/mips/net/
Dbpf_jit_comp32.c741 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 …]
Dbpf_jit_comp64.c388 case BPF_ADD | BPF_FETCH: in emit_atomic_r64()
392 case BPF_AND | BPF_FETCH: in emit_atomic_r64()
396 case BPF_OR | BPF_FETCH: in emit_atomic_r64()
400 case BPF_XOR | BPF_FETCH: in emit_atomic_r64()
411 if (code & BPF_FETCH) { in emit_atomic_r64()
850 case BPF_ADD | BPF_FETCH: in build_insn()
852 case BPF_AND | BPF_FETCH: in build_insn()
854 case BPF_OR | BPF_FETCH: in build_insn()
856 case BPF_XOR | BPF_FETCH: in build_insn()
860 } else if (imm & BPF_FETCH) { in build_insn()
Dbpf_jit_comp.c411 case BPF_ADD | BPF_FETCH: in emit_atomic_r()
415 case BPF_AND | BPF_FETCH: in emit_atomic_r()
419 case BPF_OR | BPF_FETCH: in emit_atomic_r()
423 case BPF_XOR | BPF_FETCH: in emit_atomic_r()
434 if (code & BPF_FETCH) { in emit_atomic_r()
/Linux-v6.1/kernel/bpf/
Ddisasm.c180 (insn->imm == (BPF_ADD | BPF_FETCH) || in print_bpf_insn()
181 insn->imm == (BPF_AND | BPF_FETCH) || in print_bpf_insn()
182 insn->imm == (BPF_OR | BPF_FETCH) || in print_bpf_insn()
183 insn->imm == (BPF_XOR | BPF_FETCH))) { in print_bpf_insn()
Dverifier.c2417 (insn->imm & BPF_FETCH)) { in insn_def_regno()
4967 case BPF_ADD | BPF_FETCH: in check_atomic()
4969 case BPF_AND | BPF_FETCH: in check_atomic()
4971 case BPF_OR | BPF_FETCH: in check_atomic()
4973 case BPF_XOR | BPF_FETCH: in check_atomic()
5026 if (insn->imm & BPF_FETCH) { in check_atomic()
Dcore.c1946 case BOP | BPF_FETCH: \ in ___bpf_prog_run()
/Linux-v6.1/arch/arm64/net/
Dbpf_jit_comp.c475 case BPF_ADD | BPF_FETCH: in emit_lse_atomic()
478 case BPF_AND | BPF_FETCH: in emit_lse_atomic()
482 case BPF_OR | BPF_FETCH: in emit_lse_atomic()
485 case BPF_XOR | BPF_FETCH: in emit_lse_atomic()
549 } else if (imm == (BPF_ADD | BPF_FETCH) || in emit_ll_sc_atomic()
550 imm == (BPF_AND | BPF_FETCH) || in emit_ll_sc_atomic()
551 imm == (BPF_OR | BPF_FETCH) || in emit_ll_sc_atomic()
552 imm == (BPF_XOR | BPF_FETCH)) { in emit_ll_sc_atomic()
558 if (imm == (BPF_ADD | BPF_FETCH)) in emit_ll_sc_atomic()
560 else if (imm == (BPF_AND | BPF_FETCH)) in emit_ll_sc_atomic()
[all …]
/Linux-v6.1/Documentation/bpf/
Dinstruction-set.rst291 BPF_FETCH 0x01 modifier: return old value
292 BPF_XCHG 0xe0 | BPF_FETCH atomic exchange
293 BPF_CMPXCHG 0xf0 | BPF_FETCH atomic compare and exchange
296 The ``BPF_FETCH`` modifier is optional for simple atomic operations, and
297 always set for the complex atomic operations. If the ``BPF_FETCH`` flag
Dclang-notes.rst28 Clang can generate is ``BPF_ADD`` *without* ``BPF_FETCH``. If you need to enable
/Linux-v6.1/lib/
Dtest_bpf.c1613 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.1/arch/powerpc/net/
Dbpf_jit_comp64.c795 if (imm & BPF_FETCH) in bpf_jit_build_body()
800 case BPF_ADD | BPF_FETCH: in bpf_jit_build_body()
804 case BPF_AND | BPF_FETCH: in bpf_jit_build_body()
808 case BPF_OR | BPF_FETCH: in bpf_jit_build_body()
812 case BPF_XOR | BPF_FETCH: in bpf_jit_build_body()
848 if (imm & BPF_FETCH) { in bpf_jit_build_body()
Dbpf_jit_comp32.c806 if (imm & BPF_FETCH) in bpf_jit_build_body()
811 case BPF_ADD | BPF_FETCH: in bpf_jit_build_body()
815 case BPF_AND | BPF_FETCH: in bpf_jit_build_body()
819 case BPF_OR | BPF_FETCH: in bpf_jit_build_body()
823 case BPF_XOR | BPF_FETCH: in bpf_jit_build_body()
853 if (imm & BPF_FETCH) { in bpf_jit_build_body()
/Linux-v6.1/arch/s390/net/
Dbpf_jit_comp.c1208 (insn->imm & BPF_FETCH) ? src_reg : REG_W0, \ in bpf_jit_insn()
1210 if (is32 && (insn->imm & BPF_FETCH)) \ in bpf_jit_insn()
1214 case BPF_ADD | BPF_FETCH: in bpf_jit_insn()
1219 case BPF_AND | BPF_FETCH: in bpf_jit_insn()
1224 case BPF_OR | BPF_FETCH: in bpf_jit_insn()
1229 case BPF_XOR | BPF_FETCH: in bpf_jit_insn()
/Linux-v6.1/arch/loongarch/net/
Dbpf_jit.c320 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.1/tools/include/uapi/linux/
Dbpf.h48 #define BPF_FETCH 0x01 /* not an opcode on its own, used to build others */ macro
49 #define BPF_XCHG (0xe0 | BPF_FETCH) /* atomic exchange */
50 #define BPF_CMPXCHG (0xf0 | BPF_FETCH) /* atomic compare-and-write */
/Linux-v6.1/include/uapi/linux/
Dbpf.h48 #define BPF_FETCH 0x01 /* not an opcode on its own, used to build others */ macro
49 #define BPF_XCHG (0xe0 | BPF_FETCH) /* atomic exchange */
50 #define BPF_CMPXCHG (0xf0 | BPF_FETCH) /* atomic compare-and-write */
/Linux-v6.1/arch/riscv/net/
Dbpf_jit_comp64.c493 case BPF_ADD | BPF_FETCH: in emit_atomic()
499 case BPF_AND | BPF_FETCH: in emit_atomic()
505 case BPF_OR | BPF_FETCH: in emit_atomic()
511 case BPF_XOR | BPF_FETCH: in emit_atomic()
/Linux-v6.1/arch/x86/net/
Dbpf_jit_comp.c823 case BPF_ADD | BPF_FETCH: in emit_atomic()
1378 if (insn->imm == (BPF_AND | BPF_FETCH) || in do_jit()
1379 insn->imm == (BPF_OR | BPF_FETCH) || in do_jit()
1380 insn->imm == (BPF_XOR | BPF_FETCH)) { in do_jit()