diff options
Diffstat (limited to 'src/mem/ruby/system/System.cc')
-rw-r--r-- | src/mem/ruby/system/System.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/mem/ruby/system/System.cc b/src/mem/ruby/system/System.cc index f1a6a91b8..0e52df2ec 100644 --- a/src/mem/ruby/system/System.cc +++ b/src/mem/ruby/system/System.cc @@ -536,13 +536,18 @@ RubySystem::functionalWrite(PacketPtr pkt) unsigned int size_in_bytes = pkt->getSize(); unsigned startByte = addr.getAddress() - line_addr.getAddress(); + uint32_t M5_VAR_USED num_functional_writes = 0; + for (unsigned int i = 0; i < num_controllers;++i) { - m_abs_cntrl_vec[i]->functionalWriteBuffers(pkt); + num_functional_writes += + m_abs_cntrl_vec[i]->functionalWriteBuffers(pkt); access_perm = m_abs_cntrl_vec[i]->getAccessPermission(line_addr); if (access_perm != AccessPermission_Invalid && access_perm != AccessPermission_NotPresent) { + num_functional_writes++; + DataBlock& block = m_abs_cntrl_vec[i]->getDataBlock(line_addr); DPRINTF(RubySystem, "%s\n",block); for (unsigned j = 0; j < size_in_bytes; ++j) { @@ -552,7 +557,6 @@ RubySystem::functionalWrite(PacketPtr pkt) } } - uint32_t M5_VAR_USED num_functional_writes = 0; for (unsigned int i = 0; i < m_memory_controller_vec.size() ;++i) { num_functional_writes += m_memory_controller_vec[i]->functionalWriteBuffers(pkt); |