1.1 --- a/src/sh4/sh4mem.c Thu Nov 08 11:54:16 2007 +0000
1.2 +++ b/src/sh4/sh4mem.c Thu Nov 08 12:01:57 2007 +0000
1.5 - * $Id: sh4mem.c,v 1.30 2007-11-08 11:54:16 nkeynes Exp $
1.6 + * $Id: sh4mem.c,v 1.31 2007-11-08 12:01:57 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.10 @@ -115,13 +115,13 @@
1.13 page = page_map[ (addr & 0x1FFFFFFF) >> 12 ];
1.14 - if( ((uint32_t)page) < MAX_IO_REGIONS ) { /* IO Region */
1.15 + if( ((uintptr_t)page) < MAX_IO_REGIONS ) { /* IO Region */
1.16 if( page == NULL ) {
1.17 WARN( "Attempted word read to missing page: %08X",
1.21 - return SIGNEXT16(io_rgn[(uint32_t)page]->io_read(addr&0xFFF));
1.22 + return SIGNEXT16(io_rgn[(uintptr_t)page]->io_read(addr&0xFFF));
1.24 return SIGNEXT16(*(int16_t *)(page+(addr&0xFFF)));
1.26 @@ -145,13 +145,13 @@
1.29 page = page_map[ (addr & 0x1FFFFFFF) >> 12 ];
1.30 - if( ((uint32_t)page) < MAX_IO_REGIONS ) { /* IO Region */
1.31 + if( ((uintptr_t)page) < MAX_IO_REGIONS ) { /* IO Region */
1.33 if( page == NULL ) {
1.34 WARN( "Attempted long read to missing page: %08X", addr );
1.37 - val = io_rgn[(uint32_t)page]->io_read(addr&0xFFF);
1.38 + val = io_rgn[(uintptr_t)page]->io_read(addr&0xFFF);
1.39 TRACE_IO( "Long read %08X <= %08X", page, (addr&0xFFF), val, addr );
1.42 @@ -177,13 +177,13 @@
1.45 page = page_map[ (addr & 0x1FFFFFFF) >> 12 ];
1.46 - if( ((uint32_t)page) < MAX_IO_REGIONS ) { /* IO Region */
1.47 + if( ((uintptr_t)page) < MAX_IO_REGIONS ) { /* IO Region */
1.49 if( page == NULL ) {
1.50 WARN( "Attempted word read to missing page: %08X", addr );
1.53 - val = SIGNEXT16(io_rgn[(uint32_t)page]->io_read(addr&0xFFF));
1.54 + val = SIGNEXT16(io_rgn[(uintptr_t)page]->io_read(addr&0xFFF));
1.55 TRACE_IO( "Word read %04X <= %08X", page, (addr&0xFFF), val&0xFFFF, addr );
1.58 @@ -210,13 +210,13 @@
1.61 page = page_map[ (addr & 0x1FFFFFFF) >> 12 ];
1.62 - if( ((uint32_t)page) < MAX_IO_REGIONS ) { /* IO Region */
1.63 + if( ((uintptr_t)page) < MAX_IO_REGIONS ) { /* IO Region */
1.65 if( page == NULL ) {
1.66 WARN( "Attempted byte read to missing page: %08X", addr );
1.69 - val = SIGNEXT8(io_rgn[(uint32_t)page]->io_read(addr&0xFFF));
1.70 + val = SIGNEXT8(io_rgn[(uintptr_t)page]->io_read(addr&0xFFF));
1.71 TRACE_IO( "Byte read %02X <= %08X", page, (addr&0xFFF), val&0xFF, addr );
1.78 - // fprintf( stderr, "MOV.L %08X => %08X\n", val, addr );
1.79 CHECK_WRITE_WATCH(addr,4,val);
1.81 if( addr >= 0xE0000000 ) {
1.83 asic_g2_write_word();
1.85 page = page_map[ (addr & 0x1FFFFFFF) >> 12 ];
1.86 - if( ((uint32_t)page) < MAX_IO_REGIONS ) { /* IO Region */
1.87 + if( ((uintptr_t)page) < MAX_IO_REGIONS ) { /* IO Region */
1.88 if( page == NULL ) {
1.89 if( (addr & 0x1F000000) >= 0x04000000 &&
1.90 (addr & 0x1F000000) < 0x07000000 )
1.94 TRACE_IO( "Long write %08X => %08X", page, (addr&0xFFF), val, addr );
1.95 - io_rgn[(uint32_t)page]->io_write(addr&0xFFF, val);
1.96 + io_rgn[(uintptr_t)page]->io_write(addr&0xFFF, val);
1.98 *(uint32_t *)(page+(addr&0xFFF)) = val;
1.100 @@ -275,7 +274,6 @@
1.104 - // fprintf( stderr, "MOV.W %04X => %08X\n", val, addr );
1.105 CHECK_WRITE_WATCH(addr,2,val);
1.107 if( addr >= 0xE0000000 ) {
1.108 @@ -300,13 +298,13 @@
1.111 page = page_map[ (addr & 0x1FFFFFFF) >> 12 ];
1.112 - if( ((uint32_t)page) < MAX_IO_REGIONS ) { /* IO Region */
1.113 + if( ((uintptr_t)page) < MAX_IO_REGIONS ) { /* IO Region */
1.114 if( page == NULL ) {
1.115 WARN( "Attempted word write to missing page: %08X", addr );
1.118 TRACE_IO( "Word write %04X => %08X", page, (addr&0xFFF), val&0xFFFF, addr );
1.119 - io_rgn[(uint32_t)page]->io_write(addr&0xFFF, val);
1.120 + io_rgn[(uintptr_t)page]->io_write(addr&0xFFF, val);
1.122 *(uint16_t *)(page+(addr&0xFFF)) = val;
1.124 @@ -316,7 +314,6 @@
1.128 - // fprintf( stderr, "MOV.B %02X => %08X\n", val, addr );
1.129 CHECK_WRITE_WATCH(addr,1,val);
1.131 if( addr >= 0xE0000000 ) {
1.132 @@ -341,13 +338,13 @@
1.135 page = page_map[ (addr & 0x1FFFFFFF) >> 12 ];
1.136 - if( ((uint32_t)page) < MAX_IO_REGIONS ) { /* IO Region */
1.137 + if( ((uintptr_t)page) < MAX_IO_REGIONS ) { /* IO Region */
1.138 if( page == NULL ) {
1.139 WARN( "Attempted byte write to missing page: %08X", addr );
1.142 TRACE_IO( "Byte write %02X => %08X", page, (addr&0xFFF), val&0xFF, addr );
1.143 - io_rgn[(uint32_t)page]->io_write( (addr&0xFFF), val);
1.144 + io_rgn[(uintptr_t)page]->io_write( (addr&0xFFF), val);
1.146 *(uint8_t *)(page+(addr&0xFFF)) = val;