cpu_impl.hh (9377:6f294e7a93d1) | cpu_impl.hh (9382:1c97b57d5169) |
---|---|
1/* 2 * Copyright (c) 2011 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 559 unchanged lines hidden (view full) --- 568Checker<Impl>::validateState() 569{ 570 if (updateThisCycle) { 571 // Change this back to warn if divergences end up being false positives 572 panic("%lli: Instruction PC %#x results didn't match up, copying all " 573 "registers from main CPU", curTick(), unverifiedInst->instAddr()); 574 575 // Terribly convoluted way to make sure O3 model does not implode | 1/* 2 * Copyright (c) 2011 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 559 unchanged lines hidden (view full) --- 568Checker<Impl>::validateState() 569{ 570 if (updateThisCycle) { 571 // Change this back to warn if divergences end up being false positives 572 panic("%lli: Instruction PC %#x results didn't match up, copying all " 573 "registers from main CPU", curTick(), unverifiedInst->instAddr()); 574 575 // Terribly convoluted way to make sure O3 model does not implode |
576 bool inSyscall = unverifiedInst->thread->inSyscall; 577 unverifiedInst->thread->inSyscall = true; | 576 bool no_squash_from_TC = unverifiedInst->thread->noSquashFromTC; 577 unverifiedInst->thread->noSquashFromTC = true; |
578 579 // Heavy-weight copying of all registers 580 thread->copyArchRegs(unverifiedInst->tcBase()); | 578 579 // Heavy-weight copying of all registers 580 thread->copyArchRegs(unverifiedInst->tcBase()); |
581 unverifiedInst->thread->inSyscall = inSyscall; | 581 unverifiedInst->thread->noSquashFromTC = no_squash_from_TC; |
582 583 // Set curStaticInst to unverifiedInst->staticInst 584 curStaticInst = unverifiedInst->staticInst; 585 // Also advance the PC. Hopefully no PC-based events happened. 586 advancePC(NoFault); 587 updateThisCycle = false; 588 } 589} --- 80 unchanged lines hidden --- | 582 583 // Set curStaticInst to unverifiedInst->staticInst 584 curStaticInst = unverifiedInst->staticInst; 585 // Also advance the PC. Hopefully no PC-based events happened. 586 advancePC(NoFault); 587 updateThisCycle = false; 588 } 589} --- 80 unchanged lines hidden --- |