diff options
author | Igor Mammedov | 2017-08-24 18:31:38 +0200 |
---|---|---|
committer | Eduardo Habkost | 2017-09-01 16:54:24 +0200 |
commit | 8e36271b9246a088007ee93ff065ea5db611f900 (patch) | |
tree | 9efa2aa825cc4f5a079f5a3e2fd448f57ea8a667 /target | |
parent | tilegx: replace cpu_tilegx_init() with cpu_generic_init() (diff) | |
download | qemu-8e36271b9246a088007ee93ff065ea5db611f900.tar.gz qemu-8e36271b9246a088007ee93ff065ea5db611f900.tar.xz qemu-8e36271b9246a088007ee93ff065ea5db611f900.zip |
xtensa: replace cpu_xtensa_init() with cpu_generic_init()
call xtensa_irq_init() at realize time which makes
cpu_xtensa_init() like generic cpu creation function.
As result we can replace it with cpu_generic_init()
which does the same job, reducing code duplication a bit.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <1503592308-93913-16-git-send-email-imammedo@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Diffstat (limited to 'target')
-rw-r--r-- | target/xtensa/cpu.c | 3 | ||||
-rw-r--r-- | target/xtensa/cpu.h | 4 | ||||
-rw-r--r-- | target/xtensa/helper.c | 22 |
3 files changed, 4 insertions, 25 deletions
diff --git a/target/xtensa/cpu.c b/target/xtensa/cpu.c index cd7f95823f..85897df0a8 100644 --- a/target/xtensa/cpu.c +++ b/target/xtensa/cpu.c @@ -100,9 +100,12 @@ static ObjectClass *xtensa_cpu_class_by_name(const char *cpu_model) static void xtensa_cpu_realizefn(DeviceState *dev, Error **errp) { CPUState *cs = CPU(dev); + XtensaCPU *cpu = XTENSA_CPU(dev); XtensaCPUClass *xcc = XTENSA_CPU_GET_CLASS(dev); Error *local_err = NULL; + xtensa_irq_init(&cpu->env); + cpu_exec_realizefn(cs, &local_err); if (local_err != NULL) { error_propagate(errp, local_err); diff --git a/target/xtensa/cpu.h b/target/xtensa/cpu.h index ee29fb1a14..48033313c5 100644 --- a/target/xtensa/cpu.h +++ b/target/xtensa/cpu.h @@ -475,9 +475,7 @@ void xtensa_cpu_do_unaligned_access(CPUState *cpu, vaddr addr, #define XTENSA_DEFAULT_CPU_MODEL "dc232b" #endif -XtensaCPU *cpu_xtensa_init(const char *cpu_model); - -#define cpu_init(cpu_model) CPU(cpu_xtensa_init(cpu_model)) +#define cpu_init(cpu_model) cpu_generic_init(TYPE_XTENSA_CPU, cpu_model) void xtensa_translate_init(void); void xtensa_breakpoint_handler(CPUState *cs); diff --git a/target/xtensa/helper.c b/target/xtensa/helper.c index bcd0b7738d..e8fba20918 100644 --- a/target/xtensa/helper.c +++ b/target/xtensa/helper.c @@ -113,28 +113,6 @@ void xtensa_breakpoint_handler(CPUState *cs) } } -XtensaCPU *cpu_xtensa_init(const char *cpu_model) -{ - ObjectClass *oc; - XtensaCPU *cpu; - CPUXtensaState *env; - - oc = cpu_class_by_name(TYPE_XTENSA_CPU, cpu_model); - if (oc == NULL) { - return NULL; - } - - cpu = XTENSA_CPU(object_new(object_class_get_name(oc))); - env = &cpu->env; - - xtensa_irq_init(env); - - object_property_set_bool(OBJECT(cpu), true, "realized", NULL); - - return cpu; -} - - void xtensa_cpu_list(FILE *f, fprintf_function cpu_fprintf) { XtensaConfigList *core = xtensa_cores; |