summaryrefslogtreecommitdiff
path: root/src/sim/process.cc
diff options
context:
space:
mode:
authorAlexandru <alexandru.dutu@amd.com>2014-08-28 10:11:44 -0500
committerAlexandru <alexandru.dutu@amd.com>2014-08-28 10:11:44 -0500
commit5efbb4442a0e8c653539e263bf87c48849280e23 (patch)
treeda6807c806ebb1f658692c5bf823156831134c9f /src/sim/process.cc
parent26ac28dec288e4fd96d999267ec7cafad4d58c5a (diff)
downloadgem5-5efbb4442a0e8c653539e263bf87c48849280e23.tar.xz
mem: adding architectural page table support for SE mode
This patch enables the use of page tables that are stored in system memory and respect x86 specification, in SE mode. It defines an architectural page table for x86 as a MultiLevelPageTable class and puts a placeholder class for other ISAs page tables, giving the possibility for future implementation.
Diffstat (limited to 'src/sim/process.cc')
-rw-r--r--src/sim/process.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/sim/process.cc b/src/sim/process.cc
index d9f9a0fe6..a738908e1 100644
--- a/src/sim/process.cc
+++ b/src/sim/process.cc
@@ -106,7 +106,10 @@ Process::Process(ProcessParams * params)
: SimObject(params), system(params->system),
max_stack_size(params->max_stack_size),
M5_pid(system->allocatePID()),
- pTable(new FuncPageTable(name(), M5_pid)),
+ useArchPT(params->useArchPT),
+ pTable(useArchPT ?
+ static_cast<PageTableBase *>(new ArchPageTable(name(), M5_pid, system)) :
+ static_cast<PageTableBase *>(new FuncPageTable(name(), M5_pid)) ),
initVirtMem(system->getSystemPort(), this,
SETranslatingPortProxy::Always)
{