summaryrefslogtreecommitdiff
path: root/src/arch
diff options
context:
space:
mode:
authorLisa Hsu <hsul@eecs.umich.edu>2007-01-11 09:18:31 -0500
committerLisa Hsu <hsul@eecs.umich.edu>2007-01-11 09:18:31 -0500
commitd939060ec60da8e11e28a0c9946898a9e651247d (patch)
tree430f9f8096f3d13cd01fc8988251c51f4dd5786f /src/arch
parent0d7282d7ab9535a12ce0a0de7e0b3ea36ea9229d (diff)
downloadgem5-d939060ec60da8e11e28a0c9946898a9e651247d.tar.xz
Add Trap Level Zero to interrupts, remove some unreachable code that I forgot to remove last time.
--HG-- extra : convert_revision : 74c4c4591be5a66c21077a6fc5f3f60b0ee9bcc1
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/sparc/interrupts.hh21
1 files changed, 1 insertions, 20 deletions
diff --git a/src/arch/sparc/interrupts.hh b/src/arch/sparc/interrupts.hh
index 76bd4c6e2..879cd1825 100644
--- a/src/arch/sparc/interrupts.hh
+++ b/src/arch/sparc/interrupts.hh
@@ -24,8 +24,6 @@
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * Authors: Gabe Black
*/
#ifndef __ARCH_SPARC_INTERRUPT_HH__
@@ -124,11 +122,10 @@ enum interrupts_t {
} else {
if (interrupts[trap_level_zero]) {
- //HAVEN'T IMPLed YET
if ((pstate & HPSTATE::tlz) && (tc->readMiscReg(MISCREG_TL) == 0)) {
interrupts[trap_level_zero] = false;
--numPosted;
- return NoFault;
+ return new TrapLevelZero;
}
}
if (interrupts[hstick_match]) {
@@ -181,22 +178,6 @@ enum interrupts_t {
}
}
return NoFault;
-
-
- // conditioning the softint interrups
- if (tc->readMiscReg(MISCREG_HPSTATE) & HPSTATE::hpriv) {
- // if running in privileged mode, then pend the interrupt
- return NoFault;
- } else {
- int int_level = InterruptLevel(tc->readMiscReg(MISCREG_SOFTINT));
- if ((int_level <= tc->readMiscReg(MISCREG_PIL)) ||
- !(tc->readMiscReg(MISCREG_PSTATE) & PSTATE::ie)) {
- // if PIL or no interrupt enabled, then pend the interrupt
- return NoFault;
- } else {
- return new InterruptLevelN(int_level);
- }
- }
}
void updateIntrInfo(ThreadContext * tc)