base.cc (7338:0d6c08d25fe7) base.cc (7408:ee6949c5bb5b)
1/*
2 * Copyright (c) 2010 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

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

352void
353BaseSimpleCPU::checkForInterrupts()
354{
355#if FULL_SYSTEM
356 if (checkInterrupts(tc)) {
357 Fault interrupt = interrupts->getInterrupt(tc);
358
359 if (interrupt != NoFault) {
1/*
2 * Copyright (c) 2010 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

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

352void
353BaseSimpleCPU::checkForInterrupts()
354{
355#if FULL_SYSTEM
356 if (checkInterrupts(tc)) {
357 Fault interrupt = interrupts->getInterrupt(tc);
358
359 if (interrupt != NoFault) {
360 predecoder.reset();
361 fetchOffset = 0;
362 interrupts->updateIntrInfo(tc);
363 interrupt->invoke(tc);
360 fetchOffset = 0;
361 interrupts->updateIntrInfo(tc);
362 interrupt->invoke(tc);
363 predecoder.reset();
364 }
365 }
366#endif
367}
368
369
370void
371BaseSimpleCPU::setupFetchRequest(Request *req)

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

503
504void
505BaseSimpleCPU::advancePC(Fault fault)
506{
507 //Since we're moving to a new pc, zero out the offset
508 fetchOffset = 0;
509 if (fault != NoFault) {
510 curMacroStaticInst = StaticInst::nullStaticInstPtr;
364 }
365 }
366#endif
367}
368
369
370void
371BaseSimpleCPU::setupFetchRequest(Request *req)

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

503
504void
505BaseSimpleCPU::advancePC(Fault fault)
506{
507 //Since we're moving to a new pc, zero out the offset
508 fetchOffset = 0;
509 if (fault != NoFault) {
510 curMacroStaticInst = StaticInst::nullStaticInstPtr;
511 predecoder.reset();
512 fault->invoke(tc);
511 fault->invoke(tc);
512 predecoder.reset();
513 } else {
514 //If we're at the last micro op for this instruction
515 if (curStaticInst && curStaticInst->isLastMicroop()) {
516 //We should be working with a macro op or be in the ROM
517 assert(curMacroStaticInst ||
518 isRomMicroPC(thread->readMicroPC()));
519 //Close out this macro op, and clean up the
520 //microcode state

--- 55 unchanged lines hidden ---
513 } else {
514 //If we're at the last micro op for this instruction
515 if (curStaticInst && curStaticInst->isLastMicroop()) {
516 //We should be working with a macro op or be in the ROM
517 assert(curMacroStaticInst ||
518 isRomMicroPC(thread->readMicroPC()));
519 //Close out this macro op, and clean up the
520 //microcode state

--- 55 unchanged lines hidden ---