insn_off
s32 insn_off;
st: insn_off = insn->off;
insn_off = outgoing_arg_base - outgoing_rsp - insn_off - 16;
if (is_imm8(insn_off))
EMIT2(add_1reg(0x40, dst_reg), insn_off);
EMIT1_off32(add_1reg(0x80, dst_reg), insn_off);
insn_off = insn->off;
insn_off = outgoing_arg_base - outgoing_rsp - insn_off - 16;
emit_stx(&prog, BPF_SIZE(insn->code), dst_reg, src_reg, insn_off);
insn_off = insn->off;
if (insn_off == 8) {
emit_ldsx(&prog, BPF_SIZE(insn->code), dst_reg, src_reg, insn_off);
emit_ldx(&prog, BPF_SIZE(insn->code), dst_reg, src_reg, insn_off);
s16 insn_off = meta->insn.off - range_start;
u8 idx = insn_off / REG_WIDTH;
u8 off = insn_off % REG_WIDTH;
const struct bpf_line_info *bpf_find_linfo(const struct bpf_prog *prog, u32 insn_off);
u32 insn_off,
__u32 insn_off;
__u32 insn_off;
__u32 insn_off;
err = bpf_core_patch_insn((void *)ctx->log, insn, relo->insn_off / 8, relo, relo_idx,
} else if (krecord[i].insn_off <= prev_offset) {
krecord[i].insn_off, prev_offset);
prev_offset = krecord[i].insn_off;
if (env->subprog_info[i].start != krecord[i].insn_off) {
if ((i && linfo[i].insn_off <= prev_offset) ||
linfo[i].insn_off >= prog->len) {
i, linfo[i].insn_off, prev_offset,
if (!prog->insnsi[linfo[i].insn_off].code) {
if (linfo[i].insn_off == sub[s].start) {
} else if (sub[s].start < linfo[i].insn_off) {
prev_offset = linfo[i].insn_off;
if (core_relo.insn_off % 8 || core_relo.insn_off / 8 >= prog->len) {
i, core_relo.insn_off, prog->len);
&prog->insnsi[core_relo.insn_off / 8]);
if (krecord[i].insn_off) {
krecord[i].insn_off);
insn_start = linfo[0].insn_off;
for (i = 1; i < nr_linfo && linfo[i].insn_off < insn_end; i++)
insn_to_jit_off[linfo[i].insn_off - insn_start - 1];
const struct bpf_line_info *bpf_find_linfo(const struct bpf_prog *prog, u32 insn_off)
if (!nr_linfo || insn_off >= prog->len)
if (linfo[m].insn_off <= insn_off)
insn_start = linfo[0].insn_off;
linfo[i].insn_off >= insn_start && linfo[i].insn_off < insn_end; i++) {
if (off < linfo[i].insn_off)
linfo[i].insn_off += delta;
if (linfo[i].insn_off >= off)
if (linfo[i].insn_off < off + cnt)
(i == nr_linfo || linfo[i].insn_off != off + cnt)) {
linfo[--i].insn_off = off + cnt;
linfo[i].insn_off -= cnt;
u32 insn_off,
linfo = bpf_find_linfo(env->prog, insn_off);
aux->func_info[i].insn_off = env->subprog_info[i].start;
ret = aux->func_info[i].insn_off;
if (record->insn_off == i) {
if (record->insn_off == i) {
unsigned int insn_off;
insn_off = (unsigned int)(cur - insn_start + start_idx);
if (record->insn_off == insn_off) {
linfo = bpf_prog_linfo__lfind(prog_linfo, insn_off, 0);
printf("%u: ", insn_off);
__u32 insn_off;
__u32 insn_off;
__u32 insn_off;
__u32 insn_off, __u32 nr_skip)
if (insn_off < linfo->insn_off)
if (insn_off < linfo->insn_off)
if (rec->insn_off % BPF_INSN_SZ)
insn_idx = rec->insn_off / BPF_INSN_SZ;
__u64 insn_off;
insn_off = jt[i]/sizeof(struct bpf_insn);
insn_off -= prog->subprogs[subprog_idx].sec_insn_off;
insn_off += prog->subprogs[subprog_idx].sub_insn_off;
insn_off -= prog->sec_insn_off;
if (insn_off > UINT32_MAX) {
val.orig_off = insn_off;
__u32 insn_off = *(__u32 *)rec / BPF_INSN_SZ;
if (insn_off < prog->sec_insn_off)
if (insn_off >= prog->sec_insn_off + prog->sec_insn_cnt)
__u32 *insn_off = rec;
*insn_off = *insn_off / BPF_INSN_SZ + off_adj;
.insn_off = relo->insn_idx * 8,
__u32 insn_off;
__u32 insn_off;
i->insn_off = bswap_32(i->insn_off);
i->insn_off = bswap_32(i->insn_off);
i->insn_off = bswap_32(i->insn_off);
dst_rec->insn_off += src_sec->dst_off;
dst_rec->insn_off += src_sec->dst_off;
dst_rec->insn_off += src_sec->dst_off;
prog_name, relo->kind, relo->insn_off / 8);
prog_name, relo->kind, relo->insn_off / 8);
relo->kind, relo->insn_off / 8);
struct section *insn_sec, unsigned long insn_off,
insn_sec, insn_off))
unsigned long *insn_off, unsigned int *insn_len)
*insn_off = o;
unsigned long insn_off;
&insn_off, &insn_len);
return addend + insn_off + insn_len - reloc_offset(reloc);
struct section *insn_sec, unsigned long insn_off,
insn_sec, insn_off))
unsigned long insn_off)
s64 addend = insn_off;
unsigned long insn_off);
struct section *insn_sec, unsigned long insn_off,
char *insn_off = offstr(insn->sec, insn->offset); \
func->name, insn_off, (unsigned long long)checksum);\
free(insn_off); \
entry->insn_sec, entry->insn_off,
unsigned long insn_off;
entry->insn_off = offset;
#define BPF_LINE_INFO_ENC(insn_off, file_off, line_off, line_num, line_col) \
(insn_off), (file_off), (line_off), ((line_num) << 10 | ((line_col) & 0x3ff))
CHECK(linfo[0].insn_off, "linfo[0].insn_off:%u",
linfo[0].insn_off);
if (CHECK(linfo[i].insn_off <= linfo[i - 1].insn_off,
i, linfo[i].insn_off,
i - 1, linfo[i - 1].insn_off)) {
.insn_off = 0,
.insn_off = 0, /* patch first instruction (r0 = 0) */
if (rec->insn_off == 0)
self->func_info[1].insn_off = callback_idx;