Exemplo n.º 1
0
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");
}
Exemplo n.º 2
0
void Stats::addInfo(const HitInfo& info)
{
    switch (info.type)
    {
    case HitInfo::HIT:
        addHit();
        break;
    case HitInfo::MISS:
        addMiss();
        break;
    default:
        break;
    }
}