summaryrefslogtreecommitdiff
path: root/src/cpu/exetrace.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/exetrace.cc')
-rw-r--r--src/cpu/exetrace.cc19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/cpu/exetrace.cc b/src/cpu/exetrace.cc
index bfd701271..85b08ee32 100644
--- a/src/cpu/exetrace.cc
+++ b/src/cpu/exetrace.cc
@@ -358,13 +358,14 @@ Trace::InstRecord::dump(ostream &outs)
(SparcISA::MachInst)staticInst->machInst) {
diffInst = true;
}
- for (int i = 0; i < TheISA::NumIntArchRegs; i++) {
+ // assume we have %g0 working correctly
+ for (int i = 1; i < TheISA::NumIntArchRegs; i++) {
if (thread->readIntReg(i) != shared_data->intregs[i]) {
diffIntRegs = true;
}
}
for (int i = 0; i < TheISA::NumFloatRegs/2; i++) {
- if (thread->readFloatRegBits(i,FloatRegFile::DoubleWidth) != shared_data->fpregs[i]) {
+ if (thread->readFloatRegBits(i*2,FloatRegFile::DoubleWidth) != shared_data->fpregs[i]) {
diffFpRegs = true;
}
}
@@ -428,15 +429,15 @@ Trace::InstRecord::dump(ostream &outs)
//if(shared_data->canrestore !=
// thread->readMiscReg(MISCREG_CANRESTORE))
if(shared_data->canrestore !=
- thread->readMiscReg(NumIntArchRegs + 4))
+ thread->readIntReg(NumIntArchRegs + 4))
diffCanrestore = true;
//if(shared_data->otherwin != thread->readMiscReg(MISCREG_OTHERWIN))
if(shared_data->otherwin !=
- thread->readIntReg(NumIntArchRegs + 5))
+ thread->readIntReg(NumIntArchRegs + 6))
diffOtherwin = true;
//if(shared_data->cleanwin != thread->readMiscReg(MISCREG_CLEANWIN))
if(shared_data->cleanwin !=
- thread->readMiscReg(NumIntArchRegs + 6))
+ thread->readIntReg(NumIntArchRegs + 5))
diffCleanwin = true;
for (int i = 0; i < 64; i++) {
@@ -553,11 +554,11 @@ Trace::InstRecord::dump(ostream &outs)
shared_data->pstate);
printRegPair(outs, "Y",
//thread->readMiscReg(MISCREG_Y),
- thread->readMiscReg(NumIntArchRegs + 1),
+ thread->readIntReg(NumIntArchRegs + 1),
shared_data->y);
printRegPair(outs, "Ccr",
//thread->readMiscReg(MISCREG_CCR),
- thread->readMiscReg(NumIntArchRegs + 2),
+ thread->readIntReg(NumIntArchRegs + 2),
shared_data->ccr);
printRegPair(outs, "Tl",
thread->readMiscReg(MISCREG_TL),
@@ -584,11 +585,11 @@ Trace::InstRecord::dump(ostream &outs)
shared_data->canrestore);
printRegPair(outs, "Otherwin",
//thread->readMiscReg(MISCREG_OTHERWIN),
- thread->readIntReg(NumIntArchRegs + 5),
+ thread->readIntReg(NumIntArchRegs + 6),
shared_data->otherwin);
printRegPair(outs, "Cleanwin",
//thread->readMiscReg(MISCREG_CLEANWIN),
- thread->readIntReg(NumIntArchRegs + 6),
+ thread->readIntReg(NumIntArchRegs + 5),
shared_data->cleanwin);
outs << endl;
for (int i = 1; i <= MaxTL; i++) {