Index: kernel/arch/ia32/src/interrupt.c
===================================================================
--- kernel/arch/ia32/src/interrupt.c	(revision 214ec25cbbfd86e547613a9d32809cef432e810d)
+++ kernel/arch/ia32/src/interrupt.c	(revision 7c31d201005bb12c2569505d071530dc62e85d21)
@@ -65,19 +65,8 @@
 void decode_istate(istate_t *istate)
 {
-	const char *symbol = symtab_fmt_name_lookup(istate->eip);
-	
-	if (CPU)
-		printf("----------------EXCEPTION OCCURED (cpu%u)----------------\n", CPU->id);
-	else
-		printf("----------------EXCEPTION OCCURED----------------\n");
-	
-	printf("%%eip: %#lx (%s)\n", istate->eip, symbol);
-	printf("ERROR_WORD=%#lx\n", istate->error_word);
-	printf("%%cs=%#lx,flags=%#lx\n", istate->cs, istate->eflags);
-	printf("%%eax=%#lx, %%ecx=%#lx, %%edx=%#lx, %%esp=%p\n", istate->eax, istate->ecx, istate->edx, &istate->stack[0]);
-	printf("stack: %#lx, %#lx, %#lx, %#lx\n", istate->stack[0], istate->stack[1], istate->stack[2], istate->stack[3]);
-	printf("       %#lx, %#lx, %#lx, %#lx\n", istate->stack[4], istate->stack[5], istate->stack[6], istate->stack[7]);
-	
-	stack_trace_istate(istate);
+	printf("error_word=%#lx\n", istate->error_word);
+	printf("cs =%#0.8lx\teflags=%#0.8lx\n", istate->cs, istate->eflags);
+	printf("eax=%#0.8lx\tecx=%#0.8lx\tedx=%#0.8lx\n",
+	    istate->eax, istate->ecx, istate->edx);
 }
 
@@ -94,7 +83,5 @@
 {
 	fault_if_from_uspace(istate, "Unserviced interrupt: %u.", n);
-	
-	decode_istate(istate);
-	panic("Unserviced interrupt: %u.", n);
+	panic_badtrap(istate, n, "Unserviced interrupt: %u.", n);
 }
 
@@ -102,7 +89,5 @@
 {
 	fault_if_from_uspace(istate, "Divide error.");
-	
-	decode_istate(istate);
-	panic("Divide error.");
+	panic_badtrap(istate, n, "Divide error.");
 }
 
@@ -128,7 +113,5 @@
 		fault_if_from_uspace(istate, "General protection fault.");
 	}
-	
-	decode_istate(istate);
-	panic("General protection fault.");
+	panic_badtrap(istate, n, "General protection fault.");
 }
 
@@ -136,7 +119,5 @@
 {
 	fault_if_from_uspace(istate, "Stack fault.");
-	
-	decode_istate(istate);
-	panic("Stack fault.");
+	panic_badtrap(istate, n, "Stack fault.");
 }
 
@@ -149,10 +130,7 @@
 	);
 	
-	fault_if_from_uspace(istate, "SIMD FP exception(19), MXCSR: %#zx.",
+	fault_if_from_uspace(istate, "SIMD FP exception(19), MXCSR=%#0.8x.",
 	    (unative_t) mxcsr);
-	
-	decode_istate(istate);
-	printf("MXCSR: %#lx\n", mxcsr);
-	panic("SIMD FP exception(19).");
+	panic_badtrap(istate, n, "SIMD FP exception, MXCSR=%#0.8x");
 }
 
@@ -164,5 +142,5 @@
 #else
 	fault_if_from_uspace(istate, "FPU fault.");
-	panic("FPU fault.");
+	panic_badtrap(istate, n, "FPU fault.");
 #endif
 }
