cp_annotate.cc (11793:ef606668d247) | cp_annotate.cc (14018:9d2153431f44) |
---|---|
1/* 2 * Copyright (c) 2006-2009 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; --- 156 unchanged lines hidden (view full) --- 165 Arguments args(tc); 166 std::string st; 167 Addr junk; 168 char sm[50]; 169 if (!TheISA::inUserMode(tc)) 170 debugSymbolTable->findNearestSymbol( 171 tc->readIntReg(ReturnAddressReg), st, junk); 172 | 1/* 2 * Copyright (c) 2006-2009 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; --- 156 unchanged lines hidden (view full) --- 165 Arguments args(tc); 166 std::string st; 167 Addr junk; 168 char sm[50]; 169 if (!TheISA::inUserMode(tc)) 170 debugSymbolTable->findNearestSymbol( 171 tc->readIntReg(ReturnAddressReg), st, junk); 172 |
173 CopyStringOut(tc, sm, args[0], 50); | 173 tc->getVirtProxy().readString(sm, args[0], 50); |
174 System *sys = tc->getSystemPtr(); 175 StringWrap name(sys->name()); 176 177 if (!sm[0]) 178 warn("Got null SM at tick %d\n", curTick()); 179 180 int sysi = getSys(sys); 181 int smi = getSm(sysi, sm, args[1]); --- 69 unchanged lines hidden (view full) --- 251void 252CPA::swSmEnd(ThreadContext *tc) 253{ 254 if (!enabled()) 255 return; 256 257 Arguments args(tc); 258 char sm[50]; | 174 System *sys = tc->getSystemPtr(); 175 StringWrap name(sys->name()); 176 177 if (!sm[0]) 178 warn("Got null SM at tick %d\n", curTick()); 179 180 int sysi = getSys(sys); 181 int smi = getSm(sysi, sm, args[1]); --- 69 unchanged lines hidden (view full) --- 251void 252CPA::swSmEnd(ThreadContext *tc) 253{ 254 if (!enabled()) 255 return; 256 257 Arguments args(tc); 258 char sm[50]; |
259 CopyStringOut(tc, sm, args[0], 50); | 259 tc->getVirtProxy().readString(sm, args[0], 50); |
260 System *sys = tc->getSystemPtr(); 261 doSwSmEnd(sys, tc->contextId(), sm, getFrame(tc)); 262} 263 264void 265CPA::doSwSmEnd(System *sys, int cpuid, string sm, uint64_t frame) 266{ 267 int sysi = getSys(sys); --- 51 unchanged lines hidden (view full) --- 319void 320CPA::swExplictBegin(ThreadContext *tc) 321{ 322 if (!enabled()) 323 return; 324 325 Arguments args(tc); 326 char st[50]; | 260 System *sys = tc->getSystemPtr(); 261 doSwSmEnd(sys, tc->contextId(), sm, getFrame(tc)); 262} 263 264void 265CPA::doSwSmEnd(System *sys, int cpuid, string sm, uint64_t frame) 266{ 267 int sysi = getSys(sys); --- 51 unchanged lines hidden (view full) --- 319void 320CPA::swExplictBegin(ThreadContext *tc) 321{ 322 if (!enabled()) 323 return; 324 325 Arguments args(tc); 326 char st[50]; |
327 CopyStringOut(tc, st, args[1], 50); | 327 tc->getVirtProxy().readString(st, args[1], 50); |
328 329 StringWrap name(tc->getSystemPtr()->name()); 330 DPRINTF(Annotate, "Explict begin of state %s\n", st); 331 uint32_t flags = args[0]; 332 if (flags & FL_BAD) 333 warn("BAD state encountered: at cycle %d: %s\n", curTick(), st); 334 swBegin(tc->getSystemPtr(), tc->contextId(), st, getFrame(tc), true, args[0]); 335} --- 87 unchanged lines hidden (view full) --- 423CPA::swQ(ThreadContext *tc) 424{ 425 if (!enabled()) 426 return; 427 428 char q[50]; 429 Arguments args(tc); 430 uint64_t id = args[0]; | 328 329 StringWrap name(tc->getSystemPtr()->name()); 330 DPRINTF(Annotate, "Explict begin of state %s\n", st); 331 uint32_t flags = args[0]; 332 if (flags & FL_BAD) 333 warn("BAD state encountered: at cycle %d: %s\n", curTick(), st); 334 swBegin(tc->getSystemPtr(), tc->contextId(), st, getFrame(tc), true, args[0]); 335} --- 87 unchanged lines hidden (view full) --- 423CPA::swQ(ThreadContext *tc) 424{ 425 if (!enabled()) 426 return; 427 428 char q[50]; 429 Arguments args(tc); 430 uint64_t id = args[0]; |
431 CopyStringOut(tc, q, args[1], 50); | 431 tc->getVirtProxy().readString(q, args[1], 50); |
432 int32_t count = args[2]; 433 System *sys = tc->getSystemPtr(); 434 435 int sysi = getSys(sys); 436 StackId sid = StackId(sysi, getFrame(tc)); 437 if (!smStack[sid].size()) 438 return; 439 int smi = smStack[sid].back(); --- 14 unchanged lines hidden (view full) --- 454CPA::swDq(ThreadContext *tc) 455{ 456 if (!enabled()) 457 return; 458 459 char q[50]; 460 Arguments args(tc); 461 uint64_t id = args[0]; | 432 int32_t count = args[2]; 433 System *sys = tc->getSystemPtr(); 434 435 int sysi = getSys(sys); 436 StackId sid = StackId(sysi, getFrame(tc)); 437 if (!smStack[sid].size()) 438 return; 439 int smi = smStack[sid].back(); --- 14 unchanged lines hidden (view full) --- 454CPA::swDq(ThreadContext *tc) 455{ 456 if (!enabled()) 457 return; 458 459 char q[50]; 460 Arguments args(tc); 461 uint64_t id = args[0]; |
462 CopyStringOut(tc, q, args[1], 50); | 462 tc->getVirtProxy().readString(q, args[1], 50); |
463 int32_t count = args[2]; 464 System *sys = tc->getSystemPtr(); 465 466 int sysi = getSys(sys); 467 StackId sid = StackId(sysi, getFrame(tc)); 468 if (!smStack[sid].size()) 469 return; 470 int smi = smStack[sid].back(); --- 12 unchanged lines hidden (view full) --- 483CPA::swPq(ThreadContext *tc) 484{ 485 if (!enabled()) 486 return; 487 488 char q[50]; 489 Arguments args(tc); 490 uint64_t id = args[0]; | 463 int32_t count = args[2]; 464 System *sys = tc->getSystemPtr(); 465 466 int sysi = getSys(sys); 467 StackId sid = StackId(sysi, getFrame(tc)); 468 if (!smStack[sid].size()) 469 return; 470 int smi = smStack[sid].back(); --- 12 unchanged lines hidden (view full) --- 483CPA::swPq(ThreadContext *tc) 484{ 485 if (!enabled()) 486 return; 487 488 char q[50]; 489 Arguments args(tc); 490 uint64_t id = args[0]; |
491 CopyStringOut(tc, q, args[1], 50); | 491 tc->getVirtProxy().readString(q, args[1], 50); |
492 System *sys = tc->getSystemPtr(); 493 int32_t count = args[2]; 494 495 int sysi = getSys(sys); 496 StackId sid = StackId(sysi, getFrame(tc)); 497 if (!smStack[sid].size()) 498 return; 499 int smi = smStack[sid].back(); --- 18 unchanged lines hidden (view full) --- 518CPA::swRq(ThreadContext *tc) 519{ 520 if (!enabled()) 521 return; 522 523 char q[50]; 524 Arguments args(tc); 525 uint64_t id = args[0]; | 492 System *sys = tc->getSystemPtr(); 493 int32_t count = args[2]; 494 495 int sysi = getSys(sys); 496 StackId sid = StackId(sysi, getFrame(tc)); 497 if (!smStack[sid].size()) 498 return; 499 int smi = smStack[sid].back(); --- 18 unchanged lines hidden (view full) --- 518CPA::swRq(ThreadContext *tc) 519{ 520 if (!enabled()) 521 return; 522 523 char q[50]; 524 Arguments args(tc); 525 uint64_t id = args[0]; |
526 CopyStringOut(tc, q, args[1], 50); | 526 tc->getVirtProxy().readString(q, args[1], 50); |
527 System *sys = tc->getSystemPtr(); 528 int32_t count = args[2]; 529 530 int sysi = getSys(sys); 531 StackId sid = StackId(sysi, getFrame(tc)); 532 if (!smStack[sid].size()) 533 return; 534 int smi = smStack[sid].back(); --- 14 unchanged lines hidden (view full) --- 549CPA::swWf(ThreadContext *tc) 550{ 551 if (!enabled()) 552 return; 553 554 char q[50]; 555 Arguments args(tc); 556 uint64_t id = args[0]; | 527 System *sys = tc->getSystemPtr(); 528 int32_t count = args[2]; 529 530 int sysi = getSys(sys); 531 StackId sid = StackId(sysi, getFrame(tc)); 532 if (!smStack[sid].size()) 533 return; 534 int smi = smStack[sid].back(); --- 14 unchanged lines hidden (view full) --- 549CPA::swWf(ThreadContext *tc) 550{ 551 if (!enabled()) 552 return; 553 554 char q[50]; 555 Arguments args(tc); 556 uint64_t id = args[0]; |
557 CopyStringOut(tc, q, args[1], 50); | 557 tc->getVirtProxy().readString(q, args[1], 50); |
558 System *sys = tc->getSystemPtr(); 559 int32_t count = args[3]; 560 561 int sysi = getSys(sys); 562 StackId sid = StackId(sysi, getFrame(tc)); 563 if (!smStack[sid].size()) 564 return; 565 int smi = smStack[sid].back(); 566 int qi = getQ(sysi, q, id); 567 add(OP_WAIT_FULL, FL_NONE, tc->contextId(), smi, qi, count); 568 569 if (!!args[2]) { 570 char sm[50]; | 558 System *sys = tc->getSystemPtr(); 559 int32_t count = args[3]; 560 561 int sysi = getSys(sys); 562 StackId sid = StackId(sysi, getFrame(tc)); 563 if (!smStack[sid].size()) 564 return; 565 int smi = smStack[sid].back(); 566 int qi = getQ(sysi, q, id); 567 add(OP_WAIT_FULL, FL_NONE, tc->contextId(), smi, qi, count); 568 569 if (!!args[2]) { 570 char sm[50]; |
571 CopyStringOut(tc, sm, args[2], 50); | 571 tc->getVirtProxy().readString(sm, args[2], 50); |
572 doSwSmEnd(tc->getSystemPtr(), tc->contextId(), sm, getFrame(tc)); 573 } 574} 575 576void 577CPA::swWe(ThreadContext *tc) 578{ 579 if (!enabled()) 580 return; 581 582 char q[50]; 583 Arguments args(tc); 584 uint64_t id = args[0]; | 572 doSwSmEnd(tc->getSystemPtr(), tc->contextId(), sm, getFrame(tc)); 573 } 574} 575 576void 577CPA::swWe(ThreadContext *tc) 578{ 579 if (!enabled()) 580 return; 581 582 char q[50]; 583 Arguments args(tc); 584 uint64_t id = args[0]; |
585 CopyStringOut(tc, q, args[1], 50); | 585 tc->getVirtProxy().readString(q, args[1], 50); |
586 System *sys = tc->getSystemPtr(); 587 int32_t count = args[3]; 588 589 int sysi = getSys(sys); 590 StackId sid = StackId(sysi, getFrame(tc)); 591 if (!smStack[sid].size()) 592 return; 593 int smi = smStack[sid].back(); 594 int qi = getQ(sysi, q, id); 595 add(OP_WAIT_EMPTY, FL_NONE, tc->contextId(), smi, qi, count); 596 597 if (!!args[2]) { 598 char sm[50]; | 586 System *sys = tc->getSystemPtr(); 587 int32_t count = args[3]; 588 589 int sysi = getSys(sys); 590 StackId sid = StackId(sysi, getFrame(tc)); 591 if (!smStack[sid].size()) 592 return; 593 int smi = smStack[sid].back(); 594 int qi = getQ(sysi, q, id); 595 add(OP_WAIT_EMPTY, FL_NONE, tc->contextId(), smi, qi, count); 596 597 if (!!args[2]) { 598 char sm[50]; |
599 CopyStringOut(tc, sm, args[2], 50); | 599 tc->getVirtProxy().readString(sm, args[2], 50); |
600 doSwSmEnd(tc->getSystemPtr(), tc->contextId(), sm, getFrame(tc)); 601 } 602} 603 604void 605CPA::swSq(ThreadContext *tc) 606{ 607 if (!enabled()) 608 return; 609 610 char q[50]; 611 Arguments args(tc); 612 uint64_t id = args[0]; | 600 doSwSmEnd(tc->getSystemPtr(), tc->contextId(), sm, getFrame(tc)); 601 } 602} 603 604void 605CPA::swSq(ThreadContext *tc) 606{ 607 if (!enabled()) 608 return; 609 610 char q[50]; 611 Arguments args(tc); 612 uint64_t id = args[0]; |
613 CopyStringOut(tc, q, args[1], 50); | 613 tc->getVirtProxy().readString(q, args[1], 50); |
614 System *sys = tc->getSystemPtr(); 615 StringWrap name(sys->name()); 616 int32_t size = args[2]; 617 int flags = args[3]; 618 619 int sysi = getSys(sys); 620 StackId sid = StackId(sysi, getFrame(tc)); 621 if (!smStack[sid].size()) --- 51 unchanged lines hidden (view full) --- 673CPA::swAq(ThreadContext *tc) 674{ 675 if (!enabled()) 676 return; 677 678 char q[50]; 679 Arguments args(tc); 680 uint64_t id = args[0]; | 614 System *sys = tc->getSystemPtr(); 615 StringWrap name(sys->name()); 616 int32_t size = args[2]; 617 int flags = args[3]; 618 619 int sysi = getSys(sys); 620 StackId sid = StackId(sysi, getFrame(tc)); 621 if (!smStack[sid].size()) --- 51 unchanged lines hidden (view full) --- 673CPA::swAq(ThreadContext *tc) 674{ 675 if (!enabled()) 676 return; 677 678 char q[50]; 679 Arguments args(tc); 680 uint64_t id = args[0]; |
681 CopyStringOut(tc, q, args[1], 50); | 681 tc->getVirtProxy().readString(q, args[1], 50); |
682 System *sys = tc->getSystemPtr(); 683 StringWrap name(sys->name()); 684 int32_t size = args[2]; 685 686 int sysi = getSys(sys); 687 int qi = getQ(sysi, q, id); 688 if (qBytes[qi-1] != size) { 689 DPRINTF(AnnotateQ, "Queue %s [%#x] has inconsintant size\n", q, id); --- 19 unchanged lines hidden (view full) --- 709void 710CPA::swLink(ThreadContext *tc) 711{ 712 if (!enabled()) 713 return; 714 715 char lsm[50]; 716 Arguments args(tc); | 682 System *sys = tc->getSystemPtr(); 683 StringWrap name(sys->name()); 684 int32_t size = args[2]; 685 686 int sysi = getSys(sys); 687 int qi = getQ(sysi, q, id); 688 if (qBytes[qi-1] != size) { 689 DPRINTF(AnnotateQ, "Queue %s [%#x] has inconsintant size\n", q, id); --- 19 unchanged lines hidden (view full) --- 709void 710CPA::swLink(ThreadContext *tc) 711{ 712 if (!enabled()) 713 return; 714 715 char lsm[50]; 716 Arguments args(tc); |
717 CopyStringOut(tc, lsm, args[0], 50); | 717 tc->getVirtProxy().readString(lsm, args[0], 50); |
718 System *sys = tc->getSystemPtr(); 719 StringWrap name(sys->name()); 720 721 int sysi = getSys(sys); 722 StackId sid = StackId(sysi, getFrame(tc)); 723 if (!smStack[sid].size()) 724 return; 725 int smi = smStack[sid].back(); --- 7 unchanged lines hidden (view full) --- 733 lsmi, lnMap[lsmi]); 734 assert(lnMap[lsmi] == 0); 735 lnMap[lsmi] = smi; 736 737 add(OP_LINK, FL_NONE, tc->contextId(), smi, lsmi); 738 739 if (!!args[2]) { 740 char sm[50]; | 718 System *sys = tc->getSystemPtr(); 719 StringWrap name(sys->name()); 720 721 int sysi = getSys(sys); 722 StackId sid = StackId(sysi, getFrame(tc)); 723 if (!smStack[sid].size()) 724 return; 725 int smi = smStack[sid].back(); --- 7 unchanged lines hidden (view full) --- 733 lsmi, lnMap[lsmi]); 734 assert(lnMap[lsmi] == 0); 735 lnMap[lsmi] = smi; 736 737 add(OP_LINK, FL_NONE, tc->contextId(), smi, lsmi); 738 739 if (!!args[2]) { 740 char sm[50]; |
741 CopyStringOut(tc, sm, args[2], 50); | 741 tc->getVirtProxy().readString(sm, args[2], 50); |
742 doSwSmEnd(tc->getSystemPtr(), tc->contextId(), sm, getFrame(tc)); 743 } 744} 745 746void 747CPA::swIdentify(ThreadContext *tc) 748{ 749 if (!enabled()) --- 34 unchanged lines hidden (view full) --- 784void 785CPA::swSyscallLink(ThreadContext *tc) 786{ 787 if (!enabled()) 788 return; 789 790 char lsm[50]; 791 Arguments args(tc); | 742 doSwSmEnd(tc->getSystemPtr(), tc->contextId(), sm, getFrame(tc)); 743 } 744} 745 746void 747CPA::swIdentify(ThreadContext *tc) 748{ 749 if (!enabled()) --- 34 unchanged lines hidden (view full) --- 784void 785CPA::swSyscallLink(ThreadContext *tc) 786{ 787 if (!enabled()) 788 return; 789 790 char lsm[50]; 791 Arguments args(tc); |
792 CopyStringOut(tc, lsm, args[0], 50); | 792 tc->getVirtProxy().readString(lsm, args[0], 50); |
793 System *sys = tc->getSystemPtr(); 794 StringWrap name(sys->name()); 795 int sysi = getSys(sys); 796 797 Id id = Id(lsm, getFrame(tc)); 798 StackId sid = StackId(sysi, getFrame(tc)); 799 800 if (!smStack[sid].size()) --- 9 unchanged lines hidden (view full) --- 810 "scLinks already contains entry for system %d %s[%x] of %d\n", 811 sysi, lsm, getFrame(tc), scLinks[sysi-1][id]); 812 assert(scLinks[sysi-1][id] == 0); 813 scLinks[sysi-1][id] = add(OP_LINK, FL_NONE, tc->contextId(), smi, 0xFFFF); 814 scLinks[sysi-1][id]->dump = false; 815 816 if (!!args[1]) { 817 char sm[50]; | 793 System *sys = tc->getSystemPtr(); 794 StringWrap name(sys->name()); 795 int sysi = getSys(sys); 796 797 Id id = Id(lsm, getFrame(tc)); 798 StackId sid = StackId(sysi, getFrame(tc)); 799 800 if (!smStack[sid].size()) --- 9 unchanged lines hidden (view full) --- 810 "scLinks already contains entry for system %d %s[%x] of %d\n", 811 sysi, lsm, getFrame(tc), scLinks[sysi-1][id]); 812 assert(scLinks[sysi-1][id] == 0); 813 scLinks[sysi-1][id] = add(OP_LINK, FL_NONE, tc->contextId(), smi, 0xFFFF); 814 scLinks[sysi-1][id]->dump = false; 815 816 if (!!args[1]) { 817 char sm[50]; |
818 CopyStringOut(tc, sm, args[1], 50); | 818 tc->getVirtProxy().readString(sm, args[1], 50); |
819 doSwSmEnd(tc->getSystemPtr(), tc->contextId(), sm, getFrame(tc)); 820 } 821} 822 823CPA::AnnDataPtr 824CPA::add(int t, int f, int c, int sm, int stq, int32_t d) 825{ 826 AnnDataPtr an = std::make_shared<AnnotateData>(); --- 585 unchanged lines hidden --- | 819 doSwSmEnd(tc->getSystemPtr(), tc->contextId(), sm, getFrame(tc)); 820 } 821} 822 823CPA::AnnDataPtr 824CPA::add(int t, int f, int c, int sm, int stq, int32_t d) 825{ 826 AnnDataPtr an = std::make_shared<AnnotateData>(); --- 585 unchanged lines hidden --- |