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