aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@twiddle.net>2013-03-19 12:11:56 -0700
committerBlue Swirl <blauwirbel@gmail.com>2013-03-23 14:30:12 +0000
commit4980ef9e3e12be3b4ef9092abc2d5a665199b422 (patch)
treed28f3ed87b87b23c6ca7ac014d53b426f5d9913a
parentc53de1a2896ccc9ab18bb9c2f1a2f7b93629b564 (diff)
target-i386: Don't modify env->eflags around cpu_dump_state
We can compute the value in cpu_dump_state anyway, and gratuitous modifications to eflags creates heisenbugs. Cc: Blue Swirl <blauwirbel@gmail.com> Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
-rw-r--r--cpu-exec.c3
-rw-r--r--target-i386/helper.c2
2 files changed, 1 insertions, 4 deletions
diff --git a/cpu-exec.c b/cpu-exec.c
index b87c1c07c6..e74e55656a 100644
--- a/cpu-exec.c
+++ b/cpu-exec.c
@@ -571,10 +571,7 @@ int cpu_exec(CPUArchState *env)
if (qemu_loglevel_mask(CPU_LOG_TB_CPU)) {
/* restore flags in standard format */
#if defined(TARGET_I386)
- env->eflags = env->eflags | cpu_cc_compute_all(env, CC_OP)
- | (DF & DF_MASK);
log_cpu_state(env, CPU_DUMP_CCOP);
- env->eflags &= ~(DF_MASK | CC_O | CC_S | CC_Z | CC_A | CC_P | CC_C);
#elif defined(TARGET_M68K)
cpu_m68k_flush_flags(env, env->cc_op);
env->cc_op = CC_OP_FLAGS;
diff --git a/target-i386/helper.c b/target-i386/helper.c
index 9449a0c49d..282494fcad 100644
--- a/target-i386/helper.c
+++ b/target-i386/helper.c
@@ -189,7 +189,7 @@ void cpu_dump_state(CPUX86State *env, FILE *f, fprintf_function cpu_fprintf,
cpu_synchronize_state(env);
- eflags = env->eflags;
+ eflags = cpu_compute_eflags(env);
#ifdef TARGET_X86_64
if (env->hflags & HF_CS64_MASK) {
cpu_fprintf(f,