33a34
> #include <climits>
45d45
< maxCounterValue(p->max_counter_value),
54c54
< PatternEntry(stridesPerPatternEntry))
---
> PatternEntry(stridesPerPatternEntry, p->num_counter_bits))
67,68c67
< SignaturePathPrefetcher::PatternEntry::getStrideEntry(stride_t stride,
< uint8_t max_counter_value)
---
> SignaturePathPrefetcher::PatternEntry::getStrideEntry(stride_t stride)
79c78
< uint8_t current_counter = max_counter_value;
---
> unsigned long current_counter = ULONG_MAX;
85,87c84
< if (entry.counter > 0) {
< entry.counter -= 1;
< }
---
> entry.counter--;
90c87
< pstride_entry->counter = 0;
---
> pstride_entry->counter.reset();
150,152c147
< if (pstride_entry.counter < maxCounterValue) {
< pstride_entry.counter += 1;
< }
---
> pstride_entry.counter++;
161,162c156
< PatternStrideEntry &ps_entry = p_entry.getStrideEntry(stride,
< maxCounterValue);
---
> PatternStrideEntry &ps_entry = p_entry.getStrideEntry(stride);
212c206
< return ((double) entry.counter) / maxCounterValue;
---
> return entry.counter.calcSaturation();
219,220c213,214
< double lookahead_confidence;
< if (lookahead.counter == maxCounterValue) {
---
> double lookahead_confidence = lookahead.counter.calcSaturation();
> if (lookahead_confidence > 0.95) {
227,228d220
< } else {
< lookahead_confidence = ((double) lookahead.counter / maxCounterValue);
283c275
< uint8_t max_counter = 0;
---
> unsigned long max_counter = 0;