[Qemu-devel] [PATCH v12 25/27] target/arm: [tcg] Port to disas_log

Lluís Vilanova posted 27 patches 8 years, 4 months ago
There is a newer version of this series
[Qemu-devel] [PATCH v12 25/27] target/arm: [tcg] Port to disas_log
Posted by Lluís Vilanova 8 years, 4 months ago
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>
---
 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();
     }


Re: [Qemu-devel] [PATCH v12 25/27] target/arm: [tcg] Port to disas_log
Posted by Alex Bennée 8 years, 3 months ago
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