From 1f0f1fb302794932bb5eae48e5a39f090c1344b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Vilanova?= Date: Sun, 4 Mar 2018 17:15:29 -0500 Subject: [PATCH] target/i386: [tcg] Port to insn_start Incrementally paves the way towards using the generic instruction translation loop. Backports commit 9d75f52b34053066b8e8fc37610d5f300d67538b from qemu --- qemu/target/i386/translate.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/qemu/target/i386/translate.c b/qemu/target/i386/translate.c index 291fb25a..2d62f906 100644 --- a/qemu/target/i386/translate.c +++ b/qemu/target/i386/translate.c @@ -9225,6 +9225,14 @@ static int i386_tr_init_disas_context(DisasContextBase *dcbase, CPUState *cpu, return max_insns; } +static void i386_tr_insn_start(DisasContextBase *dcbase, CPUState *cpu) +{ + DisasContext *dc = container_of(dcbase, DisasContext, base); + TCGContext *tcg_ctx = cpu->uc->tcg_ctx; + + tcg_gen_insn_start(tcg_ctx, dc->base.pc_next, dc->cc_op); +} + /* generate intermediate code for basic block 'tb'. */ void gen_intermediate_code(CPUState *cs, TranslationBlock *tb) { @@ -9275,7 +9283,7 @@ void gen_intermediate_code(CPUState *cs, TranslationBlock *tb) gen_tb_start(tcg_ctx, tb); for(;;) { - tcg_gen_insn_start(tcg_ctx, dc->base.pc_next, dc->cc_op); + i386_tr_insn_start(&dc->base, cs); num_insns++; /* If RF is set, suppress an internally generated breakpoint. */