diff options
author | Richard Henderson <rth@twiddle.net> | 2015-09-01 15:51:12 -0700 |
---|---|---|
committer | Richard Henderson <rth@twiddle.net> | 2015-10-07 20:36:51 +1100 |
commit | bad729e272387de7dbfa3ec4319036552fc6c107 (patch) | |
tree | 94e36f4afab09565c1fe76e8500b4fc5620a2833 /target-i386 | |
parent | 190ce7fbc79fd0883a6170d7f30da59d366e6830 (diff) | |
download | qemu-bad729e272387de7dbfa3ec4319036552fc6c107.tar.gz qemu-bad729e272387de7dbfa3ec4319036552fc6c107.tar.bz2 qemu-bad729e272387de7dbfa3ec4319036552fc6c107.zip |
tcg: Pass data argument to restore_state_to_opc
The gen_opc_* arrays are already redundant with the data stored in
the insn_start arguments. Transition restore_state_to_opc to use
data from the latter.
Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'target-i386')
-rw-r--r-- | target-i386/translate.c | 26 |
1 files changed, 6 insertions, 20 deletions
diff --git a/target-i386/translate.c b/target-i386/translate.c index d3282e89a6..2f7b77fd7c 100644 --- a/target-i386/translate.c +++ b/target-i386/translate.c @@ -8055,26 +8055,12 @@ void gen_intermediate_code_pc(CPUX86State *env, TranslationBlock *tb) gen_intermediate_code_internal(x86_env_get_cpu(env), tb, true); } -void restore_state_to_opc(CPUX86State *env, TranslationBlock *tb, int pc_pos) +void restore_state_to_opc(CPUX86State *env, TranslationBlock *tb, + target_ulong *data) { - int cc_op; -#ifdef DEBUG_DISAS - if (qemu_loglevel_mask(CPU_LOG_TB_OP)) { - int i; - qemu_log("RESTORE:\n"); - for(i = 0;i <= pc_pos; i++) { - if (tcg_ctx.gen_opc_instr_start[i]) { - qemu_log("0x%04x: " TARGET_FMT_lx "\n", i, - tcg_ctx.gen_opc_pc[i]); - } - } - qemu_log("pc_pos=0x%x eip=" TARGET_FMT_lx " cs_base=%x\n", - pc_pos, tcg_ctx.gen_opc_pc[pc_pos] - tb->cs_base, - (uint32_t)tb->cs_base); - } -#endif - env->eip = tcg_ctx.gen_opc_pc[pc_pos] - tb->cs_base; - cc_op = gen_opc_cc_op[pc_pos]; - if (cc_op != CC_OP_DYNAMIC) + int cc_op = data[1]; + env->eip = data[0] - tb->cs_base; + if (cc_op != CC_OP_DYNAMIC) { env->cc_op = cc_op; + } } |