diff mbox

[v11,12/29] target/i386: [tcg] Refactor disas_log

Message ID 149865510456.17063.14029858939919926288.stgit@frigg.lan
State New
Headers show

Commit Message

Lluís Vilanova June 28, 2017, 1:05 p.m. UTC
Incrementally paves the way towards using the generic instruction translation
loop.

Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
---
 target/i386/translate.c |   29 +++++++++++++++++++----------
 1 file changed, 19 insertions(+), 10 deletions(-)

Comments

Emilio Cota June 30, 2017, 12:50 a.m. UTC | #1
On Wed, Jun 28, 2017 at 16:05:04 +0300, Lluís Vilanova wrote:
> Incrementally paves the way towards using the generic instruction translation
> loop.
> 
> Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>

Reviewed-by: Emilio G. Cota <cota@braap.org>

		E.
Richard Henderson July 2, 2017, 12:49 a.m. UTC | #2
On 06/28/2017 06:05 AM, Lluís Vilanova wrote:
> +#ifdef TARGET_X86_64
> +    if (dc->code64)
> +        disas_flags = 2;
> +    else
> +#endif
> +        disas_flags = !dc->code32;

Even though this is code movement, missing braces.

Otherwise,

Reviewed-by: Richard Henderson <rth@twiddle.net>


r~
diff mbox

Patch

diff --git a/target/i386/translate.c b/target/i386/translate.c
index 1ca40c2fe4..3950fe95a4 100644
--- a/target/i386/translate.c
+++ b/target/i386/translate.c
@@ -8526,6 +8526,24 @@  static void i386_trblock_tb_stop(DisasContextBase *dcbase, CPUState *cpu)
     }
 }
 
+static void i386_trblock_disas_log(const DisasContextBase *dcbase,
+                                   CPUState *cpu)
+{
+    DisasContext *dc = container_of(dcbase, DisasContext, base);
+    int disas_flags;
+
+    qemu_log("IN: %s\n", lookup_symbol(dc->base.pc_first));
+#ifdef TARGET_X86_64
+    if (dc->code64)
+        disas_flags = 2;
+    else
+#endif
+        disas_flags = !dc->code32;
+    log_target_disas(cpu, dc->base.pc_first, dc->base.pc_next - dc->base.pc_first,
+                     disas_flags);
+
+}
+
 /* generate intermediate code for basic block 'tb'.  */
 void gen_intermediate_code(CPUState *cpu, TranslationBlock *tb)
 {
@@ -8621,18 +8639,9 @@  done_generating:
 #ifdef DEBUG_DISAS
     if (qemu_loglevel_mask(CPU_LOG_TB_IN_ASM)
         && qemu_log_in_addr_range(dc->base.pc_first)) {
-        int disas_flags;
         qemu_log_lock();
         qemu_log("----------------\n");
-        qemu_log("IN: %s\n", lookup_symbol(dc->base.pc_first));
-#ifdef TARGET_X86_64
-        if (dc->code64)
-            disas_flags = 2;
-        else
-#endif
-            disas_flags = !dc->code32;
-        log_target_disas(cpu, dc->base.pc_first, dc->base.pc_next - dc->base.pc_first,
-                         disas_flags);
+        i386_trblock_disas_log(&dc->base, cpu);
         qemu_log("\n");
         qemu_log_unlock();
     }