linux-user/m68k: Create init_main_thread
Merge init_thread and target_cpu_copy_regs. There's no point going through a target_pt_regs intermediate. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
011480ff59
commit
ff053f9c5a
2 changed files with 7 additions and 29 deletions
|
|
@ -746,16 +746,7 @@ static inline void elf_core_copy_regs(target_elf_gregset_t *regs,
|
|||
#define ELF_CLASS ELFCLASS32
|
||||
#define ELF_ARCH EM_68K
|
||||
|
||||
/* ??? Does this need to do anything?
|
||||
#define ELF_PLAT_INIT(_r) */
|
||||
|
||||
static inline void init_thread(struct target_pt_regs *regs,
|
||||
struct image_info *infop)
|
||||
{
|
||||
regs->usp = infop->start_stack;
|
||||
regs->sr = 0;
|
||||
regs->pc = infop->entry;
|
||||
}
|
||||
#define HAVE_INIT_MAIN_THREAD
|
||||
|
||||
/* See linux kernel: arch/m68k/include/asm/elf.h. */
|
||||
#define ELF_NREG 20
|
||||
|
|
|
|||
|
|
@ -92,24 +92,11 @@ void cpu_loop(CPUM68KState *env)
|
|||
}
|
||||
}
|
||||
|
||||
void target_cpu_copy_regs(CPUArchState *env, target_pt_regs *regs)
|
||||
void init_main_thread(CPUState *cs, struct image_info *info)
|
||||
{
|
||||
env->pc = regs->pc;
|
||||
env->dregs[0] = regs->d0;
|
||||
env->dregs[1] = regs->d1;
|
||||
env->dregs[2] = regs->d2;
|
||||
env->dregs[3] = regs->d3;
|
||||
env->dregs[4] = regs->d4;
|
||||
env->dregs[5] = regs->d5;
|
||||
env->dregs[6] = regs->d6;
|
||||
env->dregs[7] = regs->d7;
|
||||
env->aregs[0] = regs->a0;
|
||||
env->aregs[1] = regs->a1;
|
||||
env->aregs[2] = regs->a2;
|
||||
env->aregs[3] = regs->a3;
|
||||
env->aregs[4] = regs->a4;
|
||||
env->aregs[5] = regs->a5;
|
||||
env->aregs[6] = regs->a6;
|
||||
env->aregs[7] = regs->usp;
|
||||
env->sr = regs->sr;
|
||||
CPUArchState *env = cpu_env(cs);
|
||||
|
||||
env->pc = info->entry;
|
||||
env->aregs[7] = info->start_stack;
|
||||
env->sr = 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue