1/* 2 * Copyright (c) 2004-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 43 unchanged lines hidden (view full) --- 52 53template<class Impl> 54void 55LSQUnit<Impl>::WritebackEvent::process() 56{ 57 if (!lsqPtr->isSwitchedOut()) { 58 lsqPtr->writeback(inst, pkt); 59 } |
60 delete pkt; 61} 62 63template<class Impl> 64const char * 65LSQUnit<Impl>::WritebackEvent::description() 66{ 67 return "Store writeback event"; --- 7 unchanged lines hidden (view full) --- 75 DynInstPtr inst = state->inst; 76 DPRINTF(IEW, "Writeback event [sn:%lli]\n", inst->seqNum); 77 DPRINTF(Activity, "Activity: Writeback event [sn:%lli]\n", inst->seqNum); 78 79 //iewStage->ldstQueue.removeMSHR(inst->threadNumber,inst->seqNum); 80 81 if (isSwitchedOut() || inst->isSquashed()) { 82 iewStage->decrWb(inst->seqNum); |
83 delete state; 84 delete pkt->req; 85 delete pkt; 86 return; |
87 } else { 88 if (!state->noWB) { 89 writeback(inst, pkt); 90 } 91 92 if (inst->isStore()) { 93 completeStore(state->idx); 94 } --- 541 unchanged lines hidden (view full) --- 636 DynInstPtr inst = storeQueue[storeWBIdx].inst; 637 638 Request *req = storeQueue[storeWBIdx].req; 639 storeQueue[storeWBIdx].committed = true; 640 641 assert(!inst->memData); 642 inst->memData = new uint8_t[64]; 643 |
644 memcpy(inst->memData, storeQueue[storeWBIdx].data, req->getSize()); |
645 |
646 PacketPtr data_pkt = new Packet(req, MemCmd::WriteReq, 647 Packet::Broadcast); 648 data_pkt->dataStatic(inst->memData); 649 650 LSQSenderState *state = new LSQSenderState; 651 state->isLoad = false; 652 state->idx = storeWBIdx; 653 state->inst = inst; --- 378 unchanged lines hidden --- |