diff --git a/src/cpu/o3/decode_impl.hh b/src/cpu/o3/decode_impl.hh index ca56ac1e4..15ec76f5a 100644 --- a/src/cpu/o3/decode_impl.hh +++ b/src/cpu/o3/decode_impl.hh @@ -719,7 +719,11 @@ DefaultDecode::decodeInsts(ThreadID tid) } // Go ahead and compute any PC-relative branches. - if (inst->isDirectCtrl() && inst->isUncondCtrl()) { + // This includes direct unconditional control and + // direct conditional control that is predicted taken. + if (inst->isDirectCtrl() && + (inst->isUncondCtrl() || inst->readPredTaken())) + { ++decodeBranchResolved; if (!(inst->branchTarget() == inst->readPredTarg())) {