[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC 10/13] cpu_x86_create: reorder parsing of CPU model st
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [RFC 10/13] cpu_x86_create: reorder parsing of CPU model string and creation of CPU object |
Date: |
Thu, 16 Aug 2012 13:59:09 -0300 |
A step towards making the creation of CPU objects use the CPU model name
as class name.
Signed-off-by: Eduardo Habkost <address@hidden>
---
target-i386/cpu.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index e7f32fc..2e24e00 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -1508,18 +1508,19 @@ X86CPU *cpu_x86_create(const char *cpu_model)
QDict *features = NULL;
char *name = NULL;
- cpu = X86_CPU(object_new(TYPE_X86_CPU));
- env = &cpu->env;
- env->cpu_model_str = cpu_model;
-
/* for CPU subclasses should go into cpu_x86_init() before object_new() */
compat_normalize_cpu_model(cpu_model, &name, &features, &error);
if (error_is_set(&error)) {
- goto error;
+ goto error_normalize;
}
/* this block should be replaced by CPU subclasses */
memset(def, 0, sizeof(*def));
+
+ cpu = X86_CPU(object_new(TYPE_X86_CPU));
+ env = &cpu->env;
+ env->cpu_model_str = cpu_model;
+
if (cpu_x86_find_by_name(cpu, def, name, &error) < 0) {
goto error;
}
@@ -1538,13 +1539,14 @@ X86CPU *cpu_x86_create(const char *cpu_model)
x86_cpu_realize(OBJECT(cpu), NULL);
return cpu;
error:
+ object_delete(OBJECT(cpu));
+error_normalize:
QDECREF(features);
g_free(name);
if (error_is_set(&error)) {
fprintf(stderr, "%s\n", error_get_pretty(error));
error_free(error);
}
- object_delete(OBJECT(cpu));
return NULL;
}
--
1.7.11.2
- [Qemu-devel] [RFC 02/13] x86_cpudef_setup: coding style change, (continued)
- [Qemu-devel] [RFC 02/13] x86_cpudef_setup: coding style change, Eduardo Habkost, 2012/08/16
- [Qemu-devel] [RFC 04/13] move CPU x86 object creation to cpu.c, Eduardo Habkost, 2012/08/16
- [Qemu-devel] [RFC 13/13] HACK to initialize types later, Eduardo Habkost, 2012/08/16
- [Qemu-devel] [RFC 11/13] check for NULL cpu_model outside cpu_x86_find_by_name, Eduardo Habkost, 2012/08/16
- [Qemu-devel] [RFC 07/13] cpu_x86_create: move error handling to end of function, Eduardo Habkost, 2012/08/16
- [Qemu-devel] [RFC 03/13] i386: x86_def_t: rename 'flags' field, Eduardo Habkost, 2012/08/16
- [Qemu-devel] [RFC 01/13] target-i386/cpu.c: coding style fixes, Eduardo Habkost, 2012/08/16
- [Qemu-devel] [RFC 05/13] rename x86_def_t to X86CPUDefinition, Eduardo Habkost, 2012/08/16
- [Qemu-devel] [RFC 09/13] kill cpu_x86_register(), Eduardo Habkost, 2012/08/16
- [Qemu-devel] [RFC 06/13] move X86CPUDefinition to cpu-qom.h, Eduardo Habkost, 2012/08/16
- [Qemu-devel] [RFC 10/13] cpu_x86_create: reorder parsing of CPU model string and creation of CPU object,
Eduardo Habkost <=
- [Qemu-devel] [RFC 12/13] register a class for each CPU model (v2), Eduardo Habkost, 2012/08/16