diff options
author | Alexander Graf <agraf@suse.de> | 2012-01-25 17:06:30 +0100 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2012-02-02 02:47:46 +0100 |
commit | 21a0b6ed1dd9f1d8e3d953954847776c8697bd99 (patch) | |
tree | f8902c080bb49672ab989ce4484169e74b045785 /target-ppc/helper.c | |
parent | 3f162d119ef52fda714ebb498fcb4f4b7c354d38 (diff) | |
download | qemu-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.c | 8 |
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; } |