diff options
author | Edgar E. Iglesias <edgar@axis.com> | 2010-07-24 13:40:05 +0200 |
---|---|---|
committer | Edgar E. Iglesias <edgar.iglesias@gmail.com> | 2010-07-24 13:40:05 +0200 |
commit | 36388314febad3d7675ab919287f03733a560ff6 (patch) | |
tree | 7becf392376dc244c812b5ccd23fd7c227124a0b /target-mips/op_helper.c | |
parent | b2178704e46d061b6162ebd37a19e0db02ccbd77 (diff) |
mips: Correct MIPS interrupt glue logic for icount
When hw interrupt pending bits in CP0_Cause are set, the CPU should
see the hw interrupt line as active. The CPU may or may not take the
interrupt based on internal state (global irq mask etc) but the glue
logic shouldn't care.
This fixes MIPS external hw interrupts in combination with -icount.
Signed-off-by: Edgar E. Iglesias <edgar@axis.com>
Diffstat (limited to 'target-mips/op_helper.c')
-rw-r--r-- | target-mips/op_helper.c | 11 |
1 files changed, 0 insertions, 11 deletions
diff --git a/target-mips/op_helper.c b/target-mips/op_helper.c index 8ae510adc1..c9632248a0 100644 --- a/target-mips/op_helper.c +++ b/target-mips/op_helper.c @@ -1313,7 +1313,6 @@ void helper_mtc0_status (target_ulong arg1) default: cpu_abort(env, "Invalid MMU mode!\n"); break; } } - cpu_mips_update_irq(env); } void helper_mttc0_status(target_ulong arg1) @@ -1359,12 +1358,6 @@ void helper_mtc0_cause (target_ulong arg1) else cpu_mips_start_count(env); } - - /* Handle the software interrupt as an hardware one, as they - are very similar */ - if (arg1 & CP0Ca_IP_mask) { - cpu_mips_update_irq(env); - } } void helper_mtc0_ebase (target_ulong arg1) @@ -1793,8 +1786,6 @@ target_ulong helper_di (void) target_ulong t0 = env->CP0_Status; env->CP0_Status = t0 & ~(1 << CP0St_IE); - cpu_mips_update_irq(env); - return t0; } @@ -1803,8 +1794,6 @@ target_ulong helper_ei (void) target_ulong t0 = env->CP0_Status; env->CP0_Status = t0 | (1 << CP0St_IE); - cpu_mips_update_irq(env); - return t0; } |