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,7 +1644,7 @@ int main(int argc, char **argv) | ||
| 1644 | #elif defined(TARGET_MIPS) | 1644 | #elif defined(TARGET_MIPS) |
| 1645 | mips_cpu_list(stdout, &fprintf); | 1645 | mips_cpu_list(stdout, &fprintf); |
| 1646 | #endif | 1646 | #endif |
| 1647 | - exit(1); | 1647 | + _exit(1); |
| 1648 | } | 1648 | } |
| 1649 | } else | 1649 | } else |
| 1650 | #ifdef USE_CODE_COPY | 1650 | #ifdef USE_CODE_COPY |
| @@ -1849,9 +1849,17 @@ int main(int argc, char **argv) | @@ -1849,9 +1849,17 @@ int main(int argc, char **argv) | ||
| 1849 | } | 1849 | } |
| 1850 | #elif defined(TARGET_MIPS) | 1850 | #elif defined(TARGET_MIPS) |
| 1851 | { | 1851 | { |
| 1852 | + mips_def_t *def; | ||
| 1852 | int i; | 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 | for(i = 0; i < 32; i++) { | 1863 | for(i = 0; i < 32; i++) { |
| 1856 | env->gpr[i] = regs->regs[i]; | 1864 | env->gpr[i] = regs->regs[i]; |
| 1857 | } | 1865 | } |