execute.cc (10851:a50657a4f0c1) | execute.cc (11150:a8a64cca231b) |
---|---|
1/* 2 * Copyright (c) 2013-2014 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 --- 389 unchanged lines hidden (view full) --- 398} 399 400bool 401Execute::takeInterrupt(ThreadID thread_id, BranchData &branch) 402{ 403 DPRINTF(MinorInterrupt, "Considering interrupt status from PC: %s\n", 404 cpu.getContext(thread_id)->pcState()); 405 | 1/* 2 * Copyright (c) 2013-2014 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 --- 389 unchanged lines hidden (view full) --- 398} 399 400bool 401Execute::takeInterrupt(ThreadID thread_id, BranchData &branch) 402{ 403 DPRINTF(MinorInterrupt, "Considering interrupt status from PC: %s\n", 404 cpu.getContext(thread_id)->pcState()); 405 |
406 Fault interrupt = cpu.getInterruptController()->getInterrupt | 406 Fault interrupt = cpu.getInterruptController(thread_id)->getInterrupt |
407 (cpu.getContext(thread_id)); 408 409 if (interrupt != NoFault) { 410 /* The interrupt *must* set pcState */ | 407 (cpu.getContext(thread_id)); 408 409 if (interrupt != NoFault) { 410 /* The interrupt *must* set pcState */ |
411 cpu.getInterruptController()->updateIntrInfo | 411 cpu.getInterruptController(thread_id)->updateIntrInfo |
412 (cpu.getContext(thread_id)); 413 interrupt->invoke(cpu.getContext(thread_id)); 414 415 assert(!lsq.accessesInFlight()); 416 417 DPRINTF(MinorInterrupt, "Invoking interrupt: %s to PC: %s\n", 418 interrupt->name(), cpu.getContext(thread_id)->pcState()); 419 --- 966 unchanged lines hidden (view full) --- 1386 lsq.step(); 1387 1388 /* Has an interrupt been signalled? This may not be acted on 1389 * straighaway so this is different from took_interrupt below */ 1390 bool interrupted = false; 1391 /* If there was an interrupt signalled, was it acted on now? */ 1392 bool took_interrupt = false; 1393 | 412 (cpu.getContext(thread_id)); 413 interrupt->invoke(cpu.getContext(thread_id)); 414 415 assert(!lsq.accessesInFlight()); 416 417 DPRINTF(MinorInterrupt, "Invoking interrupt: %s to PC: %s\n", 418 interrupt->name(), cpu.getContext(thread_id)->pcState()); 419 --- 966 unchanged lines hidden (view full) --- 1386 lsq.step(); 1387 1388 /* Has an interrupt been signalled? This may not be acted on 1389 * straighaway so this is different from took_interrupt below */ 1390 bool interrupted = false; 1391 /* If there was an interrupt signalled, was it acted on now? */ 1392 bool took_interrupt = false; 1393 |
1394 if (cpu.getInterruptController()) { | 1394 if (cpu.getInterruptController(0)) { |
1395 /* This is here because it seems that after drainResume the 1396 * interrupt controller isn't always set */ 1397 interrupted = drainState == NotDraining && isInterrupted(0); 1398 } else { 1399 DPRINTF(MinorInterrupt, "No interrupt controller\n"); 1400 } 1401 1402 unsigned int num_issued = 0; --- 337 unchanged lines hidden --- | 1395 /* This is here because it seems that after drainResume the 1396 * interrupt controller isn't always set */ 1397 interrupted = drainState == NotDraining && isInterrupted(0); 1398 } else { 1399 DPRINTF(MinorInterrupt, "No interrupt controller\n"); 1400 } 1401 1402 unsigned int num_issued = 0; --- 337 unchanged lines hidden --- |