Use TargetInfo target_long_bits() helper at runtime to migrate the VPN register as 32 or 64-bits.
The "migration/qemu-file-types.h" isn't required anymore in "migration/cpu.h", however it was missing in "ppc/machine.c". Signed-off-by: Philippe Mathieu-Daudé <[email protected]> Reviewed-by: Pierrick Bouvier <[email protected]> Message-Id: <[email protected]> --- include/migration/cpu.h | 7 ------- target/mips/system/machine.c | 14 ++++++++++++-- target/ppc/machine.c | 1 + 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/include/migration/cpu.h b/include/migration/cpu.h index 87ca977a3fd..8260ce0a3b7 100644 --- a/include/migration/cpu.h +++ b/include/migration/cpu.h @@ -4,13 +4,9 @@ #define MIGRATION_CPU_H #include "exec/cpu-defs.h" -#include "migration/qemu-file-types.h" #include "migration/vmstate.h" #if TARGET_LONG_BITS == 64 -#define qemu_put_betls qemu_put_be64s -#define qemu_get_betls qemu_get_be64s - #define VMSTATE_UINTTL_V(_f, _s, _v) \ VMSTATE_UINT64_V(_f, _s, _v) #define VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, _v) \ @@ -19,9 +15,6 @@ VMSTATE_UINT64_SUB_ARRAY(_f, _s, _start, _num) #define vmstate_info_uinttl vmstate_info_uint64 #else -#define qemu_put_betls qemu_put_be32s -#define qemu_get_betls qemu_get_be32s - #define VMSTATE_UINTTL_V(_f, _s, _v) \ VMSTATE_UINT32_V(_f, _s, _v) #define VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, _v) \ diff --git a/target/mips/system/machine.c b/target/mips/system/machine.c index 0a32665f835..5880b401b07 100644 --- a/target/mips/system/machine.c +++ b/target/mips/system/machine.c @@ -1,7 +1,9 @@ #include "qemu/osdep.h" +#include "qemu/target-info.h" #include "cpu.h" #include "internal.h" #include "migration/cpu.h" +#include "migration/qemu-file-types.h" #include "fpu_helper.h" #include "qemu/timer.h" @@ -140,7 +142,11 @@ static int get_tlb(QEMUFile *f, void *pv, size_t size, r4k_tlb_t *v = pv; uint16_t flags; - qemu_get_betls(f, &v->VPN); + if (target_long_bits() == 64) { + v->VPN = qemu_get_be64(f); + } else { + v->VPN = qemu_get_be32(f); + } qemu_get_be32s(f, &v->PageMask); qemu_get_be16s(f, &v->ASID); qemu_get_be32s(f, &v->MMID); @@ -183,7 +189,11 @@ static int put_tlb(QEMUFile *f, void *pv, size_t size, (v->D0 << 1) | (v->D1 << 0)); - qemu_put_betls(f, &v->VPN); + if (target_long_bits() == 64) { + qemu_put_be64(f, v->VPN); + } else { + qemu_put_be32(f, v->VPN); + } qemu_put_be32s(f, &v->PageMask); qemu_put_be16s(f, &asid); qemu_put_be32s(f, &mmid); diff --git a/target/ppc/machine.c b/target/ppc/machine.c index 9eae0ff647d..569536bd02d 100644 --- a/target/ppc/machine.c +++ b/target/ppc/machine.c @@ -5,6 +5,7 @@ #include "helper_regs.h" #include "mmu-hash64.h" #include "migration/cpu.h" +#include "migration/qemu-file-types.h" #include "qapi/error.h" #include "kvm_ppc.h" #include "power8-pmu.h" -- 2.53.0
