exetrace.cc (3949:b6664282d899) | exetrace.cc (3970:d54945bab95d) |
---|---|
1/* 2 * Copyright (c) 2001-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 300 unchanged lines hidden (view full) --- 309 bool diffGl = false; 310 bool diffAsi = false; 311 bool diffPil = false; 312 bool diffCwp = false; 313 bool diffCansave = false; 314 bool diffCanrestore = false; 315 bool diffOtherwin = false; 316 bool diffCleanwin = false; | 1/* 2 * Copyright (c) 2001-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 300 unchanged lines hidden (view full) --- 309 bool diffGl = false; 310 bool diffAsi = false; 311 bool diffPil = false; 312 bool diffCwp = false; 313 bool diffCansave = false; 314 bool diffCanrestore = false; 315 bool diffOtherwin = false; 316 bool diffCleanwin = false; |
317 bool diffTlb = false; |
|
317 Addr m5Pc, lgnPc; 318 319 320 if(!staticInst->isMicroOp() || staticInst->isLastMicroOp()) { 321 while (!compared) { 322 if (shared_data->flags == OWN_M5) { 323 m5Pc = PC & TheISA::PAddrImplMask; 324 lgnPc = shared_data->pc & TheISA::PAddrImplMask; --- 79 unchanged lines hidden (view full) --- 404 if(shared_data->otherwin != 405 thread->readIntReg(NumIntArchRegs + 5)) 406 diffOtherwin = true; 407 //if(shared_data->cleanwin != thread->readMiscReg(MISCREG_CLEANWIN)) 408 if(shared_data->cleanwin != 409 thread->readMiscReg(NumIntArchRegs + 6)) 410 diffCleanwin = true; 411 | 318 Addr m5Pc, lgnPc; 319 320 321 if(!staticInst->isMicroOp() || staticInst->isLastMicroOp()) { 322 while (!compared) { 323 if (shared_data->flags == OWN_M5) { 324 m5Pc = PC & TheISA::PAddrImplMask; 325 lgnPc = shared_data->pc & TheISA::PAddrImplMask; --- 79 unchanged lines hidden (view full) --- 405 if(shared_data->otherwin != 406 thread->readIntReg(NumIntArchRegs + 5)) 407 diffOtherwin = true; 408 //if(shared_data->cleanwin != thread->readMiscReg(MISCREG_CLEANWIN)) 409 if(shared_data->cleanwin != 410 thread->readMiscReg(NumIntArchRegs + 6)) 411 diffCleanwin = true; 412 |
413 for (int i = 0; i < 64; i++) { 414 if (shared_data->itb[i] != thread->getITBPtr()->TteRead(i)) 415 diffTlb = true; 416 if (shared_data->dtb[i] != thread->getDTBPtr()->TteRead(i)) 417 diffTlb = true; 418 } 419 |
|
412 if ((diffPC || diffCC || diffInst || diffRegs || diffTpc || 413 diffTnpc || diffTstate || diffTt || diffHpstate || 414 diffHtstate || diffHtba || diffPstate || diffY || 415 diffCcr || diffTl || diffGl || diffAsi || diffPil || 416 diffCwp || diffCansave || diffCanrestore || | 420 if ((diffPC || diffCC || diffInst || diffRegs || diffTpc || 421 diffTnpc || diffTstate || diffTt || diffHpstate || 422 diffHtstate || diffHtba || diffPstate || diffY || 423 diffCcr || diffTl || diffGl || diffAsi || diffPil || 424 diffCwp || diffCansave || diffCanrestore || |
417 diffOtherwin || diffCleanwin) 418 && !((staticInst->machInst & 0xC1F80000) == 0x81D00000)) { | 425 diffOtherwin || diffCleanwin || diffTlb) 426 && !((staticInst->machInst & 0xC1F80000) == 0x81D00000) 427 && !(((staticInst->machInst & 0xC0000000) == 0xC0000000) 428 && shared_data->tl == thread->readMiscReg(MISCREG_TL) + 1) 429 ) { 430 |
419 outs << "Differences found between M5 and Legion:"; 420 if (diffPC) 421 outs << " [PC]"; 422 if (diffCC) 423 outs << " [CC]"; 424 if (diffInst) 425 outs << " [Instruction]"; 426 if (diffRegs) --- 31 unchanged lines hidden (view full) --- 458 if (diffCansave) 459 outs << " [Cansave]"; 460 if (diffCanrestore) 461 outs << " [Canrestore]"; 462 if (diffOtherwin) 463 outs << " [Otherwin]"; 464 if (diffCleanwin) 465 outs << " [Cleanwin]"; | 431 outs << "Differences found between M5 and Legion:"; 432 if (diffPC) 433 outs << " [PC]"; 434 if (diffCC) 435 outs << " [CC]"; 436 if (diffInst) 437 outs << " [Instruction]"; 438 if (diffRegs) --- 31 unchanged lines hidden (view full) --- 470 if (diffCansave) 471 outs << " [Cansave]"; 472 if (diffCanrestore) 473 outs << " [Canrestore]"; 474 if (diffOtherwin) 475 outs << " [Otherwin]"; 476 if (diffCleanwin) 477 outs << " [Cleanwin]"; |
478 if (diffTlb) 479 outs << " [Tlb]"; |
|
466 outs << endl << endl; 467 468 outs << right << setfill(' ') << setw(15) 469 << "M5 PC: " << "0x"<< setw(16) << setfill('0') 470 << hex << m5Pc << endl; 471 outs << setfill(' ') << setw(15) 472 << "Legion PC: " << "0x"<< setw(16) << setfill('0') << hex 473 << lgnPc << endl << endl; --- 114 unchanged lines hidden (view full) --- 588 outs << " X "; 589 else 590 outs << " | "; 591 outs << "0x" << setw(16) << hex 592 << shared_data->intregs[y*8+x] 593 << endl;*/ 594 } 595 } | 480 outs << endl << endl; 481 482 outs << right << setfill(' ') << setw(15) 483 << "M5 PC: " << "0x"<< setw(16) << setfill('0') 484 << hex << m5Pc << endl; 485 outs << setfill(' ') << setw(15) 486 << "Legion PC: " << "0x"<< setw(16) << setfill('0') << hex 487 << lgnPc << endl << endl; --- 114 unchanged lines hidden (view full) --- 602 outs << " X "; 603 else 604 outs << " | "; 605 outs << "0x" << setw(16) << hex 606 << shared_data->intregs[y*8+x] 607 << endl;*/ 608 } 609 } |
610 printColumnLabels(outs); 611 char label[8]; 612 for (int x = 0; x < 64; x++) { 613 if (shared_data->itb[x] != ULL(0xFFFFFFFFFFFFFFFF) || 614 thread->getITBPtr()->TteRead(x) != ULL(0xFFFFFFFFFFFFFFFF)) { 615 sprintf(label, "I-TLB:%02d", x); 616 printRegPair(outs, label, thread->getITBPtr()->TteRead(x), shared_data->itb[x]); 617 } 618 } 619 for (int x = 0; x < 64; x++) { 620 if (shared_data->dtb[x] != ULL(0xFFFFFFFFFFFFFFFF) || 621 thread->getDTBPtr()->TteRead(x) != ULL(0xFFFFFFFFFFFFFFFF)) { 622 sprintf(label, "D-TLB:%02d", x); 623 printRegPair(outs, label, thread->getDTBPtr()->TteRead(x), shared_data->dtb[x]); 624 } 625 } |
|
596 thread->getITBPtr()->dumpAll(); 597 thread->getDTBPtr()->dumpAll(); 598 599 diffcount++; 600 if (diffcount > 2) 601 fatal("Differences found between Legion and M5\n"); 602 } 603 --- 116 unchanged lines hidden --- | 626 thread->getITBPtr()->dumpAll(); 627 thread->getDTBPtr()->dumpAll(); 628 629 diffcount++; 630 if (diffcount > 2) 631 fatal("Differences found between Legion and M5\n"); 632 } 633 --- 116 unchanged lines hidden --- |