diff options
-rw-r--r-- | cpu-exec.c | 2 | ||||
-rw-r--r-- | target-mips/op_helper.c | 2 |
2 files changed, 2 insertions, 2 deletions
@@ -307,7 +307,7 @@ int cpu_exec(CPUState *env1) #elif defined(TARGET_MIPS) if ((interrupt_request & CPU_INTERRUPT_HARD) && (env->CP0_Status & (1 << CP0St_IE)) && - (env->CP0_Cause & 0x0000FC00) && + (env->CP0_Cause & 0x0000FF00) && !(env->hflags & MIPS_HFLAG_EXL) && !(env->hflags & MIPS_HFLAG_ERL) && !(env->hflags & MIPS_HFLAG_DM)) { diff --git a/target-mips/op_helper.c b/target-mips/op_helper.c index dc10407..854abea 100644 --- a/target-mips/op_helper.c +++ b/target-mips/op_helper.c @@ -352,7 +352,7 @@ void do_mtc0 (int reg, int sel) old = env->CP0_Status; env->CP0_Status = val; /* If we unmasked an asserted IRQ, raise it */ - mask = 0x0000FC00; + mask = 0x0000FF00; if (loglevel & CPU_LOG_TB_IN_ASM) { fprintf(logfile, "Status %08x => %08x Cause %08x (%08x %08x %08x)\n", old, val, env->CP0_Cause, old & mask, val & mask, |