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