aboutsummaryrefslogtreecommitdiff
path: root/accel
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2024-04-02 22:57:16 -1000
committerRichard Henderson <richard.henderson@linaro.org>2024-05-15 08:55:18 +0200
commit962a145cdcd118f19597c08939ca24fd6227bc36 (patch)
tree29ad232593ed0eaade0f61345c67155767a1231f /accel
parent34e5e1dde5b9760936a6e2426f5ff0d55a0695b0 (diff)
accel/tcg: Provide default implementation of disas_log
Almost all of the disas_log implementations are identical. Unify them within translator_loop. Drop extra Priv/Virt logging from target/riscv. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'accel')
-rw-r--r--accel/tcg/translator.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/accel/tcg/translator.c b/accel/tcg/translator.c
index 157b447810..98d2500c53 100644
--- a/accel/tcg/translator.c
+++ b/accel/tcg/translator.c
@@ -17,6 +17,7 @@
#include "exec/cpu_ldst.h"
#include "tcg/tcg-op-common.h"
#include "internal-target.h"
+#include "disas/disas.h"
static void set_can_do_io(DisasContextBase *db, bool val)
{
@@ -226,7 +227,13 @@ void translator_loop(CPUState *cpu, TranslationBlock *tb, int *max_insns,
FILE *logfile = qemu_log_trylock();
if (logfile) {
fprintf(logfile, "----------------\n");
- ops->disas_log(db, cpu, logfile);
+
+ if (ops->disas_log) {
+ ops->disas_log(db, cpu, logfile);
+ } else {
+ fprintf(logfile, "IN: %s\n", lookup_symbol(db->pc_first));
+ target_disas(logfile, cpu, db->pc_first, db->tb->size);
+ }
fprintf(logfile, "\n");
qemu_log_unlock(logfile);
}