Hi This series port all cpus to use vmstate. - 1st patch is a fix of vmstate. - I discussed the arm changes over irc with Peter, he agreed that some simplification could be good, but he didn't saw the patches O:-) - mips: no pci chipset has been ported, so migration don't work there. I have embedded a couple of structs to improve vmstate checking. Notice that they were always allocated, so there shouldn't be any problem. - sparc: I changed the format a little bit to be able to use normal arrays. - sparc: If we always send the whole register windows, we don't need VMSTATE_VARRAY_MULTIPLY. As that array is quite big (520 elements), I am not sure what is best. - cpsr_vmstate on arm: I am not sure if I could "abuse" uncached_cpsr for that purpose?
I have only tested on x86, for the rest, I double checked, but it is possible that I missed something. I expect all patches to be integrated by Anthony in one go. Architecture maintainers are CC'd for an ACK/NACK/comments. Please, review. PD. Is there an easy way of creating this "CC" list of mail addresses, or the only way is to edit comments and write it by hand as I did? CC: Alexander Graf <ag...@suse.de> CC: Aurelien Jarno <aurel...@aurel32.net> CC: Blue Swirl <blauwir...@gmail.com> CC: Edgar E. Iglesias <edgar.igles...@gmail.com> CC: Huacai Chen <zltjiang...@gmail.com> CC: Max Filippov <jcmvb...@gmail.com> CC: Michael Walle <mich...@walle.cc> CC: Michael Walle <mich...@walle.cc> CC: Paul Brook <p...@codesourcery.com> CC: Peter Maydell <peter.mayd...@linaro.org> CC: Richard Henderson <r...@twiddle.net> Juan Quintela (25): vmstate: Fix VMSTATE_VARRAY_UINT32 vmstate: Simplify test for CPU_SAVE_VERSION vmstate: make all architectures export a way to migrate cpu's vmstate: unicore32 don't support cpu migration vmstate: use new cpu style for x86 vmstate: use new style for lm32 cpus vmstate: make microblaze cpus not migrateable vmstate: port cris cpu to vmstate vmstate: machine.c is only compiled for !CONFIG_USER_ONLY vmstate: introduce float32 arrays vmstate: introduce float64 arrays vmstate: Introduce VMSTATE_STRUCT_VARRAY_INT32_TEST vmstate: port ppc cpu vmstate: introduce VMSTATE_VARRAY_MULTIPLY vmstate: define vmstate_info_uinttls vmstate: port sparc cpu vmstate: make incompatible change for sparc mips_fulong2e: cpu vmstate already registered in cpu_exec_init mips: make mvp an embedded struct instead of pointer mips: make tlb an embedded struct instead of a pointer mips: bump migration version to 4 vmstate: port mips cpu arm: save always 32 fpu registers vmstate: port arm cpu vmstate: all cpus converted exec.c | 7 +- hw/hw.h | 34 +++ hw/mips_fulong2e.c | 1 - hw/mips_malta.c | 4 +- hw/mips_timer.c | 2 +- hw/sun4u.c | 20 -- qemu-common.h | 4 - savevm.c | 68 ++++++ target-alpha/machine.c | 12 +- target-arm/cpu.h | 4 +- target-arm/machine.c | 350 +++++++++++++------------------ target-cris/cpu.h | 13 +- target-cris/machine.c | 138 +++++-------- target-i386/cpu.h | 2 - target-i386/machine.c | 14 +- target-lm32/cpu.h | 2 - target-lm32/machine.c | 14 +- target-m68k/machine.c | 10 + target-microblaze/cpu.h | 2 - target-microblaze/machine.c | 15 +- target-mips/cpu.h | 10 +- target-mips/helper.c | 30 ++- target-mips/machine.c | 468 ++++++++++++++++------------------------- target-mips/op_helper.c | 70 ++++--- target-mips/translate.c | 22 ++- target-mips/translate_init.c | 36 ++-- target-ppc/cpu.h | 4 +- target-ppc/machine.c | 253 ++++++++--------------- target-s390x/machine.c | 14 +- target-sh4/machine.c | 10 + target-sparc/cpu.h | 8 +- target-sparc/machine.c | 328 +++++++++++------------------ target-unicore32/cpu.h | 2 - target-xtensa/machine.c | 14 +- 34 files changed, 852 insertions(+), 1133 deletions(-) -- 1.7.6.4