mirror of https://github.com/xemu-project/xemu.git
m68k: replace cpu_m68k_init() with cpu_generic_init()
call register_m68k_insns() at realize time which makes cpu_m68k_init() typical object 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> Tested-by: Thomas Huth <huth@tuxfamily.org> Acked-by: Laurent Vivier <laurent@vivier.eu> Message-Id: <1503592308-93913-12-git-send-email-imammedo@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
parent
8fc24ad5dd
commit
f47cf4e31c
|
@ -42,7 +42,7 @@ static void an5206_init(MachineState *machine)
|
|||
if (!cpu_model) {
|
||||
cpu_model = "m5206";
|
||||
}
|
||||
cpu = cpu_m68k_init(cpu_model);
|
||||
cpu = M68K_CPU(cpu_generic_init(TYPE_M68K_CPU, cpu_model));
|
||||
if (!cpu) {
|
||||
error_report("Unable to find m68k CPU definition");
|
||||
exit(1);
|
||||
|
|
|
@ -232,7 +232,7 @@ static void mcf5208evb_init(MachineState *machine)
|
|||
if (!cpu_model) {
|
||||
cpu_model = "m5208";
|
||||
}
|
||||
cpu = cpu_m68k_init(cpu_model);
|
||||
cpu = M68K_CPU(cpu_generic_init(TYPE_M68K_CPU, cpu_model));
|
||||
if (!cpu) {
|
||||
fprintf(stderr, "Unable to find m68k CPU definition\n");
|
||||
exit(1);
|
||||
|
|
|
@ -230,6 +230,8 @@ static void m68k_cpu_realizefn(DeviceState *dev, Error **errp)
|
|||
M68kCPUClass *mcc = M68K_CPU_GET_CLASS(dev);
|
||||
Error *local_err = NULL;
|
||||
|
||||
register_m68k_insns(&cpu->env);
|
||||
|
||||
cpu_exec_realizefn(cs, &local_err);
|
||||
if (local_err != NULL) {
|
||||
error_propagate(errp, local_err);
|
||||
|
|
|
@ -163,7 +163,6 @@ int m68k_cpu_gdb_write_register(CPUState *cpu, uint8_t *buf, int reg);
|
|||
|
||||
void m68k_tcg_init(void);
|
||||
void m68k_cpu_init_gdb(M68kCPU *cpu);
|
||||
M68kCPU *cpu_m68k_init(const char *cpu_model);
|
||||
/* you can call this signal handler from your SIGBUS and SIGSEGV
|
||||
signal handlers to inform the virtual CPU of exceptions. non zero
|
||||
is returned if the signal was handled by the virtual CPU. */
|
||||
|
@ -322,7 +321,7 @@ void register_m68k_insns (CPUM68KState *env);
|
|||
#define TARGET_PHYS_ADDR_SPACE_BITS 32
|
||||
#define TARGET_VIRT_ADDR_SPACE_BITS 32
|
||||
|
||||
#define cpu_init(cpu_model) CPU(cpu_m68k_init(cpu_model))
|
||||
#define cpu_init(cpu_model) cpu_generic_init(TYPE_M68K_CPU, cpu_model)
|
||||
|
||||
#define cpu_signal_handler cpu_m68k_signal_handler
|
||||
#define cpu_list m68k_cpu_list
|
||||
|
|
|
@ -156,26 +156,6 @@ static int m68k_fpu_gdb_set_reg(CPUM68KState *env, uint8_t *mem_buf, int n)
|
|||
return 0;
|
||||
}
|
||||
|
||||
M68kCPU *cpu_m68k_init(const char *cpu_model)
|
||||
{
|
||||
M68kCPU *cpu;
|
||||
CPUM68KState *env;
|
||||
ObjectClass *oc;
|
||||
|
||||
oc = cpu_class_by_name(TYPE_M68K_CPU, cpu_model);
|
||||
if (oc == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
cpu = M68K_CPU(object_new(object_class_get_name(oc)));
|
||||
env = &cpu->env;
|
||||
|
||||
register_m68k_insns(env);
|
||||
|
||||
object_property_set_bool(OBJECT(cpu), true, "realized", NULL);
|
||||
|
||||
return cpu;
|
||||
}
|
||||
|
||||
void m68k_cpu_init_gdb(M68kCPU *cpu)
|
||||
{
|
||||
CPUState *cs = CPU(cpu);
|
||||
|
|
Loading…
Reference in New Issue