mirror of https://github.com/xemu-project/xemu.git
target/hppa: Always report one page to tlb_set_page
No need to trigger the large_page_mask code unnecessarily. Drop the now unused HPPATLBEntry.page_size field. Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
66866cc74f
commit
f8cda28b8d
|
@ -179,15 +179,16 @@ typedef struct HPPATLBEntry {
|
||||||
IntervalTreeNode itree;
|
IntervalTreeNode itree;
|
||||||
|
|
||||||
target_ureg pa;
|
target_ureg pa;
|
||||||
|
|
||||||
|
unsigned entry_valid : 1;
|
||||||
|
|
||||||
unsigned u : 1;
|
unsigned u : 1;
|
||||||
unsigned t : 1;
|
unsigned t : 1;
|
||||||
unsigned d : 1;
|
unsigned d : 1;
|
||||||
unsigned b : 1;
|
unsigned b : 1;
|
||||||
unsigned page_size : 4;
|
|
||||||
unsigned ar_type : 3;
|
unsigned ar_type : 3;
|
||||||
unsigned ar_pl1 : 2;
|
unsigned ar_pl1 : 2;
|
||||||
unsigned ar_pl2 : 2;
|
unsigned ar_pl2 : 2;
|
||||||
unsigned entry_valid : 1;
|
|
||||||
unsigned access_id : 16;
|
unsigned access_id : 16;
|
||||||
} HPPATLBEntry;
|
} HPPATLBEntry;
|
||||||
|
|
||||||
|
|
|
@ -268,9 +268,16 @@ bool hppa_cpu_tlb_fill(CPUState *cs, vaddr addr, int size,
|
||||||
|
|
||||||
trace_hppa_tlb_fill_success(env, addr & TARGET_PAGE_MASK,
|
trace_hppa_tlb_fill_success(env, addr & TARGET_PAGE_MASK,
|
||||||
phys & TARGET_PAGE_MASK, size, type, mmu_idx);
|
phys & TARGET_PAGE_MASK, size, type, mmu_idx);
|
||||||
/* Success! Store the translation into the QEMU TLB. */
|
|
||||||
|
/*
|
||||||
|
* Success! Store the translation into the QEMU TLB.
|
||||||
|
* Note that we always install a single-page entry, because that
|
||||||
|
* is what works best with softmmu -- anything else will trigger
|
||||||
|
* the large page protection mask. We do not require this,
|
||||||
|
* because we record the large page here in the hppa tlb.
|
||||||
|
*/
|
||||||
tlb_set_page(cs, addr & TARGET_PAGE_MASK, phys & TARGET_PAGE_MASK,
|
tlb_set_page(cs, addr & TARGET_PAGE_MASK, phys & TARGET_PAGE_MASK,
|
||||||
prot, mmu_idx, TARGET_PAGE_SIZE << (ent ? 2 * ent->page_size : 0));
|
prot, mmu_idx, TARGET_PAGE_SIZE);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue