1.1 --- a/src/sh4/sh4mem.c Thu Sep 20 08:35:04 2007 +0000
1.2 +++ b/src/sh4/sh4mem.c Mon Oct 01 11:51:25 2007 +0000
1.5 - * $Id: sh4mem.c,v 1.23 2007-09-20 08:35:04 nkeynes Exp $
1.6 + * $Id: sh4mem.c,v 1.24 2007-09-28 07:25:22 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.11 #define CHECK_WRITE_WATCH( addr, size, val )
1.14 +#ifdef ENABLE_TRACE_IO
1.15 #define TRACE_IO( str, p, r, ... ) if(io_rgn[(uint32_t)p]->trace_flag && !MMIO_NOTRACE_BYNUM((uint32_t)p,r)) \
1.16 TRACE( str " [%s.%s: %s]", __VA_ARGS__, \
1.17 MMIO_NAME_BYNUM((uint32_t)p), MMIO_REGID_BYNUM((uint32_t)p, r), \
1.19 TRACE( str " [%s.%s: %s]", __VA_ARGS__, \
1.20 io->id, MMIO_REGID_IOBYNUM(io, r), \
1.21 MMIO_REGDESC_IOBYNUM(io, r) )
1.23 +#define TRACE_IO( str, p, r, ... )
1.24 +#define TRACE_P4IO( str, io, r, ... )
1.27 extern struct mem_region mem_rgn[];
1.28 extern struct mmio_region *P4_io[];
1.29 @@ -135,12 +140,6 @@
1.30 pvr2_render_buffer_invalidate(addr, FALSE);
1.33 - if( IS_MMU_ENABLED() ) {
1.34 - ERROR( "user-mode & mmu translation not implemented, aborting", NULL );
1.39 page = page_map[ (addr & 0x1FFFFFFF) >> 12 ];
1.40 if( ((uint32_t)page) < MAX_IO_REGIONS ) { /* IO Region */
1.43 TRACE_IO( "Long read %08X <= %08X", page, (addr&0xFFF), val, addr );
1.46 - // fprintf( stderr, "MOV.L %08X <= %08X\n",*(int32_t *)(page+(addr&0xFFF)), addr );
1.47 return *(int32_t *)(page+(addr&0xFFF));
1.50 @@ -173,13 +171,6 @@
1.51 pvr2_render_buffer_invalidate(addr, FALSE);
1.55 - if( IS_MMU_ENABLED() ) {
1.56 - ERROR( "user-mode & mmu translation not implemented, aborting", NULL );
1.61 page = page_map[ (addr & 0x1FFFFFFF) >> 12 ];
1.62 if( ((uint32_t)page) < MAX_IO_REGIONS ) { /* IO Region */
1.64 @@ -211,12 +202,6 @@
1.68 - if( IS_MMU_ENABLED() ) {
1.69 - ERROR( "user-mode & mmu translation not implemented, aborting", NULL );
1.74 page = page_map[ (addr & 0x1FFFFFFF) >> 12 ];
1.75 if( ((uint32_t)page) < MAX_IO_REGIONS ) { /* IO Region */
1.77 @@ -253,11 +238,6 @@
1.78 pvr2_render_buffer_invalidate(addr, TRUE);
1.81 - if( IS_MMU_ENABLED() ) {
1.82 - ERROR( "user-mode & mmu translation not implemented, aborting", NULL );
1.86 if( (addr&0x1FFFFFFF) < 0x200000 ) {
1.87 ERROR( "Attempted write to read-only memory: %08X => %08X", val, addr);
1.89 @@ -302,11 +282,7 @@
1.90 } else if( (addr&0x1F800000) == 0x05000000 ) {
1.91 pvr2_render_buffer_invalidate(addr, TRUE);
1.93 - if( IS_MMU_ENABLED() ) {
1.94 - ERROR( "user-mode & mmu translation not implemented, aborting", NULL );
1.99 if( (addr&0x1FFFFFFF) < 0x200000 ) {
1.100 ERROR( "Attempted write to read-only memory: %08X => %08X", val, addr);
1.102 @@ -346,11 +322,6 @@
1.103 pvr2_render_buffer_invalidate(addr, TRUE);
1.106 - if( IS_MMU_ENABLED() ) {
1.107 - ERROR( "user-mode & mmu translation not implemented, aborting", NULL );
1.111 if( (addr&0x1FFFFFFF) < 0x200000 ) {
1.112 ERROR( "Attempted write to read-only memory: %08X => %08X", val, addr);