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 ---