On 10/6/16 03:38, Laurent Vivier wrote: > I've removed the cannot_destroy_with_object_finalize_yet field as > cpu_exec_init() is not called by tilegx_cpu_initfn() anymore > (not tested with QOM command as tilegx is only available in linux-user > mode) >
For master branch, I can not find cpu_exec_realize in total source code, I am not quite sure whether it is ok or not. And in honest, now, tilegx-linux-user is not implemented completely, the floating point insns are not supported by our main branch (which should be one of main feature for tilegx) -- which I should try. Thanks. > CC: Chen Gang <gang.chen.5...@gmail.com> > Signed-off-by: Laurent Vivier <lviv...@redhat.com> > --- > target-tilegx/cpu.c | 15 +++++++-------- > 1 file changed, 7 insertions(+), 8 deletions(-) > > diff --git a/target-tilegx/cpu.c b/target-tilegx/cpu.c > index f7ec920..6be69ef 100644 > --- a/target-tilegx/cpu.c > +++ b/target-tilegx/cpu.c > @@ -92,6 +92,13 @@ static void tilegx_cpu_realizefn(DeviceState *dev, Error > **errp) > { > CPUState *cs = CPU(dev); > TileGXCPUClass *tcc = TILEGX_CPU_GET_CLASS(dev); > + Error *local_err = NULL; > + > + cpu_exec_realize(cs, &local_err); > + if (local_err != NULL) { > + error_propagate(errp, local_err); > + return; > + } > > cpu_reset(cs); > qemu_init_vcpu(cs); > @@ -108,7 +115,6 @@ static void tilegx_cpu_initfn(Object *obj) > > cs->env_ptr = env; > cpu_exec_init(cs, &error_abort); > - cpu_exec_realize(cs, &error_abort); > > if (tcg_enabled() && !tcg_initialized) { > tcg_initialized = true; > @@ -163,13 +169,6 @@ static void tilegx_cpu_class_init(ObjectClass *oc, void > *data) > cc->set_pc = tilegx_cpu_set_pc; > cc->handle_mmu_fault = tilegx_cpu_handle_mmu_fault; > cc->gdb_num_core_regs = 0; > - > - /* > - * Reason: tilegx_cpu_initfn() calls cpu_exec_init(), which saves > - * the object in cpus -> dangling pointer after final > - * object_unref(). > - */ > - dc->cannot_destroy_with_object_finalize_yet = true; > } > > static const TypeInfo tilegx_cpu_type_info = { > -- Chen Gang (陈刚) Managing Natural Environments is the Duty of Human Beings. -- Chen Gang (陈刚) Managing Natural Environments is the Duty of Human Beings.