mips: Support the MT TCStatus IXMT irq disable flag
authorEdgar E. Iglesias <edgar.iglesias@gmail.com>
Mon, 29 Aug 2011 22:44:28 +0000 (00:44 +0200)
committerEdgar E. Iglesias <edgar.iglesias@gmail.com>
Tue, 6 Sep 2011 09:09:39 +0000 (11:09 +0200)
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
target-mips/cpu.h

index f6f16a34be8db29bc6050f8c74ccc07a9b2784a1..79e25583ff381c115d6e14e50417077eec5ed275 100644 (file)
@@ -537,6 +537,10 @@ static inline int cpu_mips_hw_interrupts_pending(CPUState *env)
     if (!(env->CP0_Status & (1 << CP0St_IE)) ||
         (env->CP0_Status & (1 << CP0St_EXL)) ||
         (env->CP0_Status & (1 << CP0St_ERL)) ||
+        /* Note that the TCStatus IXMT field is initialized to zero,
+           and only MT capable cores can set it to one. So we don't
+           need to check for MT capabilities here.  */
+        (env->active_tc.CP0_TCStatus & (1 << CP0TCSt_IXMT)) ||
         (env->hflags & MIPS_HFLAG_DM)) {
         /* Interrupts are disabled */
         return 0;