base.cc (3923:a8ce86366fd3) base.cc (3929:3640569369a5)
1/*
2 * Copyright (c) 2002-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;

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

306 }
307}
308#endif // FULL_SYSTEM
309
310void
311BaseSimpleCPU::checkForInterrupts()
312{
313#if FULL_SYSTEM
1/*
2 * Copyright (c) 2002-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;

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

306 }
307}
308#endif // FULL_SYSTEM
309
310void
311BaseSimpleCPU::checkForInterrupts()
312{
313#if FULL_SYSTEM
314 if (check_interrupts(tc)) {
314 if (checkInterrupts && check_interrupts(tc)) {
315 Fault interrupt = interrupts.getInterrupt(tc);
316
317 if (interrupt != NoFault) {
318 interrupts.updateIntrInfo(tc);
315 Fault interrupt = interrupts.getInterrupt(tc);
316
317 if (interrupt != NoFault) {
318 interrupts.updateIntrInfo(tc);
319 checkInterrupts = false;
319 interrupt->invoke(tc);
320 }
321 }
322#endif
323}
324
325
326Fault

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

433
434
435void
436BaseSimpleCPU::advancePC(Fault fault)
437{
438 if (fault != NoFault) {
439 curMacroStaticInst = StaticInst::nullStaticInstPtr;
440 fault->invoke(tc);
320 interrupt->invoke(tc);
321 }
322 }
323#endif
324}
325
326
327Fault

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

434
435
436void
437BaseSimpleCPU::advancePC(Fault fault)
438{
439 if (fault != NoFault) {
440 curMacroStaticInst = StaticInst::nullStaticInstPtr;
441 fault->invoke(tc);
442 thread->setMicroPC(0);
443 thread->setNextMicroPC(1);
441 } else {
442 //If we're at the last micro op for this instruction
443 if (curStaticInst->isLastMicroOp()) {
444 //We should be working with a macro op
445 assert(curMacroStaticInst);
446 //Close out this macro op, and clean up the
447 //microcode state
448 curMacroStaticInst = StaticInst::nullStaticInstPtr;

--- 32 unchanged lines hidden ---
444 } else {
445 //If we're at the last micro op for this instruction
446 if (curStaticInst->isLastMicroOp()) {
447 //We should be working with a macro op
448 assert(curMacroStaticInst);
449 //Close out this macro op, and clean up the
450 //microcode state
451 curMacroStaticInst = StaticInst::nullStaticInstPtr;

--- 32 unchanged lines hidden ---