PTR_TO_STACK
if (meta->ptr.type == PTR_TO_STACK)
if (meta->ptr.type == PTR_TO_STACK)
if (reg->type != PTR_TO_STACK) {
NFP_BPF_STACK != PTR_TO_STACK ||
reg1->type != PTR_TO_STACK &&
if (reg1->type == PTR_TO_STACK &&
reg->type != PTR_TO_STACK &&
if (reg->type == PTR_TO_STACK) {
[PTR_TO_STACK] = "fp",
if (t == PTR_TO_STACK) {
case PTR_TO_STACK:
st->type = PTR_TO_STACK; /* we don't have dedicated reg type */
if (reg->type != PTR_TO_STACK) {
case PTR_TO_STACK:
case PTR_TO_STACK:
case PTR_TO_STACK:
if (ptr_reg->type == PTR_TO_STACK) {
if (src_reg->type == PTR_TO_STACK)
if (dst_reg->type == PTR_TO_STACK)
if (dst_reg->type == PTR_TO_STACK)
regs[BPF_REG_FP].type = PTR_TO_STACK;
case PTR_TO_STACK:
if (state != cur && reg->type == PTR_TO_STACK) {
case PTR_TO_STACK:
} else if (reg->type == PTR_TO_STACK) {
case PTR_TO_STACK:
verbose(env, "expected=%s\n", reg_type_str(env, PTR_TO_STACK));
int size = base_type(reg->type) == PTR_TO_STACK ? -(int)mem_size : mem_size;
if (reg->type != PTR_TO_STACK && reg->type != CONST_PTR_TO_DYNPTR) {
if (reg->type != PTR_TO_STACK) {
PTR_TO_STACK,
static const struct bpf_reg_types stack_ptr_types = { .types = { PTR_TO_STACK } };
PTR_TO_STACK,
if (arg_type_is_dynptr(arg_type) && type == PTR_TO_STACK)
case PTR_TO_STACK:
if (key->type != PTR_TO_STACK)
st->type = PTR_TO_STACK; /* we don't have dedicated reg type */
if (r0->type == PTR_TO_STACK) {