You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
qemu/linux-user/m68k/elfload.c

44 lines
1.1 KiB
C

/* SPDX-License-Identifier: GPL-2.0-or-later */
#include "qemu/osdep.h"
#include "qemu.h"
#include "loader.h"
#include "elf.h"
#include "target_elf.h"
const char *get_elf_cpu_model(uint32_t eflags)
{
if (eflags == 0 || (eflags & EF_M68K_M68000)) {
/* 680x0 */
return "m68040";
}
/* Coldfire */
return "any";
}
void elf_core_copy_regs(target_elf_gregset_t *r, const CPUM68KState *env)
{
r->d1 = tswapal(env->dregs[1]);
r->d2 = tswapal(env->dregs[2]);
r->d3 = tswapal(env->dregs[3]);
r->d4 = tswapal(env->dregs[4]);
r->d5 = tswapal(env->dregs[5]);
r->d6 = tswapal(env->dregs[6]);
r->d7 = tswapal(env->dregs[7]);
r->a0 = tswapal(env->aregs[0]);
r->a1 = tswapal(env->aregs[1]);
r->a2 = tswapal(env->aregs[2]);
r->a3 = tswapal(env->aregs[3]);
r->a4 = tswapal(env->aregs[4]);
r->a5 = tswapal(env->aregs[5]);
r->a6 = tswapal(env->aregs[6]);
r->d0 = tswapal(env->dregs[0]);
r->usp = tswapal(env->aregs[7]);
r->orig_d0 = tswapal(env->dregs[0]); /* FIXME */
r->sr = tswapal(env->sr);
r->pc = tswapal(env->pc);
/* FIXME: regs->format | regs->vector */
}