On Fri, Dec 19, 2014 at 11:29:34AM +0100, Paolo Bonzini wrote: > On 19/12/2014 10:47, Andreas Färber wrote: > > How do you imagine this to work with multiple CPU types? From the looks > > of it, this is for the target CPU, not the TCG architecture, so > > tcg_arch_init() limits us to one implementation unlike now. > > On the other hand it doesn't seem to be a per-CPU, i.e. CPUClass, > > initialization either... > > I think these should go in a separate CPUClass method that is called by > tcg_exec_init (only for first_cpu now; later for all CPUs if each CPU > gets a separate tcg_ctx).
configure_accelerator() (and tcg_exec_init()) is called before machine_class->init() (where the CPUs are created). I have work in progress that introduces arch-specific TYPE_ACCEL subclasses. With this, we can then make tcg_arch_init() a TYPE_TCG_ACCEL method that arch-specific TYPE_TCG_ACCEL subclasses can implement. Is it already possible to build a QEMU binary with multiple TCG arches, today? -- Eduardo