From: Vladimir Isaev Date: Fri, 15 Aug 2025 14:06:33 +0000 (+0300) Subject: target/riscv: do not use translator_ldl in opcode_at X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a86d3352ab70f33f5feabbf9bad9450d3c19d0bf;p=thirdparty%2Fqemu.git target/riscv: do not use translator_ldl in opcode_at opcode_at is used only in semihosting checks to match opcodes with expected pattern. This is not a translator and if we got following assert if page is not in TLB: qemu-system-riscv64: ../accel/tcg/translator.c:363: record_save: Assertion `offset == db->record_start + db->record_len' failed. Fixes: 1f9c4462334f ("target/riscv: Use translator_ld* for everything") Signed-off-by: Vladimir Isaev Reviewed-by: Richard Henderson Message-ID: <20250815140633.86920-1-vladimir.isaev@syntacore.com> [ Changes by AF: - Fixup header includes after rebase ] Signed-off-by: Alistair Francis --- diff --git a/target/riscv/translate.c b/target/riscv/translate.c index 9ddef2d6e2a..6fc06c71f51 100644 --- a/target/riscv/translate.c +++ b/target/riscv/translate.c @@ -24,6 +24,7 @@ #include "exec/helper-gen.h" #include "exec/target_page.h" #include "exec/translator.h" +#include "accel/tcg/cpu-ldst.h" #include "exec/translation-block.h" #include "exec/log.h" #include "semihosting/semihost.h" @@ -1166,7 +1167,7 @@ static uint32_t opcode_at(DisasContextBase *dcbase, target_ulong pc) CPUState *cpu = ctx->cs; CPURISCVState *env = cpu_env(cpu); - return translator_ldl(env, &ctx->base, pc); + return cpu_ldl_code(env, pc); } #define SS_MMU_INDEX(ctx) (ctx->mem_idx | MMU_IDX_SS_WRITE)