Large page TLB flush
+ Remove unused is_softmmu parameter.
Upstream d4c430a80f000d722bb70287af4d4c184a8d7006
Upstream 97b348e7d221c94ddde609346407bd2cd6f85044
Change-Id: I7ccc6a8ffc040f91a58a3206d95417d22001b67b
diff --git a/target-mips/helper.c b/target-mips/helper.c
index fbaee25..433ad39 100644
--- a/target-mips/helper.c
+++ b/target-mips/helper.c
@@ -420,8 +420,8 @@
prot |= PAGE_WRITE;
tlb_set_page(env, address & TARGET_PAGE_MASK,
- physical & TARGET_PAGE_MASK, prot,
- mmu_idx, is_softmmu);
+ physical & TARGET_PAGE_MASK, prot | PAGE_EXEC,
+ mmu_idx, TARGET_PAGE_SIZE);
ret = TLBRET_MATCH;
goto out;
}
@@ -436,7 +436,7 @@
}
int cpu_mips_handle_mmu_fault (CPUMIPSState *env, target_ulong address, int rw,
- int mmu_idx, int is_softmmu)
+ int mmu_idx)
{
#if !defined(CONFIG_USER_ONLY)
hwaddr physical;
@@ -449,8 +449,8 @@
#if 0
log_cpu_state(env, 0);
#endif
- qemu_log("%s pc " TARGET_FMT_lx " ad " TARGET_FMT_lx " rw %d mmu_idx %d smmu %d\n",
- __func__, env->active_tc.PC, address, rw, mmu_idx, is_softmmu);
+ qemu_log("%s pc " TARGET_FMT_lx " ad " TARGET_FMT_lx " rw %d mmu_idx %d\n",
+ __func__, env->active_tc.PC, address, rw, mmu_idx);
rw &= 1;
@@ -466,12 +466,13 @@
qemu_log("%s address=" TARGET_FMT_lx " ret %d physical " TARGET_FMT_plx " prot %d\n",
__func__, address, ret, physical, prot);
if (ret == TLBRET_MATCH) {
- ret = tlb_set_page(env, address & TARGET_PAGE_MASK,
- physical & TARGET_PAGE_MASK, prot,
- mmu_idx, is_softmmu);
+ tlb_set_page(env, address & TARGET_PAGE_MASK,
+ physical & TARGET_PAGE_MASK, prot | PAGE_EXEC,
+ mmu_idx, TARGET_PAGE_SIZE);
+ ret = 0;
}
else if (ret == TLBRET_NOMATCH)
- ret = cpu_mips_tlb_refill(env,address,rw,mmu_idx,is_softmmu);
+ ret = cpu_mips_tlb_refill(env,address,rw,mmu_idx,1);
if (ret < 0)
#endif
{