reg_smax
{"smax", reg_smax(reg), reg_smax(reg) == S64_MAX},
(reg_smin(off_reg) < 0) != (reg_smax(off_reg) < 0))
s64 smin_val = reg_smin(off_reg), smax_val = reg_smax(off_reg);
s64 smax = reg_smax(dst_reg);
check_mul_overflow(smin, reg_smax(src_reg), &tmp_prod[1]) ||
check_mul_overflow(smax, reg_smax(src_reg), &tmp_prod[3])) {
s64 smax = reg_smax(dst_reg);
if (reg_smin(dst_reg) >= -res_max_abs && reg_smax(dst_reg) <= res_max_abs)
reg_set_srange64(dst_reg, 0, min(reg_smax(dst_reg), res_max_abs));
} else if (reg_smax(dst_reg) <= 0) {
reg_smax(dst_reg) >> umin_val);
&& reg_smin(src_reg) == reg_smax(src_reg)
if (reg_smin(dst_reg) == -1 && reg_smax(dst_reg) == 0)
s64 smax1 = is_jmp32 ? (s64)reg_s32_max(reg1) : reg_smax(reg1);
s64 smax2 = is_jmp32 ? (s64)reg_s32_max(reg2) : reg_smax(reg2);
cnum64_intersect_with_srange(®1->r64, S64_MIN, reg_smax(reg2));
cnum64_intersect_with_srange(®1->r64, S64_MIN, reg_smax(reg2) - 1);
min_t(s64, reg_smax(reg), s32_max));
if (reg_smax(reg) < S64_MAX) {
verbose(env, " smax=%lld", reg_smax(reg));
max_off = reg_smax(ptr_reg) + off + size;
max_off = reg_smax(reg) + off;
top_smax_value = ((u64)reg_smax(reg) >> num_bits) << num_bits;
init_s64_max = (s8)reg_smax(reg);
init_s64_max = (s16)reg_smax(reg);
init_s64_max = (s32)reg_smax(reg);
if (reg_smax(reg) >= BPF_MAX_VAR_OFF ||
max_off = reg_smax(reg) + off + access_size;
max_off = reg_smax(reg) + off;
return range.minval <= reg_smin(reg) && reg_smax(reg) <= range.maxval;