arch,mem: Remove the default value for page size.
This breaks one more architecture dependence outside of the ISAs. Change-Id: I071f9ed73aef78e1cd1752247c183e30854b2d28 Reviewed-on: https://gem5-review.googlesource.com/6982 Maintainer: Gabe Black <gabeblack@google.com> Reviewed-by: Alexandru Duțu <alexandru.dutu@amd.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Brandon Potter <Brandon.Potter@amd.com>
This commit is contained in:
@@ -49,7 +49,8 @@ using namespace AlphaISA;
|
||||
using namespace std;
|
||||
|
||||
AlphaProcess::AlphaProcess(ProcessParams *params, ObjectFile *objFile)
|
||||
: Process(params, new FuncPageTable(params->name, params->pid), objFile)
|
||||
: Process(params, new FuncPageTable(params->name, params->pid, PageBytes),
|
||||
objFile)
|
||||
{
|
||||
fatal_if(!params->useArchPT, "Arch page tables not implemented.");
|
||||
Addr brk_point = objFile->dataBase() + objFile->dataSize() +
|
||||
|
||||
@@ -63,7 +63,8 @@ using namespace ArmISA;
|
||||
|
||||
ArmProcess::ArmProcess(ProcessParams *params, ObjectFile *objFile,
|
||||
ObjectFile::Arch _arch)
|
||||
: Process(params, new FuncPageTable(params->name, params->pid), objFile),
|
||||
: Process(params, new FuncPageTable(params->name, params->pid, PageBytes),
|
||||
objFile),
|
||||
arch(_arch)
|
||||
{
|
||||
fatal_if(!params->useArchPT, "Arch page tables not implemented.");
|
||||
|
||||
@@ -50,7 +50,8 @@ using namespace std;
|
||||
using namespace MipsISA;
|
||||
|
||||
MipsProcess::MipsProcess(ProcessParams *params, ObjectFile *objFile)
|
||||
: Process(params, new FuncPageTable(params->name, params->pid), objFile)
|
||||
: Process(params, new FuncPageTable(params->name, params->pid, PageBytes),
|
||||
objFile)
|
||||
{
|
||||
fatal_if(!params->useArchPT, "Arch page tables not implemented.");
|
||||
// Set up stack. On MIPS, stack starts at the top of kuseg
|
||||
|
||||
@@ -50,7 +50,8 @@ using namespace std;
|
||||
using namespace PowerISA;
|
||||
|
||||
PowerProcess::PowerProcess(ProcessParams *params, ObjectFile *objFile)
|
||||
: Process(params, new FuncPageTable(params->name, params->pid), objFile)
|
||||
: Process(params, new FuncPageTable(params->name, params->pid, PageBytes),
|
||||
objFile)
|
||||
{
|
||||
fatal_if(!params->useArchPT, "Arch page tables not implemented.");
|
||||
// Set up break point (Top of Heap)
|
||||
|
||||
@@ -60,7 +60,9 @@ using namespace std;
|
||||
using namespace RiscvISA;
|
||||
|
||||
RiscvProcess::RiscvProcess(ProcessParams *params, ObjectFile *objFile) :
|
||||
Process(params, new FuncPageTable(params->name, params->pid), objFile)
|
||||
Process(params, new FuncPageTable(params->name, params->pid,
|
||||
PageBytes),
|
||||
objFile)
|
||||
{
|
||||
fatal_if(!params->useArchPT, "Arch page tables not implemented.");
|
||||
const Addr stack_base = 0x7FFFFFFFFFFFFFFFL;
|
||||
|
||||
@@ -56,8 +56,9 @@ static const int FirstArgumentReg = 8;
|
||||
|
||||
SparcProcess::SparcProcess(ProcessParams *params, ObjectFile *objFile,
|
||||
Addr _StackBias)
|
||||
: Process(params, new FuncPageTable(params->name, params->pid), objFile),
|
||||
StackBias(_StackBias)
|
||||
: Process(params, new FuncPageTable(params->name, params->pid, PageBytes),
|
||||
objFile),
|
||||
StackBias(_StackBias)
|
||||
{
|
||||
fatal_if(!params->useArchPT, "Arch page tables not implemented.");
|
||||
// Initialize these to 0s
|
||||
|
||||
@@ -101,9 +101,10 @@ X86Process::X86Process(ProcessParams *params, ObjectFile *objFile,
|
||||
: Process(params, params->useArchPT ?
|
||||
static_cast<PageTableBase *>(
|
||||
new ArchPageTable(params->name, params->pid,
|
||||
params->system)) :
|
||||
params->system, PageBytes)) :
|
||||
static_cast<PageTableBase *>(
|
||||
new FuncPageTable(params->name, params->pid)),
|
||||
new FuncPageTable(params->name, params->pid,
|
||||
PageBytes)),
|
||||
objFile),
|
||||
syscallDescs(_syscallDescs), numSyscallDescs(_numSyscallDescs)
|
||||
{
|
||||
|
||||
@@ -140,7 +140,7 @@ class MultiLevelPageTable : public PageTableBase
|
||||
|
||||
public:
|
||||
MultiLevelPageTable(const std::string &__name, uint64_t _pid,
|
||||
System *_sys);
|
||||
System *_sys, Addr pageSize);
|
||||
~MultiLevelPageTable();
|
||||
|
||||
void initState(ThreadContext* tc) override;
|
||||
|
||||
@@ -46,8 +46,9 @@ using namespace TheISA;
|
||||
|
||||
template <class ISAOps>
|
||||
MultiLevelPageTable<ISAOps>::MultiLevelPageTable(const std::string &__name,
|
||||
uint64_t _pid, System *_sys)
|
||||
: PageTableBase(__name, _pid), system(_sys),
|
||||
uint64_t _pid, System *_sys,
|
||||
Addr pageSize)
|
||||
: PageTableBase(__name, _pid, pageSize), system(_sys),
|
||||
logLevelSize(PageTableLayout),
|
||||
numLevels(logLevelSize.size())
|
||||
{
|
||||
|
||||
@@ -73,8 +73,7 @@ class PageTableBase : public Serializable
|
||||
|
||||
public:
|
||||
|
||||
PageTableBase(const std::string &__name, uint64_t _pid,
|
||||
Addr _pageSize = TheISA::PageBytes)
|
||||
PageTableBase(const std::string &__name, uint64_t _pid, Addr _pageSize)
|
||||
: pageSize(_pageSize), offsetMask(mask(floorLog2(_pageSize))),
|
||||
pid(_pid), _name(__name)
|
||||
{
|
||||
@@ -211,8 +210,7 @@ class FuncPageTable : public PageTableBase
|
||||
|
||||
public:
|
||||
|
||||
FuncPageTable(const std::string &__name, uint64_t _pid,
|
||||
Addr _pageSize = TheISA::PageBytes);
|
||||
FuncPageTable(const std::string &__name, uint64_t _pid, Addr _pageSize);
|
||||
|
||||
~FuncPageTable();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user