Lines Matching full:regs

59 void show_registers(struct pt_regs *regs)  in show_registers()  argument
65 esp = (unsigned long)(regs->sp); in show_registers()
66 if (user_mode(regs)) in show_registers()
71 smp_processor_id(), regs->pc, regs->sr, regs->sp); in show_registers()
73 0L, regs->gpr[1], regs->gpr[2], regs->gpr[3]); in show_registers()
75 regs->gpr[4], regs->gpr[5], regs->gpr[6], regs->gpr[7]); in show_registers()
77 regs->gpr[8], regs->gpr[9], regs->gpr[10], regs->gpr[11]); in show_registers()
79 regs->gpr[12], regs->gpr[13], regs->gpr[14], regs->gpr[15]); in show_registers()
81 regs->gpr[16], regs->gpr[17], regs->gpr[18], regs->gpr[19]); in show_registers()
83 regs->gpr[20], regs->gpr[21], regs->gpr[22], regs->gpr[23]); in show_registers()
85 regs->gpr[24], regs->gpr[25], regs->gpr[26], regs->gpr[27]); in show_registers()
87 regs->gpr[28], regs->gpr[29], regs->gpr[30], regs->gpr[31]); in show_registers()
89 regs->gpr[11], regs->orig_gpr11); in show_registers()
103 if (regs->pc < PAGE_OFFSET) in show_registers()
108 if (__get_user(c, &((unsigned char *)regs->pc)[i])) { in show_registers()
123 void nommu_dump_state(struct pt_regs *regs, in nommu_dump_state() argument
127 unsigned long addr, stack = regs->sp; in nommu_dump_state()
133 0, regs->pc, regs->sr, regs->sp); in nommu_dump_state()
135 0L, regs->gpr[1], regs->gpr[2], regs->gpr[3]); in nommu_dump_state()
137 regs->gpr[4], regs->gpr[5], regs->gpr[6], regs->gpr[7]); in nommu_dump_state()
139 regs->gpr[8], regs->gpr[9], regs->gpr[10], regs->gpr[11]); in nommu_dump_state()
141 regs->gpr[12], regs->gpr[13], regs->gpr[14], regs->gpr[15]); in nommu_dump_state()
143 regs->gpr[16], regs->gpr[17], regs->gpr[18], regs->gpr[19]); in nommu_dump_state()
145 regs->gpr[20], regs->gpr[21], regs->gpr[22], regs->gpr[23]); in nommu_dump_state()
147 regs->gpr[24], regs->gpr[25], regs->gpr[26], regs->gpr[27]); in nommu_dump_state()
149 regs->gpr[28], regs->gpr[29], regs->gpr[30], regs->gpr[31]); in nommu_dump_state()
151 regs->gpr[11], regs->orig_gpr11); in nommu_dump_state()
189 c = ((unsigned char *)(__pa(regs->pc)))[i]; in nommu_dump_state()
200 void die(const char *str, struct pt_regs *regs, long err) in die() argument
205 show_registers(regs); in die()
219 void die_if_kernel(const char *str, struct pt_regs *regs, long err) in die_if_kernel() argument
221 if (user_mode(regs)) in die_if_kernel()
224 die(str, regs, err); in die_if_kernel()
227 void unhandled_exception(struct pt_regs *regs, int ea, int vector) in unhandled_exception() argument
231 die("Oops", regs, 9); in unhandled_exception()
234 asmlinkage void do_trap(struct pt_regs *regs, unsigned long address) in do_trap() argument
236 force_sig_fault(SIGTRAP, TRAP_BRKPT, (void __user *)regs->pc); in do_trap()
239 asmlinkage void do_unaligned_access(struct pt_regs *regs, unsigned long address) in do_unaligned_access() argument
241 if (user_mode(regs)) { in do_unaligned_access()
246 show_registers(regs); in do_unaligned_access()
247 die("Die:", regs, address); in do_unaligned_access()
252 asmlinkage void do_bus_fault(struct pt_regs *regs, unsigned long address) in do_bus_fault() argument
254 if (user_mode(regs)) { in do_bus_fault()
259 show_registers(regs); in do_bus_fault()
260 die("Die:", regs, address); in do_bus_fault()
264 static inline int in_delay_slot(struct pt_regs *regs) in in_delay_slot() argument
270 insn = *((unsigned int *)regs->pc); in in_delay_slot()
288 static inline void adjust_pc(struct pt_regs *regs, unsigned long address) in adjust_pc() argument
293 if (unlikely(in_delay_slot(regs))) { in adjust_pc()
295 jmp = *((unsigned int *)regs->pc); in adjust_pc()
303 regs->pc += displacement; in adjust_pc()
306 regs->pc += displacement; in adjust_pc()
307 regs->gpr[9] = regs->pc + 8; in adjust_pc()
310 if (regs->sr & SPR_SR_F) in adjust_pc()
311 regs->pc += 8; in adjust_pc()
313 regs->pc += displacement; in adjust_pc()
316 if (regs->sr & SPR_SR_F) in adjust_pc()
317 regs->pc += displacement; in adjust_pc()
319 regs->pc += 8; in adjust_pc()
322 regs->pc = regs->gpr[rb]; in adjust_pc()
325 regs->pc = regs->gpr[rb]; in adjust_pc()
326 regs->gpr[9] = regs->pc + 8; in adjust_pc()
332 regs->pc += 4; in adjust_pc()
336 static inline void simulate_lwa(struct pt_regs *regs, unsigned long address, in simulate_lwa() argument
346 orig_pc = regs->pc; in simulate_lwa()
347 adjust_pc(regs, address); in simulate_lwa()
352 lwa_addr = (unsigned long __user *)(regs->gpr[ra] + imm); in simulate_lwa()
355 do_unaligned_access(regs, address); in simulate_lwa()
360 if (user_mode(regs)) { in simulate_lwa()
366 regs->pc = entry->fixup; in simulate_lwa()
375 regs->gpr[rd] = value; in simulate_lwa()
378 static inline void simulate_swa(struct pt_regs *regs, unsigned long address, in simulate_swa() argument
388 orig_pc = regs->pc; in simulate_swa()
389 adjust_pc(regs, address); in simulate_swa()
394 vaddr = (unsigned long __user *)(regs->gpr[ra] + imm); in simulate_swa()
397 regs->sr &= ~SPR_SR_F; in simulate_swa()
402 do_unaligned_access(regs, address); in simulate_swa()
406 if (put_user(regs->gpr[rb], vaddr)) { in simulate_swa()
407 if (user_mode(regs)) { in simulate_swa()
413 regs->pc = entry->fixup; in simulate_swa()
418 *((unsigned long *)vaddr) = regs->gpr[rb]; in simulate_swa()
422 regs->sr |= SPR_SR_F; in simulate_swa()
428 asmlinkage void do_illegal_instruction(struct pt_regs *regs, in do_illegal_instruction() argument
438 simulate_lwa(regs, address, insn); in do_illegal_instruction()
442 simulate_swa(regs, address, insn); in do_illegal_instruction()
449 if (user_mode(regs)) { in do_illegal_instruction()
455 show_registers(regs); in do_illegal_instruction()
456 die("Die:", regs, address); in do_illegal_instruction()