The 32-bit binary doesn't use these helpers, so don't need to compile them. Rather than using 64-bit target #ifdef'ry in a global header, un-inline the calls since the helpers are called from I/O (cold) path.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]> --- include/hw/ppc/spapr.h | 18 +++--------------- hw/ppc/spapr_rtas.c | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index b022f8dd25d..9acda15d4f6 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -796,21 +796,9 @@ static inline uint64_t ppc64_phys_to_real(uint64_t addr) return addr & ~0xF000000000000000ULL; } -static inline uint32_t rtas_ld(target_ulong phys, int n) -{ - return ldl_be_phys(&address_space_memory, - ppc64_phys_to_real(phys + 4 * n)); -} - -static inline uint64_t rtas_ldq(target_ulong phys, int n) -{ - return (uint64_t)rtas_ld(phys, n) << 32 | rtas_ld(phys, n + 1); -} - -static inline void rtas_st(target_ulong phys, int n, uint32_t val) -{ - stl_be_phys(&address_space_memory, ppc64_phys_to_real(phys + 4 * n), val); -} +uint32_t rtas_ld(target_ulong phys, int n); +uint64_t rtas_ldq(target_ulong phys, int n); +void rtas_st(target_ulong phys, int n, uint32_t val); typedef void (*spapr_rtas_fn)(PowerPCCPU *cpu, SpaprMachineState *sm, uint32_t token, diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c index cb79ad34053..0871425237e 100644 --- a/hw/ppc/spapr_rtas.c +++ b/hw/ppc/spapr_rtas.c @@ -52,6 +52,21 @@ #include "migration/blocker.h" #include "helper_regs.h" +uint32_t rtas_ld(target_ulong phys, int n) +{ + return ldl_be_phys(&address_space_memory, ppc64_phys_to_real(phys + 4 * n)); +} + +uint64_t rtas_ldq(target_ulong phys, int n) +{ + return (uint64_t)rtas_ld(phys, n) << 32 | rtas_ld(phys, n + 1); +} + +void rtas_st(target_ulong phys, int n, uint32_t val) +{ + stl_be_phys(&address_space_memory, ppc64_phys_to_real(phys + 4 * n), val); +} + static void rtas_display_character(PowerPCCPU *cpu, SpaprMachineState *spapr, uint32_t token, uint32_t nargs, target_ulong args, -- 2.53.0
