]> git.proxmox.com Git - qemu.git/commitdiff
target-arm: Move TCG initialization to ARMCPU initfn
authorAndreas Färber <afaerber@suse.de>
Sat, 19 Jan 2013 06:37:45 +0000 (07:37 +0100)
committerAndreas Färber <afaerber@suse.de>
Sat, 16 Feb 2013 13:50:58 +0000 (14:50 +0100)
Ensures that a QOM-created ARMCPU is usable.

Signed-off-by: Andreas Färber <afaerber@suse.de>
target-arm/cpu.c
target-arm/helper.c

index 9915172a1d5b58bf9f592bf4d9076e885282d9bb..f54d20057df60d751b295b643654236b31206e0f 100644 (file)
@@ -135,10 +135,16 @@ static inline void set_feature(CPUARMState *env, int feature)
 static void arm_cpu_initfn(Object *obj)
 {
     ARMCPU *cpu = ARM_CPU(obj);
+    static bool inited;
 
     cpu_exec_init(&cpu->env);
     cpu->cp_regs = g_hash_table_new_full(g_int_hash, g_int_equal,
                                          g_free, g_free);
+
+    if (tcg_enabled() && !inited) {
+        inited = true;
+        arm_translate_init();
+    }
 }
 
 static void arm_cpu_finalizefn(Object *obj)
index 4538a09445fba243ad23636e4fa993c42f8a40ca..e63da57a51e324bafeab2c54f774f12ecbf1f3e0 100644 (file)
@@ -1263,7 +1263,6 @@ ARMCPU *cpu_arm_init(const char *cpu_model)
     ARMCPU *cpu;
     CPUARMState *env;
     ObjectClass *oc;
-    static int inited = 0;
 
     oc = cpu_class_by_name(TYPE_ARM_CPU, cpu_model);
     if (!oc) {
@@ -1276,11 +1275,6 @@ ARMCPU *cpu_arm_init(const char *cpu_model)
     /* TODO this should be set centrally, once possible */
     object_property_set_bool(OBJECT(cpu), true, "realized", NULL);
 
-    if (tcg_enabled() && !inited) {
-        inited = 1;
-        arm_translate_init();
-    }
-
     return cpu;
 }