aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorj_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162>2007-10-26 00:37:04 +0000
committerj_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162>2007-10-26 00:37:04 +0000
commit2c1ee068b469ef5dcd8ea8f9220256a737e2b810 (patch)
treeb8582232723523322f445b5cdb17c4c4421e805a
parent88ad920b8adbce8b00085c51a61e57b5fbc83b0c (diff)
Bugfix: PowerPC 64 slbia never invalidates the first segment entry.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3445 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r--target-ppc/helper.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/target-ppc/helper.c b/target-ppc/helper.c
index ea672bb4a2..0ffa28ea7d 100644
--- a/target-ppc/helper.c
+++ b/target-ppc/helper.c
@@ -735,7 +735,8 @@ void ppc_slb_invalidate_all (CPUPPCState *env)
do_invalidate = 0;
sr_base = env->spr[SPR_ASR];
- for (n = 0; n < env->slb_nr; n++) {
+ /* XXX: Warning: slbia never invalidates the first segment */
+ for (n = 1; n < env->slb_nr; n++) {
tmp64 = ldq_phys(sr_base);
if (slb_is_valid(tmp64)) {
slb_invalidate(&tmp64);