diff options
author | j_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-10-26 00:37:04 +0000 |
---|---|---|
committer | j_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-10-26 00:37:04 +0000 |
commit | 2c1ee068b469ef5dcd8ea8f9220256a737e2b810 (patch) | |
tree | b8582232723523322f445b5cdb17c4c4421e805a /target-ppc/helper.c | |
parent | 88ad920b8adbce8b00085c51a61e57b5fbc83b0c (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
Diffstat (limited to 'target-ppc/helper.c')
-rw-r--r-- | target-ppc/helper.c | 3 |
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); |