Use TargetInfo target_long_bits() helper at runtime to migrate the FSR register as 32 or 64-bits.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]> Reviewed-by: Pierrick Bouvier <[email protected]> Message-Id: <[email protected]> --- include/migration/cpu.h | 4 ---- target/sparc/machine.c | 17 +++++++++++++---- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/include/migration/cpu.h b/include/migration/cpu.h index bb8ecfbeea5..87ca977a3fd 100644 --- a/include/migration/cpu.h +++ b/include/migration/cpu.h @@ -8,8 +8,6 @@ #include "migration/vmstate.h" #if TARGET_LONG_BITS == 64 -#define qemu_put_betl qemu_put_be64 -#define qemu_get_betl qemu_get_be64 #define qemu_put_betls qemu_put_be64s #define qemu_get_betls qemu_get_be64s @@ -21,8 +19,6 @@ VMSTATE_UINT64_SUB_ARRAY(_f, _s, _start, _num) #define vmstate_info_uinttl vmstate_info_uint64 #else -#define qemu_put_betl qemu_put_be32 -#define qemu_get_betl qemu_get_be32 #define qemu_put_betls qemu_put_be32s #define qemu_get_betls qemu_get_be32s diff --git a/target/sparc/machine.c b/target/sparc/machine.c index 4dd75aff74a..0a449f2f8c6 100644 --- a/target/sparc/machine.c +++ b/target/sparc/machine.c @@ -1,8 +1,10 @@ #include "qemu/osdep.h" #include "cpu.h" +#include "qemu/target-info.h" #include "qemu/timer.h" #include "migration/cpu.h" +#include "migration/qemu-file-types.h" #ifdef TARGET_SPARC64 static const VMStateDescription vmstate_cpu_timer = { @@ -86,9 +88,13 @@ static int get_fsr(QEMUFile *f, void *opaque, size_t size, const VMStateField *field) { SPARCCPU *cpu = opaque; - target_ulong val = qemu_get_betl(f); - cpu_put_fsr(&cpu->env, val); + if (target_long_bits() == 64) { + cpu_put_fsr(&cpu->env, qemu_get_be64(f)); + } else { + cpu_put_fsr(&cpu->env, qemu_get_be32(f)); + } + return 0; } @@ -96,9 +102,12 @@ static int put_fsr(QEMUFile *f, void *opaque, size_t size, const VMStateField *field, JSONWriter *vmdesc) { SPARCCPU *cpu = opaque; - target_ulong val = cpu_get_fsr(&cpu->env); - qemu_put_betl(f, val); + if (target_long_bits() == 64) { + qemu_put_be64(f, cpu_get_fsr(&cpu->env)); + } else { + qemu_put_be32(f, cpu_get_fsr(&cpu->env)); + } return 0; } -- 2.53.0
