Searched refs:dst_reg (Results 1 - 25 of 45) sorted by last modified time

12

/linux-master/kernel/trace/
H A Dbpf_trace.c2194 data), si->dst_reg, si->src_reg,
2196 *insn++ = BPF_LDX_MEM(BPF_DW, si->dst_reg, si->dst_reg,
2202 data), si->dst_reg, si->src_reg,
2204 *insn++ = BPF_LDX_MEM(BPF_DW, si->dst_reg, si->dst_reg,
2210 regs), si->dst_reg, si->src_reg,
2212 *insn++ = BPF_LDX_MEM(BPF_SIZEOF(long), si->dst_reg, si->dst_reg,
/linux-master/kernel/bpf/
H A Dverifier.c3216 return insn->dst_reg;
3223 int dst_reg = insn_def_regno(insn); local
3225 if (dst_reg == -1)
3228 return !is_reg64(env, insn, dst_reg, NULL, DST_OP);
3587 u32 dreg = insn->dst_reg;
3661 /* stx & st shouldn't be using _scalar_ dst_reg
4430 * dst_reg and then will be used by find_equal_scalars() to
7008 err = check_reg_arg(env, insn->dst_reg, SRC_OP);
7031 if (is_ctx_reg(env, insn->dst_reg) ||
7032 is_pkt_reg(env, insn->dst_reg) ||
12687 sanitize_ptr_alu(struct bpf_verifier_env *env, struct bpf_insn *insn, const struct bpf_reg_state *ptr_reg, const struct bpf_reg_state *off_reg, struct bpf_reg_state *dst_reg, struct bpf_sanitize_info *info, const bool commit_window) argument
12796 sanitize_err(struct bpf_verifier_env *env, const struct bpf_insn *insn, int reason, const struct bpf_reg_state *off_reg, const struct bpf_reg_state *dst_reg) argument
12869 sanitize_check_bounds(struct bpf_verifier_env *env, const struct bpf_insn *insn, const struct bpf_reg_state *dst_reg) argument
12913 struct bpf_reg_state *regs = state->regs, *dst_reg; local
13143 scalar32_min_max_add(struct bpf_reg_state *dst_reg, struct bpf_reg_state *src_reg) argument
13169 scalar_min_max_add(struct bpf_reg_state *dst_reg, struct bpf_reg_state *src_reg) argument
13195 scalar32_min_max_sub(struct bpf_reg_state *dst_reg, struct bpf_reg_state *src_reg) argument
13223 scalar_min_max_sub(struct bpf_reg_state *dst_reg, struct bpf_reg_state *src_reg) argument
13251 scalar32_min_max_mul(struct bpf_reg_state *dst_reg, struct bpf_reg_state *src_reg) argument
13283 scalar_min_max_mul(struct bpf_reg_state *dst_reg, struct bpf_reg_state *src_reg) argument
13315 scalar32_min_max_and(struct bpf_reg_state *dst_reg, struct bpf_reg_state *src_reg) argument
13349 scalar_min_max_and(struct bpf_reg_state *dst_reg, struct bpf_reg_state *src_reg) argument
13384 scalar32_min_max_or(struct bpf_reg_state *dst_reg, struct bpf_reg_state *src_reg) argument
13418 scalar_min_max_or(struct bpf_reg_state *dst_reg, struct bpf_reg_state *src_reg) argument
13453 scalar32_min_max_xor(struct bpf_reg_state *dst_reg, struct bpf_reg_state *src_reg) argument
13482 scalar_min_max_xor(struct bpf_reg_state *dst_reg, struct bpf_reg_state *src_reg) argument
13513 __scalar32_min_max_lsh(struct bpf_reg_state *dst_reg, u64 umin_val, u64 umax_val) argument
13531 scalar32_min_max_lsh(struct bpf_reg_state *dst_reg, struct bpf_reg_state *src_reg) argument
13549 __scalar64_min_max_lsh(struct bpf_reg_state *dst_reg, u64 umin_val, u64 umax_val) argument
13579 scalar_min_max_lsh(struct bpf_reg_state *dst_reg, struct bpf_reg_state *src_reg) argument
13594 scalar32_min_max_rsh(struct bpf_reg_state *dst_reg, struct bpf_reg_state *src_reg) argument
13626 scalar_min_max_rsh(struct bpf_reg_state *dst_reg, struct bpf_reg_state *src_reg) argument
13660 scalar32_min_max_arsh(struct bpf_reg_state *dst_reg, struct bpf_reg_state *src_reg) argument
13683 scalar_min_max_arsh(struct bpf_reg_state *dst_reg, struct bpf_reg_state *src_reg) argument
13714 adjust_scalar_min_max_vals(struct bpf_verifier_env *env, struct bpf_insn *insn, struct bpf_reg_state *dst_reg, struct bpf_reg_state src_reg) argument
13880 struct bpf_reg_state *regs = state->regs, *dst_reg, *src_reg; local
14060 struct bpf_reg_state *dst_reg = regs + insn->dst_reg; local
14215 find_good_pkt_pointers(struct bpf_verifier_state *vstate, struct bpf_reg_state *dst_reg, enum bpf_reg_type type, bool range_right_open) argument
14446 is_pkt_ptr_branch_taken(struct bpf_reg_state *dst_reg, struct bpf_reg_state *src_reg, u8 opcode) argument
14832 try_match_pkt_pointers(const struct bpf_insn *insn, struct bpf_reg_state *dst_reg, struct bpf_reg_state *src_reg, struct bpf_verifier_state *this_branch, struct bpf_verifier_state *other_branch) argument
14955 struct bpf_reg_state *dst_reg, *other_branch_regs, *src_reg = NULL; local
15172 struct bpf_reg_state *dst_reg; local
[all...]
H A Ddisasm.c143 insn->code, insn->dst_reg,
145 insn->imm, insn->dst_reg);
153 insn->code, insn->dst_reg,
154 insn->imm, insn->dst_reg);
191 insn->dst_reg, class == BPF_ALU ? 'w' : 'r',
192 insn->dst_reg);
195 insn->code, insn->dst_reg,
200 insn->dst_reg,
209 insn->dst_reg,
219 insn->dst_reg,
[all...]
H A Dcore.c58 #define DST regs[insn->dst_reg]
322 dst[i].dst_reg == 0 &&
1304 if (from->dst_reg == BPF_REG_AX || from->src_reg == BPF_REG_AX)
1310 *to++ = BPF_ALU64_REG(BPF_XOR, from->dst_reg, from->dst_reg);
1326 *to++ = BPF_ALU32_REG_OFF(from->code, from->dst_reg, BPF_REG_AX, from->off);
1340 *to++ = BPF_ALU64_REG_OFF(from->code, from->dst_reg, BPF_REG_AX, from->off);
1360 *to++ = BPF_JMP_REG(from->code, from->dst_reg, BPF_REG_AX, off);
1380 *to++ = BPF_JMP32_REG(from->code, from->dst_reg, BPF_REG_AX,
1388 *to++ = BPF_ALU64_REG(BPF_MOV, aux[0].dst_reg, BPF_REG_A
[all...]
H A Dcgroup.c2233 BPF_SIZE(si->code), si->dst_reg, si->src_reg,
2242 * register is used since neither src_reg nor dst_reg can be
2248 if (si->src_reg == treg || si->dst_reg == treg)
2250 if (si->src_reg == treg || si->dst_reg == treg)
2253 BPF_DW, si->dst_reg, treg,
2257 treg, si->dst_reg,
2266 BPF_DW, treg, si->dst_reg,
2271 si->dst_reg, si->src_reg,
2275 BPF_SIZE(si->code), si->dst_reg, si->dst_reg,
[all...]
/linux-master/arch/x86/net/
H A Dbpf_jit_comp.c222 /* Encode 'dst_reg' register into x86-64 opcode 'byte' */
223 static u8 add_1reg(u8 byte, u32 dst_reg) argument
225 return byte + reg2hex[dst_reg];
228 /* Encode 'dst_reg' and 'src_reg' registers into x86-64 opcode 'byte' */
229 static u8 add_2reg(u8 byte, u32 dst_reg, u32 src_reg) argument
231 return byte + reg2hex[dst_reg] + (reg2hex[src_reg] << 3);
777 u32 dst_reg, const u32 imm32)
788 b1 = add_1mod(0x48, dst_reg);
791 EMIT3_off32(b1, b2, add_1reg(b3, dst_reg), imm32);
800 if (is_ereg(dst_reg))
776 emit_mov_imm32(u8 **pprog, bool sign_propagate, u32 dst_reg, const u32 imm32) argument
816 emit_mov_imm64(u8 **pprog, u32 dst_reg, const u32 imm32_hi, const u32 imm32_lo) argument
839 emit_mov_reg(u8 **pprog, bool is64, u32 dst_reg, u32 src_reg) argument
856 emit_movsx_reg(u8 **pprog, int num_bits, bool is64, u32 dst_reg, u32 src_reg) argument
923 maybe_emit_mod(u8 **pprog, u32 dst_reg, u32 src_reg, bool is64) argument
949 emit_ldx(u8 **pprog, u32 size, u32 dst_reg, u32 src_reg, int off) argument
979 emit_ldsx(u8 **pprog, u32 size, u32 dst_reg, u32 src_reg, int off) argument
1001 emit_ldx_index(u8 **pprog, u32 size, u32 dst_reg, u32 src_reg, u32 index_reg, int off) argument
1027 emit_ldx_r12(u8 **pprog, u32 size, u32 dst_reg, u32 src_reg, int off) argument
1033 emit_stx(u8 **pprog, u32 size, u32 dst_reg, u32 src_reg, int off) argument
1067 emit_stx_index(u8 **pprog, u32 size, u32 dst_reg, u32 src_reg, u32 index_reg, int off) argument
1093 emit_stx_r12(u8 **pprog, u32 size, u32 dst_reg, u32 src_reg, int off) argument
1099 emit_st_index(u8 **pprog, u32 size, u32 dst_reg, u32 index_reg, int off, int imm) argument
1126 emit_st_r12(u8 **pprog, u32 size, u32 dst_reg, int off, int imm) argument
1131 emit_atomic(u8 **pprog, u8 atomic_op, u32 dst_reg, u32 src_reg, s16 off, u8 bpf_size) argument
1252 emit_shiftx(u8 **pprog, u32 dst_reg, u8 src_reg, bool is64, u8 op) argument
1325 u32 dst_reg = insn->dst_reg; local
[all...]
H A Dbpf_jit_comp32.c188 /* Encode 'dst_reg' register into IA32 opcode 'byte' */
189 static u8 add_1reg(u8 byte, u32 dst_reg) argument
191 return byte + dst_reg;
194 /* Encode 'dst_reg' and 'src_reg' registers into IA32 opcode 'byte' */
195 static u8 add_2reg(u8 byte, u32 dst_reg, u32 src_reg) argument
197 return byte + dst_reg + (src_reg << 3);
1675 const bool dstk = insn->dst_reg != BPF_REG_AX;
1678 const u8 *dst = bpf2ia32[insn->dst_reg];
1911 /* ST: *(u8*)(dst_reg + off) = imm */
1951 /* STX: *(u8*)(dst_reg
[all...]
/linux-master/tools/lib/bpf/
H A Dlibbpf.c757 insn->dst_reg == 0 &&
5902 insn->dst_reg = 0;
5929 insn->dst_reg = 0;
7208 insn->dst_reg == 0) {
/linux-master/arch/s390/net/
H A Dbpf_jit_comp.c107 static inline u32 reg(u32 dst_reg, u32 src_reg) argument
109 return reg2hex[dst_reg] << 4 | reg2hex[src_reg];
783 u32 dst_reg = insn->dst_reg; local
807 EMIT4(0xb9160000, dst_reg, src_reg);
813 EMIT4(0xb9260000, dst_reg, src_reg);
815 EMIT4(0xb9160000, dst_reg, dst_reg);
819 EMIT4(0xb9270000, dst_reg, src_reg);
821 EMIT4(0xb9160000, dst_reg, dst_re
2230 load_imm64(struct bpf_jit *jit, int dst_reg, u64 val) argument
[all...]
/linux-master/arch/riscv/net/
H A Dbpf_jit_comp64.c407 *rd = bpf_to_rv_reg(insn->dst_reg, ctx);
482 /* lock *(u32/u64 *)(dst_reg + off16) <op>= src_reg */
499 /* src_reg = atomic_fetch_<op>(dst_reg + off16, src_reg) */
524 /* src_reg = atomic_xchg(dst_reg + off16, src_reg); */
531 /* r0 = atomic_cmpxchg(dst_reg + off16, r0, src_reg); */
567 int dst_reg, int insn_len)
626 FIELD_PREP(BPF_FIXUP_REG_MASK, dst_reg);
565 add_exception_handler(const struct bpf_insn *insn, struct rv_jit_context *ctx, int dst_reg, int insn_len) argument
H A Dbpf_jit_comp32.c964 const s8 *dst = bpf2rv32[insn->dst_reg];
/linux-master/arch/arm64/net/
H A Dbpf_jit_comp.c488 const u8 dst = bpf2a64[insn->dst_reg];
505 /* lock *(u32/u64 *)(dst_reg + off) <op>= src_reg */
519 /* src_reg = atomic_fetch_<op>(dst_reg + off, src_reg) */
533 /* src_reg = atomic_xchg(dst_reg + off, src_reg); */
537 /* r0 = atomic_cmpxchg(dst_reg + off, r0, src_reg); */
558 const u8 dst = bpf2a64[insn->dst_reg];
580 /* lock *(u32/u64 *)(dst_reg + off) <op>= src_reg */
598 /* src_reg = atomic_fetch_<op>(dst_reg + off, src_reg) */
617 /* src_reg = atomic_xchg(dst_reg + off, src_reg); */
626 /* r0 = atomic_cmpxchg(dst_reg
746 int dst_reg = FIELD_GET(BPF_FIXUP_REG_MASK, ex->fixup); local
754 add_exception_handler(const struct bpf_insn *insn, struct jit_ctx *ctx, int dst_reg) argument
[all...]
/linux-master/tools/testing/selftests/bpf/
H A Dtest_verifier.c1460 i, insn->code, insn->dst_reg,
H A Ddisasm.c143 insn->code, insn->dst_reg,
145 insn->imm, insn->dst_reg);
153 insn->code, insn->dst_reg,
154 insn->imm, insn->dst_reg);
191 insn->dst_reg, class == BPF_ALU ? 'w' : 'r',
192 insn->dst_reg);
195 insn->code, insn->dst_reg,
200 insn->dst_reg,
209 insn->dst_reg,
219 insn->dst_reg,
[all...]
/linux-master/tools/include/uapi/linux/
H A Dbpf.h79 __u8 dst_reg:4; /* dest register */ member in struct:bpf_insn
/linux-master/net/core/
H A Dfilter.c298 static u32 convert_skb_access(int skb_field, int dst_reg, int src_reg, argument
307 *insn++ = BPF_LDX_MEM(BPF_W, dst_reg, src_reg,
312 *insn++ = BPF_LDX_MEM(BPF_B, dst_reg, src_reg, PKT_TYPE_OFFSET);
313 *insn++ = BPF_ALU32_IMM(BPF_AND, dst_reg, PKT_TYPE_MAX);
315 *insn++ = BPF_ALU32_IMM(BPF_RSH, dst_reg, 5);
322 *insn++ = BPF_LDX_MEM(BPF_H, dst_reg, src_reg,
329 /* dst_reg = *(u16 *) (src_reg + offsetof(vlan_tci)) */
330 *insn++ = BPF_LDX_MEM(BPF_H, dst_reg, src_reg,
335 *insn++ = BPF_LDX_MEM(BPF_W, dst_reg, src_reg,
337 *insn++ = BPF_JMP_IMM(BPF_JEQ, dst_reg,
9374 bpf_convert_shinfo_access(__u8 dst_reg, __u8 skb_reg, struct bpf_insn *insn) argument
[all...]
/linux-master/include/uapi/linux/
H A Dbpf.h79 __u8 dst_reg:4; /* dest register */ member in struct:bpf_insn
/linux-master/include/linux/
H A Dfilter.h97 /* ALU ops on registers, bpf_add|sub|...: dst_reg += src_reg */
102 .dst_reg = DST, \
113 .dst_reg = DST, \
121 /* ALU ops on immediates, bpf_add|sub|...: dst_reg += imm32 */
126 .dst_reg = DST, \
136 .dst_reg = DST, \
148 .dst_reg = DST, \
158 .dst_reg = DST, \
163 /* Short form of mov, dst_reg = src_reg */
168 .dst_reg
[all...]
/linux-master/arch/loongarch/net/
H A Dbpf_jit.c289 const u8 dst = regmap[insn->dst_reg];
401 int dst_reg = FIELD_GET(BPF_FIXUP_REG_MASK, ex->fixup); local
404 regs->regs[dst_reg] = 0;
413 int dst_reg)
451 ex->fixup = FIELD_PREP(BPF_FIXUP_OFFSET_MASK, offset) | FIELD_PREP(BPF_FIXUP_REG_MASK, dst_reg);
470 const u8 dst = regmap[insn->dst_reg];
946 /* dst_reg = (s64)*(signed size *)(src_reg + off) */
411 add_exception_handler(const struct bpf_insn *insn, struct jit_ctx *ctx, int dst_reg) argument
/linux-master/arch/mips/net/
H A Dbpf_jit_comp32.c1465 const u8 *dst = bpf2mips32[insn->dst_reg];
/linux-master/arch/powerpc/net/
H A Dbpf_jit_comp64.c377 u32 dst_reg = bpf_to_ppc(insn[i].dst_reg); local
404 * is that those instructions will have src_reg/dst_reg set to
409 if (dst_reg >= BPF_PPC_NVR_MIN && dst_reg < 32)
410 bpf_set_seen_register(ctx, dst_reg);
420 EMIT(PPC_RAW_ADD(dst_reg, dst_reg, src_reg));
424 EMIT(PPC_RAW_SUB(dst_reg, dst_reg, src_re
[all...]
H A Dbpf_jit_comp32.c295 u32 dst_reg = bpf_to_ppc(insn[i].dst_reg); local
296 u32 dst_reg_h = dst_reg - 1;
299 u32 src2_reg = dst_reg;
316 insn[i - 1].dst_reg == insn[i].dst_reg && insn[i - 1].imm != 1) {
334 * is that those instructions will have src_reg/dst_reg set to
339 if (dst_reg >= 3 && dst_reg < 32) {
340 bpf_set_seen_register(ctx, dst_reg);
[all...]
H A Dbpf_jit_comp.c259 int dst_reg)
287 fixup[0] = PPC_RAW_LI(dst_reg, 0);
289 fixup[1] = PPC_RAW_LI(dst_reg - 1, 0); /* clear higher 32-bit register too */
257 bpf_add_extable_entry(struct bpf_prog *fp, u32 *image, u32 *fimage, int pass, struct codegen_context *ctx, int insn_idx, int jmp_off, int dst_reg) argument
H A Dbpf_jit.h173 int jmp_off, int dst_reg);
/linux-master/arch/arm/net/
H A Dbpf_jit_32.c1562 const s8 *dst = bpf2a32[insn->dst_reg];

Completed in 1062 milliseconds

12