Lines Matching refs:regs
143 struct pt_regs *regs = (struct pt_regs *) (((void *)fp)
146 if (regs->syscall_nr != -1) {
148 regs->syscall_nr);
150 pt_psp(regs), pt_elr(regs));
156 ex_name(pt_cause(regs)), pt_cause(regs),
157 pt_badva(regs));
160 newfp = (unsigned long *) regs->r30;
161 ip = pt_elr(regs);
184 int die(const char *str, struct pt_regs *regs, long err)
201 if (notify_die(DIE_OOPS, str, regs, err, pt_cause(regs), SIGSEGV) ==
206 show_regs(regs);
207 do_show_stack(current, ®s->r30, pt_elr(regs), KERN_EMERG);
225 int die_if_kernel(char *str, struct pt_regs *regs, long err)
227 if (!user_mode(regs))
228 return die(str, regs, err);
236 static void misaligned_instruction(struct pt_regs *regs)
238 die_if_kernel("Misaligned Instruction", regs, 0);
247 static void misaligned_data_load(struct pt_regs *regs)
249 die_if_kernel("Misaligned Data Load", regs, 0);
253 static void misaligned_data_store(struct pt_regs *regs)
255 die_if_kernel("Misaligned Data Store", regs, 0);
259 static void illegal_instruction(struct pt_regs *regs)
261 die_if_kernel("Illegal Instruction", regs, 0);
269 static void precise_bus_error(struct pt_regs *regs)
271 die_if_kernel("Precise Bus Error", regs, 0);
280 static void cache_error(struct pt_regs *regs)
282 die("Cache Error", regs, 0);
288 void do_genex(struct pt_regs *regs)
293 switch (pt_cause(regs)) {
296 execute_protection_fault(regs);
300 read_protection_fault(regs);
304 write_protection_fault(regs);
307 misaligned_instruction(regs);
310 illegal_instruction(regs);
313 misaligned_instruction(regs);
316 misaligned_data_load(regs);
319 misaligned_data_store(regs);
323 illegal_instruction(regs);
326 precise_bus_error(regs);
329 cache_error(regs);
333 panic("Unrecognized exception 0x%lx\n", pt_cause(regs));
345 void do_trap0(struct pt_regs *regs)
349 switch (pt_cause(regs)) {
355 tracehook_report_syscall_entry(regs)))
371 regs->syscall_nr = regs->r06;
379 regs->restart_r0 = regs->r00;
381 if ((unsigned long) regs->syscall_nr >= __NR_syscalls) {
382 regs->r00 = -1;
385 (sys_call_table[regs->syscall_nr]);
386 regs->r00 = syscall(regs->r00, regs->r01,
387 regs->r02, regs->r03,
388 regs->r04, regs->r05);
393 tracehook_report_syscall_exit(regs, 0);
398 if (user_mode(regs)) {
407 (void __user *) pt_elr(regs));
410 kgdb_handle_exception(pt_cause(regs), SIGTRAP,
411 TRAP_BRKPT, regs);
422 void do_machcheck(struct pt_regs *regs)
432 void do_debug_exception(struct pt_regs *regs)
434 regs->hvmer.vmest &= ~HVM_VMEST_CAUSE_MSK;
435 regs->hvmer.vmest |= (TRAP_DEBUG << HVM_VMEST_CAUSE_SFT);
436 do_trap0(regs);