We don't need to use cpu_loop_exit() because we never use the
condition codes so everything can be folded into a single case.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5669
c046a42c-6fe2-441c-8c8c-
71466251a162
#endif
if (kvm_enabled()) {
- int ret;
- ret = kvm_cpu_exec(env);
- if ((env->interrupt_request & CPU_INTERRUPT_EXIT)) {
- env->interrupt_request &= ~CPU_INTERRUPT_EXIT;
- env->exception_index = EXCP_INTERRUPT;
- cpu_loop_exit();
- } else if (env->halted) {
- cpu_loop_exit();
- } else
- longjmp(env->jmp_env, 1);
+ kvm_cpu_exec(env);
+ longjmp(env->jmp_env, 1);
}
next_tb = 0; /* force lookup of first TB */
}
} while (ret > 0);
+ if ((env->interrupt_request & CPU_INTERRUPT_EXIT)) {
+ env->interrupt_request &= ~CPU_INTERRUPT_EXIT;
+ env->exception_index = EXCP_INTERRUPT;
+ }
+
return ret;
}