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>
This commit is contained in:
parent
c53de1a289
commit
4980ef9e3e
@ -571,10 +571,7 @@ int cpu_exec(CPUArchState *env)
|
|||||||
if (qemu_loglevel_mask(CPU_LOG_TB_CPU)) {
|
if (qemu_loglevel_mask(CPU_LOG_TB_CPU)) {
|
||||||
/* restore flags in standard format */
|
/* restore flags in standard format */
|
||||||
#if defined(TARGET_I386)
|
#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);
|
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)
|
#elif defined(TARGET_M68K)
|
||||||
cpu_m68k_flush_flags(env, env->cc_op);
|
cpu_m68k_flush_flags(env, env->cc_op);
|
||||||
env->cc_op = CC_OP_FLAGS;
|
env->cc_op = CC_OP_FLAGS;
|
||||||
|
@ -189,7 +189,7 @@ void cpu_dump_state(CPUX86State *env, FILE *f, fprintf_function cpu_fprintf,
|
|||||||
|
|
||||||
cpu_synchronize_state(env);
|
cpu_synchronize_state(env);
|
||||||
|
|
||||||
eflags = env->eflags;
|
eflags = cpu_compute_eflags(env);
|
||||||
#ifdef TARGET_X86_64
|
#ifdef TARGET_X86_64
|
||||||
if (env->hflags & HF_CS64_MASK) {
|
if (env->hflags & HF_CS64_MASK) {
|
||||||
cpu_fprintf(f,
|
cpu_fprintf(f,
|
||||||
|
Loading…
Reference in New Issue
Block a user