better halted state support


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1652 c046a42c-6fe2-441c-8c8c-71466251a162
diff --git a/cpu-exec.c b/cpu-exec.c
index 72e3268..de1fff2 100644
--- a/cpu-exec.c
+++ b/cpu-exec.c
@@ -251,6 +251,19 @@
     TranslationBlock *tb;
     uint8_t *tc_ptr;
 
+#if defined(TARGET_I386)
+    /* handle exit of HALTED state */
+    if (env1->hflags & HF_HALTED_MASK) {
+        /* disable halt condition */
+        if ((env1->interrupt_request & CPU_INTERRUPT_HARD) &&
+            (env1->eflags & IF_MASK)) {
+            env1->hflags &= ~HF_HALTED_MASK;
+        } else {
+            return EXCP_HALTED;
+        }
+    }
+#endif
+
     cpu_single_env = env1; 
 
     /* first we save global registers */