[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL v2 07/13] disas: include an optional note for the start of disasse
From: |
Alex Bennée |
Subject: |
[PULL v2 07/13] disas: include an optional note for the start of disassembly |
Date: |
Fri, 15 May 2020 15:43:59 +0100 |
This will become useful shortly for providing more information about
output assembly inline. While there fix up the indenting and code
formatting in disas().
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
diff --git a/include/disas/disas.h b/include/disas/disas.h
index 36c33f6f194..1b6e035e32d 100644
--- a/include/disas/disas.h
+++ b/include/disas/disas.h
@@ -7,7 +7,7 @@
#include "cpu.h"
/* Disassemble this for me please... (debugging). */
-void disas(FILE *out, void *code, unsigned long size);
+void disas(FILE *out, void *code, unsigned long size, const char *note);
void target_disas(FILE *out, CPUState *cpu, target_ulong code,
target_ulong size);
diff --git a/include/exec/log.h b/include/exec/log.h
index fcc7b9e00ba..3ed797c1c8c 100644
--- a/include/exec/log.h
+++ b/include/exec/log.h
@@ -56,13 +56,13 @@ static inline void log_target_disas(CPUState *cpu,
target_ulong start,
rcu_read_unlock();
}
-static inline void log_disas(void *code, unsigned long size)
+static inline void log_disas(void *code, unsigned long size, const char *note)
{
QemuLogFile *logfile;
rcu_read_lock();
logfile = atomic_rcu_read(&qemu_logfile);
if (logfile) {
- disas(logfile->fd, code, size);
+ disas(logfile->fd, code, size, note);
}
rcu_read_unlock();
}
diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c
index e4f703a7e6d..cdf58bb420e 100644
--- a/accel/tcg/translate-all.c
+++ b/accel/tcg/translate-all.c
@@ -1800,7 +1800,7 @@ TranslationBlock *tb_gen_code(CPUState *cpu,
size_t data_size = gen_code_size - code_size;
size_t i;
- log_disas(tb->tc.ptr, code_size);
+ log_disas(tb->tc.ptr, code_size, NULL);
for (i = 0; i < data_size; i += sizeof(tcg_target_ulong)) {
if (sizeof(tcg_target_ulong) == 8) {
@@ -1814,7 +1814,7 @@ TranslationBlock *tb_gen_code(CPUState *cpu,
}
}
} else {
- log_disas(tb->tc.ptr, gen_code_size);
+ log_disas(tb->tc.ptr, gen_code_size, NULL);
}
qemu_log("\n");
qemu_log_flush();
diff --git a/disas.c b/disas.c
index 3937da61571..7e8692de301 100644
--- a/disas.c
+++ b/disas.c
@@ -586,7 +586,7 @@ char *plugin_disas(CPUState *cpu, uint64_t addr, size_t
size)
}
/* Disassemble this for me please... (debugging). */
-void disas(FILE *out, void *code, unsigned long size)
+void disas(FILE *out, void *code, unsigned long size, const char *note)
{
uintptr_t pc;
int count;
@@ -674,10 +674,16 @@ void disas(FILE *out, void *code, unsigned long size)
for (pc = (uintptr_t)code; size > 0; pc += count, size -= count) {
fprintf(out, "0x%08" PRIxPTR ": ", pc);
count = print_insn(pc, &s.info);
- fprintf(out, "\n");
- if (count < 0)
- break;
+ if (note) {
+ fprintf(out, "\t\t%s", note);
+ note = NULL;
+ }
+ fprintf(out, "\n");
+ if (count < 0) {
+ break;
+ }
}
+
}
/* Look up symbol for debugging purpose. Returns "" if unknown. */
diff --git a/tcg/tcg.c b/tcg/tcg.c
index dd4b3d76844..a2268d9db0a 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -1092,7 +1092,7 @@ void tcg_prologue_init(TCGContext *s)
size_t data_size = prologue_size - code_size;
size_t i;
- log_disas(buf0, code_size);
+ log_disas(buf0, code_size, NULL);
for (i = 0; i < data_size; i += sizeof(tcg_target_ulong)) {
if (sizeof(tcg_target_ulong) == 8) {
@@ -1106,7 +1106,7 @@ void tcg_prologue_init(TCGContext *s)
}
}
} else {
- log_disas(buf0, prologue_size);
+ log_disas(buf0, prologue_size, NULL);
}
qemu_log("\n");
qemu_log_flush();
--
2.20.1
- [PULL v2 00/13] testing, tcg and plugin updates, Alex Bennée, 2020/05/15
- [PULL v2 01/13] tests/guest-debug: catch hanging guests, Alex Bennée, 2020/05/15
- [PULL v2 02/13] travis.yml: Improve the --disable-tcg test on s390x, Alex Bennée, 2020/05/15
- [PULL v2 04/13] exec/cpu-all: Use bool for have_guest_base, Alex Bennée, 2020/05/15
- [PULL v2 05/13] accel/tcg: Relax va restrictions on 64-bit guests, Alex Bennée, 2020/05/15
- [PULL v2 09/13] translate-all: include guest address in out_asm output, Alex Bennée, 2020/05/15
- [PULL v2 03/13] linux-user: completely re-write init_guest_space, Alex Bennée, 2020/05/15
- [PULL v2 06/13] accel/tcg: don't disable exec_tb trace events, Alex Bennée, 2020/05/15
- [PULL v2 08/13] disas: add optional note support to cap_disas, Alex Bennée, 2020/05/15
- [PULL v2 07/13] disas: include an optional note for the start of disassembly,
Alex Bennée <=
- [PULL v2 11/13] qemu/plugin: Move !CONFIG_PLUGIN stubs altogether, Alex Bennée, 2020/05/15
- [PULL v2 10/13] qemu/plugin: Trivial code movement, Alex Bennée, 2020/05/15
- [PULL v2 13/13] MAINTAINERS: update the orphaned cpus-common.c file, Alex Bennée, 2020/05/15
- [PULL v2 12/13] qemu/qemu-plugin: Make qemu_plugin_hwaddr_is_io() hwaddr argument const, Alex Bennée, 2020/05/15
- Re: [PULL v2 00/13] testing, tcg and plugin updates, Peter Maydell, 2020/05/15