Lines Matching defs:value_regno

4482 				       int off, int size, int value_regno,
4502 if (value_regno >= 0)
4503 reg = &cur->regs[value_regno];
4585 err = mark_chain_precision(env, value_regno);
4602 /* Write the stack: 'stack[ptr_regno + off] = value_regno'. 'ptr_regno' is
4609 * 'value_regno' can be -1, meaning that an unknown value is being written to
4625 int value_regno, int insn_idx)
4642 if (value_regno >= 0)
4643 value_reg = &cur->regs[value_regno];
4723 err = mark_chain_precision(env, value_regno);
5019 * 'value_regno' is the register whose value we're writing to the stack. It can
5026 int value_regno, int insn_idx)
5035 value_regno, insn_idx);
5042 value_regno, insn_idx);
5354 int value_regno, int insn_idx,
5383 val_reg = reg_state(env, value_regno);
5384 /* We can simply mark the value_regno receiving the pointer
5387 mark_btf_ld_reg(env, cur_regs(env), value_regno, PTR_TO_BTF_ID, kptr_field->kptr.btf,
5392 val_reg = reg_state(env, value_regno);
5394 map_kptr_match_type(env, kptr_field, val_reg, value_regno))
6435 int value_regno)
6573 if (atype == BPF_READ && value_regno >= 0)
6574 mark_btf_ld_reg(env, regs, value_regno, ret, reg->btf, btf_id, flag);
6583 int value_regno)
6633 if (value_regno >= 0)
6634 mark_btf_ld_reg(env, regs, value_regno, ret, btf_vmlinux, btf_id, flag);
6731 * if t==write, value_regno is a register which value is stored into memory
6732 * if t==read, value_regno is a register which will receive the value from memory
6733 * if t==write && value_regno==-1, some unknown value is stored into memory
6734 * if t==read && value_regno==-1, don't care what we read from memory
6738 int value_regno, bool strict_alignment_once, bool is_ldsx)
6766 if (value_regno >= 0)
6767 mark_reg_unknown(env, regs, value_regno);
6771 if (t == BPF_WRITE && value_regno >= 0 &&
6772 is_pointer_value(env, value_regno)) {
6773 verbose(env, "R%d leaks addr into map\n", value_regno);
6786 err = check_map_kptr_access(env, regno, value_regno, insn_idx, kptr_field);
6787 } else if (t == BPF_READ && value_regno >= 0) {
6802 regs[value_regno].type = SCALAR_VALUE;
6803 __mark_reg_known(&regs[value_regno], val);
6805 mark_reg_unknown(env, regs, value_regno);
6823 if (t == BPF_WRITE && value_regno >= 0 &&
6824 is_pointer_value(env, value_regno)) {
6825 verbose(env, "R%d leaks addr into mem\n", value_regno);
6831 if (!err && value_regno >= 0 && (t == BPF_READ || rdonly_mem))
6832 mark_reg_unknown(env, regs, value_regno);
6838 if (t == BPF_WRITE && value_regno >= 0 &&
6839 is_pointer_value(env, value_regno)) {
6840 verbose(env, "R%d leaks addr into ctx\n", value_regno);
6852 if (!err && t == BPF_READ && value_regno >= 0) {
6858 mark_reg_unknown(env, regs, value_regno);
6861 value_regno);
6863 regs[value_regno].id = ++env->id_gen;
6869 regs[value_regno].subreg_def = DEF_NOT_SUBREG;
6871 regs[value_regno].btf = btf;
6872 regs[value_regno].btf_id = btf_id;
6875 regs[value_regno].type = reg_type;
6886 value_regno);
6889 value_regno, insn_idx);
6895 if (t == BPF_WRITE && value_regno >= 0 &&
6896 is_pointer_value(env, value_regno)) {
6898 value_regno);
6902 if (!err && t == BPF_READ && value_regno >= 0)
6903 mark_reg_unknown(env, regs, value_regno);
6905 if (t == BPF_WRITE && value_regno >= 0 &&
6906 is_pointer_value(env, value_regno)) {
6908 value_regno);
6913 if (!err && t == BPF_READ && value_regno >= 0)
6914 mark_reg_unknown(env, regs, value_regno);
6922 if (!err && value_regno >= 0)
6923 mark_reg_unknown(env, regs, value_regno);
6926 if (!err && t == BPF_READ && value_regno >= 0)
6927 mark_reg_unknown(env, regs, value_regno);
6931 value_regno);
6934 value_regno);
6953 if (!err && value_regno >= 0 && (rdonly_mem || t == BPF_READ))
6954 mark_reg_unknown(env, regs, value_regno);
6956 if (t == BPF_READ && value_regno >= 0)
6957 mark_reg_unknown(env, regs, value_regno);
6964 if (!err && size < BPF_REG_SIZE && value_regno >= 0 && t == BPF_READ &&
6965 regs[value_regno].type == SCALAR_VALUE) {
6968 coerce_reg_to_size(&regs[value_regno], size);
6970 coerce_reg_to_size_sx(&regs[value_regno], size);