aboutsummaryrefslogtreecommitdiff
path: root/hw/mips_int.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/mips_int.c')
-rw-r--r--hw/mips_int.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/hw/mips_int.c b/hw/mips_int.c
index 93d599f..7f9f153 100644
--- a/hw/mips_int.c
+++ b/hw/mips_int.c
@@ -20,20 +20,15 @@ void cpu_mips_update_irq(CPUState *env)
void cpu_mips_irq_request(void *opaque, int irq, int level)
{
- CPUState *env = first_cpu;
-
- uint32_t mask;
+ CPUState *env = (CPUState *)opaque;
- if (irq >= 16)
+ if (irq < 0 || irq > 7)
return;
- mask = 1 << (irq + CP0Ca_IP);
-
if (level) {
- env->CP0_Cause |= mask;
+ env->CP0_Cause |= 1 << (irq + CP0Ca_IP);
} else {
- env->CP0_Cause &= ~mask;
+ env->CP0_Cause &= ~(1 << (irq +CP0Ca_IP));
}
cpu_mips_update_irq(env);
}
-