Search
lxdream.org :: lxdream :: r419:09f85e586ff2
lxdream 0.9.1
released Jun 29
Download Now
changeset419:09f85e586ff2
parent418:b9b14afa0959
child420:e6f43dec3cf0
authornkeynes
dateThu Oct 04 10:49:41 2007 +0000 (16 years ago)
Reinstate xlat invalidation calls
src/sh4/sh4mem.c
1.1 --- a/src/sh4/sh4mem.c Thu Oct 04 08:47:52 2007 +0000
1.2 +++ b/src/sh4/sh4mem.c Thu Oct 04 10:49:41 2007 +0000
1.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 memory
1.8 * mapped I/O), using the page maps created in mem.c
1.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 }
.