Search
lxdream.org :: lxdream/src/sh4/sh4trans.c :: diff
lxdream 0.9.1
released Jun 29
Download Now
filename src/sh4/sh4trans.c
changeset 954:59e17ce91c55
prev953:f4a156508ad1
next975:007bf7eb944f
author nkeynes
date Tue Jan 13 23:55:30 2009 +0000 (11 years ago)
permissions -rw-r--r--
last change Fix icache entry not matching following an xlat block mode mismatch (can happen legitimately)
file annotate diff log raw
1.1 --- a/src/sh4/sh4trans.c Tue Jan 13 11:56:28 2009 +0000
1.2 +++ b/src/sh4/sh4trans.c Tue Jan 13 23:55:30 2009 +0000
1.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 updating
1.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();
.