diff options
Diffstat (limited to 'src/cpu/o3/lsq_unit_impl.hh')
-rw-r--r-- | src/cpu/o3/lsq_unit_impl.hh | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/cpu/o3/lsq_unit_impl.hh b/src/cpu/o3/lsq_unit_impl.hh index f22383506..9d71c2093 100644 --- a/src/cpu/o3/lsq_unit_impl.hh +++ b/src/cpu/o3/lsq_unit_impl.hh @@ -232,9 +232,10 @@ LSQUnit<Impl>::init(O3CPU *cpu_ptr, IEW *iew_ptr, DerivO3CPUParams *params, needsTSO = params->needsTSO; allowSpecBuffHit = params->allowSpecBuffHit; useIFT = params->useIFT; + trackBranch = params->trackBranch; cprintf("Info: simulation uses scheme: %s; " - "needsTSO=%d; allowSpecBuffHit=%d; useIFT=%d\n", - scheme, needsTSO, allowSpecBuffHit, useIFT); + "needsTSO=%d; allowSpecBuffHit=%d; useIFT=%d; trackBranch=%d\n", + scheme, needsTSO, allowSpecBuffHit, useIFT, trackBranch); // [mengjia] end of setting configuration variables resetState(); @@ -1033,7 +1034,7 @@ LSQUnit<Impl>::updateVisibleState() /* set taint for dst registers */ inst->taintDestRegs(true, "unsafe load"); bool doSpecLoad = false; - if (inst->afterTaintedBranch) { + if (trackBranch && inst->afterTaintedBranch) { doSpecLoad = true; DPRINTF(LSQUnit, "load inst [sn:%lli] %s is after a tainted branch.\n", inst->seqNum, inst->pcState()); } else if (inst->srcTainted()) { @@ -1083,7 +1084,7 @@ LSQUnit<Impl>::updateVisibleState() if (inst->needPostFetch()) { doSpecLoad = true; DPRINTF(LSQUnit, "load inst [sn:%lli] %s needs post fetch.\n", inst->seqNum, inst->pcState()); - } else if (inst->afterTaintedBranch) { + } else if (trackBranch && inst->afterTaintedBranch) { doSpecLoad = true; DPRINTF(LSQUnit, "load inst [sn:%lli] %s is after a tainted branch.\n", inst->seqNum, inst->pcState()); } else if (inst->srcTainted()) { |