Commit cff4cbedc3ae945442034970c828f4a631fedcab
1 parent
b1f9be31
Support -cpu selection for mips usermode emulation. Fix segfault when
dispaying the -cpu list help. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2497 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
10 additions
and
2 deletions
linux-user/main.c
| ... | ... | @@ -1644,7 +1644,7 @@ int main(int argc, char **argv) |
| 1644 | 1644 | #elif defined(TARGET_MIPS) |
| 1645 | 1645 | mips_cpu_list(stdout, &fprintf); |
| 1646 | 1646 | #endif |
| 1647 | - exit(1); | |
| 1647 | + _exit(1); | |
| 1648 | 1648 | } |
| 1649 | 1649 | } else |
| 1650 | 1650 | #ifdef USE_CODE_COPY |
| ... | ... | @@ -1849,9 +1849,17 @@ int main(int argc, char **argv) |
| 1849 | 1849 | } |
| 1850 | 1850 | #elif defined(TARGET_MIPS) |
| 1851 | 1851 | { |
| 1852 | + mips_def_t *def; | |
| 1852 | 1853 | int i; |
| 1853 | 1854 | |
| 1854 | - /* XXX: set CPU model */ | |
| 1855 | + /* Choose and initialise CPU */ | |
| 1856 | + if (cpu_model == NULL) | |
| 1857 | + cpu_model = "24Kf"; | |
| 1858 | + mips_find_by_name(cpu_model, &def); | |
| 1859 | + if (def == NULL) | |
| 1860 | + cpu_abort(env, "Unable to find MIPS CPU definition\n"); | |
| 1861 | + cpu_mips_register(env, def); | |
| 1862 | + | |
| 1855 | 1863 | for(i = 0; i < 32; i++) { |
| 1856 | 1864 | env->gpr[i] = regs->regs[i]; |
| 1857 | 1865 | } | ... | ... |