@samitouri / QOSamiQemu / commits / eaac837353

target/mips: Inline qemu_get/put_betls()

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é <philmd@linaro.org> Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Message-Id: <20260325211728.89204-7-philmd@linaro.org>

Philippe Mathieu-Daudé committed Mar 25, 2026 at 11:19 UTC eaac837353250430164ddda6f0c36fe45b305522
3 files changed +13 -9
include/migration/cpu.h
-7
@@ -4,13 +4,9 @@
4 #define MIGRATION_CPU_H
5
6 #include "exec/cpu-defs.h"
7 -#include "migration/qemu-file-types.h"
7 #include "migration/vmstate.h"
8
9 #if TARGET_LONG_BITS == 64
11 -#define qemu_put_betls qemu_put_be64s
12 -#define qemu_get_betls qemu_get_be64s
13 -
10 #define VMSTATE_UINTTL_V(_f, _s, _v) \
11 VMSTATE_UINT64_V(_f, _s, _v)
12 #define VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, _v) \
@@ -19,9 +15,6 @@
15 VMSTATE_UINT64_SUB_ARRAY(_f, _s, _start, _num)
16 #define vmstate_info_uinttl vmstate_info_uint64
17 #else
22 -#define qemu_put_betls qemu_put_be32s
23 -#define qemu_get_betls qemu_get_be32s
24 -
18 #define VMSTATE_UINTTL_V(_f, _s, _v) \
19 VMSTATE_UINT32_V(_f, _s, _v)
20 #define VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, _v) \
target/mips/system/machine.c
+12 -2
@@ -1,7 +1,9 @@
1 #include "qemu/osdep.h"
2 +#include "qemu/target-info.h"
3 #include "cpu.h"
4 #include "internal.h"
5 #include "migration/cpu.h"
6 +#include "migration/qemu-file-types.h"
7 #include "fpu_helper.h"
8 #include "qemu/timer.h"
9
@@ -140,7 +142,11 @@ static int get_tlb(QEMUFile *f, void *pv, size_t size,
142 r4k_tlb_t *v = pv;
143 uint16_t flags;
144
143 - qemu_get_betls(f, &v->VPN);
145 + if (target_long_bits() == 64) {
146 + v->VPN = qemu_get_be64(f);
147 + } else {
148 + v->VPN = qemu_get_be32(f);
149 + }
150 qemu_get_be32s(f, &v->PageMask);
151 qemu_get_be16s(f, &v->ASID);
152 qemu_get_be32s(f, &v->MMID);
@@ -183,7 +189,11 @@ static int put_tlb(QEMUFile *f, void *pv, size_t size,
189 (v->D0 << 1) |
190 (v->D1 << 0));
191
186 - qemu_put_betls(f, &v->VPN);
192 + if (target_long_bits() == 64) {
193 + qemu_put_be64(f, v->VPN);
194 + } else {
195 + qemu_put_be32(f, v->VPN);
196 + }
197 qemu_put_be32s(f, &v->PageMask);
198 qemu_put_be16s(f, &asid);
199 qemu_put_be32s(f, &mmid);
target/ppc/machine.c
+1
@@ -5,6 +5,7 @@
5 #include "helper_regs.h"
6 #include "mmu-hash64.h"
7 #include "migration/cpu.h"
8 +#include "migration/qemu-file-types.h"
9 #include "qapi/error.h"
10 #include "kvm_ppc.h"
11 #include "power8-pmu.h"