@@ -354,7 +354,9 @@ Rename::tick()
354354 } else if (!can_rename) {
355355 block_reason = checkRenameStallFromIEW (i);
356356 if (block_reason == StallReason::NoStall) {
357- block_reason = StallReason::OtherStall;
357+ block_reason = StallReason::RegFull;
358+ ++stats.fullRegistersEvents ;
359+ stats.stallEvents [RegFull]++;
358360 }
359361 }
360362 DPRINTF (Rename, " [tid:%i] blockRename: %i, canRename: %i, block: %i, active: %i\n " ,
@@ -562,7 +564,9 @@ Rename::renameInsts(ThreadID tid)
562564 if (breakRename == StallReason::NoStall) {
563565 breakRename = checkRenameStallFromIEW (tid);
564566 if (breakRename == StallReason::NoStall) {
565- breakRename = StallReason::OtherStall;
567+ breakRename = StallReason::RegFull;
568+ ++stats.fullRegistersEvents ;
569+ stats.stallEvents [RegFull]++;
566570 }
567571 }
568572 blockReason = breakRename;
@@ -993,19 +997,21 @@ StallReason
993997Rename::checkRenameStallFromIEW (ThreadID tid)
994998{
995999 StallReason robHeadStallReason = fromIEW->iewInfo [tid].robHeadStallReason ;
996- return robHeadStallReason;
997-
998- // if (robHeadStallReason == StallReason::NoStall) {
999- // if (calcFreeLQEntries(tid) <= 0) {
1000- // return fromIEW->iewInfo[tid].lqHeadStallReason;
1001- // } else if (calcFreeSQEntries(tid) <= 0) {
1002- // return fromIEW->iewInfo[tid].sqHeadStallReason;
1003- // } else {
1004- // return robHeadStallReason;
1005- // }
1006- // } else {
1007- // return robHeadStallReason;
1008- // }
1000+ if (robHeadStallReason != StallReason::NoStall) {
1001+ return robHeadStallReason;
1002+ }
1003+
1004+ StallReason lqHeadStallReason = fromIEW->iewInfo [tid].lqHeadStallReason ;
1005+ if (lqHeadStallReason != StallReason::NoStall) {
1006+ return lqHeadStallReason;
1007+ }
1008+
1009+ StallReason sqHeadStallReason = fromIEW->iewInfo [tid].sqHeadStallReason ;
1010+ if (sqHeadStallReason != StallReason::NoStall) {
1011+ return sqHeadStallReason;
1012+ }
1013+
1014+ return StallReason::NoStall;
10091015}
10101016
10111017} // namespace o3
0 commit comments