base.cc (3520:4f4a2054fd85) | base.cc (3521:0b0b3551def0) |
---|---|
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 (checkInterrupts && check_interrupts() && !thread->inPalMode()) { 315 checkInterrupts = false; | 314 if (checkInterrupts && check_interrupts(tc)) { |
316 Fault interrupt = interrupts.getInterrupt(tc); 317 318 if (interrupt != NoFault) { | 315 Fault interrupt = interrupts.getInterrupt(tc); 316 317 if (interrupt != NoFault) { |
318 checkInterrupts = false; |
|
319 interrupt->invoke(tc); 320 } 321 } 322#endif 323} 324 325 326Fault --- 39 unchanged lines hidden (view full) --- 366 // decode the instruction 367 inst = gtoh(inst); 368 //If we're not in the middle of a macro instruction 369 if (!curMacroStaticInst) { 370#if THE_ISA == ALPHA_ISA 371 StaticInstPtr instPtr = StaticInst::decode(makeExtMI(inst, thread->readPC())); 372#elif THE_ISA == SPARC_ISA 373 StaticInstPtr instPtr = StaticInst::decode(makeExtMI(inst, thread->getTC())); | 319 interrupt->invoke(tc); 320 } 321 } 322#endif 323} 324 325 326Fault --- 39 unchanged lines hidden (view full) --- 366 // decode the instruction 367 inst = gtoh(inst); 368 //If we're not in the middle of a macro instruction 369 if (!curMacroStaticInst) { 370#if THE_ISA == ALPHA_ISA 371 StaticInstPtr instPtr = StaticInst::decode(makeExtMI(inst, thread->readPC())); 372#elif THE_ISA == SPARC_ISA 373 StaticInstPtr instPtr = StaticInst::decode(makeExtMI(inst, thread->getTC())); |
374#elif THE_ISA == MIPS_ISA 375 //Mips doesn't do anything in it's MakeExtMI function right now, 376 //so it won't be called. 377 StaticInstPtr instPtr = StaticInst::decode(inst); |
|
374#endif 375 if (instPtr->isMacroOp()) { 376 curMacroStaticInst = instPtr; 377 curStaticInst = curMacroStaticInst-> 378 fetchMicroOp(thread->readMicroPC()); 379 } else { 380 curStaticInst = instPtr; 381 } --- 95 unchanged lines hidden --- | 378#endif 379 if (instPtr->isMacroOp()) { 380 curMacroStaticInst = instPtr; 381 curStaticInst = curMacroStaticInst-> 382 fetchMicroOp(thread->readMicroPC()); 383 } else { 384 curStaticInst = instPtr; 385 } --- 95 unchanged lines hidden --- |