xref: /openbmc/qemu/linux-user/m68k/elfload.c (revision 4791f22a5f5571cb248b1eddff98630545b3fd3e)
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #include "qemu/osdep.h"
4 #include "qemu.h"
5 #include "loader.h"
6 #include "elf.h"
7 #include "target_elf.h"
8 
9 
10 const char *get_elf_cpu_model(uint32_t eflags)
11 {
12     if (eflags == 0 || (eflags & EF_M68K_M68000)) {
13         /* 680x0 */
14         return "m68040";
15     }
16 
17     /* Coldfire */
18     return "any";
19 }
20 
21 void elf_core_copy_regs(target_elf_gregset_t *r, const CPUM68KState *env)
22 {
23     r->d1 = tswapal(env->dregs[1]);
24     r->d2 = tswapal(env->dregs[2]);
25     r->d3 = tswapal(env->dregs[3]);
26     r->d4 = tswapal(env->dregs[4]);
27     r->d5 = tswapal(env->dregs[5]);
28     r->d6 = tswapal(env->dregs[6]);
29     r->d7 = tswapal(env->dregs[7]);
30     r->a0 = tswapal(env->aregs[0]);
31     r->a1 = tswapal(env->aregs[1]);
32     r->a2 = tswapal(env->aregs[2]);
33     r->a3 = tswapal(env->aregs[3]);
34     r->a4 = tswapal(env->aregs[4]);
35     r->a5 = tswapal(env->aregs[5]);
36     r->a6 = tswapal(env->aregs[6]);
37     r->d0 = tswapal(env->dregs[0]);
38     r->usp = tswapal(env->aregs[7]);
39     r->orig_d0 = tswapal(env->dregs[0]); /* FIXME */
40     r->sr = tswapal(env->sr);
41     r->pc = tswapal(env->pc);
42     /* FIXME: regs->format | regs->vector */
43 }
44