314a315
> bool diffTlb = false;
397a399,405
> for (int i = 0; i < 64; i++) {
> if (shared_data->itb[i] != thread->getITBPtr()->TteRead(i))
> diffTlb = true;
> if (shared_data->dtb[i] != thread->getDTBPtr()->TteRead(i))
> diffTlb = true;
> }
>
403c411
< diffOtherwin || diffCleanwin)
---
> diffOtherwin || diffCleanwin || diffTlb)
405,407c413,415
< && !((staticInst->machInst & 0xC1F80000) == 0xC0580000)
< && !((staticInst->machInst & 0xC1F80000) == 0xC0000000)
< && !((staticInst->machInst & 0xC1F80000) == 0xC0700000)) {
---
> && !(((staticInst->machInst & 0xC0000000) == 0xC0000000)
> && shared_data->tl == thread->readMiscReg(MISCREG_TL) + 1)
> ) {
455a464,465
> if (diffTlb)
> outs << " [Tlb]";
579a590,605
> printColumnLabels(outs);
> char label[8];
> for (int x = 0; x < 64; x++) {
> if (shared_data->itb[x] != ULL(0xFFFFFFFFFFFFFFFF) ||
> thread->getITBPtr()->TteRead(x) != ULL(0xFFFFFFFFFFFFFFFF)) {
> sprintf(label, "I-TLB:%02d", x);
> printRegPair(outs, label, thread->getITBPtr()->TteRead(x), shared_data->itb[x]);
> }
> }
> for (int x = 0; x < 64; x++) {
> if (shared_data->dtb[x] != ULL(0xFFFFFFFFFFFFFFFF) ||
> thread->getDTBPtr()->TteRead(x) != ULL(0xFFFFFFFFFFFFFFFF)) {
> sprintf(label, "D-TLB:%02d", x);
> printRegPair(outs, label, thread->getDTBPtr()->TteRead(x), shared_data->dtb[x]);
> }
> }