diff options
author | Andreas Hansson <andreas.hansson@arm.com> | 2012-04-14 05:46:59 -0400 |
---|---|---|
committer | Andreas Hansson <andreas.hansson@arm.com> | 2012-04-14 05:46:59 -0400 |
commit | 14edc6013d8d62782d58536214c669e12c64da37 (patch) | |
tree | 639d9ed2d37086bad6eb9576a4cfcc02729860e5 /src/cpu/testers/rubytest/Check.cc | |
parent | 750f33a90194f3f827ef887fb7e151235e61c919 (diff) | |
download | gem5-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.cc | 16 |
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); } |