lsq_unit_impl.hh (5529:9ae69b9cd7fd) | lsq_unit_impl.hh (5606:6da7a58b0bc8) |
---|---|
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; --- 31 unchanged lines hidden (view full) --- 40 41#if USE_CHECKER 42#include "cpu/checker/cpu.hh" 43#endif 44 45template<class Impl> 46LSQUnit<Impl>::WritebackEvent::WritebackEvent(DynInstPtr &_inst, PacketPtr _pkt, 47 LSQUnit *lsq_ptr) | 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; --- 31 unchanged lines hidden (view full) --- 40 41#if USE_CHECKER 42#include "cpu/checker/cpu.hh" 43#endif 44 45template<class Impl> 46LSQUnit<Impl>::WritebackEvent::WritebackEvent(DynInstPtr &_inst, PacketPtr _pkt, 47 LSQUnit *lsq_ptr) |
48 : Event(&mainEventQueue), inst(_inst), pkt(_pkt), lsqPtr(lsq_ptr) | 48 : inst(_inst), pkt(_pkt), lsqPtr(lsq_ptr) |
49{ 50 this->setFlags(Event::AutoDelete); 51} 52 53template<class Impl> 54void 55LSQUnit<Impl>::WritebackEvent::process() 56{ --- 622 unchanged lines hidden (view full) --- 679 inst->recordResult = true; 680 681 if (!success) { 682 // Instantly complete this store. 683 DPRINTF(LSQUnit, "Store conditional [sn:%lli] failed. " 684 "Instantly completing it.\n", 685 inst->seqNum); 686 WritebackEvent *wb = new WritebackEvent(inst, data_pkt, this); | 49{ 50 this->setFlags(Event::AutoDelete); 51} 52 53template<class Impl> 54void 55LSQUnit<Impl>::WritebackEvent::process() 56{ --- 622 unchanged lines hidden (view full) --- 679 inst->recordResult = true; 680 681 if (!success) { 682 // Instantly complete this store. 683 DPRINTF(LSQUnit, "Store conditional [sn:%lli] failed. " 684 "Instantly completing it.\n", 685 inst->seqNum); 686 WritebackEvent *wb = new WritebackEvent(inst, data_pkt, this); |
687 wb->schedule(curTick + 1); | 687 cpu->schedule(wb, curTick + 1); |
688 completeStore(storeWBIdx); 689 incrStIdx(storeWBIdx); 690 continue; 691 } 692 } else { 693 // Non-store conditionals do not need a writeback. 694 state->noWB = true; 695 } --- 320 unchanged lines hidden --- | 688 completeStore(storeWBIdx); 689 incrStIdx(storeWBIdx); 690 continue; 691 } 692 } else { 693 // Non-store conditionals do not need a writeback. 694 state->noWB = true; 695 } --- 320 unchanged lines hidden --- |