Home
last modified time | relevance | path

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

12

/Linux-v5.4/arch/x86/net/
Dbpf_jit_comp.c164 static u8 add_1reg(u8 byte, u32 dst_reg) in add_1reg() argument
166 return byte + reg2hex[dst_reg]; in add_1reg()
170 static u8 add_2reg(u8 byte, u32 dst_reg, u32 src_reg) in add_2reg() argument
172 return byte + reg2hex[dst_reg] + (reg2hex[src_reg] << 3); in add_2reg()
298 u32 dst_reg, const u32 imm32) in emit_mov_imm32() argument
310 b1 = add_1mod(0x48, dst_reg); in emit_mov_imm32()
313 EMIT3_off32(b1, b2, add_1reg(b3, dst_reg), imm32); in emit_mov_imm32()
322 if (is_ereg(dst_reg)) in emit_mov_imm32()
323 EMIT1(add_2mod(0x40, dst_reg, dst_reg)); in emit_mov_imm32()
326 EMIT2(b2, add_2reg(b3, dst_reg, dst_reg)); in emit_mov_imm32()
[all …]
Dbpf_jit_comp32.c188 static u8 add_1reg(u8 byte, u32 dst_reg) in add_1reg() argument
190 return byte + dst_reg; in add_1reg()
194 static u8 add_2reg(u8 byte, u32 dst_reg, u32 src_reg) in add_2reg() argument
196 return byte + dst_reg + (src_reg << 3); in add_2reg()
1478 const bool dstk = insn->dst_reg == BPF_REG_AX ? false : true; in do_jit()
1481 const u8 *dst = bpf2ia32[insn->dst_reg]; in do_jit()
/Linux-v5.4/arch/powerpc/net/
Dbpf_jit_comp64.c305 u32 dst_reg = b2p[insn[i].dst_reg]; in bpf_jit_build_body() local
332 if (dst_reg >= BPF_PPC_NVR_MIN && dst_reg < 32) in bpf_jit_build_body()
333 bpf_set_seen_register(ctx, insn[i].dst_reg); in bpf_jit_build_body()
343 PPC_ADD(dst_reg, dst_reg, src_reg); in bpf_jit_build_body()
347 PPC_SUB(dst_reg, dst_reg, src_reg); in bpf_jit_build_body()
357 PPC_ADDI(dst_reg, dst_reg, IMM_L(imm)); in bpf_jit_build_body()
360 PPC_ADD(dst_reg, dst_reg, b2p[TMP_REG_1]); in bpf_jit_build_body()
367 PPC_MULW(dst_reg, dst_reg, src_reg); in bpf_jit_build_body()
369 PPC_MULD(dst_reg, dst_reg, src_reg); in bpf_jit_build_body()
374 PPC_MULI(dst_reg, dst_reg, IMM_L(imm)); in bpf_jit_build_body()
[all …]
/Linux-v5.4/arch/s390/net/
Dbpf_jit_comp.c102 static inline u32 reg(u32 dst_reg, u32 src_reg) in reg() argument
104 return reg2hex[dst_reg] << 4 | reg2hex[src_reg]; in reg()
510 u32 dst_reg = insn->dst_reg; in bpf_jit_insn() local
517 if (dst_reg == BPF_REG_AX || src_reg == BPF_REG_AX) in bpf_jit_insn()
525 EMIT4(0xb9160000, dst_reg, src_reg); in bpf_jit_insn()
531 EMIT4(0xb9040000, dst_reg, src_reg); in bpf_jit_insn()
535 EMIT6_IMM(0xc00f0000, dst_reg, imm); in bpf_jit_insn()
541 EMIT6_IMM(0xc0010000, dst_reg, imm); in bpf_jit_insn()
553 EMIT6_DISP_LH(0xe3000000, 0x0004, dst_reg, REG_0, REG_L, in bpf_jit_insn()
563 EMIT2(0x1a00, dst_reg, src_reg); in bpf_jit_insn()
[all …]
/Linux-v5.4/tools/include/linux/
Dfilter.h37 .dst_reg = DST, \
45 .dst_reg = DST, \
55 .dst_reg = DST, \
63 .dst_reg = DST, \
73 .dst_reg = DST, \
83 .dst_reg = DST, \
91 .dst_reg = DST, \
101 .dst_reg = DST, \
109 .dst_reg = DST, \
119 .dst_reg = DST, \
[all …]
/Linux-v5.4/samples/bpf/
Dbpf_insn.h13 .dst_reg = DST, \
21 .dst_reg = DST, \
31 .dst_reg = DST, \
39 .dst_reg = DST, \
49 .dst_reg = DST, \
57 .dst_reg = DST, \
67 .dst_reg = DST, \
75 .dst_reg = DST, \
87 .dst_reg = DST, \
93 .dst_reg = 0, \
[all …]
/Linux-v5.4/kernel/bpf/
Dverifier.c1342 return !is_reg64(env, insn, insn->dst_reg, NULL, DST_OP); in insn_has_def32()
1453 u32 dreg = 1u << insn->dst_reg; in backtrack_insn()
1531 if (insn->dst_reg != BPF_REG_FP) in backtrack_insn()
1890 u32 dst_reg = env->prog->insnsi[insn_idx].dst_reg; in check_stack_write() local
1913 if (dst_reg != BPF_REG_FP) { in check_stack_write()
2903 err = check_reg_arg(env, insn->dst_reg, SRC_OP); in check_xadd()
2912 if (is_ctx_reg(env, insn->dst_reg) || in check_xadd()
2913 is_pkt_reg(env, insn->dst_reg) || in check_xadd()
2914 is_flow_key_reg(env, insn->dst_reg) || in check_xadd()
2915 is_sk_reg(env, insn->dst_reg)) { in check_xadd()
[all …]
Ddisasm.c112 insn->code, insn->dst_reg, in print_bpf_end_insn()
114 insn->imm, insn->dst_reg); in print_bpf_end_insn()
133 insn->dst_reg, class == BPF_ALU ? 'w' : 'r', in print_bpf_insn()
134 insn->dst_reg); in print_bpf_insn()
138 insn->dst_reg, in print_bpf_insn()
145 insn->dst_reg, in print_bpf_insn()
154 insn->dst_reg, in print_bpf_insn()
160 insn->dst_reg, insn->off, in print_bpf_insn()
172 insn->dst_reg, in print_bpf_insn()
180 insn->code, insn->dst_reg, in print_bpf_insn()
[all …]
Dcgroup.c1342 BPF_SIZE(si->code), si->dst_reg, si->src_reg, in sysctl_convert_ctx_access()
1357 if (si->src_reg == treg || si->dst_reg == treg) in sysctl_convert_ctx_access()
1359 if (si->src_reg == treg || si->dst_reg == treg) in sysctl_convert_ctx_access()
1362 BPF_DW, si->dst_reg, treg, in sysctl_convert_ctx_access()
1366 treg, si->dst_reg, in sysctl_convert_ctx_access()
1373 BPF_DW, treg, si->dst_reg, in sysctl_convert_ctx_access()
1378 si->dst_reg, si->src_reg, in sysctl_convert_ctx_access()
1382 BPF_SIZE(si->code), si->dst_reg, si->dst_reg, in sysctl_convert_ctx_access()
1485 si->dst_reg, si->src_reg, \
Dcore.c50 #define DST regs[insn->dst_reg]
297 dst[i].dst_reg == 0 && in bpf_prog_calc_tag()
920 if (from->dst_reg == BPF_REG_AX || from->src_reg == BPF_REG_AX) in bpf_jit_blind_insn()
926 *to++ = BPF_ALU64_REG(BPF_XOR, from->dst_reg, from->dst_reg); in bpf_jit_blind_insn()
942 *to++ = BPF_ALU32_REG(from->code, from->dst_reg, BPF_REG_AX); in bpf_jit_blind_insn()
956 *to++ = BPF_ALU64_REG(from->code, from->dst_reg, BPF_REG_AX); in bpf_jit_blind_insn()
976 *to++ = BPF_JMP_REG(from->code, from->dst_reg, BPF_REG_AX, off); in bpf_jit_blind_insn()
996 *to++ = BPF_JMP32_REG(from->code, from->dst_reg, BPF_REG_AX, in bpf_jit_blind_insn()
1004 *to++ = BPF_ALU64_REG(BPF_MOV, aux[0].dst_reg, BPF_REG_AX); in bpf_jit_blind_insn()
1011 *to++ = BPF_ALU64_REG(BPF_OR, aux[0].dst_reg, BPF_REG_AX); in bpf_jit_blind_insn()
[all …]
/Linux-v5.4/net/core/
Dfilter.c270 static u32 convert_skb_access(int skb_field, int dst_reg, int src_reg, in convert_skb_access() argument
279 *insn++ = BPF_LDX_MEM(BPF_W, dst_reg, src_reg, in convert_skb_access()
284 *insn++ = BPF_LDX_MEM(BPF_B, dst_reg, src_reg, PKT_TYPE_OFFSET()); in convert_skb_access()
285 *insn++ = BPF_ALU32_IMM(BPF_AND, dst_reg, PKT_TYPE_MAX); in convert_skb_access()
287 *insn++ = BPF_ALU32_IMM(BPF_RSH, dst_reg, 5); in convert_skb_access()
294 *insn++ = BPF_LDX_MEM(BPF_H, dst_reg, src_reg, in convert_skb_access()
302 *insn++ = BPF_LDX_MEM(BPF_H, dst_reg, src_reg, in convert_skb_access()
306 *insn++ = BPF_LDX_MEM(BPF_B, dst_reg, src_reg, PKT_VLAN_PRESENT_OFFSET()); in convert_skb_access()
308 *insn++ = BPF_ALU32_IMM(BPF_RSH, dst_reg, PKT_VLAN_PRESENT_BIT); in convert_skb_access()
310 *insn++ = BPF_ALU32_IMM(BPF_AND, dst_reg, 1); in convert_skb_access()
[all …]
/Linux-v5.4/include/linux/
Dfilter.h87 .dst_reg = DST, \
95 .dst_reg = DST, \
105 .dst_reg = DST, \
113 .dst_reg = DST, \
123 .dst_reg = DST, \
133 .dst_reg = DST, \
141 .dst_reg = DST, \
151 .dst_reg = DST, \
159 .dst_reg = DST, \
168 .dst_reg = DST, \
[all …]
/Linux-v5.4/arch/mips/net/
Debpf_jit.c183 dst_reg, enumerator
198 insn->src_reg : insn->dst_reg; in ebpf_to_mips_reg()
226 if (w == dst_reg || w == src_reg_no_fp) in ebpf_to_mips_reg()
426 int dst = ebpf_to_mips_reg(ctx, insn, dst_reg); in gen_imm_insn()
464 get_reg_val_type(ctx, idx, insn->dst_reg) == REG_32BIT) in gen_imm_insn()
470 get_reg_val_type(ctx, idx, insn->dst_reg) != REG_32BIT) in gen_imm_insn()
696 dst = ebpf_to_mips_reg(ctx, insn, dst_reg); in build_one_insn()
699 if (get_reg_val_type(ctx, this_idx, insn->dst_reg) == REG_32BIT) in build_one_insn()
712 dst = ebpf_to_mips_reg(ctx, insn, dst_reg); in build_one_insn()
715 if (get_reg_val_type(ctx, this_idx, insn->dst_reg) == REG_32BIT) in build_one_insn()
[all …]
/Linux-v5.4/drivers/net/ethernet/netronome/nfp/bpf/
Djit.c770 reg_a(meta->paired_st->dst_reg * 2), off, len - 1, in nfp_cpp_memcpy()
775 reg_a(meta->paired_st->dst_reg * 2), off, xfer_num - 1, in nfp_cpp_memcpy()
782 reg_a(meta->paired_st->dst_reg * 2), off, in nfp_cpp_memcpy()
789 reg_a(meta->paired_st->dst_reg * 2), off, in nfp_cpp_memcpy()
796 reg_a(meta->paired_st->dst_reg * 2), off, 7, in nfp_cpp_memcpy()
802 reg_a(meta->paired_st->dst_reg * 2), off, len - 33, in nfp_cpp_memcpy()
813 reg_a(meta->paired_st->dst_reg * 2), off, in nfp_cpp_memcpy()
818 xfer_num - 1, reg_a(meta->paired_st->dst_reg * 2), off, in nfp_cpp_memcpy()
841 wrp_reg_subpart(nfp_prog, reg_both(meta->insn.dst_reg * 2), in nfp_cpp_memcpy()
846 wrp_reg_subpart(nfp_prog, reg_both(meta->insn.dst_reg * 2), in nfp_cpp_memcpy()
[all …]
Dverifier.c505 const struct bpf_reg_state *reg = cur_regs(env) + meta->insn.dst_reg; in nfp_bpf_check_store()
522 return nfp_bpf_check_ptr(nfp_prog, meta, env, meta->insn.dst_reg); in nfp_bpf_check_store()
530 const struct bpf_reg_state *dreg = cur_regs(env) + meta->insn.dst_reg; in nfp_bpf_check_xadd()
547 return nfp_bpf_check_ptr(nfp_prog, meta, env, meta->insn.dst_reg); in nfp_bpf_check_xadd()
557 cur_regs(env) + meta->insn.dst_reg; in nfp_bpf_check_alu()
642 meta->insn.dst_reg >= MAX_BPF_REG) { in nfp_verify_insn()
679 if (meta->insn.dst_reg >= BPF_REG_6 && in nfp_assign_subprog_idx_and_regs()
680 meta->insn.dst_reg <= BPF_REG_9) in nfp_assign_subprog_idx_and_regs()
/Linux-v5.4/arch/arm/crypto/
Dcrct10dif-ce-core.S137 .macro fold_16_bytes, src_reg, dst_reg, load_next_consts
143 veor.8 \dst_reg, \dst_reg, q8
144 veor.8 \dst_reg, \dst_reg, \src_reg
/Linux-v5.4/arch/x86/crypto/
Dcrct10dif-pcl-asm_64.S83 # Fold src_reg into dst_reg.
84 .macro fold_16_bytes src_reg, dst_reg
88 pxor %xmm8, \dst_reg
89 xorps \src_reg, \dst_reg
/Linux-v5.4/drivers/scsi/
Dscript_asm.pl553 $dst_reg = "\U$1\E";
581 print STDERR "source = $src_reg, data = $data8 , destination = $dst_reg\n"
585 if (($src_reg eq undef) || ($src_reg eq $dst_reg)) {
587 ($registers{$dst_reg} << 16);
588 } elsif ($dst_reg =~ /SFBR/i) {
593 ($registers{$dst_reg} << 16);
/Linux-v5.4/kernel/trace/
Dbpf_trace.c1157 data), si->dst_reg, si->src_reg, in pe_prog_convert_ctx_access()
1159 *insn++ = BPF_LDX_MEM(BPF_DW, si->dst_reg, si->dst_reg, in pe_prog_convert_ctx_access()
1165 data), si->dst_reg, si->src_reg, in pe_prog_convert_ctx_access()
1167 *insn++ = BPF_LDX_MEM(BPF_DW, si->dst_reg, si->dst_reg, in pe_prog_convert_ctx_access()
1173 regs), si->dst_reg, si->src_reg, in pe_prog_convert_ctx_access()
1175 *insn++ = BPF_LDX_MEM(BPF_SIZEOF(long), si->dst_reg, si->dst_reg, in pe_prog_convert_ctx_access()
/Linux-v5.4/arch/arm64/crypto/
Dcrct10dif-ce-core.S240 .macro fold_16_bytes, p, src_reg, dst_reg, load_next_consts
247 eor \dst_reg\().16b, \dst_reg\().16b, v8.16b
248 eor \dst_reg\().16b, \dst_reg\().16b, \src_reg\().16b
/Linux-v5.4/tools/testing/selftests/bpf/verifier/
Dbasic_instr.c184 .dst_reg = BPF_REG_0,
/Linux-v5.4/arch/sparc/net/
Dbpf_jit_comp_64.c898 const u8 dst = bpf2sparc[insn->dst_reg]; in build_insn()
1299 if (insn->dst_reg == BPF_REG_FP) in build_insn()
1340 if (insn->dst_reg == BPF_REG_FP) in build_insn()
1375 if (insn->dst_reg == BPF_REG_FP) in build_insn()
1398 if (insn->dst_reg == BPF_REG_FP) in build_insn()
/Linux-v5.4/Documentation/networking/
Dfilter.txt819 op:16, jt:8, jf:8, k:32 ==> op:8, dst_reg:4, src_reg:4, off:16, imm:32
926 In eBPF it means dst_reg = (u32) dst_reg + (u32) src_reg; similarly,
935 dst_reg = dst_reg + src_reg
1004 BPF_MEM | <size> | BPF_STX: *(size *) (dst_reg + off) = src_reg
1005 BPF_MEM | <size> | BPF_ST: *(size *) (dst_reg + off) = imm32
1006 BPF_MEM | <size> | BPF_LDX: dst_reg = *(size *) (src_reg + off)
1007 BPF_XADD | BPF_W | BPF_STX: lock xadd *(u32 *)(dst_reg + off16) += src_reg
1008 BPF_XADD | BPF_DW | BPF_STX: lock xadd *(u64 *)(dst_reg + off16) += src_reg
1015 instruction that loads 64-bit immediate value into a dst_reg.
/Linux-v5.4/tools/bpf/bpftool/
Dxlated_dumper.c271 jsonw_printf(json_wtr, "\"0x%hhx\"", insn[i].dst_reg); in dump_xlated_json()
/Linux-v5.4/include/uapi/linux/
Dbpf.h67 __u8 dst_reg:4; /* dest register */ member

12