| 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 | } |