With function helper_invtlb_page_asid_or_g(), one TLB entry in LoongArch emulated TLB is invalidated. Also invalidate_tlb_entry() can be called so that only one QEMU TLB entry will be flushed.
Signed-off-by: Bibo Mao <maob...@loongson.cn> --- target/loongarch/tcg/tlb_helper.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/target/loongarch/tcg/tlb_helper.c b/target/loongarch/tcg/tlb_helper.c index df11ff4995..d83e5fb7f8 100644 --- a/target/loongarch/tcg/tlb_helper.c +++ b/target/loongarch/tcg/tlb_helper.c @@ -571,7 +571,6 @@ void helper_invtlb_page_asid_or_g(CPULoongArchState *env, target_ulong info, target_ulong addr) { int index, asid = info & 0x3ff; - LoongArchTLB *tlb; tlb_match func; bool ret; @@ -581,9 +580,7 @@ void helper_invtlb_page_asid_or_g(CPULoongArchState *env, return; } - tlb = &env->tlb[index]; - tlb->tlb_misc = FIELD_DP64(tlb->tlb_misc, TLB_MISC, E, 0); - tlb_flush(env_cpu(env)); + invalidate_tlb(env, index); } /* -- 2.39.3