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.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.12 } else if( (addr&0x1C000000) == 0x0C000000 ) {
1.13 *(uint32_t *)(sh4_main_ram + (addr&0x00FFFFFF)) = val;
1.14 + xlat_invalidate_long(addr);
1.16 } else if( (addr&0x1F800000) == 0x04000000 ||
1.17 (addr&0x1F800000) == 0x11000000 ) {
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.22 - xlat_invalidate_long(addr);
1.23 *(uint32_t *)(page+(addr&0xFFF)) = val;
1.28 } else if( (addr&0x1C000000) == 0x0C000000 ) {
1.29 *(uint16_t *)(sh4_main_ram + (addr&0x00FFFFFF)) = val;
1.30 + xlat_invalidate_word(addr);
1.32 } else if( (addr&0x1F800000) == 0x04000000 ||
1.33 (addr&0x1F800000) == 0x11000000 ) {
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.38 - xlat_invalidate_word(addr);
1.39 *(uint16_t *)(page+(addr&0xFFF)) = val;
1.44 } else if( (addr&0x1C000000) == 0x0C000000 ) {
1.45 *(uint8_t *)(sh4_main_ram + (addr&0x00FFFFFF)) = val;
1.46 + xlat_invalidate_word(addr);
1.48 } else if( (addr&0x1F800000) == 0x04000000 ||
1.49 (addr&0x1F800000) == 0x11000000 ) {
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.54 - xlat_invalidate_word(addr);
1.55 *(uint8_t *)(page+(addr&0xFFF)) = val;