From 93df793d4d482018888a7cb484b406bbcda8e5f5 Mon Sep 17 00:00:00 2001 From: Aurelien Jarno Date: Tue, 13 Feb 2018 15:00:43 -0500 Subject: [PATCH] softmmu: provide tlb_vaddr_to_host function for user mode To avoid to many #ifdef in target code, provide a tlb_vaddr_to_host for both user and softmmu modes. In the first case the function always succeed and just call the g2h function. Backports commit 2e83c496261c799b0fe6b8e18ac80cdc0a5c97ce from qemu --- qemu/include/exec/cpu_ldst.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/qemu/include/exec/cpu_ldst.h b/qemu/include/exec/cpu_ldst.h index d9552226..638ac63f 100644 --- a/qemu/include/exec/cpu_ldst.h +++ b/qemu/include/exec/cpu_ldst.h @@ -457,6 +457,8 @@ uint64_t helper_ldq_cmmu(CPUArchState *env, target_ulong addr, int mmu_idx); #undef MEMSUFFIX #undef SOFTMMU_CODE_ACCESS +#endif /* defined(CONFIG_USER_ONLY) */ + /** * tlb_vaddr_to_host: * @env: CPUArchState @@ -475,6 +477,9 @@ uint64_t helper_ldq_cmmu(CPUArchState *env, target_ulong addr, int mmu_idx); static inline void *tlb_vaddr_to_host(CPUArchState *env, target_ulong addr, int access_type, int mmu_idx) { +#if defined(CONFIG_USER_ONLY) + return g2h(vaddr); +#else int index = (addr >> TARGET_PAGE_BITS) & (CPU_TLB_SIZE - 1); CPUTLBEntry *tlbentry = &env->tlb_table[mmu_idx][index]; target_ulong tlb_addr; @@ -507,8 +512,7 @@ static inline void *tlb_vaddr_to_host(CPUArchState *env, target_ulong addr, haddr = (uintptr_t)(addr + env->tlb_table[mmu_idx][index].addend); return (void *)haddr; +#endif /* defined(CONFIG_USER_ONLY) */ } -#endif /* defined(CONFIG_USER_ONLY) */ - #endif /* CPU_LDST_H */