On 07.05.2012, at 18:41, Fabien Chouteau wrote: > Use size mask in both operands of effective address comparison. > This is the expected as the size of EPN field in MAS2 depends on page > size. > > Definition of EPN field from e500v2 RM: > EPN Effective page number: Depending on page size, only the bits > associated with a page boundary are valid. Bits that represent offsets > within a page are ignored and should be cleared. > > There is a similar (but more complicated) definition in PowerISA V2.06.
Would it make sense to do this at tlbwe time? That path is a bit less hot that the tlb check :). Alex > > Signed-off-by: Fabien Chouteau <chout...@adacore.com> > --- > target-ppc/helper.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/target-ppc/helper.c b/target-ppc/helper.c > index e97e496..adb96a0 100644 > --- a/target-ppc/helper.c > +++ b/target-ppc/helper.c > @@ -1320,7 +1320,7 @@ int ppcmas_tlb_check(CPUPPCState *env, ppcmas_tlb_t > *tlb, > } > > /* Check effective address */ > - if ((address & mask) != (tlb->mas2 & MAS2_EPN_MASK)) { > + if ((address & mask) != (tlb->mas2 & MAS2_EPN_MASK & mask)) { > return -1; > } > > -- > 1.7.9.5 >