Deleted Added
sdiff udiff text old ( 8232:b28d06a175be ) new ( 8515:12420b96b364 )
full compact
1/*
2 * Copyright (c) 2004-2006 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;

--- 391 unchanged lines hidden (view full) ---

400template <class MemDepPred, class Impl>
401void
402MemDepUnit<MemDepPred, Impl>::completeBarrier(DynInstPtr &inst)
403{
404 wakeDependents(inst);
405 completed(inst);
406
407 InstSeqNum barr_sn = inst->seqNum;
408
409 if (inst->isMemBarrier()) {
410 assert(loadBarrier && storeBarrier);
411 if (loadBarrierSN == barr_sn)
412 loadBarrier = false;
413 if (storeBarrierSN == barr_sn)
414 storeBarrier = false;
415 } else if (inst->isWriteBarrier()) {
416 assert(storeBarrier);
417 if (storeBarrierSN == barr_sn)
418 storeBarrier = false;
419 }
420}
421
422template <class MemDepPred, class Impl>
423void
424MemDepUnit<MemDepPred, Impl>::wakeDependents(DynInstPtr &inst)

--- 50 unchanged lines hidden (view full) ---

475 MemDepHashIt hash_it;
476
477 while (!instList[tid].empty() &&
478 (*squash_it)->seqNum > squashed_num) {
479
480 DPRINTF(MemDepUnit, "Squashing inst [sn:%lli]\n",
481 (*squash_it)->seqNum);
482
483 hash_it = memDepHash.find((*squash_it)->seqNum);
484
485 assert(hash_it != memDepHash.end());
486
487 (*hash_it).second->squashed = true;
488
489 (*hash_it).second = NULL;
490

--- 13 unchanged lines hidden (view full) ---

504void
505MemDepUnit<MemDepPred, Impl>::violation(DynInstPtr &store_inst,
506 DynInstPtr &violating_load)
507{
508 DPRINTF(MemDepUnit, "Passing violating PCs to store sets,"
509 " load: %#x, store: %#x\n", violating_load->instAddr(),
510 store_inst->instAddr());
511 // Tell the memory dependence unit of the violation.
512 depPred.violation(violating_load->instAddr(), store_inst->instAddr());
513}
514
515template <class MemDepPred, class Impl>
516void
517MemDepUnit<MemDepPred, Impl>::issue(DynInstPtr &inst)
518{
519 DPRINTF(MemDepUnit, "Issuing instruction PC %#x [sn:%lli].\n",
520 inst->instAddr(), inst->seqNum);

--- 58 unchanged lines hidden ---