BPF_IMM
const u8 bpf_opc_ldi64 = BPF_LD | BPF_DW | BPF_IMM;
case BPF_LD | BPF_DW | BPF_IMM:
case BPF_LD | BPF_IMM | BPF_DW:
case BPF_LD | BPF_IMM | BPF_DW:
case BPF_LD | BPF_IMM | BPF_DW:
case BPF_LD | BPF_IMM | BPF_DW:
case BPF_LD | BPF_IMM | BPF_DW:
case BPF_LD | BPF_IMM | BPF_DW:
case BPF_LD | BPF_IMM | BPF_DW:
case BPF_LD | BPF_IMM | BPF_DW: /* dst = (u64) imm */
case BPF_LD | BPF_IMM | BPF_DW: /* dst = (u64) imm */
case BPF_LD | BPF_IMM | BPF_DW:
case BPF_LD | BPF_IMM | BPF_DW:
case BPF_LD | BPF_IMM | BPF_DW: /* dst = (u64) imm */
case BPF_LD | BPF_IMM:
case BPF_LDX | BPF_IMM:
case BPF_LD | BPF_IMM | BPF_DW:
case BPF_LD | BPF_IMM | BPF_DW:
case BPF_LD | BPF_IMM | BPF_DW: {
[BPF_LD | BPF_IMM | BPF_DW] = imm_ld8,
if (meta1->insn.code != (BPF_LD | BPF_IMM | BPF_DW) ||
return insn->code == (BPF_LD | BPF_IMM | BPF_DW);
.code = BPF_LD | BPF_DW | BPF_IMM, \
ftest->code = BPF_LD | BPF_IMM;
ftest->code = BPF_LDX | BPF_IMM;
case BPF_LD | BPF_IMM:
case BPF_LDX | BPF_IMM:
if (prog->insnsi[off-1].code == (BPF_LD | BPF_DW | BPF_IMM))
case BPF_LD | BPF_IMM | BPF_DW:
if (insn[0].code == (BPF_LD | BPF_IMM | BPF_DW) &&
dst[i].code == (BPF_LD | BPF_IMM | BPF_DW) &&
} else if (BPF_MODE(insn->code) == BPF_IMM &&
if (code != (BPF_LD | BPF_IMM | BPF_DW))
} else if (mode == BPF_IMM) {
if (insn[0].code == (BPF_LD | BPF_IMM | BPF_DW)) {
if (insn->code != (BPF_LD | BPF_IMM | BPF_DW))
BPF_MODE(code) == BPF_IMM)
case BPF_IMM:
if (mode == BPF_IMM)
ftest->code = BPF_LD | BPF_IMM;
ftest->code = BPF_LDX | BPF_IMM;
case BPF_LD | BPF_IMM:
case BPF_LDX | BPF_IMM:
BPF_STMT(BPF_LDX | BPF_IMM, 0x40),
BPF_STMT(BPF_LDX | BPF_IMM, 0x40),
BPF_STMT(BPF_LDX | BPF_IMM, 0x40),
BPF_STMT(BPF_LDX | BPF_IMM, 0x40),
BPF_STMT(BPF_LDX | BPF_IMM, 0x40),
BPF_STMT(BPF_LDX | BPF_IMM, 0x3e),
BPF_STMT(BPF_LDX | BPF_IMM, 0x3e),
BPF_STMT(BPF_LDX | BPF_IMM, 0x3e),
BPF_STMT(BPF_LDX | BPF_IMM, 0x3e),
BPF_STMT(BPF_LDX | BPF_IMM, 0x3e),
BPF_STMT(BPF_LDX | BPF_IMM, 0x3b),
BPF_STMT(BPF_LDX | BPF_IMM, 0x20),
BPF_STMT(BPF_LDX | BPF_IMM, 0x20),
BPF_STMT(BPF_LDX | BPF_IMM, 0x20),
BPF_STMT(BPF_LDX | BPF_IMM, 0x3d),
BPF_STMT(BPF_LDX | BPF_IMM, 0x3e),
BPF_STMT(BPF_LDX | BPF_IMM, 0x3e),
BPF_STMT(BPF_LDX | BPF_IMM, 0x20),
BPF_STMT(BPF_LDX | BPF_IMM, 0x20),
BPF_STMT(BPF_LDX | BPF_IMM, 0x20),
BPF_STMT(BPF_LDX | BPF_IMM, 0x20),
BPF_STMT(BPF_LDX | BPF_IMM, 0x20),
BPF_STMT(BPF_LDX | BPF_IMM, 0x3b),
BPF_STMT(BPF_LDX | BPF_IMM, 0x3e),
BPF_STMT(BPF_LDX | BPF_IMM, 0x3e),
BPF_STMT(BPF_LD | BPF_IMM, 0xffeebbaa),
BPF_STMT(BPF_LD | BPF_IMM, 0x175e9d63),
BPF_STMT(BPF_LD | BPF_IMM, 0xffeebbaa),
BPF_STMT(BPF_LD | BPF_IMM, 0xffeebbaa),
BPF_STMT(BPF_LD | BPF_IMM, 0xffeebbaa),
BPF_STMT(BPF_LD | BPF_IMM, 0xffeebbaa),
BPF_STMT(BPF_LD | BPF_IMM, 0xffeebbaa),
BPF_STMT(BPF_LD | BPF_IMM, 0x42),
BPF_STMT(BPF_LD | BPF_IMM, 0x66),
BPF_STMT(BPF_LD | BPF_IMM, 0x42),
BPF_STMT(BPF_LD | BPF_IMM, 0x42),
BPF_STMT(BPF_LD | BPF_IMM, 0x42),
BPF_STMT(BPF_LD | BPF_IMM, 0x0),
BPF_STMT(BPF_LD | BPF_IMM, 0xffff0000),
BPF_STMT(BPF_LD | BPF_IMM, 0xfefbbc12),
insn->code == (BPF_LD | BPF_DW | BPF_IMM))
case BPF_LD | BPF_DW | BPF_IMM:
insn[0] = __BPF_STMT(BPF_LD | BPF_IMM, 0xffffffff);
BPF_STMT(BPF_LD | BPF_IMM, 1),
BPF_STMT(BPF_LD | BPF_IMM, 2),
BPF_STMT(BPF_LD | BPF_IMM, 1),
BPF_STMT(BPF_LDX | BPF_IMM, 3),
BPF_STMT(BPF_LD | BPF_IMM, 8),
BPF_STMT(BPF_LD | BPF_IMM, 0xffffffff),
BPF_STMT(BPF_LD | BPF_IMM, 0xffffffff),
BPF_STMT(BPF_LD | BPF_IMM, 0xffffffff),
BPF_STMT(BPF_LD | BPF_IMM, 0xffffffff),
BPF_STMT(BPF_LD | BPF_IMM, 0xff),
BPF_STMT(BPF_LD | BPF_IMM, 0xf),
BPF_STMT(BPF_LD | BPF_IMM, 0), /* ld #0 */
BPF_STMT(BPF_LD | BPF_IMM, SKF_LL_OFF - 1),
BPF_STMT(BPF_LD | BPF_IMM, SKF_NET_OFF - 15),
BPF_STMT(BPF_LDX | BPF_IMM, 2),
BPF_STMT(BPF_LDX | BPF_IMM, 3),
BPF_STMT(BPF_LD | BPF_IMM, 2),
BPF_STMT(BPF_LDX | BPF_IMM, 3),
BPF_STMT(BPF_LD | BPF_IMM, 2),
BPF_STMT(BPF_LD | BPF_IMM, 2),
BPF_STMT(BPF_LD | BPF_IMM, 2),
BPF_STMT(BPF_LD | BPF_IMM, 2),
BPF_STMT(BPF_LD | BPF_IMM, 2),
BPF_STMT(BPF_LD | BPF_IMM, 2),
BPF_STMT(BPF_LD | BPF_IMM, 2),
BPF_STMT(BPF_LD | BPF_IMM, 10),
BPF_STMT(BPF_LDX | BPF_IMM, 300),
BPF_STMT(BPF_LD | BPF_IMM, 2),
insn[len - 3] = __BPF_STMT(BPF_LD | BPF_IMM, 0xabababab);
BPF_STMT(BPF_LD | BPF_IMM, 1),
BPF_STMT(BPF_LDX | BPF_IMM, 42),
BPF_STMT(BPF_LDX | BPF_IMM, 100),
BPF_STMT(BPF_LDX | BPF_IMM, 0xbadfeedb),
BPF_STMT(BPF_LDX | BPF_IMM, 0xecabedae),
BPF_STMT(BPF_LDX | BPF_IMM, 0xafccfeaf),
BPF_STMT(BPF_LDX | BPF_IMM, 0xbffdcedc),
BPF_STMT(BPF_LDX | BPF_IMM, 0xfbbbdccb),
BPF_STMT(BPF_LDX | BPF_IMM, 0xfbabcbda),
BPF_STMT(BPF_LDX | BPF_IMM, 0xaedecbdb),
BPF_STMT(BPF_LDX | BPF_IMM, 0xadebbade),
BPF_STMT(BPF_LDX | BPF_IMM, 0xfcfcfaec),
BPF_STMT(BPF_LDX | BPF_IMM, 0xbcdddbdc),
BPF_STMT(BPF_LDX | BPF_IMM, 0xfeefdfac),
BPF_STMT(BPF_LDX | BPF_IMM, 0xcddcdeea),
BPF_STMT(BPF_LDX | BPF_IMM, 0xaccfaebb),
BPF_STMT(BPF_LDX | BPF_IMM, 0xbdcccdcf),
BPF_STMT(BPF_LDX | BPF_IMM, 0xaaedecde),
BPF_STMT(BPF_LDX | BPF_IMM, 0xfaeacdad),
[BPF_LD | BPF_IMM] = true,
[BPF_LDX | BPF_IMM] = true,
case BPF_LD | BPF_IMM:
case BPF_LDX | BPF_IMM:
.code = BPF_LD | BPF_DW | BPF_IMM, \
case BPF_LD | BPF_IMM:
case BPF_LDX | BPF_IMM:
case BPF_LD | BPF_IMM:
case BPF_LDX | BPF_IMM:
bpf_set_curr_instr(BPF_LD | BPF_IMM, 0, 0, $3); }
bpf_set_curr_instr(BPF_LD | BPF_IMM, 0, 0, $2); }
bpf_set_curr_instr(BPF_LD | BPF_IMM, 0, 0, $3); }
bpf_set_curr_instr(BPF_LDX | BPF_IMM, 0, 0, $3); }
bpf_set_curr_instr(BPF_LDX | BPF_IMM, 0, 0, $2); }
bpf_set_curr_instr(BPF_LDX | BPF_IMM, 0, 0, $3); }
double_insn = insn[i].code == (BPF_LD | BPF_IMM | BPF_DW);
double_insn = insn[i].code == (BPF_LD | BPF_IMM | BPF_DW);
double_insn = cur->code == (BPF_LD | BPF_IMM | BPF_DW);
.code = BPF_LD | BPF_DW | BPF_IMM, \
.code = BPF_LD | BPF_DW | BPF_IMM, \
if (purged[i].code == (BPF_LD | BPF_IMM | BPF_DW) &&
return insn->code == (BPF_LD | BPF_IMM | BPF_DW);
return insn->code == (BPF_LD | BPF_IMM | BPF_DW);
} else if (BPF_MODE(insn->code) == BPF_IMM &&
double_insn = insn->code == (BPF_LD | BPF_IMM | BPF_DW);
if (prog[insn_num].code != (BPF_LD | BPF_DW | BPF_IMM)) {
__imm_insn(ld_map_fd, BPF_RAW_INSN(BPF_LD | BPF_DW | BPF_IMM, BPF_REG_1, BPF_PSEUDO_MAP_FD, 0, 1))
__imm_insn(ld_map_fd, BPF_RAW_INSN(BPF_LD | BPF_DW | BPF_IMM, BPF_REG_1, BPF_PSEUDO_MAP_FD, 0, 1))
__imm_insn(ld_map_fd, BPF_RAW_INSN(BPF_LD | BPF_DW | BPF_IMM, BPF_REG_1, BPF_PSEUDO_MAP_FD, 0, 0))
insn[i++] = BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW,
BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, BPF_REG_2, BPF_PSEUDO_FUNC, 0, 10),
BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, BPF_REG_2, BPF_PSEUDO_FUNC, 0, 8),
BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, BPF_REG_2, BPF_PSEUDO_FUNC, 0, 9),
BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, BPF_REG_2, BPF_PSEUDO_FUNC, 0, 8),
BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, BPF_REG_2, BPF_PSEUDO_FUNC, 0, 22),
BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, BPF_REG_2, BPF_PSEUDO_FUNC, 0, 16),
BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, BPF_REG_2, BPF_PSEUDO_FUNC, 0, 6),
BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, BPF_REG_2, BPF_PSEUDO_FUNC, 0, 6),
BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, BPF_REG_2, BPF_PSEUDO_FUNC, 0, 7),
BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 1),
BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, BPF_REG_1, 0, 1),
BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, BPF_REG_1, 0, 1),
BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, BPF_REG_1,
BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 0),
BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 0),
BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 0),
BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 1),
BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 1, 1),
BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 1),
BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 1),