Support -cpu selection for mips usermode emulation. Fix segfault when
authorths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Mon, 19 Mar 2007 12:16:29 +0000 (12:16 +0000)
committerths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Mon, 19 Mar 2007 12:16:29 +0000 (12:16 +0000)
dispaying the -cpu list help.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2497 c046a42c-6fe2-441c-8c8c-71466251a162

linux-user/main.c

index b5a0247..0c5e6b5 100644 (file)
@@ -1644,7 +1644,7 @@ int main(int argc, char **argv)
 #elif defined(TARGET_MIPS)
                 mips_cpu_list(stdout, &fprintf);
 #endif
-                exit(1);
+                _exit(1);
             }
         } else 
 #ifdef USE_CODE_COPY
@@ -1849,9 +1849,17 @@ int main(int argc, char **argv)
     }
 #elif defined(TARGET_MIPS)
     {
+        mips_def_t *def;
         int i;
 
-        /* XXX: set CPU model */
+        /* Choose and initialise CPU */
+        if (cpu_model == NULL)
+            cpu_model = "24Kf";
+        mips_find_by_name(cpu_model, &def);
+        if (def == NULL)
+            cpu_abort(env, "Unable to find MIPS CPU definition\n");
+        cpu_mips_register(env, def);
+
         for(i = 0; i < 32; i++) {
             env->gpr[i] = regs->regs[i];
         }