From 7d662d328df35adad1ec5362d1bfba59518402d1 Mon Sep 17 00:00:00 2001 From: Song Gao Date: Tue, 30 Dec 2025 19:30:01 +0800 Subject: [PATCH] target/loongarch: Fix exception BCE missing to update CSR_BADV Exception BCE need update CSR_BADV, and the value is env->pc. Signed-off-by: Song Gao Signed-off-by: Bibo Mao Reviewed-by: Bibo Mao (cherry picked from commit e4f0ef58d53eb20056f9f3ca9f21dbbbf25f2530) Signed-off-by: Michael Tokarev --- target/loongarch/tcg/tcg_cpu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/target/loongarch/tcg/tcg_cpu.c b/target/loongarch/tcg/tcg_cpu.c index ab247e82ec..c05a06eeb5 100644 --- a/target/loongarch/tcg/tcg_cpu.c +++ b/target/loongarch/tcg/tcg_cpu.c @@ -113,6 +113,9 @@ static void loongarch_cpu_do_interrupt(CPUState *cs) cause = cs->exception_index; update_badinstr = 0; break; + case EXCCODE_BCE: + env->CSR_BADV = env->pc; + QEMU_FALLTHROUGH; case EXCCODE_SYS: case EXCCODE_BRK: case EXCCODE_INE: @@ -121,7 +124,6 @@ static void loongarch_cpu_do_interrupt(CPUState *cs) case EXCCODE_FPE: case EXCCODE_SXD: case EXCCODE_ASXD: - case EXCCODE_BCE: case EXCCODE_ADEM: case EXCCODE_PIL: case EXCCODE_PIS: