summaryrefslogtreecommitdiff
path: root/src/cpu/testers/rubytest/Check.cc
diff options
context:
space:
mode:
authorAndreas Hansson <andreas.hansson@arm.com>2012-04-14 05:46:59 -0400
committerAndreas Hansson <andreas.hansson@arm.com>2012-04-14 05:46:59 -0400
commit14edc6013d8d62782d58536214c669e12c64da37 (patch)
tree639d9ed2d37086bad6eb9576a4cfcc02729860e5 /src/cpu/testers/rubytest/Check.cc
parent750f33a90194f3f827ef887fb7e151235e61c919 (diff)
downloadgem5-14edc6013d8d62782d58536214c669e12c64da37.tar.xz
Ruby: Use MasterPort base-class pointers where possible
This patch simplifies future patches by changing the pointer type used in a number of the Ruby testers to use MasterPort instead of using a derived CpuPort class. There is no reason for using the more specialised pointers, and there is no longer a need to do any casting. With the latest changes to the tester, organising ports as readers and writes, things got a bit more complicated, and the "type" now had to be removed to be able to fall back to using MasterPort rather than CpuPort.
Diffstat (limited to 'src/cpu/testers/rubytest/Check.cc')
-rw-r--r--src/cpu/testers/rubytest/Check.cc16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/cpu/testers/rubytest/Check.cc b/src/cpu/testers/rubytest/Check.cc
index 892e05dd0..8188fecbb 100644
--- a/src/cpu/testers/rubytest/Check.cc
+++ b/src/cpu/testers/rubytest/Check.cc
@@ -82,8 +82,7 @@ Check::initiatePrefetch()
DPRINTF(RubyTest, "initiating prefetch\n");
int index = random() % m_num_readers;
- RubyTester::CpuPort* port =
- safe_cast<RubyTester::CpuPort*>(m_tester_ptr->getReadableCpuPort(index));
+ MasterPort* port = m_tester_ptr->getReadableCpuPort(index);
Request::Flags flags;
flags.set(Request::PREFETCH);
@@ -95,7 +94,7 @@ Check::initiatePrefetch()
cmd = MemCmd::ReadReq;
// if necessary, make the request an instruction fetch
- if (port->type == RubyTester::CpuPort::InstOnly) {
+ if (m_tester_ptr->isInstReadableCpuPort(index)) {
flags.set(Request::INST_FETCH);
}
} else {
@@ -137,8 +136,7 @@ Check::initiateFlush()
DPRINTF(RubyTest, "initiating Flush\n");
int index = random() % m_num_writers;
- RubyTester::CpuPort* port =
- safe_cast<RubyTester::CpuPort*>(m_tester_ptr->getWritableCpuPort(index));
+ MasterPort* port = m_tester_ptr->getWritableCpuPort(index);
Request::Flags flags;
@@ -168,8 +166,7 @@ Check::initiateAction()
assert(m_status == TesterStatus_Idle);
int index = random() % m_num_writers;
- RubyTester::CpuPort* port =
- safe_cast<RubyTester::CpuPort*>(m_tester_ptr->getWritableCpuPort(index));
+ MasterPort* port = m_tester_ptr->getWritableCpuPort(index);
Request::Flags flags;
@@ -233,13 +230,12 @@ Check::initiateCheck()
assert(m_status == TesterStatus_Ready);
int index = random() % m_num_readers;
- RubyTester::CpuPort* port =
- safe_cast<RubyTester::CpuPort*>(m_tester_ptr->getReadableCpuPort(index));
+ MasterPort* port = m_tester_ptr->getReadableCpuPort(index);
Request::Flags flags;
// If necessary, make the request an instruction fetch
- if (port->type == RubyTester::CpuPort::InstOnly) {
+ if (m_tester_ptr->isInstReadableCpuPort(index)) {
flags.set(Request::INST_FETCH);
}