Use TargetInfo target_long_bits() helper at runtime to migrate
the FSR register as 32 or 64-bits.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
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