From: Richard Henderson Date: Thu, 28 Aug 2025 02:09:26 +0000 (+1000) Subject: linux-user/openrisc: Expand target_elf_gregset_t X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=611dd00a45860027f51281fc31e6428aefc8a003;p=thirdparty%2Fqemu.git linux-user/openrisc: Expand target_elf_gregset_t Make use of the fact that target_elf_gregset_t is a proper structure. Drop ELF_NREG, target_elf_greg_t, and tswapreg. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- diff --git a/linux-user/openrisc/elfload.c b/linux-user/openrisc/elfload.c index bb5ad967113..6bf02bf58d7 100644 --- a/linux-user/openrisc/elfload.c +++ b/linux-user/openrisc/elfload.c @@ -11,13 +11,11 @@ const char *get_elf_cpu_model(uint32_t eflags) return "any"; } -#define tswapreg(ptr) tswapal(ptr) - void elf_core_copy_regs(target_elf_gregset_t *r, const CPUOpenRISCState *env) { for (int i = 0; i < 32; i++) { - r->regs[i] = tswapreg(cpu_get_gpr(env, i)); + r->pt.gpr[i] = tswapal(cpu_get_gpr(env, i)); } - r->regs[32] = tswapreg(env->pc); - r->regs[33] = tswapreg(cpu_get_sr(env)); + r->pt.pc = tswapal(env->pc); + r->pt.sr = tswapal(cpu_get_sr(env)); } diff --git a/linux-user/openrisc/target_elf.h b/linux-user/openrisc/target_elf.h index e97bdc11ed9..ad80e4b41ae 100644 --- a/linux-user/openrisc/target_elf.h +++ b/linux-user/openrisc/target_elf.h @@ -8,14 +8,16 @@ #ifndef OPENRISC_TARGET_ELF_H #define OPENRISC_TARGET_ELF_H -#define HAVE_ELF_CORE_DUMP 1 +#include "target_ptrace.h" -typedef abi_ulong target_elf_greg_t; +#define HAVE_ELF_CORE_DUMP 1 -/* See linux kernel arch/openrisc/include/asm/elf.h. */ -#define ELF_NREG 34 /* gprs and pc, sr */ +/* + * See linux kernel: arch/openrisc/include/uapi/asm/elf.h, where + * elf_gregset_t is mapped to struct user_regs_struct via sizeof. + */ typedef struct target_elf_gregset_t { - target_elf_greg_t regs[ELF_NREG]; + struct target_user_regs_struct pt; } target_elf_gregset_t; #endif