|
@@ -9,7 +9,7 @@
|
|
|
* Copyright (C) 1999 Silicon Graphics, Inc.
|
|
|
* Kevin D. Kissell, kevink@mips.com and Carsten Langgaard, carstenl@mips.com
|
|
|
* Copyright (C) 2000, 01 MIPS Technologies, Inc.
|
|
|
- * Copyright (C) 2002, 2003, 2004 Maciej W. Rozycki
|
|
|
+ * Copyright (C) 2002, 2003, 2004, 2005 Maciej W. Rozycki
|
|
|
*/
|
|
|
#include <linux/config.h>
|
|
|
#include <linux/init.h>
|
|
@@ -203,32 +203,47 @@ void show_regs(struct pt_regs *regs)
|
|
|
|
|
|
printk("Status: %08x ", (uint32_t) regs->cp0_status);
|
|
|
|
|
|
- if (regs->cp0_status & ST0_KX)
|
|
|
- printk("KX ");
|
|
|
- if (regs->cp0_status & ST0_SX)
|
|
|
- printk("SX ");
|
|
|
- if (regs->cp0_status & ST0_UX)
|
|
|
- printk("UX ");
|
|
|
- switch (regs->cp0_status & ST0_KSU) {
|
|
|
- case KSU_USER:
|
|
|
- printk("USER ");
|
|
|
- break;
|
|
|
- case KSU_SUPERVISOR:
|
|
|
- printk("SUPERVISOR ");
|
|
|
- break;
|
|
|
- case KSU_KERNEL:
|
|
|
- printk("KERNEL ");
|
|
|
- break;
|
|
|
- default:
|
|
|
- printk("BAD_MODE ");
|
|
|
- break;
|
|
|
+ if (current_cpu_data.isa_level == MIPS_CPU_ISA_I) {
|
|
|
+ if (regs->cp0_status & ST0_KUO)
|
|
|
+ printk("KUo ");
|
|
|
+ if (regs->cp0_status & ST0_IEO)
|
|
|
+ printk("IEo ");
|
|
|
+ if (regs->cp0_status & ST0_KUP)
|
|
|
+ printk("KUp ");
|
|
|
+ if (regs->cp0_status & ST0_IEP)
|
|
|
+ printk("IEp ");
|
|
|
+ if (regs->cp0_status & ST0_KUC)
|
|
|
+ printk("KUc ");
|
|
|
+ if (regs->cp0_status & ST0_IEC)
|
|
|
+ printk("IEc ");
|
|
|
+ } else {
|
|
|
+ if (regs->cp0_status & ST0_KX)
|
|
|
+ printk("KX ");
|
|
|
+ if (regs->cp0_status & ST0_SX)
|
|
|
+ printk("SX ");
|
|
|
+ if (regs->cp0_status & ST0_UX)
|
|
|
+ printk("UX ");
|
|
|
+ switch (regs->cp0_status & ST0_KSU) {
|
|
|
+ case KSU_USER:
|
|
|
+ printk("USER ");
|
|
|
+ break;
|
|
|
+ case KSU_SUPERVISOR:
|
|
|
+ printk("SUPERVISOR ");
|
|
|
+ break;
|
|
|
+ case KSU_KERNEL:
|
|
|
+ printk("KERNEL ");
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ printk("BAD_MODE ");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ if (regs->cp0_status & ST0_ERL)
|
|
|
+ printk("ERL ");
|
|
|
+ if (regs->cp0_status & ST0_EXL)
|
|
|
+ printk("EXL ");
|
|
|
+ if (regs->cp0_status & ST0_IE)
|
|
|
+ printk("IE ");
|
|
|
}
|
|
|
- if (regs->cp0_status & ST0_ERL)
|
|
|
- printk("ERL ");
|
|
|
- if (regs->cp0_status & ST0_EXL)
|
|
|
- printk("EXL ");
|
|
|
- if (regs->cp0_status & ST0_IE)
|
|
|
- printk("IE ");
|
|
|
printk("\n");
|
|
|
|
|
|
printk("Cause : %08x\n", cause);
|