Revision 49a945a3 cpu-exec.c
b/cpu-exec.c | ||
---|---|---|
56 | 56 |
|
57 | 57 |
void cpu_loop_exit(void) |
58 | 58 |
{ |
59 |
/* NOTE: the register at this point must be saved by hand because |
|
60 |
longjmp restore them */ |
|
61 |
regs_to_env(); |
|
62 | 59 |
longjmp(env->jmp_env, 1); |
63 | 60 |
} |
64 | 61 |
|
... | ... | |
130 | 127 |
|
131 | 128 |
tb_invalidated_flag = 0; |
132 | 129 |
|
133 |
regs_to_env(); /* XXX: do it just before cpu_gen_code() */ |
|
134 |
|
|
135 | 130 |
/* find translated block using physical mappings */ |
136 | 131 |
phys_pc = get_phys_addr_code(env, pc); |
137 | 132 |
phys_page1 = phys_pc & TARGET_PAGE_MASK; |
... | ... | |
230 | 225 |
#include "hostregs_helper.h" |
231 | 226 |
env = env1; |
232 | 227 |
|
233 |
env_to_regs(); |
|
234 | 228 |
#if defined(TARGET_I386) |
235 | 229 |
/* put eflags in CPU temporary format */ |
236 | 230 |
CC_SRC = env->eflags & (CC_O | CC_S | CC_Z | CC_A | CC_P | CC_C); |
... | ... | |
544 | 538 |
#ifdef CONFIG_DEBUG_EXEC |
545 | 539 |
if (qemu_loglevel_mask(CPU_LOG_TB_CPU)) { |
546 | 540 |
/* restore flags in standard format */ |
547 |
regs_to_env(); |
|
548 | 541 |
#if defined(TARGET_I386) |
549 | 542 |
env->eflags = env->eflags | helper_cc_compute_all(CC_OP) | (DF & DF_MASK); |
550 | 543 |
log_cpu_state(env, X86_DUMP_CCOP); |
... | ... | |
651 | 644 |
/* reset soft MMU for next block (it can currently |
652 | 645 |
only be set by a memory fault) */ |
653 | 646 |
} /* for(;;) */ |
654 |
} else { |
|
655 |
env_to_regs(); |
|
656 | 647 |
} |
657 | 648 |
} /* for(;;) */ |
658 | 649 |
|
Also available in: Unified diff