diff options
| author | Richard Henderson <richard.henderson@linaro.org> | 2025-07-29 06:17:52 -1000 |
|---|---|---|
| committer | Richard Henderson <richard.henderson@linaro.org> | 2025-08-30 07:04:03 +1000 |
| commit | 952916bb8fae405fd9f25be6c3ad0f6f8525ddbf (patch) | |
| tree | f0629e54262578b0c8742394d4ab61f345761087 /linux-user/elfload.c | |
| parent | 59b51b4e7cacca78d0f60e3817150d2c29423d54 (diff) | |
| download | focaccia-qemu-952916bb8fae405fd9f25be6c3ad0f6f8525ddbf.tar.gz focaccia-qemu-952916bb8fae405fd9f25be6c3ad0f6f8525ddbf.zip | |
linux-user: Move elf_core_copy_regs to xtensa/elfload.c
Move elf_core_copy_regs to elfload.c. Move HAVE_ELF_CORE_DUMP, ELF_NREGS, target_elf_gregset_t to target_elf.h. For now, duplicate the definitions of target_elf_greg_t and tswapreg. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'linux-user/elfload.c')
| -rw-r--r-- | linux-user/elfload.c | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/linux-user/elfload.c b/linux-user/elfload.c index 7c783b74d4..5cdbdc20d9 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -531,45 +531,6 @@ static bool init_guest_commpage(void) #define ELF_CLASS ELFCLASS32 #define ELF_ARCH EM_XTENSA -/* See linux kernel: arch/xtensa/include/asm/elf.h. */ -#define ELF_NREG 128 -typedef struct target_elf_gregset_t { - target_elf_greg_t regs[ELF_NREG]; -} target_elf_gregset_t; - -enum { - TARGET_REG_PC, - TARGET_REG_PS, - TARGET_REG_LBEG, - TARGET_REG_LEND, - TARGET_REG_LCOUNT, - TARGET_REG_SAR, - TARGET_REG_WINDOWSTART, - TARGET_REG_WINDOWBASE, - TARGET_REG_THREADPTR, - TARGET_REG_AR0 = 64, -}; - -void elf_core_copy_regs(target_elf_gregset_t *r, const CPUXtensaState *env) -{ - unsigned i; - - r->regs[TARGET_REG_PC] = tswapreg(env->pc); - r->regs[TARGET_REG_PS] = tswapreg(env->sregs[PS] & ~PS_EXCM); - r->regs[TARGET_REG_LBEG] = tswapreg(env->sregs[LBEG]); - r->regs[TARGET_REG_LEND] = tswapreg(env->sregs[LEND]); - r->regs[TARGET_REG_LCOUNT] = tswapreg(env->sregs[LCOUNT]); - r->regs[TARGET_REG_SAR] = tswapreg(env->sregs[SAR]); - r->regs[TARGET_REG_WINDOWSTART] = tswapreg(env->sregs[WINDOW_START]); - r->regs[TARGET_REG_WINDOWBASE] = tswapreg(env->sregs[WINDOW_BASE]); - r->regs[TARGET_REG_THREADPTR] = tswapreg(env->uregs[THREADPTR]); - xtensa_sync_phys_from_window((CPUXtensaState *)env); - for (i = 0; i < env->config->nareg; ++i) { - r->regs[TARGET_REG_AR0 + i] = tswapreg(env->phys_regs[i]); - } -} - -#define HAVE_ELF_CORE_DUMP #define ELF_EXEC_PAGESIZE 4096 #endif /* TARGET_XTENSA */ |