exetrace.cc (3863:adf3ddd4bcde) exetrace.cc (3880:06fc2b8ca95f)
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;

--- 298 unchanged lines hidden (view full) ---

307 bool diffGl = false;
308 bool diffAsi = false;
309 bool diffPil = false;
310 bool diffCwp = false;
311 bool diffCansave = false;
312 bool diffCanrestore = false;
313 bool diffOtherwin = false;
314 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;

--- 298 unchanged lines hidden (view full) ---

307 bool diffGl = false;
308 bool diffAsi = false;
309 bool diffPil = false;
310 bool diffCwp = false;
311 bool diffCansave = false;
312 bool diffCanrestore = false;
313 bool diffOtherwin = false;
314 bool diffCleanwin = false;
315 bool diffTlb = false;
315 Addr m5Pc, lgnPc;
316
317
318 if(!staticInst->isMicroOp() || staticInst->isLastMicroOp()) {
319 while (!compared) {
320 if (shared_data->flags == OWN_M5) {
321 m5Pc = PC & TheISA::PAddrImplMask;
322 lgnPc = shared_data->pc & TheISA::PAddrImplMask;

--- 67 unchanged lines hidden (view full) ---

390 if(shared_data->canrestore !=
391 thread->readMiscReg(MISCREG_CANRESTORE))
392 diffCanrestore = true;
393 if(shared_data->otherwin != thread->readMiscReg(MISCREG_OTHERWIN))
394 diffOtherwin = true;
395 if(shared_data->cleanwin != thread->readMiscReg(MISCREG_CLEANWIN))
396 diffCleanwin = true;
397
316 Addr m5Pc, lgnPc;
317
318
319 if(!staticInst->isMicroOp() || staticInst->isLastMicroOp()) {
320 while (!compared) {
321 if (shared_data->flags == OWN_M5) {
322 m5Pc = PC & TheISA::PAddrImplMask;
323 lgnPc = shared_data->pc & TheISA::PAddrImplMask;

--- 67 unchanged lines hidden (view full) ---

391 if(shared_data->canrestore !=
392 thread->readMiscReg(MISCREG_CANRESTORE))
393 diffCanrestore = true;
394 if(shared_data->otherwin != thread->readMiscReg(MISCREG_OTHERWIN))
395 diffOtherwin = true;
396 if(shared_data->cleanwin != thread->readMiscReg(MISCREG_CLEANWIN))
397 diffCleanwin = true;
398
399 for (int i = 0; i < 64; i++) {
400 if (shared_data->itb[i] != thread->getITBPtr()->TteRead(i))
401 diffTlb = true;
402 if (shared_data->dtb[i] != thread->getDTBPtr()->TteRead(i))
403 diffTlb = true;
404 }
405
398 if ((diffPC || diffCC || diffInst || diffRegs || diffTpc ||
399 diffTnpc || diffTstate || diffTt || diffHpstate ||
400 diffHtstate || diffHtba || diffPstate || diffY ||
401 diffCcr || diffTl || diffGl || diffAsi || diffPil ||
402 diffCwp || diffCansave || diffCanrestore ||
406 if ((diffPC || diffCC || diffInst || diffRegs || diffTpc ||
407 diffTnpc || diffTstate || diffTt || diffHpstate ||
408 diffHtstate || diffHtba || diffPstate || diffY ||
409 diffCcr || diffTl || diffGl || diffAsi || diffPil ||
410 diffCwp || diffCansave || diffCanrestore ||
403 diffOtherwin || diffCleanwin)
411 diffOtherwin || diffCleanwin || diffTlb)
404 && !((staticInst->machInst & 0xC1F80000) == 0x81D00000)
412 && !((staticInst->machInst & 0xC1F80000) == 0x81D00000)
405 && !((staticInst->machInst & 0xC1F80000) == 0xC0580000)
406 && !((staticInst->machInst & 0xC1F80000) == 0xC0000000)
407 && !((staticInst->machInst & 0xC1F80000) == 0xC0700000)) {
413 && !(((staticInst->machInst & 0xC0000000) == 0xC0000000)
414 && shared_data->tl == thread->readMiscReg(MISCREG_TL) + 1)
415 ) {
408
409 outs << "Differences found between M5 and Legion:";
410 if (diffPC)
411 outs << " [PC]";
412 if (diffCC)
413 outs << " [CC]";
414 if (diffInst)
415 outs << " [Instruction]";

--- 32 unchanged lines hidden (view full) ---

448 if (diffCansave)
449 outs << " [Cansave]";
450 if (diffCanrestore)
451 outs << " [Canrestore]";
452 if (diffOtherwin)
453 outs << " [Otherwin]";
454 if (diffCleanwin)
455 outs << " [Cleanwin]";
416
417 outs << "Differences found between M5 and Legion:";
418 if (diffPC)
419 outs << " [PC]";
420 if (diffCC)
421 outs << " [CC]";
422 if (diffInst)
423 outs << " [Instruction]";

--- 32 unchanged lines hidden (view full) ---

456 if (diffCansave)
457 outs << " [Cansave]";
458 if (diffCanrestore)
459 outs << " [Canrestore]";
460 if (diffOtherwin)
461 outs << " [Otherwin]";
462 if (diffCleanwin)
463 outs << " [Cleanwin]";
464 if (diffTlb)
465 outs << " [Tlb]";
456 outs << endl << endl;
457
458 outs << right << setfill(' ') << setw(15)
459 << "M5 PC: " << "0x"<< setw(16) << setfill('0')
460 << hex << m5Pc << endl;
461 outs << setfill(' ') << setw(15)
462 << "Legion PC: " << "0x"<< setw(16) << setfill('0') << hex
463 << lgnPc << endl << endl;

--- 108 unchanged lines hidden (view full) ---

572 outs << " X ";
573 else
574 outs << " | ";
575 outs << "0x" << setw(16) << hex
576 << shared_data->intregs[y*8+x]
577 << endl;*/
578 }
579 }
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;

--- 108 unchanged lines hidden (view full) ---

582 outs << " X ";
583 else
584 outs << " | ";
585 outs << "0x" << setw(16) << hex
586 << shared_data->intregs[y*8+x]
587 << endl;*/
588 }
589 }
590 printColumnLabels(outs);
591 char label[8];
592 for (int x = 0; x < 64; x++) {
593 if (shared_data->itb[x] != ULL(0xFFFFFFFFFFFFFFFF) ||
594 thread->getITBPtr()->TteRead(x) != ULL(0xFFFFFFFFFFFFFFFF)) {
595 sprintf(label, "I-TLB:%02d", x);
596 printRegPair(outs, label, thread->getITBPtr()->TteRead(x), shared_data->itb[x]);
597 }
598 }
599 for (int x = 0; x < 64; x++) {
600 if (shared_data->dtb[x] != ULL(0xFFFFFFFFFFFFFFFF) ||
601 thread->getDTBPtr()->TteRead(x) != ULL(0xFFFFFFFFFFFFFFFF)) {
602 sprintf(label, "D-TLB:%02d", x);
603 printRegPair(outs, label, thread->getDTBPtr()->TteRead(x), shared_data->dtb[x]);
604 }
605 }
580 thread->getITBPtr()->dumpAll();
581 thread->getDTBPtr()->dumpAll();
582
583 diffcount++;
584 if (diffcount > 2)
585 fatal("Differences found between Legion and M5\n");
586 }
587

--- 116 unchanged lines hidden ---
606 thread->getITBPtr()->dumpAll();
607 thread->getDTBPtr()->dumpAll();
608
609 diffcount++;
610 if (diffcount > 2)
611 fatal("Differences found between Legion and M5\n");
612 }
613

--- 116 unchanged lines hidden ---