17 #include <linux/errno.h>
18 #include <linux/sched.h>
19 #include <linux/kernel.h>
21 #include <linux/stddef.h>
23 #include <linux/ptrace.h>
27 #include <asm/pgtable.h>
28 #include <asm/uaccess.h>
46 printk(
" pte @ 0x%8lx: ", addr);
54 printk(
" (0x%08lx)->(0x%08lx)->0x%08lx\n",
55 (
long)pgd, (
long)pte, (
long)
pte_val(*pte));
56 #define pp ((long)pte_val(*pte))
57 printk(
" RPN: %05lx PP: %lx SPS: %lx SH: %lx "
109 u32 flreg, idxreg, disp;
116 instword = *((
u32 *)regs->
nip);
117 inst = instword >> 26;
119 flreg = (instword >> 21) & 0x1f;
120 idxreg = (instword >> 16) & 0x1f;
121 disp = instword & 0xffff;
123 ea = (
u32 *)(regs->
gpr[idxreg] + disp);
132 sdisp = (instword & 0xffff);
133 ea = (
u32 *)(regs->
gpr[idxreg] + sdisp);
142 regs->
gpr[idxreg] = (
u32)ea;
145 sdisp = (instword & 0xffff);
146 ea = (
u32 *)(regs->
gpr[idxreg] + sdisp);
154 sdisp = (instword & 0xffff);
155 ea = (
u32 *)(regs->
gpr[idxreg] + sdisp);
164 regs->
gpr[idxreg] = (
u32)ea;
173 printk(
"Bad emulation %s/%d\n"
174 " NIP: %08lx instruction: %08x opcode: %x "
175 "A: %x B: %x C: %x code: %x rc: %x\n",
190 printk(
"Kernel VA for NIP %x ", pa);