Lines Matching refs:regs
42 extern void handle_per_exception(struct pt_regs *regs);
62 extern void pfault_interrupt(struct pt_regs *regs, __u16 error_code);
175 void show_registers(struct pt_regs *regs) in show_registers() argument
181 mode = (regs->psw.mask & PSW_PROBLEM_STATE) ? "User" : "Krnl"; in show_registers()
183 mode, (unsigned long) regs->psw.mask, in show_registers()
184 (unsigned long) regs->psw.addr); in show_registers()
186 regs->gprs[0], regs->gprs[1], regs->gprs[2], regs->gprs[3]); in show_registers()
188 regs->gprs[4], regs->gprs[5], regs->gprs[6], regs->gprs[7]); in show_registers()
190 regs->gprs[8], regs->gprs[9], regs->gprs[10], regs->gprs[11]); in show_registers()
192 regs->gprs[12], regs->gprs[13], regs->gprs[14], regs->gprs[15]); in show_registers()
194 regs->acrs[0], regs->acrs[1], regs->acrs[2], regs->acrs[3]); in show_registers()
196 regs->acrs[4], regs->acrs[5], regs->acrs[6], regs->acrs[7]); in show_registers()
198 regs->acrs[8], regs->acrs[9], regs->acrs[10], regs->acrs[11]); in show_registers()
200 regs->acrs[12], regs->acrs[13], regs->acrs[14], regs->acrs[15]); in show_registers()
207 if (regs->psw.mask & PSW_PROBLEM_STATE) in show_registers()
214 if (__get_user(c, (char *)(regs->psw.addr + i))) { in show_registers()
228 struct pt_regs *regs; in task_show_regs() local
230 regs = __KSTK_PTREGS(task); in task_show_regs()
234 (unsigned long) regs->psw.mask, in task_show_regs()
235 (unsigned long) regs->psw.addr); in task_show_regs()
237 regs->gprs[0], regs->gprs[1], in task_show_regs()
238 regs->gprs[2], regs->gprs[3]); in task_show_regs()
240 regs->gprs[4], regs->gprs[5], in task_show_regs()
241 regs->gprs[6], regs->gprs[7]); in task_show_regs()
243 regs->gprs[8], regs->gprs[9], in task_show_regs()
244 regs->gprs[10], regs->gprs[11]); in task_show_regs()
246 regs->gprs[12], regs->gprs[13], in task_show_regs()
247 regs->gprs[14], regs->gprs[15]); in task_show_regs()
249 regs->acrs[0], regs->acrs[1], in task_show_regs()
250 regs->acrs[2], regs->acrs[3]); in task_show_regs()
252 regs->acrs[4], regs->acrs[5], in task_show_regs()
253 regs->acrs[6], regs->acrs[7]); in task_show_regs()
255 regs->acrs[8], regs->acrs[9], in task_show_regs()
256 regs->acrs[10], regs->acrs[11]); in task_show_regs()
258 regs->acrs[12], regs->acrs[13], in task_show_regs()
259 regs->acrs[14], regs->acrs[15]); in task_show_regs()
265 void die(const char * str, struct pt_regs * regs, long err) in die() argument
271 show_regs(regs); in die()
278 struct pt_regs *regs, siginfo_t *info) in do_trap() argument
284 if (regs->psw.mask & PSW_PROBLEM_STATE) in do_trap()
287 if (regs->psw.mask & PSW_PROBLEM_STATE) { in do_trap()
298 show_regs(regs); in do_trap()
304 show_regs(regs); in do_trap()
308 unsigned long fixup = search_exception_table(regs->psw.addr); in do_trap()
310 regs->psw.addr = fixup; in do_trap()
312 die(str, regs, interruption_code); in do_trap()
316 static inline void *get_check_address(struct pt_regs *regs) in get_check_address() argument
318 return (void *) ADDR_BITS_REMOVE(regs->psw.addr-S390_lowcore.pgm_ilc); in get_check_address()
321 int do_debugger_trap(struct pt_regs *regs,int signal) in do_debugger_trap() argument
323 if(regs->psw.mask&PSW_PROBLEM_STATE) in do_debugger_trap()
335 gdb_stub_handle_exception(regs, signal); in do_debugger_trap()
345 asmlinkage void name(struct pt_regs * regs, long interruption_code) \
347 do_trap(interruption_code, signr, str, regs, NULL); \
351 asmlinkage void name(struct pt_regs * regs, long interruption_code) \
358 do_trap(interruption_code, signr, str, regs, &info); \
364 BUS_ADRERR, get_check_address(regs))
366 ILL_ILLOPN, get_check_address(regs))
368 FPE_INTDIV, get_check_address(regs))
370 ILL_ILLOPN, get_check_address(regs))
372 ILL_PRVOPC, get_check_address(regs))
374 ILL_ILLOPN, get_check_address(regs))
376 ILL_ILLOPN, get_check_address(regs))
378 ILL_ILLOPN, get_check_address(regs))
381 do_fp_trap(struct pt_regs *regs, void *location, in do_fp_trap() argument
406 "floating point exception", regs, &si); in do_fp_trap()
409 asmlinkage void illegal_op(struct pt_regs * regs, long interruption_code) in illegal_op() argument
415 location = (__u16 *) get_check_address(regs); in illegal_op()
421 if (regs->psw.mask & PSW_PROBLEM_STATE) in illegal_op()
428 if(regs->psw.mask & PSW_PROBLEM_STATE) in illegal_op()
434 if(do_debugger_trap(regs,SIGTRAP)) in illegal_op()
441 "illegal operation", regs, NULL); in illegal_op()
444 asmlinkage void data_exception(struct pt_regs * regs, long interruption_code) in data_exception() argument
448 location = (__u16 *) get_check_address(regs); in data_exception()
454 if (regs->psw.mask & PSW_PROBLEM_STATE) in data_exception()
461 do_fp_trap(regs, location, in data_exception()
470 "data exception", regs, &info); in data_exception()
520 void handle_per_exception(struct pt_regs *regs) in handle_per_exception() argument
522 if(regs->psw.mask&PSW_PROBLEM_STATE) in handle_per_exception()
529 if(do_debugger_trap(regs,SIGTRAP)) in handle_per_exception()
534 show_regs(regs); in handle_per_exception()
536 regs->psw.mask &= ~PSW_PER_MASK; in handle_per_exception()