Am 21.01.2013 04:28, schrieb Andreas Färber: > Hello, > > This series introduces SuperH CPU subclasses. > The first conversion to QOM patch had used a declarative approach reusing > sh4_def_t as SuperHCPUInfo. This approach now uses imperative instance_init > functions. To preserve -cpu ? output and case-insensitivity, distinct name > and type name are used, but allowing use of the type name as done for alpha. > > TODO: guard against abstract types (may apply to other targets as well) > TODO: move class -> name lookup to cpu.c? > > This series in context: > + qom-cpu cleanups and bugfixes being queued for 1.4 > + CPUState QOM realizefn and initfn RFC for 1.5 / qom-cpu-next > ~ SuperHCPU subclasses (this series) > - SH7750 QOM'ification (to be rebased) > - cross-target refactoring of cpu_init() and "realized" behavior (TBD) > > Available for testing at: > git://github.com/afaerber/qemu-cpu.git qom-cpu-sh4-classes.v2 > https://github.com/afaerber/qemu-cpu/commits/qom-cpu-sh4-classes.v2
Note that the default sh4 machine shix does not check the return value of cpu_init() and silently continues even without CPU. I've used -M r2d for testing and will try to post a fix for 1.4. Andreas > v2: > * Fixed bug in class name comparison, spotted by Igor. > * Refactored name -> ObjectClass mapping into new function. > * Moved realizefn patch into CPUState series, rebased. > > v1 -> preview on GitHub: > * Redone, using combination of initfn and class_init instead of SuperHCPUInfo. > * Adopted naming scheme suggested by Eduardo. > * Split out SuperHCPUClass field movements into separate patch. > > Cc: Aurélien Jarno <aurel...@aurel32.net> > > Cc: Igor Mammedov <imamm...@redhat.com> > Cc: Eduardo Habkost <ehabk...@redhat.com> > > Andreas Färber (2): > target-sh4: Introduce SuperHCPU subclasses > target-sh4: Move PVR/PRR/CVR into SuperHCPUClass > > hw/sh7750.c | 10 ++-- > target-sh4/cpu-qom.h | 13 +++++ > target-sh4/cpu.c | 124 > +++++++++++++++++++++++++++++++++++++++++++++++- > target-sh4/cpu.h | 3 -- > target-sh4/translate.c | 94 +++++++++++++----------------------- > 5 Dateien geändert, 175 Zeilen hinzugefügt(+), 69 Zeilen entfernt(-) -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg