diff options
author | Korey Sewell <ksewell@umich.edu> | 2007-11-14 06:24:47 -0500 |
---|---|---|
committer | Korey Sewell <ksewell@umich.edu> | 2007-11-14 06:24:47 -0500 |
commit | 5f7879a9352985775abef9515e216591a2e3e39d (patch) | |
tree | 3aa829a03969e0694f914e7e28c597504956a59c /src/arch/mips/faults.cc | |
parent | bfdd2f379b89654b15f8634d405666f623d336f2 (diff) | |
download | gem5-5f7879a9352985775abef9515e216591a2e3e39d.tar.xz |
Get MIPS_SE actually working again by actually by fixing TLB stuff and running hello world
--HG--
extra : convert_revision : 0944e7661934baddca1f1a895af0b75be2d96b10
Diffstat (limited to 'src/arch/mips/faults.cc')
-rw-r--r-- | src/arch/mips/faults.cc | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/arch/mips/faults.cc b/src/arch/mips/faults.cc index 8398ae405..3e1cb69c9 100644 --- a/src/arch/mips/faults.cc +++ b/src/arch/mips/faults.cc @@ -57,7 +57,7 @@ FaultName AlignmentFault::_name = "Alignment"; FaultVect AlignmentFault::_vect = 0x0301; FaultStat AlignmentFault::_count; -FaultName ResetFault::_name = "reset"; +FaultName ResetFault::_name = "Reset Fault"; #if FULL_SYSTEM FaultVect ResetFault::_vect = 0xBFC00000; #else @@ -78,15 +78,15 @@ FaultName SystemCallFault::_name = "Syscall"; FaultVect SystemCallFault::_vect = 0x0180; FaultStat SystemCallFault::_count; -FaultName CoprocessorUnusableFault::_name = "Coprocessor Unusable"; +FaultName CoprocessorUnusableFault::_name = "Coprocessor Unusable Fault"; FaultVect CoprocessorUnusableFault::_vect = 0x180; FaultStat CoprocessorUnusableFault::_count; -FaultName ReservedInstructionFault::_name = "Reserved Instruction"; +FaultName ReservedInstructionFault::_name = "Reserved Instruction Fault"; FaultVect ReservedInstructionFault::_vect = 0x0180; FaultStat ReservedInstructionFault::_count; -FaultName ThreadFault::_name = "thread"; +FaultName ThreadFault::_name = "Thread Fault"; FaultVect ThreadFault::_vect = 0x00F1; FaultStat ThreadFault::_count; @@ -459,12 +459,17 @@ void InterruptFault::invoke(ThreadContext *tc) void ResetFault::invoke(ThreadContext *tc) { +#if FULL_SYSTEM DPRINTF(MipsPRA,"%s encountered.\n", name()); /* All reset activity must be invoked from here */ tc->setPC(vect()); tc->setNextPC(vect()+sizeof(MachInst)); tc->setNextNPC(vect()+sizeof(MachInst)+sizeof(MachInst)); DPRINTF(MipsPRA,"(%x) - ResetFault::invoke : PC set to %x",(unsigned)tc,(unsigned)tc->readPC()); +#endif + + // Set Coprocessor 1 (Floating Point) To Usable + tc->setMiscReg(MipsISA::Status, MipsISA::Status | 0x20000000); } void ReservedInstructionFault::invoke(ThreadContext *tc) @@ -509,7 +514,7 @@ void CoprocessorUnusableFault::invoke(ThreadContext *tc) // warn("Status: %x, Cause: %x\n",tc->readMiscReg(MipsISA::Status),tc->readMiscReg(MipsISA::Cause)); #else - panic("%s encountered.\n", name()); + warn("%s (CP%d) encountered.\n", name(), coProcID); #endif } |