• Home
  • Raw
  • Download

Lines Matching refs:offset

39 			      struct section *sec, unsigned long offset)  in find_insn()  argument
43 hash_for_each_possible(file->insn_hash, insn, hash, sec_offset_hash(sec, offset)) { in find_insn()
44 if (insn->sec == sec && insn->offset == offset) in find_insn()
55 return find_insn(file, insn->sec, insn->offset + insn->len); in next_insn_same_sec()
81 return find_insn(file, func->cfunc->sec, func->cfunc->offset); in next_insn_same_func()
89 return find_insn(file, insn->sec, insn->offset - insn->prev_len); in prev_insn_same_sec()
114 for (insn = find_insn(file, func->sec, func->offset); \
119 for (insn = find_insn(file, sym->sec, sym->offset); \
120 insn && insn->offset < sym->offset + sym->len; \
125 insn && insn->offset >= sym->offset; \
271 insn = find_insn(file, func->sec, func->offset); in __dead_end_function()
428 unsigned long offset; in decode_instructions() local
460 for (offset = 0; offset < sec->sh.sh_size; offset += insn->len) { in decode_instructions()
476 insn->offset = offset; in decode_instructions()
479 ret = arch_decode_instruction(file, sec, offset, in decode_instructions()
480 sec->sh.sh_size - offset, in decode_instructions()
495 hash_add(file->insn_hash, &insn->hash, sec_offset_hash(sec, insn->offset)); in decode_instructions()
505 if (func->offset == sec->sh.sh_size) { in decode_instructions()
517 if (!find_insn(file, sec, func->offset)) { in decode_instructions()
528 if (insn->offset == func->offset) { in decode_instructions()
559 off = sym->offset; in add_pv_ops()
571 idx = (reloc_offset(reloc) - sym->offset) / sizeof(unsigned long); in add_pv_ops()
626 unsigned int offset; in find_last_insn() local
629 for (offset = sec->sh.sh_size - 1; offset >= end && !insn; offset--) in find_last_insn()
630 insn = find_insn(file, sec, offset); in find_last_insn()
643 uint64_t offset; in add_dead_ends() local
655 offset = reloc_addend(reloc); in add_dead_ends()
657 offset = reloc->sym->offset; in add_dead_ends()
663 insn = find_insn(file, reloc->sym->sec, offset); in add_dead_ends()
666 else if (offset == reloc->sym->sec->sh.sh_size) { in add_dead_ends()
670 reloc->sym->sec->name, offset); in add_dead_ends()
675 reloc->sym->sec->name, offset); in add_dead_ends()
722 insn->sec, insn->offset)) in create_static_call_sections()
803 insn->sec, insn->offset)) in create_retpoline_sites_sections()
841 insn->sec, insn->offset)) in create_return_sites_sections()
888 insn->offset == sym->offset && in create_ibt_endbr_seal_sections()
895 insn->sec, insn->offset)) in create_ibt_endbr_seal_sections()
943 sym->sec, sym->offset)) in create_cfi_sections()
986 insn->sec, insn->offset); in create_mcount_loc_sections()
1028 insn->sec, insn->offset)) in create_direct_call_sections()
1353 insn->offset, insn->len); in insn_reloc()
1411 insn->offset, insn->len, in annotate_call_site()
1438 insn->offset, insn->len, in annotate_call_site()
1524 if (insn->offset == sym->offset) in is_first_func_insn()
1532 insn->offset == sym->offset + prev->len) in is_first_func_insn()
1640 dest_off == func->offset + func->len) in add_jump_destinations()
1653 if (jump_dest->sym && jump_dest->offset == jump_dest->sym->offset) { in add_jump_destinations()
1706 static struct symbol *find_call_destination(struct section *sec, unsigned long offset) in find_call_destination() argument
1710 call_dest = find_func_by_offset(sec, offset); in find_call_destination()
1712 call_dest = find_symbol_by_offset(sec, offset); in find_call_destination()
1803 if (insn->offset >= special_alt->orig_off + special_alt->orig_len) in handle_group_alt()
1814 if (orig_alt_group->last_insn->offset + orig_alt_group->last_insn->len - in handle_group_alt()
1815 orig_alt_group->first_insn->offset != special_alt->orig_len) { in handle_group_alt()
1817 orig_alt_group->last_insn->offset + in handle_group_alt()
1819 orig_alt_group->first_insn->offset, in handle_group_alt()
1847 nop->offset = special_alt->new_off + special_alt->new_len; in handle_group_alt()
1864 if (insn->offset >= special_alt->new_off + special_alt->new_len) in handle_group_alt()
1943 orig_insn->offset, orig_insn->len, in handle_jump_alt()
2078 reloc_addend(reloc) == pfunc->offset) in add_jump_table()
2086 reloc_addend(reloc) == pfunc->offset + pfunc->len) in add_jump_table()
2144 (insn->jump_dest->offset <= insn->offset || in find_jump_table()
2145 insn->jump_dest->offset > orig_insn->offset)) in find_jump_table()
2181 insn->offset > last->offset && in mark_func_jump_tables()
2182 insn->jump_dest->offset > insn->offset && in mark_func_jump_tables()
2259 state->stack_size = initial_func_cfi.cfa.offset; in set_func_state()
2270 unsigned long offset; in read_unwind_hints() local
2299 offset = reloc_addend(reloc); in read_unwind_hints()
2301 offset = reloc->sym->offset; in read_unwind_hints()
2307 insn = find_insn(file, reloc->sym->sec, offset); in read_unwind_hints()
2332 struct symbol *sym = find_symbol_by_offset(insn->sec, insn->offset); in read_unwind_hints()
2354 cfi.cfa.offset = bswap_if_needed(file->elf, hint->sp_offset); in read_unwind_hints()
2376 reloc->sym->offset + reloc_addend(reloc)); in read_noendbr_hints()
2749 if (cfi->cfa.offset != initial_func_cfi.cfa.offset) in has_modified_stack_frame()
2752 if (cfi->stack_size != initial_func_cfi.cfa.offset) in has_modified_stack_frame()
2757 cfi->regs[i].offset != initial_func_cfi.regs[i].offset) in has_modified_stack_frame()
2768 reg->offset == expected_offset; in check_reg_frame_pos()
2776 check_reg_frame_pos(&cfi->regs[CFI_BP], -cfi->cfa.offset) && in has_valid_stack_frame()
2777 check_reg_frame_pos(&cfi->regs[CFI_RA], -cfi->cfa.offset + 8)) in has_valid_stack_frame()
2797 cfa->offset += 8; in update_cfi_state_regs()
2801 cfa->offset -= 8; in update_cfi_state_regs()
2806 cfa->offset -= op->src.offset; in update_cfi_state_regs()
2811 static void save_reg(struct cfi_state *cfi, unsigned char reg, int base, int offset) in save_reg() argument
2816 cfi->regs[reg].offset = offset; in save_reg()
2823 cfi->regs[reg].offset = initial_func_cfi.regs[reg].offset; in restore_reg()
2911 check_reg_frame_pos(&regs[CFI_BP], -cfa->offset)) { in update_cfi_state()
2923 regs[CFI_BP].offset = -cfi->stack_size; in update_cfi_state()
2940 cfi->vals[op->dest.reg].offset = -cfi->stack_size; in update_cfi_state()
2951 cfi->stack_size = -cfi->regs[CFI_BP].offset; in update_cfi_state()
2968 cfa->offset = -cfi->vals[op->src.reg].offset; in update_cfi_state()
2969 cfi->stack_size = cfa->offset; in update_cfi_state()
2973 cfi->vals[op->src.reg].offset == cfa->offset) { in update_cfi_state()
3005 cfa->offset = 0; in update_cfi_state()
3011 cfi->vals[op->src.reg].offset == cfa->offset) { in update_cfi_state()
3029 cfi->stack_size -= op->src.offset; in update_cfi_state()
3031 cfa->offset -= op->src.offset; in update_cfi_state()
3038 if (cfa->base == CFI_SP && cfa->offset == op->src.offset) { in update_cfi_state()
3040 cfa->offset = 0; in update_cfi_state()
3047 if (cfa->base == CFI_BP && cfa->offset == 0) { in update_cfi_state()
3050 cfa->offset = -op->src.offset; in update_cfi_state()
3054 cfi->stack_size = -(op->src.offset + regs[CFI_BP].offset); in update_cfi_state()
3075 cfi->vals[op->dest.reg].offset = \ in update_cfi_state()
3076 -cfi->stack_size + op->src.offset; in update_cfi_state()
3086 cfa->offset = cfi->stack_size = -op->src.offset; in update_cfi_state()
3110 cfa->offset = cfi->stack_size = 0; in update_cfi_state()
3142 cfa->offset = 0; in update_cfi_state()
3145 } else if (cfi->stack_size == -regs[op->dest.reg].offset) { in update_cfi_state()
3153 cfa->offset -= 8; in update_cfi_state()
3163 cfa->offset = cfi->stack_size; in update_cfi_state()
3167 op->src.offset == cfi->drap_offset) { in update_cfi_state()
3171 cfa->offset = 0; in update_cfi_state()
3176 op->src.offset == regs[op->dest.reg].offset) { in update_cfi_state()
3182 op->src.offset == regs[op->dest.reg].offset + cfa->offset) { in update_cfi_state()
3189 op->src.offset == regs[op->dest.reg].offset + cfi->stack_size) { in update_cfi_state()
3208 cfa->offset += 8; in update_cfi_state()
3218 cfa->offset = -cfi->stack_size; in update_cfi_state()
3253 cfa->offset = op->dest.offset; in update_cfi_state()
3256 cfi->drap_offset = op->dest.offset; in update_cfi_state()
3260 save_reg(cfi, op->src.reg, CFI_BP, op->dest.offset); in update_cfi_state()
3268 op->dest.offset - cfi->cfa.offset); in update_cfi_state()
3274 op->dest.offset - cfi->stack_size); in update_cfi_state()
3276 } else if (op->src.reg == CFI_SP && op->dest.offset == 0) { in update_cfi_state()
3280 cfi->vals[op->dest.reg].offset = cfa->offset; in update_cfi_state()
3294 cfa->offset -= 8; in update_cfi_state()
3329 group_off = insn->offset - insn->alt_group->first_insn->offset; in propagate_alt_cfi()
3337 char *where = offstr(insn->sec, insn->offset); in propagate_alt_cfi()
3398 cfi1->cfa.base, cfi1->cfa.offset, in insn_cfi_match()
3399 cfi2->cfa.base, cfi2->cfa.offset); in insn_cfi_match()
3408 i, cfi1->regs[i].base, cfi1->regs[i].offset, in insn_cfi_match()
3409 i, cfi2->regs[i].base, cfi2->regs[i].offset); in insn_cfi_match()
4000 insn_call_dest(insn)->offset); in validate_unret()
4144 int size = find_symbol_hole_containing(insn->sec, insn->offset); in ignore_unreachable_insn()
4145 unsigned long end = insn->offset + size; in ignore_unreachable_insn()
4161 if (insn->offset >= end) in ignore_unreachable_insn()
4220 if (insn->offset + insn->len >= insn_func(insn)->offset + insn_func(insn)->len) in ignore_unreachable_insn()
4234 insn = find_insn(file, func->sec, func->offset); in add_prefix_symbol()
4241 u64 offset; in add_prefix_symbol() local
4246 offset = func->offset - prev->offset; in add_prefix_symbol()
4248 if (offset > opts.prefix) in add_prefix_symbol()
4251 if (offset < opts.prefix) in add_prefix_symbol()
4311 insn = find_insn(file, sec, sym->offset); in validate_symbol()
4392 struct symbol *sym = find_symbol_containing(insn->sec, insn->offset-1); in noendbr_range()
4398 first = find_insn(file, sym->sec, sym->offset); in noendbr_range()
4405 return insn->offset == sym->offset + sym->len; in noendbr_range()
4437 (insn->offset + insn->len) - (reloc_offset(reloc) + 1))) { in validate_ibt_insn()
4446 off = reloc->sym->offset; in validate_ibt_insn()
4495 WARN_INSN(insn, "relocation to !ENDBR: %s", offstr(dest->sec, dest->offset)); in validate_ibt_insn()
4509 reloc->sym->offset + reloc_addend(reloc)); in validate_ibt_data_reloc()
4523 offstr(dest->sec, dest->offset)); in validate_ibt_data_reloc()