Lines Matching refs:off_reg
14065 const struct bpf_reg_state *off_reg, in sanitize_ptr_alu() argument
14072 bool off_is_imm = tnum_is_const(off_reg->var_off); in sanitize_ptr_alu()
14073 bool off_is_neg = off_reg->smin_value < 0; in sanitize_ptr_alu()
14092 if (!tnum_is_const(off_reg->var_off) && in sanitize_ptr_alu()
14093 (off_reg->smin_value < 0) != (off_reg->smax_value < 0)) in sanitize_ptr_alu()
14173 const struct bpf_reg_state *off_reg, in sanitize_err() argument
14183 off_reg == dst_reg ? dst : src, err); in sanitize_err()
14187 off_reg == dst_reg ? src : dst, err); in sanitize_err()
14284 const struct bpf_reg_state *off_reg) in adjust_ptr_min_max_vals() argument
14289 bool known = tnum_is_const(off_reg->var_off); in adjust_ptr_min_max_vals()
14290 s64 smin_val = off_reg->smin_value, smax_val = off_reg->smax_value, in adjust_ptr_min_max_vals()
14292 u64 umin_val = off_reg->umin_value, umax_val = off_reg->umax_value, in adjust_ptr_min_max_vals()
14364 if (!check_reg_sane_offset(env, off_reg, ptr_reg->type) || in adjust_ptr_min_max_vals()
14372 ret = sanitize_ptr_alu(env, insn, ptr_reg, off_reg, dst_reg, in adjust_ptr_min_max_vals()
14375 return sanitize_err(env, insn, ret, off_reg, dst_reg); in adjust_ptr_min_max_vals()
14414 dst_reg->var_off = tnum_add(ptr_reg->var_off, off_reg->var_off); in adjust_ptr_min_max_vals()
14424 if (dst_reg == off_reg) { in adjust_ptr_min_max_vals()
14470 dst_reg->var_off = tnum_sub(ptr_reg->var_off, off_reg->var_off); in adjust_ptr_min_max_vals()
14500 ret = sanitize_ptr_alu(env, insn, dst_reg, off_reg, dst_reg, in adjust_ptr_min_max_vals()
14503 return sanitize_err(env, insn, ret, off_reg, dst_reg); in adjust_ptr_min_max_vals()
15183 struct bpf_reg_state *ptr_reg = NULL, off_reg = {0}; in adjust_reg_min_max_vals() local
15252 off_reg.type = SCALAR_VALUE; in adjust_reg_min_max_vals()
15253 __mark_reg_known(&off_reg, insn->imm); in adjust_reg_min_max_vals()
15254 src_reg = &off_reg; in adjust_reg_min_max_vals()
21767 u32 off_reg; in do_misc_fixups() local
21779 off_reg = issrc ? insn->src_reg : insn->dst_reg; in do_misc_fixups()
21784 *patch++ = BPF_ALU64_IMM(BPF_MUL, off_reg, -1); in do_misc_fixups()
21786 *patch++ = BPF_ALU64_REG(BPF_SUB, BPF_REG_AX, off_reg); in do_misc_fixups()
21787 *patch++ = BPF_ALU64_REG(BPF_OR, BPF_REG_AX, off_reg); in do_misc_fixups()
21790 *patch++ = BPF_ALU64_REG(BPF_AND, BPF_REG_AX, off_reg); in do_misc_fixups()
21800 *patch++ = BPF_ALU64_IMM(BPF_MUL, off_reg, -1); in do_misc_fixups()