void work(Set* _set, char op, long newTag) { if (op == 'I') return; long i; for (i = 0; i < lineNum; i++) { if (_set->line[i].valid > 0 && _set->line[i].tag == newTag) { addHit(); if (op == 'M') { addHit(); } setValid(_set->line, i); printf("\n"); return; } } addMiss(); if (!updateLast(_set)) { addEvic(); } setValid(_set->line, _set->lastLine); _set->line[_set->lastLine].tag = newTag; if (op == 'M'){ addHit(); } printf("\n"); }
void Stats::addInfo(const HitInfo& info) { switch (info.type) { case HitInfo::HIT: addHit(); break; case HitInfo::MISS: addMiss(); break; default: break; } }