diff options
author | Marcelo Tosatti <mtosatti@redhat.com> | 2010-02-24 16:01:21 -0300 |
---|---|---|
committer | Marcelo Tosatti <mtosatti@redhat.com> | 2010-02-24 16:01:21 -0300 |
commit | 9e49066b3dd6b659fc04eb4375e016dcb9492dce (patch) | |
tree | 279e4179ea95e1bfd3765c370699fe2120c1985a /cpu-exec.c | |
parent | 6249f61a891b6b003531ca4e459c3a553faa82bc (diff) | |
parent | cc84de9570ffe01a9c3c169bd62ab9586a9a080c (diff) |
Merge commit 'cc84de9570ffe01a9c3c169bd62ab9586a9a080c' into upstream-merge
* commit 'cc84de9570ffe01a9c3c169bd62ab9586a9a080c':
kvm: consume internal signal with sigtimedwait
kvm specific wait_io_event
block SIGCHLD in vcpu thread(s)
kvm: Kill CR3_CACHE feature references
kvm: Fix eflags corruption in kvm mode
Conflicts:
kvm-all.c
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'cpu-exec.c')
-rw-r--r-- | cpu-exec.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/cpu-exec.c b/cpu-exec.c index 3da7730b3..fe1176ddb 100644 --- a/cpu-exec.c +++ b/cpu-exec.c @@ -234,11 +234,13 @@ int cpu_exec(CPUState *env1) env = env1; #if defined(TARGET_I386) - /* put eflags in CPU temporary format */ - CC_SRC = env->eflags & (CC_O | CC_S | CC_Z | CC_A | CC_P | CC_C); - DF = 1 - (2 * ((env->eflags >> 10) & 1)); - CC_OP = CC_OP_EFLAGS; - env->eflags &= ~(DF_MASK | CC_O | CC_S | CC_Z | CC_A | CC_P | CC_C); + if (!kvm_enabled()) { + /* put eflags in CPU temporary format */ + CC_SRC = env->eflags & (CC_O | CC_S | CC_Z | CC_A | CC_P | CC_C); + DF = 1 - (2 * ((env->eflags >> 10) & 1)); + CC_OP = CC_OP_EFLAGS; + env->eflags &= ~(DF_MASK | CC_O | CC_S | CC_Z | CC_A | CC_P | CC_C); + } #elif defined(TARGET_SPARC) #elif defined(TARGET_M68K) env->cc_op = CC_OP_FLAGS; |