summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorBlue Swirl <blauwirbel@gmail.com>2009-11-07 10:37:06 +0000
committerBlue Swirl <blauwirbel@gmail.com>2009-11-07 10:37:06 +0000
commitb55a37c981914aa8ecd21b9a2a2fb37f39b917c5 (patch)
tree934166a6ed652b1afb19733479d08260676ab9da
parentd84bda46de13c7d1536545fb44c8e9341054094a (diff)
downloadfocaccia-qemu-b55a37c981914aa8ecd21b9a2a2fb37f39b917c5.tar.gz
focaccia-qemu-b55a37c981914aa8ecd21b9a2a2fb37f39b917c5.zip
user: move CPU reset call to main.c for x86/PPC/Sparc
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
-rw-r--r--bsd-user/main.c3
-rw-r--r--darwin-user/main.c1
-rw-r--r--linux-user/main.c4
-rw-r--r--target-i386/helper.c3
-rw-r--r--target-ppc/helper.c3
-rw-r--r--target-sparc/helper.c3
6 files changed, 8 insertions, 9 deletions
diff --git a/bsd-user/main.c b/bsd-user/main.c
index 19b7f3a1f7..9f8683d2e6 100644
--- a/bsd-user/main.c
+++ b/bsd-user/main.c
@@ -891,6 +891,9 @@ int main(int argc, char **argv)
         fprintf(stderr, "Unable to find CPU definition\n");
         exit(1);
     }
+#if defined(TARGET_I386) || defined(TARGET_SPARC) || defined(TARGET_PPC)
+    cpu_reset(env);
+#endif
     thread_env = env;
 
     if (getenv("QEMU_STRACE")) {
diff --git a/darwin-user/main.c b/darwin-user/main.c
index 9f0e0149f3..5fd314ecd9 100644
--- a/darwin-user/main.c
+++ b/darwin-user/main.c
@@ -846,6 +846,7 @@ int main(int argc, char **argv)
     /* NOTE: we need to init the CPU at this stage to get
        qemu_host_page_size */
     env = cpu_init(cpu_model);
+    cpu_reset(env);
 
     printf("Starting %s with qemu\n----------------\n", filename);
 
diff --git a/linux-user/main.c b/linux-user/main.c
index 81a1ada50b..bcc36f256b 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -2618,6 +2618,10 @@ int main(int argc, char **argv, char **envp)
         fprintf(stderr, "Unable to find CPU definition\n");
         exit(1);
     }
+#if defined(TARGET_I386) || defined(TARGET_SPARC) || defined(TARGET_PPC)
+    cpu_reset(env);
+#endif
+
     thread_env = env;
 
     if (getenv("QEMU_STRACE")) {
diff --git a/target-i386/helper.c b/target-i386/helper.c
index 3fff1bbed1..957b3fc1f2 100644
--- a/target-i386/helper.c
+++ b/target-i386/helper.c
@@ -1885,9 +1885,6 @@ CPUX86State *cpu_x86_init(const char *cpu_model)
         return NULL;
     }
     mce_init(env);
-#ifdef CONFIG_USER_ONLY
-    cpu_reset(env);
-#endif
 
     qemu_init_vcpu(env);
 
diff --git a/target-ppc/helper.c b/target-ppc/helper.c
index 8d383e0d5a..b233d4f535 100644
--- a/target-ppc/helper.c
+++ b/target-ppc/helper.c
@@ -2810,9 +2810,6 @@ CPUPPCState *cpu_ppc_init (const char *cpu_model)
     ppc_translate_init();
     env->cpu_model_str = cpu_model;
     cpu_ppc_register_internal(env, def);
-#if defined(CONFIG_USER_ONLY)
-    cpu_reset(env);
-#endif
 
     qemu_init_vcpu(env);
 
diff --git a/target-sparc/helper.c b/target-sparc/helper.c
index b8e7a5e12b..d83ba139b3 100644
--- a/target-sparc/helper.c
+++ b/target-sparc/helper.c
@@ -762,9 +762,6 @@ CPUSPARCState *cpu_sparc_init(const char *cpu_model)
         cpu_sparc_close(env);
         return NULL;
     }
-#if defined(CONFIG_USER_ONLY)
-    cpu_reset(env);
-#endif
     qemu_init_vcpu(env);
 
     return env;