aboutsummaryrefslogtreecommitdiff
path: root/target-ppc/helper.c
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2012-01-25 17:06:30 +0100
committerAlexander Graf <agraf@suse.de>2012-02-02 02:47:46 +0100
commit21a0b6ed1dd9f1d8e3d953954847776c8697bd99 (patch)
treef8902c080bb49672ab989ce4484169e74b045785 /target-ppc/helper.c
parent3f162d119ef52fda714ebb498fcb4f4b7c354d38 (diff)
downloadqemu-21a0b6ed1dd9f1d8e3d953954847776c8697bd99.zip
qemu-21a0b6ed1dd9f1d8e3d953954847776c8697bd99.tar.gz
qemu-21a0b6ed1dd9f1d8e3d953954847776c8697bd99.tar.bz2
PPC: booke206: move avail check to tlbwe
We can have TLBs that only support a single page size. This is defined by the absence of the AVAIL flag in TLBnCFG. If this is the case, we currently write invalid size info into the TLB, but override it on internal fault. Let's move the check over to tlbwe, so we don't have the AVAIL check in the hotter fault path. Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'target-ppc/helper.c')
-rw-r--r--target-ppc/helper.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/target-ppc/helper.c b/target-ppc/helper.c
index 672494c..31a9897 100644
--- a/target-ppc/helper.c
+++ b/target-ppc/helper.c
@@ -1298,13 +1298,7 @@ target_phys_addr_t booke206_tlb_to_page_size(CPUState *env, ppcmas_tlb_t *tlb)
int tlbm_size;
tlbncfg = env->spr[SPR_BOOKE_TLB0CFG + tlbn];
-
- if (tlbncfg & TLBnCFG_AVAIL) {
- tlbm_size = (tlb->mas1 & MAS1_TSIZE_MASK) >> MAS1_TSIZE_SHIFT;
- } else {
- tlbm_size = (tlbncfg & TLBnCFG_MINSIZE) >> TLBnCFG_MINSIZE_SHIFT;
- tlbm_size <<= 1;
- }
+ tlbm_size = (tlb->mas1 & MAS1_TSIZE_MASK) >> MAS1_TSIZE_SHIFT;
return 1024ULL << tlbm_size;
}