qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]