diff options
author | Gabe Black <gabeblack@google.com> | 2019-03-07 03:02:35 -0800 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2019-03-19 10:22:50 +0000 |
commit | d3d24835bcc03ecf312ac6ba7df114656770730f (patch) | |
tree | 43bb564a7bc3e22ffd7b1b906f6f96742ecb619a /src/cpu/base.cc | |
parent | 378d9ccbeb4053aeeab002159b26625854af54f7 (diff) | |
download | gem5-d3d24835bcc03ecf312ac6ba7df114656770730f.tar.xz |
arch, cpu, dev, gpu, mem, sim, python: start using getPort.
Replace the getMasterPort, getSlavePort, and getEthPort functions
with getPort, and remove extraneous mechanisms that are no longer
necessary.
Change-Id: Iab7e3c02d2f3a0cf33e7e824e18c28646b5bc318
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/17040
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Diffstat (limited to 'src/cpu/base.cc')
-rw-r--r-- | src/cpu/base.cc | 59 |
1 files changed, 30 insertions, 29 deletions
diff --git a/src/cpu/base.cc b/src/cpu/base.cc index 09de64646..8dfcf3cda 100644 --- a/src/cpu/base.cc +++ b/src/cpu/base.cc @@ -449,19 +449,18 @@ BaseCPU::regStats() threadContexts[0]->regStats(name()); } -BaseMasterPort & -BaseCPU::getMasterPort(const string &if_name, PortID idx) +Port & +BaseCPU::getPort(const string &if_name, PortID idx) { // Get the right port based on name. This applies to all the // subclasses of the base CPU and relies on their implementation - // of getDataPort and getInstPort. In all cases there methods - // return a MasterPort pointer. + // of getDataPort and getInstPort. if (if_name == "dcache_port") return getDataPort(); else if (if_name == "icache_port") return getInstPort(); else - return MemObject::getMasterPort(if_name, idx); + return MemObject::getPort(if_name, idx); } void @@ -621,21 +620,18 @@ BaseCPU::takeOverFrom(BaseCPU *oldCPU) ThreadContext::compare(oldTC, newTC); */ - BaseMasterPort *old_itb_port = - oldTC->getITBPtr()->getTableWalkerMasterPort(); - BaseMasterPort *old_dtb_port = - oldTC->getDTBPtr()->getTableWalkerMasterPort(); - BaseMasterPort *new_itb_port = - newTC->getITBPtr()->getTableWalkerMasterPort(); - BaseMasterPort *new_dtb_port = - newTC->getDTBPtr()->getTableWalkerMasterPort(); + Port *old_itb_port = oldTC->getITBPtr()->getTableWalkerPort(); + Port *old_dtb_port = oldTC->getDTBPtr()->getTableWalkerPort(); + Port *new_itb_port = newTC->getITBPtr()->getTableWalkerPort(); + Port *new_dtb_port = newTC->getDTBPtr()->getTableWalkerPort(); // Move over any table walker ports if they exist if (new_itb_port) { assert(!new_itb_port->isConnected()); assert(old_itb_port); assert(old_itb_port->isConnected()); - BaseSlavePort &slavePort = old_itb_port->getSlavePort(); + auto &slavePort = + dynamic_cast<BaseMasterPort *>(old_itb_port)->getSlavePort(); old_itb_port->unbind(); new_itb_port->bind(slavePort); } @@ -643,7 +639,8 @@ BaseCPU::takeOverFrom(BaseCPU *oldCPU) assert(!new_dtb_port->isConnected()); assert(old_dtb_port); assert(old_dtb_port->isConnected()); - BaseSlavePort &slavePort = old_dtb_port->getSlavePort(); + auto &slavePort = + dynamic_cast<BaseMasterPort *>(old_dtb_port)->getSlavePort(); old_dtb_port->unbind(); new_dtb_port->bind(slavePort); } @@ -655,14 +652,14 @@ BaseCPU::takeOverFrom(BaseCPU *oldCPU) CheckerCPU *oldChecker = oldTC->getCheckerCpuPtr(); CheckerCPU *newChecker = newTC->getCheckerCpuPtr(); if (oldChecker && newChecker) { - BaseMasterPort *old_checker_itb_port = - oldChecker->getITBPtr()->getTableWalkerMasterPort(); - BaseMasterPort *old_checker_dtb_port = - oldChecker->getDTBPtr()->getTableWalkerMasterPort(); - BaseMasterPort *new_checker_itb_port = - newChecker->getITBPtr()->getTableWalkerMasterPort(); - BaseMasterPort *new_checker_dtb_port = - newChecker->getDTBPtr()->getTableWalkerMasterPort(); + Port *old_checker_itb_port = + oldChecker->getITBPtr()->getTableWalkerPort(); + Port *old_checker_dtb_port = + oldChecker->getDTBPtr()->getTableWalkerPort(); + Port *new_checker_itb_port = + newChecker->getITBPtr()->getTableWalkerPort(); + Port *new_checker_dtb_port = + newChecker->getDTBPtr()->getTableWalkerPort(); newChecker->getITBPtr()->takeOverFrom(oldChecker->getITBPtr()); newChecker->getDTBPtr()->takeOverFrom(oldChecker->getDTBPtr()); @@ -672,8 +669,9 @@ BaseCPU::takeOverFrom(BaseCPU *oldCPU) assert(!new_checker_itb_port->isConnected()); assert(old_checker_itb_port); assert(old_checker_itb_port->isConnected()); - BaseSlavePort &slavePort = - old_checker_itb_port->getSlavePort(); + auto &slavePort = + dynamic_cast<BaseMasterPort *>(old_checker_itb_port)-> + getSlavePort(); old_checker_itb_port->unbind(); new_checker_itb_port->bind(slavePort); } @@ -681,8 +679,9 @@ BaseCPU::takeOverFrom(BaseCPU *oldCPU) assert(!new_checker_dtb_port->isConnected()); assert(old_checker_dtb_port); assert(old_checker_dtb_port->isConnected()); - BaseSlavePort &slavePort = - old_checker_dtb_port->getSlavePort(); + auto &slavePort = + dynamic_cast<BaseMasterPort *>(old_checker_dtb_port)-> + getSlavePort(); old_checker_dtb_port->unbind(); new_checker_dtb_port->bind(slavePort); } @@ -709,13 +708,15 @@ BaseCPU::takeOverFrom(BaseCPU *oldCPU) // we are switching to. assert(!getInstPort().isConnected()); assert(oldCPU->getInstPort().isConnected()); - BaseSlavePort &inst_peer_port = oldCPU->getInstPort().getSlavePort(); + auto &inst_peer_port = + dynamic_cast<BaseMasterPort &>(oldCPU->getInstPort()).getSlavePort(); oldCPU->getInstPort().unbind(); getInstPort().bind(inst_peer_port); assert(!getDataPort().isConnected()); assert(oldCPU->getDataPort().isConnected()); - BaseSlavePort &data_peer_port = oldCPU->getDataPort().getSlavePort(); + auto &data_peer_port = + dynamic_cast<BaseMasterPort &>(oldCPU->getDataPort()).getSlavePort(); oldCPU->getDataPort().unbind(); getDataPort().bind(data_peer_port); } |