Move stub from exec-all.h to tcg-module.c. Signed-off-by: Gerd Hoffmann <kra...@redhat.com> --- include/exec/exec-all.h | 3 --- include/tcg/tcg-module.h | 3 +++ accel/tcg/cputlb.c | 1 + accel/tcg/tcg-module.c | 5 +++++ softmmu/physmem.c | 4 ++-- target/arm/helper.c | 4 ++-- 6 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h index ddb1ab797978..43d89699e989 100644 --- a/include/exec/exec-all.h +++ b/include/exec/exec-all.h @@ -328,9 +328,6 @@ static inline void tlb_init(CPUState *cpu) static inline void tlb_destroy(CPUState *cpu) { } -static inline void tlb_flush_page(CPUState *cpu, target_ulong addr) -{ -} static inline void tlb_flush_page_all_cpus(CPUState *src, target_ulong addr) { } diff --git a/include/tcg/tcg-module.h b/include/tcg/tcg-module.h index b94bfdd362ed..a903e3ee62c0 100644 --- a/include/tcg/tcg-module.h +++ b/include/tcg/tcg-module.h @@ -1,8 +1,11 @@ #ifndef TCG_MODULE_H #define TCG_MODULE_H +#include "exec/exec-all.h" + struct TCGModuleOps { void (*tlb_flush)(CPUState *cpu); + void (*tlb_flush_page)(CPUState *cpu, target_ulong addr); }; extern struct TCGModuleOps tcg; diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c index 40c3d1b65ac5..1fcdb71a10a0 100644 --- a/accel/tcg/cputlb.c +++ b/accel/tcg/cputlb.c @@ -2771,6 +2771,7 @@ uint64_t cpu_ldq_code(CPUArchState *env, abi_ptr addr) static void tcg_module_ops_tlb(void) { tcg.tlb_flush = tlb_flush; + tcg.tlb_flush_page = tlb_flush_page; } type_init(tcg_module_ops_tlb); diff --git a/accel/tcg/tcg-module.c b/accel/tcg/tcg-module.c index a1e5728c8c1b..4d62160628bd 100644 --- a/accel/tcg/tcg-module.c +++ b/accel/tcg/tcg-module.c @@ -5,6 +5,11 @@ static void update_cpu_stub(CPUState *cpu) { } +static void tlb_flush_page_stub(CPUState *cpu, target_ulong addr) +{ +} + struct TCGModuleOps tcg = { .tlb_flush = update_cpu_stub, + .tlb_flush_page = tlb_flush_page_stub, }; diff --git a/softmmu/physmem.c b/softmmu/physmem.c index d99b4ce55d8f..845b9e99e819 100644 --- a/softmmu/physmem.c +++ b/softmmu/physmem.c @@ -794,7 +794,7 @@ int cpu_watchpoint_insert(CPUState *cpu, vaddr addr, vaddr len, in_page = -(addr | TARGET_PAGE_MASK); if (len <= in_page) { - tlb_flush_page(cpu, addr); + tcg.tlb_flush_page(cpu, addr); } else { tcg.tlb_flush(cpu); } @@ -825,7 +825,7 @@ void cpu_watchpoint_remove_by_ref(CPUState *cpu, CPUWatchpoint *watchpoint) { QTAILQ_REMOVE(&cpu->watchpoints, watchpoint, entry); - tlb_flush_page(cpu, watchpoint->vaddr); + tcg.tlb_flush_page(cpu, watchpoint->vaddr); g_free(watchpoint); } diff --git a/target/arm/helper.c b/target/arm/helper.c index e0848f9bcea8..047d4360b65f 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -772,7 +772,7 @@ static void tlbimva_write(CPUARMState *env, const ARMCPRegInfo *ri, if (tlb_force_broadcast(env)) { tlb_flush_page_all_cpus_synced(cs, value); } else { - tlb_flush_page(cs, value); + tcg.tlb_flush_page(cs, value); } } @@ -799,7 +799,7 @@ static void tlbimvaa_write(CPUARMState *env, const ARMCPRegInfo *ri, if (tlb_force_broadcast(env)) { tlb_flush_page_all_cpus_synced(cs, value); } else { - tlb_flush_page(cs, value); + tcg.tlb_flush_page(cs, value); } } -- 2.31.1