@samitouri / QOSamiQemu / commits / 39c730992f

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