revision 954:59e17ce91c55
summary |
tree |
shortlog |
changelog |
graph |
changeset |
raw | bz2 | zip | gz changeset | 954:59e17ce91c55 |
parent | 953:f4a156508ad1 |
child | 955:e289b49c28f1 |
author | nkeynes |
date | Tue Jan 13 23:55:30 2009 +0000 (15 years ago) |
Fix icache entry not matching following an xlat block mode mismatch (can happen legitimately)
1.1 --- a/src/sh4/sh4trans.c Tue Jan 13 11:56:28 2009 +00001.2 +++ b/src/sh4/sh4trans.c Tue Jan 13 23:55:30 2009 +00001.3 @@ -56,6 +56,13 @@1.4 code = sh4_translate_basic_block( sh4r.pc );1.5 }1.6 } else if( sh4r.xlat_sh4_mode != XLAT_BLOCK_MODE(code) ) {1.7 + if( !IS_IN_ICACHE(sh4r.pc) ) {1.8 + /* If TLB is off, we may have gotten here without updating1.9 + * the icache, so do it now. This should never fail, so...1.10 + */1.11 + mmu_update_icache(sh4r.pc);1.12 + assert( IS_IN_ICACHE(sh4r.pc) );1.13 + }1.14 code = sh4_translate_basic_block( sh4r.pc );1.15 }1.16 code = code();
.