On 8/31/21 2:15 PM, Gerd Hoffmann wrote:
diff --git a/target/i386/helper.c b/target/i386/helper.c
index 533b29cb91b6..100add713c5d 100644
--- a/target/i386/helper.c
+++ b/target/i386/helper.c
@@ -103,7 +103,7 @@ void x86_cpu_set_a20(X86CPU *cpu, int a20_state)
/* when a20 is changed, all the MMU mappings are invalid, so
             we must flush everything */
-        tlb_flush(cs);
+        tcg.tlb_flush(cs);

I think this is a mistake.

(1) If tcg module is not enabled, we should be able to make a direct call.

(2) A *proper* modularization would load the target/ stuff as a module as well, at which point this should be a call through the PLT, not an indirect call after a couple of indirect pointer loads.

So IMO we want to retain the direct function call syntax in all the uses. I think you want to put wrapper functions doing the indirection somewhere -- possibly tcg-module.c.


r~

Reply via email to