[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 2/4] ppc-40x: Correct check for Endian swapping TLB
From: |
Edgar E. Iglesias |
Subject: |
[Qemu-devel] [PATCH 2/4] ppc-40x: Correct check for Endian swapping TLB entries. |
Date: |
Mon, 11 Jan 2010 15:49:49 +0100 |
Bailout on 40x TLB entries with endianess swapping only if the entry
is valid.
Signed-off-by: Edgar E. Iglesias <address@hidden>
---
target-ppc/op_helper.c | 12 +++++++-----
1 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/target-ppc/op_helper.c b/target-ppc/op_helper.c
index 3575b29..f905c64 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
--
1.6.4.4