Lines Matching refs:imm
605 verbose(env, ",imm=%llx", reg->var_off.value);
1008 static void verifier2_mark_reg_known(struct bpf_reg_state *reg, u64 imm)
1010 reg->var_off = tnum_const(imm);
1011 reg->smin_value = (s64)imm;
1012 reg->smax_value = (s64)imm;
1013 reg->umin_value = imm;
1014 reg->umax_value = imm;
1016 reg->s32_min_value = (s32)imm;
1017 reg->s32_max_value = (s32)imm;
1018 reg->u32_min_value = (u32)imm;
1019 reg->u32_max_value = (u32)imm;
1023 * known to have the value @imm.
1025 static void verifier_mark_reg_known(struct bpf_reg_state *reg, u64 imm)
1029 verifier2_mark_reg_known(reg, imm);
1032 static void verifier_mark_reg32_known(struct bpf_reg_state *reg, u64 imm)
1034 reg->var_off = tnum_const_subreg(reg->var_off, imm);
1035 reg->s32_min_value = (s32)imm;
1036 reg->s32_max_value = (s32)imm;
1037 reg->u32_min_value = (u32)imm;
1038 reg->u32_max_value = (u32)imm;
1474 ret = add_subprog(env, i + insn[i].imm + 1);
1497 if (code == (BPF_JMP | BPF_CALL) && insn[i].imm == BPF_FUNC_tail_call && insn[i].src_reg != BPF_PSEUDO_CALL) {
1627 (class == BPF_ALU && op == BPF_END && insn->imm == VERIFIER_SIXTYFOUR)) {
1971 * R8=map_value(id=0,off=0,ks=4,vs=1952,imm=0) R9_w=map_value(id=0,off=40,ks=4,vs=1952,imm=0)
3279 i = i + insn[i].imm + 1;
3338 int start = idx + insn->imm + 1, subprog;
3899 if ((BPF_SIZE(insn->code) != BPF_W && BPF_SIZE(insn->code) != BPF_DW) || insn->imm != 0) {
5075 target_insn = *insn_idx + insn->imm;
6932 verifier_mark_reg_known(&off_reg, insn->imm);
6962 if (BPF_SRC(insn->code) != 0 || insn->src_reg != BPF_REG_0 || insn->off != 0 || insn->imm != 0) {
6968 (insn->imm != 0x10 && insn->imm != VERIFIER_THIRTYTWO && insn->imm != VERIFIER_SIXTYFOUR) ||
6993 if (insn->imm != 0 || insn->off != 0) {
7055 /* case: R = imm
7062 verifier_mark_reg_known(regs + insn->dst_reg, insn->imm);
7064 verifier_mark_reg_known(regs + insn->dst_reg, (u32)insn->imm);
7072 if (insn->imm != 0 || insn->off != 0) {
7094 if ((opcode == BPF_MOD || opcode == BPF_DIV) && BPF_SRC(insn->code) == BPF_K && insn->imm == 0) {
7101 if (insn->imm < 0 || insn->imm >= size) {
7102 verbose(env, "invalid shift %d\n", insn->imm);
7840 if (insn->imm != 0) {
7873 pred = is_branch_taken(dst_reg, insn->imm, opcode, is_jmp32);
7950 reg_set_min_max(&other_branch_regs[insn->dst_reg], dst_reg, insn->imm, (u32)insn->imm, opcode, is_jmp32);
7963 if (!is_jmp32 && BPF_SRC(insn->code) == BPF_K && insn->imm == 0 && (opcode == BPF_JEQ || opcode == BPF_JNE) &&
8006 u64 imm = ((u64)(insn + 1)->imm << VERIFIER_THIRTYTWO) | (u32)insn->imm;
8009 verifier_mark_reg_known(®s[insn->dst_reg], imm);
8445 ret = push_insn(t, t + insns[t].imm + 1, BRANCH, env, false);
9863 (insn->src_reg == BPF_PSEUDO_CALL || insn->imm != BPF_FUNC_spin_unlock)) {
9870 err = check_helper_call(env, insn->imm, env->insn_idx);
9876 if (BPF_SRC(insn->code) != BPF_K || insn->imm != 0 || insn->src_reg != BPF_REG_0 ||
9884 if (BPF_SRC(insn->code) != BPF_K || insn->imm != 0 || insn->src_reg != BPF_REG_0 ||
9966 u32 type, id = insn->imm;
9976 if (insn[1].imm != 0) {
9977 verbose(env, "reserved field (insn[1].imm) is used in pseudo_btf_id ldimm64 insn.\n");
10011 insn[0].imm = (u32)addr;
10012 insn[1].imm = addr >> VERIFIER_THIRTYTWO;
10146 /* find and rewrite pseudo imm in ld_imm64 instructions:
10165 if (BPF_CLASS(insn->code) == BPF_LDX && (BPF_MODE(insn->code) != BPF_MEM || insn->imm != 0)) {
10171 ((BPF_MODE(insn->code) != BPF_MEM && BPF_MODE(insn->code) != BPF_XADD) || insn->imm != 0)) {
10189 /* valid generic load 64-bit imm */
10203 * converted into regular 64-bit imm load insn.
10206 (insn[0].src_reg == BPF_PSEUDO_MAP_FD && insn[1].imm != 0)) {
10211 f = fdget(insn[0].imm);
10214 verbose(env, "fd %d is not pointing to valid bpf_map\n", insn[0].imm);
10228 u32 off = insn[1].imm;
10253 insn[0].imm = (u32)addr;
10254 insn[1].imm = addr >> VERIFIER_THIRTYTWO;
10751 rnd_hi32_patch[1].imm = imm_rnd;
10985 subprog = find_subprog(env, i + insn->imm + 1);
10987 WARN_ONCE(1, "verifier bug. No program starts at insn %d\n", i + insn->imm + 1);
10994 /* remember original imm in case JIT fails and fallback
10997 env->insn_aux_data[i].call_imm = insn->imm;
10998 /* point imm to __bpf_call_base+1 from JITs point of view */
10999 insn->imm = 1;
11088 insn->imm = BPF_CAST_CALL(func[subprog]->bpf_func) - __bpf_call_base;
11094 * for some architectures, such as powerpc64, the imm field
11134 insn->imm = subprog;
11172 insn->imm = env->insn_aux_data[i].call_imm;
11219 /* fixup insn->imm field of bpf_call instructions
11353 if (insn->imm == BPF_FUNC_get_route_realm) {
11356 if (insn->imm == BPF_FUNC_get_prandom_u32) {
11359 if (insn->imm == BPF_FUNC_override_return) {
11362 if (insn->imm == BPF_FUNC_tail_call) {
11379 insn->imm = 0;
11398 insn->imm = ret + 1;
11438 (insn->imm == BPF_FUNC_map_lookup_elem || insn->imm == BPF_FUNC_map_update_elem ||
11439 insn->imm == BPF_FUNC_map_delete_elem || insn->imm == BPF_FUNC_map_push_elem ||
11440 insn->imm == BPF_FUNC_map_pop_elem || insn->imm == BPF_FUNC_map_peek_elem)) {
11448 if (insn->imm == BPF_FUNC_map_lookup_elem && ops->map_gen_lookup) {
11478 switch (insn->imm) {
11480 insn->imm = BPF_CAST_CALL(ops->map_lookup_elem) - __bpf_call_base;
11483 insn->imm = BPF_CAST_CALL(ops->map_update_elem) - __bpf_call_base;
11486 insn->imm = BPF_CAST_CALL(ops->map_delete_elem) - __bpf_call_base;
11489 insn->imm = BPF_CAST_CALL(ops->map_push_elem) - __bpf_call_base;
11492 insn->imm = BPF_CAST_CALL(ops->map_pop_elem) - __bpf_call_base;
11495 insn->imm = BPF_CAST_CALL(ops->map_peek_elem) - __bpf_call_base;
11504 if (prog->jit_requested && BITS_PER_LONG == VERIFIER_SIXTYFOUR && insn->imm == BPF_FUNC_jiffies64) {
11526 fn = env->ops->get_func_proto(insn->imm, env->prog);
11531 verbose(env, "kernel subsystem misconfigured func %s#%d\n", func_id_name(insn->imm), insn->imm);
11534 insn->imm = fn->func - __bpf_call_base;