@samitouri / QOSamiQemu / commits / 474ad68669

linux-user/hppa: write the floating-point registers to a core dump

Write an NT_FPREGSET note for HPPA, matching the kernel's elf_fpregset_t layout (ELF_NFPREG = 32): fr0-fr31 as 64-bit values. Signed-off-by: Matt Turner <mattst88@gmail.com> Reviewed-by: Helge Deller <deller@gmx.de> Signed-off-by: Helge Deller <deller@gmx.de>

Matt Turner committed Aug 5, 2026 at 13:15 UTC 474ad686693c8faeba34fd9e46ec81c98bb015ab
2 files changed +16
linux-user/hppa/elfload.c
+7
@@ -17,6 +17,13 @@ const char *get_elf_platform(CPUState *cs)
17 return "PARISC";
18 }
19
20 +void elf_core_copy_fpregs(target_elf_fpregset_t *r, const CPUArchState *env)
21 +{
22 + for (int i = 0; i < 32; i++) {
23 + r->fpr[i] = tswap64(env->fr[i]);
24 + }
25 +}
26 +
27 void elf_core_copy_regs(target_elf_gregset_t *r, const CPUArchState *env)
28 {
29 int i;
linux-user/hppa/target_elf.h
+9
@@ -39,4 +39,13 @@ typedef struct target_elf_gregset_t {
39 #define STACK_ALIGNMENT 64
40 #define VDSO_HEADER "vdso.c.inc"
41
42 +#define HAVE_ELF_CORE_FPREGS 1
43 +
44 +/*
45 + * Matches the kernel's elf_fpregset_t (ELF_NFPREG = 32): fr0-fr31.
46 + */
47 +typedef struct target_elf_fpregset_t {
48 + uint64_t fpr[32];
49 +} target_elf_fpregset_t;
50 +
51 #endif