Lines Matching refs:orc
143 static struct orc_entry *orc; in orc_find() local
183 orc = orc_module_find(ip); in orc_find()
184 if (orc) in orc_find()
185 return orc; in orc_find()
237 struct orc_entry *orc = _orc; in unwind_module_init() local
241 orc_size % sizeof(*orc) != 0 || in unwind_module_init()
242 num_entries != orc_size / sizeof(*orc)); in unwind_module_init()
251 cur_orc_table = orc; in unwind_module_init()
256 mod->arch.orc_unwind = orc; in unwind_module_init()
266 struct orc_entry *orc; in unwind_init() local
283 orc = __orc_find(__start_orc_unwind_ip, __start_orc_unwind, in unwind_init()
286 if (!orc) { in unwind_init()
291 orc_lookup[i] = orc - __start_orc_unwind; in unwind_init()
295 orc = __orc_find(__start_orc_unwind_ip, __start_orc_unwind, num_entries, in unwind_init()
297 if (!orc) { in unwind_init()
301 orc_lookup[lookup_num_blocks-1] = orc - __start_orc_unwind; in unwind_init()
385 struct orc_entry *orc; in unwind_next_frame() local
404 orc = orc_find(state->signal ? state->ip : state->ip - 1); in unwind_next_frame()
405 if (!orc) { in unwind_next_frame()
412 orc = &orc_fp_entry; in unwind_next_frame()
417 if (orc->sp_reg == ORC_REG_UNDEFINED) { in unwind_next_frame()
418 if (!orc->end) in unwind_next_frame()
425 switch (orc->sp_reg) { in unwind_next_frame()
427 sp = state->sp + orc->sp_offset; in unwind_next_frame()
431 sp = state->bp + orc->sp_offset; in unwind_next_frame()
435 sp = state->sp + orc->sp_offset; in unwind_next_frame()
440 sp = state->bp + orc->sp_offset; in unwind_next_frame()
482 orc->sp_reg, (void *)state->ip); in unwind_next_frame()
492 switch (orc->type) { in unwind_next_frame()
533 orc->type, (void *)orig_ip); in unwind_next_frame()
538 switch (orc->bp_reg) { in unwind_next_frame()
545 if (!deref_stack_reg(state, sp + orc->bp_offset, &state->bp)) in unwind_next_frame()
550 if (!deref_stack_reg(state, state->bp + orc->bp_offset, &state->bp)) in unwind_next_frame()
556 orc->bp_reg, (void *)orig_ip); in unwind_next_frame()