Lines Matching refs:orc
152 static struct orc_entry *orc; in orc_find() local
189 orc = orc_module_find(ip); in orc_find()
190 if (orc) in orc_find()
191 return orc; in orc_find()
246 struct orc_entry *orc = _orc; in unwind_module_init() local
250 orc_size % sizeof(*orc) != 0 || in unwind_module_init()
251 num_entries != orc_size / sizeof(*orc)); in unwind_module_init()
260 cur_orc_table = orc; in unwind_module_init()
265 mod->arch.orc_unwind = orc; in unwind_module_init()
276 struct orc_entry *orc; in unwind_init() local
294 orc = __orc_find(__start_orc_unwind_ip, __start_orc_unwind, in unwind_init()
296 if (!orc) { in unwind_init()
301 orc_lookup[i] = orc - __start_orc_unwind; in unwind_init()
305 orc = __orc_find(__start_orc_unwind_ip, __start_orc_unwind, num_entries, LOOKUP_STOP_IP); in unwind_init()
306 if (!orc) { in unwind_init()
310 orc_lookup[lookup_num_blocks-1] = orc - __start_orc_unwind; in unwind_init()
395 struct orc_entry *orc; in unwind_next_frame() local
407 orc = orc_find(state->pc); in unwind_next_frame()
408 if (!orc) { in unwind_next_frame()
415 orc = &orc_fp_entry; in unwind_next_frame()
418 if (orc->type == ORC_TYPE_UNDEFINED) in unwind_next_frame()
421 if (orc->type == ORC_TYPE_END_OF_STACK) in unwind_next_frame()
425 switch (orc->sp_reg) { in unwind_next_frame()
428 orc->type = ORC_TYPE_REGS; in unwind_next_frame()
430 state->sp = state->sp + orc->sp_offset; in unwind_next_frame()
436 orc_warn("unknown SP base reg %d at %pB\n", orc->sp_reg, (void *)state->pc); in unwind_next_frame()
440 switch (orc->fp_reg) { in unwind_next_frame()
442 p = (unsigned long *)(state->sp + orc->fp_offset); in unwind_next_frame()
452 orc_warn("unknown FP base reg %d at %pB\n", orc->fp_reg, (void *)state->pc); in unwind_next_frame()
456 switch (orc->type) { in unwind_next_frame()
458 if (orc->ra_reg == ORC_REG_PREV_SP) { in unwind_next_frame()
459 p = (unsigned long *)(state->sp + orc->ra_offset); in unwind_next_frame()
465 } else if (orc->ra_reg == ORC_REG_UNDEFINED) { in unwind_next_frame()
473 orc_warn("unknown ra base reg %d at %pB\n", orc->ra_reg, (void *)state->pc); in unwind_next_frame()
504 orc_warn("unknown .orc_unwind entry type %d at %pB\n", orc->type, (void *)state->pc); in unwind_next_frame()