diff options
author | Gabe Black <gabeblack@google.com> | 2018-01-04 01:22:49 -0800 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2018-01-19 20:20:57 +0000 |
commit | 372adea6879ac549df4a415b5913d28b6683d535 (patch) | |
tree | 2319ce7ae4f5cbdd381038cea4f7f9ce33d3c835 /src/arch | |
parent | d76798c3e5611a9673bd1da9589a0081610cef5b (diff) | |
download | gem5-372adea6879ac549df4a415b5913d28b6683d535.tar.xz |
arch, mem, sim: Consolidate and rename the SE mode page table classes.
Now that Nothing inherits from PageTableBase directly, it can be
merged into FuncPageTable. This change also takes the opportunity to
rename the combined class to EmulationPageTable which lets you know
that it's specifically for SE mode.
Also remove the page table entry cache since it doesn't seem to
actually improve performance. The TLBs likely absorb the majority of
the locality, essentially acting like a cache like they would in real
hardware.
Change-Id: If1bcb91aed08686603bf7bee37298c0eee826e13
Reviewed-on: https://gem5-review.googlesource.com/7342
Reviewed-by: Brandon Potter <Brandon.Potter@amd.com>
Maintainer: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'src/arch')
-rw-r--r-- | src/arch/alpha/process.cc | 3 | ||||
-rw-r--r-- | src/arch/arm/process.cc | 5 | ||||
-rw-r--r-- | src/arch/mips/process.cc | 3 | ||||
-rw-r--r-- | src/arch/power/process.cc | 3 | ||||
-rw-r--r-- | src/arch/riscv/process.cc | 4 | ||||
-rw-r--r-- | src/arch/sparc/process.cc | 3 | ||||
-rw-r--r-- | src/arch/x86/process.cc | 7 |
7 files changed, 16 insertions, 12 deletions
diff --git a/src/arch/alpha/process.cc b/src/arch/alpha/process.cc index 2c6f83309..112abbf4a 100644 --- a/src/arch/alpha/process.cc +++ b/src/arch/alpha/process.cc @@ -49,7 +49,8 @@ using namespace AlphaISA; using namespace std; AlphaProcess::AlphaProcess(ProcessParams *params, ObjectFile *objFile) - : Process(params, new FuncPageTable(params->name, params->pid, PageBytes), + : Process(params, + new EmulationPageTable(params->name, params->pid, PageBytes), objFile) { fatal_if(params->useArchPT, "Arch page tables not implemented."); diff --git a/src/arch/arm/process.cc b/src/arch/arm/process.cc index aef714ed3..1bb23dec2 100644 --- a/src/arch/arm/process.cc +++ b/src/arch/arm/process.cc @@ -63,9 +63,10 @@ using namespace ArmISA; ArmProcess::ArmProcess(ProcessParams *params, ObjectFile *objFile, ObjectFile::Arch _arch) - : Process(params, new FuncPageTable(params->name, params->pid, PageBytes), + : Process(params, + new EmulationPageTable(params->name, params->pid, PageBytes), objFile), - arch(_arch) + arch(_arch) { fatal_if(params->useArchPT, "Arch page tables not implemented."); } diff --git a/src/arch/mips/process.cc b/src/arch/mips/process.cc index 62ccd5afe..b2957e0c4 100644 --- a/src/arch/mips/process.cc +++ b/src/arch/mips/process.cc @@ -50,7 +50,8 @@ using namespace std; using namespace MipsISA; MipsProcess::MipsProcess(ProcessParams *params, ObjectFile *objFile) - : Process(params, new FuncPageTable(params->name, params->pid, PageBytes), + : Process(params, + new EmulationPageTable(params->name, params->pid, PageBytes), objFile) { fatal_if(params->useArchPT, "Arch page tables not implemented."); diff --git a/src/arch/power/process.cc b/src/arch/power/process.cc index 22627efe5..6561bff4e 100644 --- a/src/arch/power/process.cc +++ b/src/arch/power/process.cc @@ -50,7 +50,8 @@ using namespace std; using namespace PowerISA; PowerProcess::PowerProcess(ProcessParams *params, ObjectFile *objFile) - : Process(params, new FuncPageTable(params->name, params->pid, PageBytes), + : Process(params, + new EmulationPageTable(params->name, params->pid, PageBytes), objFile) { fatal_if(params->useArchPT, "Arch page tables not implemented."); diff --git a/src/arch/riscv/process.cc b/src/arch/riscv/process.cc index 73df5f50d..b3e98aefb 100644 --- a/src/arch/riscv/process.cc +++ b/src/arch/riscv/process.cc @@ -60,8 +60,8 @@ using namespace std; using namespace RiscvISA; RiscvProcess::RiscvProcess(ProcessParams *params, ObjectFile *objFile) : - Process(params, new FuncPageTable(params->name, params->pid, - PageBytes), + Process(params, + new EmulationPageTable(params->name, params->pid, PageBytes), objFile) { fatal_if(params->useArchPT, "Arch page tables not implemented."); diff --git a/src/arch/sparc/process.cc b/src/arch/sparc/process.cc index 1fcb6cba3..e4cd874bd 100644 --- a/src/arch/sparc/process.cc +++ b/src/arch/sparc/process.cc @@ -56,7 +56,8 @@ static const int FirstArgumentReg = 8; SparcProcess::SparcProcess(ProcessParams *params, ObjectFile *objFile, Addr _StackBias) - : Process(params, new FuncPageTable(params->name, params->pid, PageBytes), + : Process(params, + new EmulationPageTable(params->name, params->pid, PageBytes), objFile), StackBias(_StackBias) { diff --git a/src/arch/x86/process.cc b/src/arch/x86/process.cc index bea002d34..52255af7a 100644 --- a/src/arch/x86/process.cc +++ b/src/arch/x86/process.cc @@ -99,12 +99,11 @@ static const int NumArgumentRegs32 M5_VAR_USED = X86Process::X86Process(ProcessParams *params, ObjectFile *objFile, SyscallDesc *_syscallDescs, int _numSyscallDescs) : Process(params, params->useArchPT ? - static_cast<PageTableBase *>( + static_cast<EmulationPageTable *>( new ArchPageTable(params->name, params->pid, params->system, PageBytes)) : - static_cast<PageTableBase *>( - new FuncPageTable(params->name, params->pid, - PageBytes)), + new EmulationPageTable(params->name, params->pid, + PageBytes), objFile), syscallDescs(_syscallDescs), numSyscallDescs(_numSyscallDescs) { |