Lines Matching full:pc
66 static inline bool fix_exception(unsigned long pc) in fix_exception() argument
74 if (scan_handlers(pc - pcpu_handlers[cpu])) in fix_exception()
78 return scan_handlers(pc - eentry); in fix_exception()
83 * tracing. Prologue analysis will stop soon because PC is at entry.
85 static inline bool fix_ftrace(unsigned long pc) in fix_ftrace() argument
88 return pc == (unsigned long)ftrace_call + LOONGARCH_INSN_SIZE; in fix_ftrace()
96 if (!fix_exception(state->pc) && !fix_ftrace(state->pc)) in unwind_state_fixup()
115 unsigned long size, offset, pc; in unwind_by_prologue() local
127 state->pc = regs->csr_era; in unwind_by_prologue()
134 * When first is not set, the PC is a return address in the previous frame. in unwind_by_prologue()
137 pc = state->pc - (state->first ? 0 : LOONGARCH_INSN_SIZE); in unwind_by_prologue()
138 if (!kallsyms_lookup_size_offset(pc, &size, &offset)) in unwind_by_prologue()
141 ip = (union loongarch_instruction *)(pc - offset); in unwind_by_prologue()
142 ip_end = (union loongarch_instruction *)pc; in unwind_by_prologue()
154 * Can't find stack alloc action, PC may be in a leaf function. Only the in unwind_by_prologue()
174 /* Can't find save $ra action, PC may be in a leaf function, too. */ in unwind_by_prologue()
183 state->pc = *(unsigned long *)(state->sp + frame_ra); in unwind_by_prologue()
188 state->pc = state->ra; in unwind_by_prologue()
192 return unwind_state_fixup(state) || __kernel_text_address(state->pc); in unwind_by_prologue()
197 unsigned long pc; in next_frame() local
206 state->pc = unwind_graph_addr(state, state->pc, state->sp); in next_frame()
212 pc = regs->csr_era; in next_frame()
214 if (user_mode(regs) || !__kernel_text_address(pc)) in next_frame()
218 state->pc = pc; in next_frame()
249 * The current PC is not kernel text address, we cannot find its in unwind_start()
253 if (!__kernel_text_address(state->pc)) { in unwind_start()