summaryrefslogtreecommitdiff
path: root/src/mem/ruby/system/Sequencer.cc
diff options
context:
space:
mode:
authorDerek Hower <drh5@cs.wisc.edu>2009-07-21 21:27:54 -0500
committerDerek Hower <drh5@cs.wisc.edu>2009-07-21 21:27:54 -0500
commitc635d04642723f7dea68ee6c6c882c7751d8484b (patch)
tree0173732c6b4354a813f04cb57a7e78410cebdb78 /src/mem/ruby/system/Sequencer.cc
parent74584d79b66b3459c72db6c74bfa9e22ee1ae23b (diff)
parent7f34ee36ec2c01d818bd2984745cbd4e62a7f549 (diff)
downloadgem5-c635d04642723f7dea68ee6c6c882c7751d8484b.tar.xz
Automated merge with ssh://m5sim.org//repo/m5
Diffstat (limited to 'src/mem/ruby/system/Sequencer.cc')
-rw-r--r--src/mem/ruby/system/Sequencer.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/mem/ruby/system/Sequencer.cc b/src/mem/ruby/system/Sequencer.cc
index 693e931aa..a030fc7c2 100644
--- a/src/mem/ruby/system/Sequencer.cc
+++ b/src/mem/ruby/system/Sequencer.cc
@@ -285,6 +285,7 @@ void Sequencer::readCallback(const Address& address, DataBlock& data) {
removeRequest(request);
assert((request->ruby_request.type == RubyRequestType_LD) ||
+ (request->ruby_request.type == RubyRequestType_RMW_Read) ||
(request->ruby_request.type == RubyRequestType_IFETCH));
hitCallback(request, data);
@@ -328,7 +329,8 @@ void Sequencer::hitCallback(SequencerRequest* srequest, DataBlock& data) {
// update the data
if (ruby_request.data != NULL) {
if ((type == RubyRequestType_LD) ||
- (type == RubyRequestType_IFETCH)) {
+ (type == RubyRequestType_IFETCH) ||
+ (type == RubyRequestType_RMW_Read)) {
memcpy(ruby_request.data, data.getData(request_address.getOffset(), ruby_request.len), ruby_request.len);
} else {
data.setData(ruby_request.data, request_address.getOffset(), ruby_request.len);