- if(!staticInst->isMicroop() || staticInst->isLastMicroop())
- {
- checkIntReg("rax", INTREG_RAX, sizeof(uint64_t));
- checkIntReg("rbx", INTREG_RBX, sizeof(uint64_t));
- checkIntReg("rcx", INTREG_RCX, sizeof(uint64_t));
- checkIntReg("rdx", INTREG_RDX, sizeof(uint64_t));
- checkIntReg("rsp", INTREG_RSP, sizeof(uint64_t));
- checkIntReg("rbp", INTREG_RBP, sizeof(uint64_t));
- checkIntReg("rsi", INTREG_RSI, sizeof(uint64_t));
- checkIntReg("rdi", INTREG_RDI, sizeof(uint64_t));
- checkIntReg("r8", INTREG_R8, sizeof(uint64_t));
- checkIntReg("r9", INTREG_R9, sizeof(uint64_t));
- checkIntReg("r10", INTREG_R10, sizeof(uint64_t));
- checkIntReg("r11", INTREG_R11, sizeof(uint64_t));
- checkIntReg("r12", INTREG_R12, sizeof(uint64_t));
- checkIntReg("r13", INTREG_R13, sizeof(uint64_t));
- checkIntReg("r14", INTREG_R14, sizeof(uint64_t));
- checkIntReg("r15", INTREG_R15, sizeof(uint64_t));
- checkPC("rip", sizeof(uint64_t));
-#if THE_ISA == SPARC_ISA
- /*for(int f = 0; f <= 62; f+=2)
- {
- uint64_t regVal;
- int res = read(fd, ®Val, sizeof(regVal));
- if(res < 0)
- panic("First read call failed! %s\n", strerror(errno));
- regVal = TheISA::gtoh(regVal);
- uint64_t realRegVal = thread->readFloatRegBits(f, 64);
- if(regVal != realRegVal)
- {
- DPRINTF(ExecRegDelta, "Register f%d should be %#x but is %#x.\n", f, regVal, realRegVal);
- }
- }*/
- uint64_t regVal;
- int res = read(fd, ®Val, sizeof(regVal));
- if(res < 0)
- panic("First read call failed! %s\n", strerror(errno));
- regVal = TheISA::gtoh(regVal);
- uint64_t realRegVal = thread->readNextPC();
- if(regVal != realRegVal)
- {
- DPRINTF(ExecRegDelta,
- "Register pc should be %#x but is %#x.\n",
- regVal, realRegVal);
- }
- res = read(fd, ®Val, sizeof(regVal));
- if(res < 0)
- panic("First read call failed! %s\n", strerror(errno));
- regVal = TheISA::gtoh(regVal);
- realRegVal = thread->readNextNPC();
- if(regVal != realRegVal)
- {
- DPRINTF(ExecRegDelta,
- "Register npc should be %#x but is %#x.\n",
- regVal, realRegVal);
- }
- res = read(fd, ®Val, sizeof(regVal));
- if(res < 0)
- panic("First read call failed! %s\n", strerror(errno));
- regVal = TheISA::gtoh(regVal);
- realRegVal = thread->readIntReg(SparcISA::NumIntArchRegs + 2);
- if((regVal & 0xF) != (realRegVal & 0xF))
- {
- DPRINTF(ExecRegDelta,
- "Register ccr should be %#x but is %#x.\n",
- regVal, realRegVal);
- }
-#endif
- }