mirror of https://github.com/proxmox/mirror_qemu
target-arm: A64: Add support for dumping AArch64 VFP register state
When dumping the current CPU state, we can also get a request to dump the FPU state along with the CPU's integer state. Add support to dump the VFP state when that flag is set, so that we can properly debug code that modifies floating point registers. Signed-off-by: Alexander Graf <agraf@suse.de> [WN: Commit message tweak, rebased. Output all registers, two per-line.] Signed-off-by: Will Newton <will.newton@linaro.org> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <rth@twiddle.net>master
parent
13a7f79dfe
commit
f6d8a31440
|
@ -119,6 +119,22 @@ void aarch64_cpu_dump_state(CPUState *cs, FILE *f,
|
||||||
psr & PSTATE_C ? 'C' : '-',
|
psr & PSTATE_C ? 'C' : '-',
|
||||||
psr & PSTATE_V ? 'V' : '-');
|
psr & PSTATE_V ? 'V' : '-');
|
||||||
cpu_fprintf(f, "\n");
|
cpu_fprintf(f, "\n");
|
||||||
|
|
||||||
|
if (flags & CPU_DUMP_FPU) {
|
||||||
|
int numvfpregs = 32;
|
||||||
|
for (i = 0; i < numvfpregs; i += 2) {
|
||||||
|
uint64_t vlo = float64_val(env->vfp.regs[i * 2]);
|
||||||
|
uint64_t vhi = float64_val(env->vfp.regs[(i * 2) + 1]);
|
||||||
|
cpu_fprintf(f, "q%02d=%016" PRIx64 ":%016" PRIx64 " ",
|
||||||
|
i, vhi, vlo);
|
||||||
|
vlo = float64_val(env->vfp.regs[(i + 1) * 2]);
|
||||||
|
vhi = float64_val(env->vfp.regs[((i + 1) * 2) + 1]);
|
||||||
|
cpu_fprintf(f, "q%02d=%016" PRIx64 ":%016" PRIx64 "\n",
|
||||||
|
i + 1, vhi, vlo);
|
||||||
|
}
|
||||||
|
cpu_fprintf(f, "FPCR: %08x FPSR: %08x\n",
|
||||||
|
vfp_get_fpcr(env), vfp_get_fpsr(env));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int get_mem_index(DisasContext *s)
|
static int get_mem_index(DisasContext *s)
|
||||||
|
|
Loading…
Reference in New Issue