diff options
author | Alexandru <alexandru.dutu@amd.com> | 2014-08-28 10:11:44 -0500 |
---|---|---|
committer | Alexandru <alexandru.dutu@amd.com> | 2014-08-28 10:11:44 -0500 |
commit | 5efbb4442a0e8c653539e263bf87c48849280e23 (patch) | |
tree | da6807c806ebb1f658692c5bf823156831134c9f /src/sim/process.cc | |
parent | 26ac28dec288e4fd96d999267ec7cafad4d58c5a (diff) | |
download | gem5-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.cc | 5 |
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) { |