revision 419:09f85e586ff2
summary |
tree |
shortlog |
changelog |
graph |
changeset |
raw | bz2 | zip | gz changeset | 419:09f85e586ff2 |
parent | 418:b9b14afa0959 |
child | 420:e6f43dec3cf0 |
author | nkeynes |
date | Thu Oct 04 10:49:41 2007 +0000 (16 years ago) |
Reinstate xlat invalidation calls
src/sh4/sh4mem.c | view | annotate | diff | log |
1.1 --- a/src/sh4/sh4mem.c Thu Oct 04 08:47:52 2007 +00001.2 +++ b/src/sh4/sh4mem.c Thu Oct 04 10:49:41 2007 +00001.3 @@ -1,5 +1,5 @@1.4 /**1.5 - * $Id: sh4mem.c,v 1.25 2007-10-04 08:47:52 nkeynes Exp $1.6 + * $Id: sh4mem.c,v 1.26 2007-10-04 10:49:41 nkeynes Exp $1.7 * sh4mem.c is responsible for the SH4's access to memory (including memory1.8 * mapped I/O), using the page maps created in mem.c1.9 *1.10 @@ -234,6 +234,7 @@1.11 return;1.12 } else if( (addr&0x1C000000) == 0x0C000000 ) {1.13 *(uint32_t *)(sh4_main_ram + (addr&0x00FFFFFF)) = val;1.14 + xlat_invalidate_long(addr);1.15 return;1.16 } else if( (addr&0x1F800000) == 0x04000000 ||1.17 (addr&0x1F800000) == 0x11000000 ) {1.18 @@ -264,7 +265,6 @@1.19 TRACE_IO( "Long write %08X => %08X", page, (addr&0xFFF), val, addr );1.20 io_rgn[(uint32_t)page]->io_write(addr&0xFFF, val);1.21 } else {1.22 - xlat_invalidate_long(addr);1.23 *(uint32_t *)(page+(addr&0xFFF)) = val;1.24 }1.25 }1.26 @@ -281,6 +281,7 @@1.27 return;1.28 } else if( (addr&0x1C000000) == 0x0C000000 ) {1.29 *(uint16_t *)(sh4_main_ram + (addr&0x00FFFFFF)) = val;1.30 + xlat_invalidate_word(addr);1.31 return;1.32 } else if( (addr&0x1F800000) == 0x04000000 ||1.33 (addr&0x1F800000) == 0x11000000 ) {1.34 @@ -305,7 +306,6 @@1.35 TRACE_IO( "Word write %04X => %08X", page, (addr&0xFFF), val&0xFFFF, addr );1.36 io_rgn[(uint32_t)page]->io_write(addr&0xFFF, val);1.37 } else {1.38 - xlat_invalidate_word(addr);1.39 *(uint16_t *)(page+(addr&0xFFF)) = val;1.40 }1.41 }1.42 @@ -322,6 +322,7 @@1.43 return;1.44 } else if( (addr&0x1C000000) == 0x0C000000 ) {1.45 *(uint8_t *)(sh4_main_ram + (addr&0x00FFFFFF)) = val;1.46 + xlat_invalidate_word(addr);1.47 return;1.48 } else if( (addr&0x1F800000) == 0x04000000 ||1.49 (addr&0x1F800000) == 0x11000000 ) {1.50 @@ -346,7 +347,6 @@1.51 TRACE_IO( "Byte write %02X => %08X", page, (addr&0xFFF), val&0xFF, addr );1.52 io_rgn[(uint32_t)page]->io_write( (addr&0xFFF), val);1.53 } else {1.54 - xlat_invalidate_word(addr);1.55 *(uint8_t *)(page+(addr&0xFFF)) = val;1.56 }1.57 }
.