[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH pic32 2/7] Stop simulation when processor is suspend
From: |
Serge Vakulenko |
Subject: |
[Qemu-devel] [PATCH pic32 2/7] Stop simulation when processor is suspended forever by WAIT instruction with interrupts disabled. |
Date: |
Mon, 29 Jun 2015 22:02:40 -0700 |
Signed-off-by: Serge Vakulenko <address@hidden>
---
target-mips/op_helper.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/target-mips/op_helper.c b/target-mips/op_helper.c
index 2a9ddff..1b7caeb 100644
--- a/target-mips/op_helper.c
+++ b/target-mips/op_helper.c
@@ -22,6 +22,7 @@
#include "exec/helper-proto.h"
#include "exec/cpu_ldst.h"
#include "sysemu/kvm.h"
+#include "sysemu/sysemu.h"
#ifndef CONFIG_USER_ONLY
static inline void cpu_mips_tlb_flush (CPUMIPSState *env, int flush_global);
@@ -2235,6 +2236,12 @@ void helper_wait(CPUMIPSState *env)
{
CPUState *cs = CPU(mips_env_get_cpu(env));
+#ifndef CONFIG_USER_ONLY
+ if (!(env->CP0_Status & (1 << CP0St_IE))) {
+ /* WAIT instruction with interrupts disabled - halt the simulation. */
+ qemu_system_shutdown_request();
+ }
+#endif
cs->halted = 1;
cpu_reset_interrupt(cs, CPU_INTERRUPT_WAKE);
helper_raise_exception(env, EXCP_HLT);
--
1.9.1
- [Qemu-devel] [PATCH pic32 2/7] Stop simulation when processor is suspended forever by WAIT instruction with interrupts disabled.,
Serge Vakulenko <=