diff options
Diffstat (limited to 'src/mem/ruby/system/Sequencer.cc')
-rw-r--r-- | src/mem/ruby/system/Sequencer.cc | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/mem/ruby/system/Sequencer.cc b/src/mem/ruby/system/Sequencer.cc index f30369710..41ec6ea6c 100644 --- a/src/mem/ruby/system/Sequencer.cc +++ b/src/mem/ruby/system/Sequencer.cc @@ -476,17 +476,14 @@ Sequencer::hitCallback(SequencerRequest* srequest, DataBlock& data, (type == RubyRequestType_RMW_Read) || (type == RubyRequestType_Locked_RMW_Read) || (type == RubyRequestType_Load_Linked)) { - memcpy(pkt->getPtr<uint8_t>(), - data.getData(getOffset(request_address), pkt->getSize()), - pkt->getSize()); + pkt->setData( + data.getData(getOffset(request_address), pkt->getSize())); DPRINTF(RubySequencer, "read data %s\n", data); } else if (pkt->req->isSwap()) { std::vector<uint8_t> overwrite_val(pkt->getSize()); - memcpy(&overwrite_val[0], pkt->getConstPtr<uint8_t>(), - pkt->getSize()); - memcpy(pkt->getPtr<uint8_t>(), - data.getData(getOffset(request_address), pkt->getSize()), - pkt->getSize()); + pkt->writeData(&overwrite_val[0]); + pkt->setData( + data.getData(getOffset(request_address), pkt->getSize())); data.setData(&overwrite_val[0], getOffset(request_address), pkt->getSize()); DPRINTF(RubySequencer, "swap data %s\n", data); |