diff options
author | Polina Dudnik <pdudnik@gmail.com> | 2009-08-14 14:24:15 -0500 |
---|---|---|
committer | Polina Dudnik <pdudnik@gmail.com> | 2009-08-14 14:24:15 -0500 |
commit | de25decf37a7b0e2986da3345e8d4eb8b4a85fed (patch) | |
tree | 51f98b7f9f574ca8af1596a283503782d1347d72 /src/mem/ruby/system/Sequencer.cc | |
parent | 4b924fd16cf64f242aa4832c13f38fd96c7c1fa0 (diff) | |
download | gem5-de25decf37a7b0e2986da3345e8d4eb8b4a85fed.tar.xz |
Multi-line RMW handling
Diffstat (limited to 'src/mem/ruby/system/Sequencer.cc')
-rw-r--r-- | src/mem/ruby/system/Sequencer.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mem/ruby/system/Sequencer.cc b/src/mem/ruby/system/Sequencer.cc index cd079cdc3..eb3430b7f 100644 --- a/src/mem/ruby/system/Sequencer.cc +++ b/src/mem/ruby/system/Sequencer.cc @@ -274,6 +274,12 @@ void Sequencer::writeCallback(const Address& address, DataBlock& data) { if (request->ruby_request.type == RubyRequestType_Locked_Read) { m_dataCache_ptr->setLocked(address, m_version); } + else if (request->ruby_request.type == RubyRequestType_RMW_Read) { + m_controller->set_atomic(address); + } + else if (request->ruby_request.type == RubyRequestType_RMW_Write) { + m_controller->clear_atomic(); + } hitCallback(request, data); } |