From 7f34ee36ec2c01d818bd2984745cbd4e62a7f549 Mon Sep 17 00:00:00 2001 From: Derek Hower Date: Tue, 21 Jul 2009 19:42:09 -0500 Subject: [PATCH] ruby: fixed sequencer RMW data bug --- src/mem/ruby/system/Sequencer.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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); -- 2.30.2