summaryrefslogtreecommitdiff
path: root/src/arch/alpha/faults.cc
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2007-03-07 20:04:46 +0000
committerGabe Black <gblack@eecs.umich.edu>2007-03-07 20:04:46 +0000
commit54fc750924ebeeb34d598018b664a886cc3f7ac5 (patch)
tree87f21e528a20ac3d44540922a1ebc0e7df3e9389 /src/arch/alpha/faults.cc
parent8edc9d79cee3edd6d16a8254a0180aaa242974c7 (diff)
downloadgem5-54fc750924ebeeb34d598018b664a886cc3f7ac5.tar.xz
Move the magic m5 PageTableFault into sim/faults.[hh,cc] since it's the same across all architectures.
--HG-- extra : convert_revision : 18d441eb7ac44df4df41771bfe3dec69f7fa70ec
Diffstat (limited to 'src/arch/alpha/faults.cc')
-rw-r--r--src/arch/alpha/faults.cc32
1 files changed, 0 insertions, 32 deletions
diff --git a/src/arch/alpha/faults.cc b/src/arch/alpha/faults.cc
index 9a8429635..149729351 100644
--- a/src/arch/alpha/faults.cc
+++ b/src/arch/alpha/faults.cc
@@ -59,12 +59,6 @@ FaultName ArithmeticFault::_name = "arith";
FaultVect ArithmeticFault::_vect = 0x0501;
FaultStat ArithmeticFault::_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;
@@ -182,32 +176,6 @@ void ItbFault::invoke(ThreadContext * tc)
AlphaFault::invoke(tc);
}
-#else //!FULL_SYSTEM
-
-void PageTableFault::invoke(ThreadContext *tc)
-{
- Process *p = tc->getProcessPtr();
-
- // 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) {
- DPRINTF(Stack,
- "Increasing stack %#x:%#x to %#x:%#x because of access to %#x",
- p->stack_min, p->stack_base, p->stack_min - PageBytes,
- p->stack_base, vaddr);
- p->stack_min -= PageBytes;
- if (p->stack_base - p->stack_min > 8*1024*1024)
- fatal("Over max stack size for one thread\n");
- p->pTable->allocate(p->stack_min, PageBytes);
- } else {
- warn("Page fault on address %#x\n", vaddr);
- FaultBase::invoke(tc);
- }
-}
-
#endif
} // namespace AlphaISA