diff options
-rw-r--r-- | src/mem/ruby/system/Sequencer.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/mem/ruby/system/Sequencer.cc b/src/mem/ruby/system/Sequencer.cc index 7fdd52623..97afa5ec6 100644 --- a/src/mem/ruby/system/Sequencer.cc +++ b/src/mem/ruby/system/Sequencer.cc @@ -489,7 +489,9 @@ Sequencer::hitCallback(SequencerRequest* srequest, DataBlock& data, data.setData(&overwrite_val[0], getOffset(request_address), pkt->getSize()); DPRINTF(RubySequencer, "swap data %s\n", data); - } else { + } else if (type != RubyRequestType_Store_Conditional || llscSuccess) { + // Types of stores set the actual data here, apart from + // failed Store Conditional requests data.setData(pkt->getConstPtr<uint8_t>(), getOffset(request_address), pkt->getSize()); DPRINTF(RubySequencer, "set data %s\n", data); |