On Wed, Apr 13, 2016 at 06:41:48PM +0000, Aleksandar Markovic wrote: > Hello, Eduardo, > > I greatly appreciate your time spent on this matter and your unfailing > attention to detail. > > For Alpha and Xtensa, this is for sure, they will zero their CPU objects, as > you hinted: > > target-alpha/cpu.c: > 162 cpu_class = object_class_by_name(TYPE("ev67")); > 163 } > 164: cpu = ALPHA_CPU(object_new(object_class_get_name(cpu_class))); > 165 > 166 object_property_set_bool(OBJECT(cpu), true, "realized", NULL); > > target-xtensa/helper.c: > 125 } > 126 > 127: cpu = XTENSA_CPU(object_new(object_class_get_name(oc))); > 128 env = &cpu->env; > 129 > > So, I will remove their set_snan_bit_is_one(0) calls, as you suggested. > > This leaves only ppc, s390x, and TriCore calling set_snan_bit_is_one(0) it > this > patch series..
All CPU objects are created using object_new(), and are already zeroed on initialization. ppc CPUs are created using cpu_ppc_init(), which reuses cpu_generic_init(), which calls object_new(). s390x CPUs are created by s390x_new_cpu(), which calls cpu_s390x_create(), which calls object_new(). tricore CPUs are created by cpu_tricore_init(), which reuses cpu_generic_init(). -- Eduardo