Lines Matching refs:regs
40 struct pt_regs *regs)
54 die_if_kernel("Oops", regs);
60 struct pt_regs regs;
91 memset(®s, 0, sizeof(regs));
92 regs.pc = pc;
93 regs.npc = pc + 4;
98 "nop\n" : "=r" (regs.psr));
99 unhandled_fault(address, current, ®s);
106 show_signal_msg(struct pt_regs *regs, int sig, int code,
118 (void *)regs->pc, (void *)regs->u_regs[UREG_I7],
119 (void *)regs->u_regs[UREG_FP], code);
121 print_vma_addr(KERN_CONT " in ", regs->pc);
126 static void __do_fault_siginfo(int code, int sig, struct pt_regs *regs,
130 show_signal_msg(regs, sig, code,
136 static unsigned long compute_si_addr(struct pt_regs *regs, int text_fault)
141 return regs->pc;
143 if (regs->psr & PSR_PS)
144 insn = *(unsigned int *) regs->pc;
146 __get_user(insn, (unsigned int *) regs->pc);
148 return safe_compute_effective_address(regs, insn);
151 static noinline void do_fault_siginfo(int code, int sig, struct pt_regs *regs,
154 unsigned long addr = compute_si_addr(regs, text_fault);
156 __do_fault_siginfo(code, sig, regs, addr);
159 asmlinkage void do_sparc_fault(struct pt_regs *regs, int text_fault, int write,
167 int from_user = !(regs->psr & PSR_PS);
173 address = regs->pc;
195 perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address);
237 fault = handle_mm_fault(vma, address, flags, regs);
239 if (fault_signal_pending(fault, regs))
278 do_fault_siginfo(code, SIGSEGV, regs, text_fault);
284 g2 = regs->u_regs[UREG_G2];
286 fixup = search_extables_range(regs->pc, &g2);
294 regs->pc, address);
296 regs->pc, fixup, g2);
298 if ((regs->pc >= (unsigned long)__memset_start &&
299 regs->pc < (unsigned long)__memset_end)) {
300 regs->u_regs[UREG_I4] = address;
301 regs->u_regs[UREG_I5] = regs->pc;
303 regs->u_regs[UREG_G2] = g2;
304 regs->pc = fixup;
305 regs->npc = regs->pc + 4;
310 unhandled_fault(address, tsk, regs);
327 do_fault_siginfo(BUS_ADRERR, SIGBUS, regs, text_fault);
444 void window_ret_fault(struct pt_regs *regs)
448 sp = regs->u_regs[UREG_FP];