Signed-off-by: Richard Henderson <richard.hender...@linaro.org> --- linux-user/elfload.c | 27 +-------------------------- linux-user/arm/target_coredump.c.inc | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 26 deletions(-) create mode 100644 linux-user/arm/target_coredump.c.inc
diff --git a/linux-user/elfload.c b/linux-user/elfload.c index b315a5a243..b35f35b2a6 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -229,32 +229,7 @@ static bool init_guest_commpage(void) #define ELF_CLASS ELFCLASS32 #define EXSTACK_DEFAULT true -#define ELF_NREG 18 -typedef target_elf_greg_t target_elf_gregset_t[ELF_NREG]; - -static void elf_core_copy_regs(target_elf_gregset_t *regs, const CPUARMState *env) -{ - (*regs)[0] = tswapreg(env->regs[0]); - (*regs)[1] = tswapreg(env->regs[1]); - (*regs)[2] = tswapreg(env->regs[2]); - (*regs)[3] = tswapreg(env->regs[3]); - (*regs)[4] = tswapreg(env->regs[4]); - (*regs)[5] = tswapreg(env->regs[5]); - (*regs)[6] = tswapreg(env->regs[6]); - (*regs)[7] = tswapreg(env->regs[7]); - (*regs)[8] = tswapreg(env->regs[8]); - (*regs)[9] = tswapreg(env->regs[9]); - (*regs)[10] = tswapreg(env->regs[10]); - (*regs)[11] = tswapreg(env->regs[11]); - (*regs)[12] = tswapreg(env->regs[12]); - (*regs)[13] = tswapreg(env->regs[13]); - (*regs)[14] = tswapreg(env->regs[14]); - (*regs)[15] = tswapreg(env->regs[15]); - - (*regs)[16] = tswapreg(cpsr_read((CPUARMState *)env)); - (*regs)[17] = tswapreg(env->regs[0]); /* XXX */ -} - +#include "target_coredump.c.inc" #define USE_ELF_CORE_DUMP #define ELF_EXEC_PAGESIZE 4096 diff --git a/linux-user/arm/target_coredump.c.inc b/linux-user/arm/target_coredump.c.inc new file mode 100644 index 0000000000..e3cb51b145 --- /dev/null +++ b/linux-user/arm/target_coredump.c.inc @@ -0,0 +1,28 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#define ELF_NREG 18 +typedef target_elf_greg_t target_elf_gregset_t[ELF_NREG]; + +static void elf_core_copy_regs(target_elf_gregset_t *regs, + const CPUARMState *env) +{ + (*regs)[0] = tswapreg(env->regs[0]); + (*regs)[1] = tswapreg(env->regs[1]); + (*regs)[2] = tswapreg(env->regs[2]); + (*regs)[3] = tswapreg(env->regs[3]); + (*regs)[4] = tswapreg(env->regs[4]); + (*regs)[5] = tswapreg(env->regs[5]); + (*regs)[6] = tswapreg(env->regs[6]); + (*regs)[7] = tswapreg(env->regs[7]); + (*regs)[8] = tswapreg(env->regs[8]); + (*regs)[9] = tswapreg(env->regs[9]); + (*regs)[10] = tswapreg(env->regs[10]); + (*regs)[11] = tswapreg(env->regs[11]); + (*regs)[12] = tswapreg(env->regs[12]); + (*regs)[13] = tswapreg(env->regs[13]); + (*regs)[14] = tswapreg(env->regs[14]); + (*regs)[15] = tswapreg(env->regs[15]); + + (*regs)[16] = tswapreg(cpsr_read((CPUARMState *)env)); + (*regs)[17] = tswapreg(env->regs[0]); /* XXX */ +} -- 2.43.0