Message ID | 149943378206.8972.1141843062606418973.stgit@frigg.lan |
---|---|
State | New |
Headers | show |
Lluís Vilanova <vilanova@ac.upc.edu> writes: > Incrementally paves the way towards using the generic instruction translation > loop. > > Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu> > Reviewed-by: Richard Henderson <rth@twiddle.net> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> > --- > target/arm/translate.c | 13 ++++++++++--- > 1 file changed, 10 insertions(+), 3 deletions(-) > > diff --git a/target/arm/translate.c b/target/arm/translate.c > index 00cac01d66..5db381491f 100644 > --- a/target/arm/translate.c > +++ b/target/arm/translate.c > @@ -12133,6 +12133,15 @@ static void arm_tr_tb_stop(DisasContextBase *dcbase, CPUState *cpu) > } > } > > +static void arm_tr_disas_log(const DisasContextBase *dcbase, CPUState *cpu) > +{ > + DisasContext *dc = container_of(dcbase, DisasContext, base); > + > + qemu_log("IN: %s\n", lookup_symbol(dc->base.pc_first)); > + log_target_disas(cpu, dc->base.pc_first, dc->pc - dc->base.pc_first, > + dc->thumb | (dc->sctlr_b << 1)); > +} > + > /* generate intermediate code for basic block 'tb'. */ > void gen_intermediate_code(CPUState *cs, TranslationBlock *tb) > { > @@ -12236,9 +12245,7 @@ done_generating: > qemu_log_in_addr_range(dc->base.pc_first)) { > qemu_log_lock(); > qemu_log("----------------\n"); > - qemu_log("IN: %s\n", lookup_symbol(dc->base.pc_first)); > - log_target_disas(cs, dc->base.pc_first, dc->pc - dc->base.pc_first, > - dc->thumb | (dc->sctlr_b << 1)); > + arm_tr_disas_log(&dc->base, cs); > qemu_log("\n"); > qemu_log_unlock(); > } -- Alex Bennée
diff --git a/target/arm/translate.c b/target/arm/translate.c index 00cac01d66..5db381491f 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -12133,6 +12133,15 @@ static void arm_tr_tb_stop(DisasContextBase *dcbase, CPUState *cpu) } } +static void arm_tr_disas_log(const DisasContextBase *dcbase, CPUState *cpu) +{ + DisasContext *dc = container_of(dcbase, DisasContext, base); + + qemu_log("IN: %s\n", lookup_symbol(dc->base.pc_first)); + log_target_disas(cpu, dc->base.pc_first, dc->pc - dc->base.pc_first, + dc->thumb | (dc->sctlr_b << 1)); +} + /* generate intermediate code for basic block 'tb'. */ void gen_intermediate_code(CPUState *cs, TranslationBlock *tb) { @@ -12236,9 +12245,7 @@ done_generating: qemu_log_in_addr_range(dc->base.pc_first)) { qemu_log_lock(); qemu_log("----------------\n"); - qemu_log("IN: %s\n", lookup_symbol(dc->base.pc_first)); - log_target_disas(cs, dc->base.pc_first, dc->pc - dc->base.pc_first, - dc->thumb | (dc->sctlr_b << 1)); + arm_tr_disas_log(&dc->base, cs); qemu_log("\n"); qemu_log_unlock(); }