commit_impl.hh (5606:6da7a58b0bc8) | commit_impl.hh (5704:98224505352a) |
---|---|
1/* 2 * Copyright (c) 2004-2006 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; --- 651 unchanged lines hidden (view full) --- 660 // Generate trap squash event. 661 generateTrapEvent(0); 662 663 interrupt = NoFault; 664 } else { 665 DPRINTF(Commit, "Interrupt pending, waiting for ROB to empty.\n"); 666 } 667 } else if (commitStatus[0] != TrapPending && | 1/* 2 * Copyright (c) 2004-2006 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; --- 651 unchanged lines hidden (view full) --- 660 // Generate trap squash event. 661 generateTrapEvent(0); 662 663 interrupt = NoFault; 664 } else { 665 DPRINTF(Commit, "Interrupt pending, waiting for ROB to empty.\n"); 666 } 667 } else if (commitStatus[0] != TrapPending && |
668 cpu->check_interrupts(cpu->tcBase(0)) && | 668 cpu->checkInterrupts(cpu->tcBase(0)) && |
669 !trapSquash[0] && 670 !tcSquash[0]) { 671 // Process interrupts if interrupts are enabled, not in PAL 672 // mode, and no other traps or external squashes are currently 673 // pending. 674 // @todo: Allow other threads to handle interrupts. 675 676 // Get any interrupt that happened --- 13 unchanged lines hidden (view full) --- 690void 691DefaultCommit<Impl>::commit() 692{ 693 694#if FULL_SYSTEM 695 // Check for any interrupt, and start processing it. Or if we 696 // have an outstanding interrupt and are at a point when it is 697 // valid to take an interrupt, process it. | 669 !trapSquash[0] && 670 !tcSquash[0]) { 671 // Process interrupts if interrupts are enabled, not in PAL 672 // mode, and no other traps or external squashes are currently 673 // pending. 674 // @todo: Allow other threads to handle interrupts. 675 676 // Get any interrupt that happened --- 13 unchanged lines hidden (view full) --- 690void 691DefaultCommit<Impl>::commit() 692{ 693 694#if FULL_SYSTEM 695 // Check for any interrupt, and start processing it. Or if we 696 // have an outstanding interrupt and are at a point when it is 697 // valid to take an interrupt, process it. |
698 if (cpu->check_interrupts(cpu->tcBase(0))) { | 698 if (cpu->checkInterrupts(cpu->tcBase(0))) { |
699 handleInterrupt(); 700 } 701#endif // FULL_SYSTEM 702 703 //////////////////////////////////// 704 // Check for any possible squashes, handle them first 705 //////////////////////////////////// 706 std::list<unsigned>::iterator threads = activeThreads->begin(); --- 670 unchanged lines hidden --- | 699 handleInterrupt(); 700 } 701#endif // FULL_SYSTEM 702 703 //////////////////////////////////// 704 // Check for any possible squashes, handle them first 705 //////////////////////////////////// 706 std::list<unsigned>::iterator threads = activeThreads->begin(); --- 670 unchanged lines hidden --- |