diff options
author | Robert Foley <robert.foley@linaro.org> | 2019-11-18 16:15:26 -0500 |
---|---|---|
committer | Alex Bennée <alex.bennee@linaro.org> | 2019-12-18 20:18:02 +0000 |
commit | fc59d2d870caddf5cd9c85836ee4a8c59ffe7617 (patch) | |
tree | bb6cf999b19d14bac59b5d789e7e0969c4dea091 /target/i386/translate.c | |
parent | b8121fe7c005dc3d56e82a0a5ce00563a5fd49d0 (diff) |
qemu_log_lock/unlock now preserves the qemu_logfile handle.
qemu_log_lock() now returns a handle and qemu_log_unlock() receives a
handle to unlock. This allows for changing the handle during logging
and ensures the lock() and unlock() are for the same file.
Also in target/tilegx/translate.c removed the qemu_log_lock()/unlock()
calls (and the log("\n")), since the translator can longjmp out of the
loop if it attempts to translate an instruction in an inaccessible page.
Signed-off-by: Robert Foley <robert.foley@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20191118211528.3221-5-robert.foley@linaro.org>
Diffstat (limited to 'target/i386/translate.c')
-rw-r--r-- | target/i386/translate.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/target/i386/translate.c b/target/i386/translate.c index 77e932d827..7c99ef1385 100644 --- a/target/i386/translate.c +++ b/target/i386/translate.c @@ -2502,14 +2502,15 @@ static void gen_unknown_opcode(CPUX86State *env, DisasContext *s) gen_illegal_opcode(s); if (qemu_loglevel_mask(LOG_UNIMP)) { + FILE *logfile = qemu_log_lock(); target_ulong pc = s->pc_start, end = s->pc; - qemu_log_lock(); + qemu_log("ILLOPC: " TARGET_FMT_lx ":", pc); for (; pc < end; ++pc) { qemu_log(" %02x", cpu_ldub_code(env, pc)); } qemu_log("\n"); - qemu_log_unlock(); + qemu_log_unlock(logfile); } } |