From 1e271b6d534ee23cb3b8a1aa6af530eddf05e547 Mon Sep 17 00:00:00 2001 From: SashegDev Date: Sun, 13 Sep 2026 00:07:29 +0000 Subject: [PATCH] saimaa: log DFAR/IFSR/DFSR in vec trap --- qemu/saimaa.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/qemu/saimaa.c b/qemu/saimaa.c index 03e04a0..a149865 100644 --- a/qemu/saimaa.c +++ b/qemu/saimaa.c @@ -193,9 +193,18 @@ static uint64_t saimaa_vec_read(void *opaque, hwaddr off, unsigned size) ARMCPU *cpu = ARM_CPU(current_cpu); uint64_t pc = cpu ? cpu->env.regs[15] : 0; int th = cpu ? cpu->env.thumb : 0; + uint32_t dfar = 0, ifsr = 0, dfsr = 0; + if (cpu) { + /* CP15 DFAR/IFSR/DFSR for abort diagnosis */ + dfar = cpu->env.cp15.c6_data; + ifsr = cpu->env.cp15.c6_insn; + dfsr = cpu->env.cp15.c5_data; + } fprintf(stderr, "saimaa-vec: %s off=0x%x pc=0x%lx", size == 2 ? "fetch?" : "read", (unsigned)off, (unsigned long)pc - (th ? 4 : 8)); + fprintf(stderr, " DFAR=0x%x IFSR=0x%x DFSR=0x%x", dfar, ifsr, + dfsr); if (cpu) { int b, r; fprintf(stderr, " regs=");