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