298c298,299
< bool diffRegs = false;
---
> bool diffIntRegs = false;
> bool diffFpRegs = false;
362c363
< diffRegs = true;
---
> diffIntRegs = true;
365c366,371
< uint64_t oldTl = thread->readMiscReg(MISCREG_TL);
---
> for (int i = 0; i < TheISA::NumFloatRegs/2; i++) {
> if (thread->readFloatRegBits(i,FloatRegFile::DoubleWidth) != shared_data->fpregs[i]) {
> diffFpRegs = true;
> }
> }
> uint64_t oldTl = thread->readMiscReg(MISCREG_TL);
443,448c449,454
< if ((diffPC || diffCC || diffInst || diffRegs || diffTpc ||
< diffTnpc || diffTstate || diffTt || diffHpstate ||
< diffHtstate || diffHtba || diffPstate || diffY ||
< diffCcr || diffTl || diffGl || diffAsi || diffPil ||
< diffCwp || diffCansave || diffCanrestore ||
< diffOtherwin || diffCleanwin || diffTlb)
---
> if ((diffPC || diffCC || diffInst || diffIntRegs ||
> diffFpRegs || diffTpc || diffTnpc || diffTstate ||
> diffTt || diffHpstate || diffHtstate || diffHtba ||
> diffPstate || diffY || diffCcr || diffTl || diffGl ||
> diffAsi || diffPil || diffCwp || diffCansave ||
> diffCanrestore || diffOtherwin || diffCleanwin || diffTlb)
461c467
< if (diffRegs)
---
> if (diffIntRegs)
462a469,470
> if (diffFpRegs)
> outs << " [FpRegs]";
611,614c619,620
< for(int y = 0; y < 4; y++)
< {
< for(int x = 0; x < 8; x++)
< {
---
> for(int y = 0; y < 4; y++) {
> for(int x = 0; x < 8; x++) {
620,630d625
< /*outs << regtypes[y] << x << " " ;
< outs << "0x" << hex << setw(16)
< << thread->readIntReg(y*8+x);
< if (thread->readIntReg(y*8 + x)
< != shared_data->intregs[y*8+x])
< outs << " X ";
< else
< outs << " | ";
< outs << "0x" << setw(16) << hex
< << shared_data->intregs[y*8+x]
< << endl;*/
632a628,636
> if (diffFpRegs) {
> for (int x = 0; x < 32; x++) {
> char label[8];
> sprintf(label, "%%f%d", x);
> printRegPair(outs, label,
> thread->readFloatRegBits(x,FloatRegFile::DoubleWidth),
> shared_data->fpregs[x]);
> }
> }