diff options
Diffstat (limited to 'src/arch/mips')
-rw-r--r-- | src/arch/mips/faults.cc | 40 | ||||
-rw-r--r-- | src/arch/mips/faults.hh | 29 | ||||
-rw-r--r-- | src/arch/mips/types.hh | 5 |
3 files changed, 4 insertions, 70 deletions
diff --git a/src/arch/mips/faults.cc b/src/arch/mips/faults.cc index 39a2fa997..3d83a21aa 100644 --- a/src/arch/mips/faults.cc +++ b/src/arch/mips/faults.cc @@ -75,12 +75,6 @@ FaultName UnimplementedOpcodeFault::_name = "opdec"; FaultVect UnimplementedOpcodeFault::_vect = 0x0481; FaultStat UnimplementedOpcodeFault::_count; -#if !FULL_SYSTEM -//FaultName PageTableFault::_name = "page_table_fault"; -//FaultVect PageTableFault::_vect = 0x0000; -//FaultStat PageTableFault::_count; -#endif - FaultName InterruptFault::_name = "interrupt"; FaultVect InterruptFault::_vect = 0x0101; FaultStat InterruptFault::_count; @@ -125,40 +119,6 @@ FaultName DspStateDisabledFault::_name = "intover"; FaultVect DspStateDisabledFault::_vect = 0x001a; FaultStat DspStateDisabledFault::_count; - -/*void PageTableFault::invoke(ThreadContext *tc) -{ - Process *p = tc->getProcessPtr(); - - Addr page_addr = p->pTable->pageAlign(vaddr); - - warn("%i: [tid:%i]: %s encountered @ addr %x. Allocating new page for address range %x - %x.\n", - curTick, tc->getThreadNum(), name(), vaddr, page_addr, page_addr+VMPageSize); - - p->pTable->allocate(page_addr, VMPageSize); - - return; -} -*/ - /* address is higher than the stack region or in the current stack region - if (vaddr > p->stack_base || vaddr > p->stack_min) - FaultBase::invoke(tc); - - // We've accessed the next page - if (vaddr > p->stack_min - PageBytes) { - p->stack_min -= PageBytes; - if (p->stack_base - p->stack_min > 8*1024*1024) { - warn("Already allocated Over max stack size for one thread\n"); - } - warn("%i: Allocating page for range %x - %x", - curTick, p->stack_min, p->stack_min-PageBytes); - - p->pTable->allocate(p->stack_min, PageBytes); - warn("Increasing stack size by one page."); - } else { - FaultBase::invoke(tc); - }*/ - void ResetFault::invoke(ThreadContext *tc) { warn("[tid:%i]: %s encountered.\n", tc->getThreadNum(), name()); diff --git a/src/arch/mips/faults.hh b/src/arch/mips/faults.hh index 2e5aa81d6..441e7c27f 100644 --- a/src/arch/mips/faults.hh +++ b/src/arch/mips/faults.hh @@ -92,40 +92,11 @@ class UnimplementedOpcodeFault : public MipsFault FaultStat & countStat() {return _count;} }; -#if !FULL_SYSTEM -//class PageTableFault : public MipsFault -//{ -//private: -// Addr vaddr; -// static FaultName _name; -// static FaultVect _vect; -// static FaultStat _count; -//public: -// PageTableFault(Addr va) -// : vaddr(va) {} -// FaultName name() {return _name;} -// FaultVect vect() {return _vect;} -// FaultStat & countStat() {return _count;} -// void invoke(ThreadContext * tc); -//}; - -static inline Fault genPageTableFault(Addr va) -{ - return new PageTableFault(va); -} -#endif - - static inline Fault genMachineCheckFault() { return new MachineCheckFault; } -static inline Fault genAlignmentFault() -{ - return new AlignmentFault; -} - class ResetFault : public MipsFault { private: diff --git a/src/arch/mips/types.hh b/src/arch/mips/types.hh index fc45ea253..6e14a9b55 100644 --- a/src/arch/mips/types.hh +++ b/src/arch/mips/types.hh @@ -31,6 +31,7 @@ #ifndef __ARCH_MIPS_TYPES_HH__ #define __ARCH_MIPS_TYPES_HH__ +#include "mem/types.hh" #include "sim/host.hh" namespace MipsISA @@ -93,7 +94,9 @@ namespace MipsISA RND_DOWN, RND_UP, RND_NEAREST - }; + }; + + typedef ::PageTable<> PageTable; } // namespace MipsISA |