aboutsummaryrefslogtreecommitdiff
path: root/target-sparc/op_helper.c
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2005-03-13 09:43:36 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2005-03-13 09:43:36 +0000
commit6f7e9aec5eb5bdfa57a9e458e391b785c283a007 (patch)
tree8679501a365f5fa7ee5b4e6fdd8d6a4f6e92f679 /target-sparc/op_helper.c
parentb756921ad18c8d293da634ff3b4e950ec8ae3f80 (diff)
sparc fixes (Blue Swirl)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1326 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-sparc/op_helper.c')
-rw-r--r--target-sparc/op_helper.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/target-sparc/op_helper.c b/target-sparc/op_helper.c
index 4c65c64d67..9cb3de49ac 100644
--- a/target-sparc/op_helper.c
+++ b/target-sparc/op_helper.c
@@ -164,7 +164,9 @@ void helper_st_asi(int asi, int size, int sign)
case 0:
env->mmuregs[reg] &= ~(MMU_E | MMU_NF);
env->mmuregs[reg] |= T1 & (MMU_E | MMU_NF);
- if ((oldreg & MMU_E) != (env->mmuregs[reg] & MMU_E))
+ // Mappings generated during no-fault mode or MMU
+ // disabled mode are invalid in normal mode
+ if (oldreg != env->mmuregs[reg])
tlb_flush(env, 1);
break;
case 2: