Lines Matching refs:bi

129     ThreadID tid, Addr pc, TAGEBase::BranchInfo* bi)
140 bi->tableTags[i] = tableTags[i];
141 bi->tableTags[i+1] = tableTags[i+1];
151 bi->tableIndices[i] = tableIndices[i];
163 bi->tableIndices[i] = tableIndices[i];
171 TAGE_SC_L_TAGE::getUseAltIdx(TAGEBase::BranchInfo* bi, Addr branch_pc)
173 BranchInfo *tbi = static_cast<BranchInfo *>(bi);
175 idx = ((((bi->hitBank-1)/8)<<1)+tbi->altConf) % (numUseAltOnNa-1);
289 TAGE_SC_L_TAGE::squash(ThreadID tid, bool taken, TAGEBase::BranchInfo *bi,
305 TAGE_SC_L_TAGE::calcDep(TAGEBase::BranchInfo* bi)
311 return ((((bi->hitBank - 1 + 2 * a) & 0xffe)) ^
342 TAGE_SC_L_TAGE::BranchInfo *bi =
345 int bim = (btablePrediction[bi->bimodalIndex] << 1)
346 + btableHysteresis[bi->bimodalIndex >> logRatioBiModalHystEntries];
348 bi->highConf = (bim == 0) || (bim == 3);
349 bi->lowConf = ! bi->highConf;
350 bi->altConf = bi->highConf;
351 bi->medConf = false;
356 TAGE_SC_L_TAGE::extraAltCalc(TAGEBase::BranchInfo* bi)
359 static_cast<TAGE_SC_L_TAGE::BranchInfo *>(bi);
360 int8_t ctr = gtable[bi->altBank][bi->altBankIndex].ctr;
367 TageSCLBranchInfo *bi = new TageSCLBranchInfo(*tage,
370 b = (void*)(bi);
373 bi->tageBranchInfo);
375 bi->lpBranchInfo, pred_taken,
378 if (bi->lpBranchInfo->loopPredUsed) {
379 bi->tageBranchInfo->provider = LOOP;
383 static_cast<TAGE_SC_L_TAGE::BranchInfo *>(bi->tageBranchInfo);
386 bi->scBranchInfo->lowConf = tage_scl_bi->lowConf;
387 bi->scBranchInfo->highConf = tage_scl_bi->highConf;
388 bi->scBranchInfo->altConf = tage_scl_bi->altConf;
389 bi->scBranchInfo->medConf = tage_scl_bi->medConf;
391 bool use_tage_ctr = bi->tageBranchInfo->hitBank > 0;
394 bool bias = (bi->tageBranchInfo->longestMatchPred !=
395 bi->tageBranchInfo->altTaken);
398 bi->scBranchInfo, pred_taken, bias, use_tage_ctr, tage_ctr,
399 tage->getTageCtrBits(), bi->tageBranchInfo->hitBank,
400 bi->tageBranchInfo->altBank, tage->getPathHist(tid));
402 if (bi->scBranchInfo->usedScPred) {
403 bi->tageBranchInfo->provider = SC;
407 bi->lpBranchInfo->predTaken = pred_taken;
418 TageSCLBranchInfo* bi = static_cast<TageSCLBranchInfo*>(bp_history);
420 static_cast<TAGE_SC_L_TAGE::BranchInfo *>(bi->tageBranchInfo);
429 if (bi->tageBranchInfo->condBranch) {
430 loopPredictor->squashLoop(bi->lpBranchInfo);
440 tage->updateStats(taken, bi->tageBranchInfo);
442 loopPredictor->updateStats(taken, bi->lpBranchInfo);
444 statisticalCorrector->updateStats(taken, bi->scBranchInfo);
446 bool bias = (bi->tageBranchInfo->longestMatchPred !=
447 bi->tageBranchInfo->altTaken);
449 bi->scBranchInfo, corrTarget, bias, bi->tageBranchInfo->hitBank,
450 bi->tageBranchInfo->altBank, tage->getPathHist(tid));
453 bi->tageBranchInfo->tagePred, bi->lpBranchInfo, instShiftAmt);
455 tage->condBranchUpdate(tid, branch_pc, taken, bi->tageBranchInfo,
456 nrand, corrTarget, bi->lpBranchInfo->predTaken);
461 bi->scBranchInfo, corrTarget);
463 tage->updateHistories(tid, branch_pc, taken, bi->tageBranchInfo, false,
467 delete bi;