Lines Matching refs:insn_dat
1260 optimize_init(struct bpfjit_insn_data *insn_dat, size_t insn_count) in optimize_init() argument
1265 SLIST_INIT(&insn_dat[i].bjumps); in optimize_init()
1266 insn_dat[i].invalid = BJ_INIT_NOBITS; in optimize_init()
1283 struct bpfjit_insn_data *insn_dat, size_t insn_count, in optimize_pass1() argument
1302 if (!SLIST_EMPTY(&insn_dat[i].bjumps)) in optimize_pass1()
1304 insn_dat[i].unreachable = unreachable; in optimize_pass1()
1309 invalid |= insn_dat[i].invalid; in optimize_pass1()
1413 insn_dat[i].u.jdata.abc_length = MAX_ABC_LENGTH; in optimize_pass1()
1440 jtf = insn_dat[i].u.jdata.jtf; in optimize_pass1()
1442 jtf[0].jdata = &insn_dat[i].u.jdata; in optimize_pass1()
1443 SLIST_INSERT_HEAD(&insn_dat[jt].bjumps, in optimize_pass1()
1447 jtf[1].jdata = &insn_dat[i].u.jdata; in optimize_pass1()
1448 SLIST_INSERT_HEAD(&insn_dat[jf].bjumps, in optimize_pass1()
1452 insn_dat[jf].invalid |= invalid; in optimize_pass1()
1453 insn_dat[jt].invalid |= invalid; in optimize_pass1()
1468 struct bpfjit_insn_data *insn_dat, size_t insn_count) in optimize_pass2() argument
1480 pd = &insn_dat[i-1]; in optimize_pass2()
1548 struct bpfjit_insn_data *insn_dat, size_t insn_count) in optimize_pass3() argument
1555 if (insn_dat[i].unreachable) in optimize_pass3()
1558 SLIST_FOREACH(jmp, &insn_dat[i].bjumps, entries) { in optimize_pass3()
1564 insn_dat[i].u.jdata.checked_length = checked_length; in optimize_pass3()
1567 &insn_dat[i].u.rdata; in optimize_pass3()
1579 struct bpfjit_insn_data *insn_dat, size_t insn_count, in optimize() argument
1583 optimize_init(insn_dat, insn_count); in optimize()
1585 if (!optimize_pass1(bc, insns, insn_dat, insn_count, initmask, hints)) in optimize()
1588 optimize_pass2(bc, insns, insn_dat, insn_count); in optimize()
1589 optimize_pass3(insns, insn_dat, insn_count); in optimize()
1699 struct bpfjit_insn_data *insn_dat, size_t insn_count) in generate_insn_code() argument
1734 if (insn_dat[i].unreachable || in generate_insn_code()
1739 jtf = insn_dat[i].u.jdata.jtf; in generate_insn_code()
1745 if (insn_dat[i].unreachable) in generate_insn_code()
1752 SLIST_FOREACH(bjump, &insn_dat[i].bjumps, entries) { in generate_insn_code()
1766 if (insn_dat[i].u.rdata.check_length > UINT32_MAX) { in generate_insn_code()
1775 } else if (insn_dat[i].u.rdata.check_length > 0) { in generate_insn_code()
1781 insn_dat[i].u.rdata.check_length); in generate_insn_code()
2017 jtf = insn_dat[i].u.jdata.jtf; in generate_insn_code()
2170 struct bpfjit_insn_data *insn_dat; in bpfjit_generate_code() local
2178 insn_dat = NULL; in bpfjit_generate_code()
2183 if (insn_count == 0 || insn_count > SIZE_MAX / sizeof(insn_dat[0])) in bpfjit_generate_code()
2186 insn_dat = BJ_ALLOC(insn_count * sizeof(insn_dat[0])); in bpfjit_generate_code()
2187 if (insn_dat == NULL) in bpfjit_generate_code()
2190 if (!optimize(bc, insns, insn_dat, insn_count, &initmask, &hints)) in bpfjit_generate_code()
2289 bc, insns, insn_dat, insn_count)) { in bpfjit_generate_code()
2299 if (insn_dat != NULL) in bpfjit_generate_code()
2300 BJ_FREE(insn_dat, insn_count * sizeof(insn_dat[0])); in bpfjit_generate_code()