diff options
author | aliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-11-10 15:55:14 +0000 |
---|---|---|
committer | aliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-11-10 15:55:14 +0000 |
commit | becfc3904194e76436ad0a60c2dde148e1927e4c (patch) | |
tree | a2649f5ff53bdfb590c28825ab4356dd3b944558 | |
parent | 57951c27422fc41586a5d4032e05bb300cced78d (diff) |
KVM: simplify kvm_cpu_exec hook
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
-rw-r--r-- | cpu-exec.c | 12 | ||||
-rw-r--r-- | kvm-all.c | 5 |
2 files changed, 7 insertions, 10 deletions
diff --git a/cpu-exec.c b/cpu-exec.c index c6db5adf5e..2c77b923fd 100644 --- a/cpu-exec.c +++ b/cpu-exec.c @@ -369,16 +369,8 @@ int cpu_exec(CPUState *env1) #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 */ @@ -298,6 +298,11 @@ int kvm_cpu_exec(CPUState *env) } } while (ret > 0); + if ((env->interrupt_request & CPU_INTERRUPT_EXIT)) { + env->interrupt_request &= ~CPU_INTERRUPT_EXIT; + env->exception_index = EXCP_INTERRUPT; + } + return ret; } |