From: Edgar E. Iglesias Date: Mon, 11 Jan 2010 13:41:53 +0000 (+0100) Subject: ppc-40x: Correct check for Endian swapping TLB entries. X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=c5b9729ae918b890905e00870ffc08c9b56e6d17;p=qemu.git ppc-40x: Correct check for Endian swapping TLB entries. Bailout on 40x TLB entries with endianess swapping only if the entry is valid. Signed-off-by: Edgar E. Iglesias --- diff --git a/target-ppc/op_helper.c b/target-ppc/op_helper.c index 3575b29317..f905c647a9 100644 --- a/target-ppc/op_helper.c +++ b/target-ppc/op_helper.c @@ -3981,13 +3981,15 @@ void helper_4xx_tlbwe_hi (target_ulong entry, target_ulong val) tlb->size, TARGET_PAGE_SIZE, (int)((val >> 7) & 0x7)); } tlb->EPN = val & ~(tlb->size - 1); - if (val & 0x40) + if (val & 0x40) { tlb->prot |= PAGE_VALID; - else + if (val & 0x20) { + /* XXX: TO BE FIXED */ + cpu_abort(env, + "Little-endian TLB entries are not supported by now\n"); + } + } else { tlb->prot &= ~PAGE_VALID; - if (val & 0x20) { - /* XXX: TO BE FIXED */ - cpu_abort(env, "Little-endian TLB entries are not supported by now\n"); } tlb->PID = env->spr[SPR_40x_PID]; /* PID */ LOG_SWTLB("%s: set up TLB %d RPN " TARGET_FMT_plx " EPN " TARGET_FMT_lx