Lines Matching defs:dst_reg

298 static u32 convert_skb_access(int skb_field, int dst_reg, int src_reg,
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, 0, 1);
338 *insn++ = BPF_ALU32_IMM(BPF_MOV, dst_reg, 1);
731 insn->dst_reg = BPF_REG_A;
735 insn->dst_reg = BPF_REG_A;
7098 si->dst_reg, si->src_reg, \
7110 si->dst_reg, si->src_reg, \
7125 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
7292 si->dst_reg, si->src_reg, \
9357 si->dst_reg, si->src_reg,
9363 si->dst_reg, si->src_reg,
9369 si->dst_reg, si->src_reg,
9380 __u8 value_reg = si->dst_reg;
9382 /* AX is needed because src_reg and dst_reg could be the same */
9396 static struct bpf_insn *bpf_convert_shinfo_access(__u8 dst_reg, __u8 skb_reg,
9399 /* si->dst_reg = skb_shinfo(SKB); */
9405 dst_reg, skb_reg,
9407 *insn++ = BPF_ALU64_REG(BPF_ADD, dst_reg, BPF_REG_AX);
9410 dst_reg, skb_reg,
9421 __u8 value_reg = si->dst_reg;
9430 /* AX is needed because src_reg and dst_reg could be the same */
9456 __u8 skb_reg = si->dst_reg;
9487 (si)->dst_reg, (si)->src_reg, (off), (si)->imm)
9499 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
9505 *insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->src_reg,
9511 *insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->src_reg,
9522 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
9528 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
9535 si->dst_reg, si->src_reg,
9537 *insn++ = BPF_JMP_IMM(BPF_JEQ, si->dst_reg, 0, 1);
9538 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
9544 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
9555 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
9562 *insn++ = BPF_LDX_MEM(BPF_B, si->dst_reg, si->src_reg,
9564 *insn++ = BPF_ALU32_IMM(BPF_AND, si->dst_reg, PKT_TYPE_MAX);
9566 *insn++ = BPF_ALU32_IMM(BPF_RSH, si->dst_reg, 5);
9583 *insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->src_reg,
9591 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
9594 *insn++ = BPF_JMP_IMM(BPF_JEQ, si->dst_reg, 0, 1);
9595 *insn++ = BPF_ALU32_IMM(BPF_MOV, si->dst_reg, 1);
9599 *insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->src_reg,
9619 *insn++ = BPF_LDX_MEM(BPF_SIZE(si->code), si->dst_reg,
9634 *insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg,
9640 si->dst_reg, si->src_reg,
9649 *insn++ = BPF_LDX_MEM(BPF_SIZEOF(void *), si->dst_reg,
9658 *insn++ = BPF_LDX_MEM(BPF_SIZEOF(void *), si->dst_reg,
9669 *insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->src_reg,
9675 *insn++ = BPF_MOV64_REG(si->dst_reg, si->dst_reg);
9677 *insn++ = BPF_MOV64_IMM(si->dst_reg, 0);
9683 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
9686 *insn++ = BPF_JMP_IMM(BPF_JGE, si->dst_reg, MIN_NAPI_ID, 1);
9687 *insn++ = BPF_MOV64_IMM(si->dst_reg, 0);
9690 *insn++ = BPF_MOV64_IMM(si->dst_reg, 0);
9697 si->dst_reg, si->src_reg,
9699 *insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->dst_reg,
9708 si->dst_reg, si->src_reg,
9710 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
9720 si->dst_reg, si->src_reg,
9722 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
9737 si->dst_reg, si->src_reg,
9739 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
9744 *insn++ = BPF_MOV32_IMM(si->dst_reg, 0);
9757 si->dst_reg, si->src_reg,
9759 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
9764 *insn++ = BPF_MOV32_IMM(si->dst_reg, 0);
9772 si->dst_reg, si->src_reg,
9774 *insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->dst_reg,
9779 *insn++ = BPF_ALU32_IMM(BPF_LSH, si->dst_reg, 16);
9787 si->dst_reg, si->src_reg,
9789 *insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->dst_reg,
9808 insn = bpf_convert_shinfo_access(si->dst_reg, si->src_reg, insn);
9810 si->dst_reg, si->dst_reg,
9816 insn = bpf_convert_shinfo_access(si->dst_reg, si->src_reg, insn);
9818 si->dst_reg, si->dst_reg,
9831 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg, off);
9836 si->dst_reg, si->src_reg,
9843 insn = bpf_convert_shinfo_access(si->dst_reg, si->src_reg, insn);
9845 si->dst_reg, si->dst_reg,
9871 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
9882 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
9893 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
9900 si->dst_reg, si->src_reg,
9911 si->dst_reg, si->src_reg,
9920 si->dst_reg, si->src_reg,
9928 BPF_SIZE(si->code), si->dst_reg, si->src_reg,
9937 BPF_SIZE(si->code), si->dst_reg, si->src_reg,
9949 BPF_SIZE(si->code), si->dst_reg, si->src_reg,
9958 *insn++ = BPF_MOV32_IMM(si->dst_reg, 0);
9967 BPF_SIZE(si->code), si->dst_reg, si->src_reg,
9974 *insn++ = BPF_MOV32_IMM(si->dst_reg, 0);
9982 si->dst_reg, si->src_reg,
9992 si->dst_reg, si->src_reg,
10002 si->dst_reg, si->src_reg,
10012 si->dst_reg, si->src_reg,
10017 *insn++ = BPF_JMP_IMM(BPF_JNE, si->dst_reg, NO_QUEUE_MAPPING,
10019 *insn++ = BPF_MOV64_IMM(si->dst_reg, -1);
10021 *insn++ = BPF_MOV64_IMM(si->dst_reg, -1);
10040 si->dst_reg, si->src_reg,
10042 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
10064 si->dst_reg, si->src_reg,
10069 si->dst_reg, si->src_reg,
10074 si->dst_reg, si->src_reg,
10079 si->dst_reg, si->src_reg,
10082 si->dst_reg, si->dst_reg,
10084 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
10089 si->dst_reg, si->src_reg,
10091 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
10097 si->dst_reg, si->src_reg,
10100 si->dst_reg, si->dst_reg,
10102 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
10122 *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg, \
10125 SIZE, si->dst_reg, si->dst_reg, \
10148 if (si->src_reg == tmp_reg || si->dst_reg == tmp_reg) \
10150 if (si->src_reg == tmp_reg || si->dst_reg == tmp_reg) \
10152 *insn++ = BPF_STX_MEM(BPF_DW, si->dst_reg, tmp_reg, \
10155 si->dst_reg, offsetof(S, F)); \
10162 *insn++ = BPF_LDX_MEM(BPF_DW, tmp_reg, si->dst_reg, \
10263 si->dst_reg, si->src_reg,
10283 int fullsock_reg = si->dst_reg, reg = BPF_REG_9, jmp = 2; \
10286 if (si->dst_reg == reg || si->src_reg == reg) \
10288 if (si->dst_reg == reg || si->src_reg == reg) \
10290 if (si->dst_reg == si->src_reg) { \
10304 if (si->dst_reg == si->src_reg) \
10310 si->dst_reg, si->src_reg, \
10314 si->dst_reg, si->dst_reg, \
10316 if (si->dst_reg == si->src_reg) { \
10326 int fullsock_reg = si->dst_reg, reg = BPF_REG_9, jmp = 1; \
10327 if (si->dst_reg == reg || si->src_reg == reg) \
10329 if (si->dst_reg == reg || si->src_reg == reg) \
10331 if (si->dst_reg == si->src_reg) { \
10345 if (si->dst_reg == si->src_reg) \
10351 si->dst_reg, si->src_reg, \
10353 if (si->dst_reg == si->src_reg) { \
10365 * The macro is called with two registers, dst_reg which contains a pointer
10368 * dst_reg because it may be used later in the program.
10378 if (si->dst_reg == reg || si->src_reg == reg) \
10380 if (si->dst_reg == reg || si->src_reg == reg) \
10382 *insn++ = BPF_STX_MEM(BPF_DW, si->dst_reg, reg, \
10388 reg, si->dst_reg, \
10394 reg, si->dst_reg, \
10401 *insn++ = BPF_LDX_MEM(BPF_DW, reg, si->dst_reg, \
10418 si->dst_reg, si->src_reg,
10434 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
10443 si->dst_reg, si->src_reg,
10445 *insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->dst_reg,
10454 si->dst_reg, si->src_reg,
10456 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
10466 si->dst_reg, si->src_reg,
10468 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
10483 si->dst_reg, si->src_reg,
10485 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
10490 *insn++ = BPF_MOV32_IMM(si->dst_reg, 0);
10504 si->dst_reg, si->src_reg,
10506 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
10511 *insn++ = BPF_MOV32_IMM(si->dst_reg, 0);
10520 si->dst_reg, si->src_reg,
10522 *insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->dst_reg,
10525 *insn++ = BPF_ALU32_IMM(BPF_LSH, si->dst_reg, 16);
10534 si->dst_reg, si->src_reg,
10536 *insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->dst_reg,
10544 si->dst_reg, si->src_reg,
10554 si->dst_reg, si->src_reg,
10556 *insn++ = BPF_LDX_MEM(BPF_B, si->dst_reg, si->dst_reg,
10568 si->dst_reg, si->src_reg,
10570 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
10653 si->dst_reg, si->src_reg,
10660 si->dst_reg, si->src_reg,
10663 *insn++ = BPF_JMP_IMM(BPF_JEQ, si->dst_reg, 0, 1);
10665 si->dst_reg, si->dst_reg,
10671 si->dst_reg, si->src_reg,
10674 *insn++ = BPF_JMP_IMM(BPF_JEQ, si->dst_reg, 0, 1);
10676 si->dst_reg, si->dst_reg,
10685 si->dst_reg, si->src_reg,
10688 *insn++ = BPF_JMP_IMM(BPF_JEQ, si->dst_reg, 0, 1);
10691 si->dst_reg, si->dst_reg, off);
10698 si->dst_reg, si->src_reg,
10703 insn = bpf_convert_shinfo_access(si->dst_reg, si->dst_reg, insn);
10704 *insn++ = BPF_LDX_MEM(BPF_DW, si->dst_reg, si->dst_reg,
10708 *jmp_on_null_skb = BPF_JMP_IMM(BPF_JEQ, si->dst_reg, 0,
10724 if (si->src_reg == si->dst_reg) {
10727 if (si->src_reg == reg || si->dst_reg == reg)
10729 if (si->src_reg == reg || si->dst_reg == reg)
10733 reg = si->dst_reg;
10754 if (si->src_reg == si->dst_reg) {
10757 *insn++ = BPF_MOV64_REG(si->dst_reg, reg);
10791 *insn++ = BPF_LDX_MEM(BPF_SIZE(si->code), si->dst_reg,
10820 si->dst_reg, si->src_reg,
10825 si->dst_reg, si->src_reg,
10833 si->dst_reg, si->src_reg,
10835 *insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->dst_reg,
10844 si->dst_reg, si->src_reg,
10846 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
10856 si->dst_reg, si->src_reg,
10858 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
10873 si->dst_reg, si->src_reg,
10875 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
10880 *insn++ = BPF_MOV32_IMM(si->dst_reg, 0);
10894 si->dst_reg, si->src_reg,
10896 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
10901 *insn++ = BPF_MOV32_IMM(si->dst_reg, 0);
10910 si->dst_reg, si->src_reg,
10912 *insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->dst_reg,
10915 *insn++ = BPF_ALU32_IMM(BPF_LSH, si->dst_reg, 16);
10924 si->dst_reg, si->src_reg,
10926 *insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->dst_reg,
10932 si->dst_reg, si->src_reg,
10938 si->dst_reg, si->src_reg,
11347 si->dst_reg, si->src_reg, \
11535 *insn++ = BPF_LDX_MEM(BPF_SIZEOF(void *), si->dst_reg, si->src_reg,
11540 *insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->src_reg,
11546 *insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->src_reg,
11552 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
11558 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
11570 *insn++ = BPF_LDX_MEM(BPF_SIZEOF(void *), si->dst_reg, si->src_reg,
11572 *insn++ = BPF_JMP_IMM(BPF_JEQ, si->dst_reg, 0, 1);
11573 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg, off);
11575 *insn++ = BPF_MOV32_IMM(si->dst_reg, 0);
11586 *insn++ = BPF_LDX_MEM(BPF_SIZEOF(void *), si->dst_reg, si->src_reg,
11588 *insn++ = BPF_JMP_IMM(BPF_JEQ, si->dst_reg, 0, 1);
11589 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg, off);
11591 *insn++ = BPF_MOV32_IMM(si->dst_reg, 0);
11596 *insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->src_reg,
11603 *insn++ = BPF_MOV32_IMM(si->dst_reg, 0);
11607 *insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->src_reg,
11613 *insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,