target/sparc: Inline qemu_get/put_betl()
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> Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Message-Id: <20260325211728.89204-6-philmd@linaro.org>
Philippe Mathieu-Daudé committed
Mar 25, 2026 at 11:18 UTC
39c730992fb8c8fd45ae24f7427a07056e833f0f
2 files changed
+13
-8
include/migration/cpu.h
-4
@@ -8,8 +8,6 @@
8
#include "migration/vmstate.h"
9
10
#if TARGET_LONG_BITS == 64
11
-#define qemu_put_betl qemu_put_be64
12
-#define qemu_get_betl qemu_get_be64
11
#define qemu_put_betls qemu_put_be64s
12
#define qemu_get_betls qemu_get_be64s
13
@@ -21,8 +19,6 @@
19
VMSTATE_UINT64_SUB_ARRAY(_f, _s, _start, _num)
20
#define vmstate_info_uinttl vmstate_info_uint64
21
#else
24
-#define qemu_put_betl qemu_put_be32
25
-#define qemu_get_betl qemu_get_be32
22
#define qemu_put_betls qemu_put_be32s
23
#define qemu_get_betls qemu_get_be32s
24
target/sparc/machine.c
+13
-4
@@ -1,8 +1,10 @@
1
#include "qemu/osdep.h"
2
#include "cpu.h"
3
+#include "qemu/target-info.h"
4
#include "qemu/timer.h"
5
6
#include "migration/cpu.h"
7
+#include "migration/qemu-file-types.h"
8
9
#ifdef TARGET_SPARC64
10
static const VMStateDescription vmstate_cpu_timer = {
@@ -86,9 +88,13 @@ static int get_fsr(QEMUFile *f, void *opaque, size_t size,
88
const VMStateField *field)
89
{
90
SPARCCPU *cpu = opaque;
89
- target_ulong val = qemu_get_betl(f);
91
91
- cpu_put_fsr(&cpu->env, val);
92
+ if (target_long_bits() == 64) {
93
+ cpu_put_fsr(&cpu->env, qemu_get_be64(f));
94
+ } else {
95
+ cpu_put_fsr(&cpu->env, qemu_get_be32(f));
96
+ }
97
+
98
return 0;
99
}
100
@@ -96,9 +102,12 @@ static int put_fsr(QEMUFile *f, void *opaque, size_t size,
102
const VMStateField *field, JSONWriter *vmdesc)
103
{
104
SPARCCPU *cpu = opaque;
99
- target_ulong val = cpu_get_fsr(&cpu->env);
105
101
- qemu_put_betl(f, val);
106
+ if (target_long_bits() == 64) {
107
+ qemu_put_be64(f, cpu_get_fsr(&cpu->env));
108
+ } else {
109
+ qemu_put_be32(f, cpu_get_fsr(&cpu->env));
110
+ }
111
return 0;
112
}
113