From 0ab873495a2f232454a361c5edf8458628619252 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Tue, 5 Feb 2002 21:06:13 +0000 Subject: 2001-02-05 Joel Sherrill * isr_entries.S: Removed comment incorrectly indicating this file was cpu_asm.S. * vectorexceptions.c (mips_dump_exception_frame): New routine broken out from default exception handler. --- c/src/lib/libcpu/mips/ChangeLog | 7 ++++++ .../libcpu/mips/shared/interrupts/isr_entries.S | 1 - .../mips/shared/interrupts/vectorexceptions.c | 29 +++++++++++----------- 3 files changed, 22 insertions(+), 15 deletions(-) (limited to 'c/src/lib') diff --git a/c/src/lib/libcpu/mips/ChangeLog b/c/src/lib/libcpu/mips/ChangeLog index 3f288ed994..3f5648ba62 100644 --- a/c/src/lib/libcpu/mips/ChangeLog +++ b/c/src/lib/libcpu/mips/ChangeLog @@ -1,3 +1,10 @@ +2001-02-05 Joel Sherrill + + * isr_entries.S: Removed comment incorrectly indicating this + file was cpu_asm.S. + * vectorexceptions.c (mips_dump_exception_frame): New routine + broken out from default exception handler. + 2001-02-01 Greg Menke * mongoosev/vectorisrs/vectorisrs.c, diff --git a/c/src/lib/libcpu/mips/shared/interrupts/isr_entries.S b/c/src/lib/libcpu/mips/shared/interrupts/isr_entries.S index 8fe31cd6e2..e27b35e984 100644 --- a/c/src/lib/libcpu/mips/shared/interrupts/isr_entries.S +++ b/c/src/lib/libcpu/mips/shared/interrupts/isr_entries.S @@ -10,7 +10,6 @@ * * $Id$ */ -/* @(#)cpu_asm.S 08/20/96 1.15 */ #include #include "iregdef.h" diff --git a/c/src/lib/libcpu/mips/shared/interrupts/vectorexceptions.c b/c/src/lib/libcpu/mips/shared/interrupts/vectorexceptions.c index 147cf7a999..f755583705 100644 --- a/c/src/lib/libcpu/mips/shared/interrupts/vectorexceptions.c +++ b/c/src/lib/libcpu/mips/shared/interrupts/vectorexceptions.c @@ -65,12 +65,25 @@ struct regdef dumpregs[]= { { R_EPC,"R_EPC"}, { -1, NULL } }; +void mips_dump_exception_frame( CPU_Interrupt_frame *frame ) +{ + unsigned int *frame_u32; + int i, j; + + frame_u32 = (unsigned32 *)frame; + for(i=0; dumpregs[i].offset > -1; i++) + { + printk(" %s", dumpregs[i].name); + for(j=0; j< 7-strlen(dumpregs[i].name); j++) printk(" "); + printk(" %08X%c", frame_u32[dumpregs[i].offset], (i%3) ? '\t' : '\n' ); + } + printk( "\n" ); +} void mips_default_exception_code_handler( int exc, CPU_Interrupt_frame *frame ) { unsigned int sr; unsigned int cause; - int i, j; mips_get_sr( sr ); mips_get_cause( cause ); @@ -78,20 +91,11 @@ void mips_default_exception_code_handler( int exc, CPU_Interrupt_frame *frame ) printk( "Unhandled exception %d\n", exc ); printk( "sr: 0x%08x cause: 0x%08x --> %s\n", sr, cause, cause_strings[(cause >> 2) &0x1f] ); - - for(i=0; dumpregs[i].offset > -1; i++) - { - printk(" %s", dumpregs[i].name); - for(j=0; j< 7-strlen(dumpregs[i].name); j++) printk(" "); - printk(" %08X\n", frame->regs[dumpregs[i].offset] ); - } + mips_dump_exception_frame( frame ); rtems_fatal_error_occurred(1); } - - - #define CALL_EXC(_vector,_frame) \ do { \ if ( _ISR_Vector_table[_vector] ) \ @@ -100,9 +104,6 @@ void mips_default_exception_code_handler( int exc, CPU_Interrupt_frame *frame ) mips_default_exception_code_handler( _vector, _frame ); \ } while(0) - - - /* * There are constants defined for these but they should basically * all be close to the same set. -- cgit v1.2.3