1.1 --- a/src/sh4/sh4mem.c Thu Nov 08 12:01:57 2007 +0000
1.2 +++ b/src/sh4/sh4mem.c Thu Dec 06 10:37:55 2007 +0000
1.4 extern struct mmio_region *P4_io[];
1.5 sh4ptr_t sh4_main_ram;
1.7 -int32_t sh4_read_p4( uint32_t addr )
1.8 +int32_t sh4_read_p4( sh4addr_t addr )
1.10 struct mmio_region *io = P4_io[(addr&0x1FFFFFFF)>>19];
1.16 -void sh4_write_p4( uint32_t addr, int32_t val )
1.17 +void sh4_write_p4( sh4addr_t addr, int32_t val )
1.19 struct mmio_region *io = P4_io[(addr&0x1FFFFFFF)>>19];
1.25 -int32_t sh4_read_phys_word( uint32_t addr )
1.26 +int32_t sh4_read_phys_word( sh4addr_t addr )
1.29 if( addr >= 0xE0000000 ) /* P4 Area, handled specially */
1.30 @@ -127,7 +127,16 @@
1.34 -int32_t sh4_read_long( uint32_t addr )
1.36 + * Convenience function to read a quad-word (implemented as two long reads).
1.38 +int64_t sh4_read_quad( sh4addr_t addr )
1.40 + return ((int64_t)((uint32_t)sh4_read_long(addr))) |
1.41 + (((int64_t)((uint32_t)sh4_read_long(addr+4))) << 32);
1.44 +int32_t sh4_read_long( sh4addr_t addr )
1.52 -int32_t sh4_read_word( uint32_t addr )
1.53 +int32_t sh4_read_word( sh4addr_t addr )
1.61 -int32_t sh4_read_byte( uint32_t addr )
1.62 +int32_t sh4_read_byte( sh4addr_t addr )
1.66 @@ -224,7 +233,16 @@
1.70 -void sh4_write_long( uint32_t addr, uint32_t val )
1.72 + * Convenience function to write a quad-word (implemented as two long writes).
1.74 +void sh4_write_quad( sh4addr_t addr, uint64_t val )
1.76 + sh4_write_long( addr, (uint32_t)val );
1.77 + sh4_write_long( addr+4, (uint32_t)(val>>32) );
1.80 +void sh4_write_long( sh4addr_t addr, uint32_t val )
1.88 -void sh4_write_word( uint32_t addr, uint32_t val )
1.89 +void sh4_write_word( sh4addr_t addr, uint32_t val )
1.97 -void sh4_write_byte( uint32_t addr, uint32_t val )
1.98 +void sh4_write_byte( sh4addr_t addr, uint32_t val )
1.102 @@ -355,7 +373,7 @@
1.103 /* FIXME: Handle all the many special cases when the range doesn't fall cleanly
1.104 * into the same memory block
1.106 -void mem_copy_from_sh4( sh4ptr_t dest, uint32_t srcaddr, size_t count ) {
1.107 +void mem_copy_from_sh4( sh4ptr_t dest, sh4addr_t srcaddr, size_t count ) {
1.108 if( srcaddr >= 0x04000000 && srcaddr < 0x05000000 ) {
1.109 pvr2_vram64_read( dest, srcaddr, count );
1.111 @@ -368,7 +386,7 @@
1.115 -void mem_copy_to_sh4( uint32_t destaddr, sh4ptr_t src, size_t count ) {
1.116 +void mem_copy_to_sh4( sh4addr_t destaddr, sh4ptr_t src, size_t count ) {
1.117 if( destaddr >= 0x10000000 && destaddr < 0x14000000 ) {
1.118 pvr2_dma_write( destaddr, src, count );
1.120 @@ -387,7 +405,7 @@
1.124 -void sh4_flush_store_queue( uint32_t addr )
1.125 +void sh4_flush_store_queue( sh4addr_t addr )
1.127 /* Store queue operation */
1.128 int queue = (addr&0x20)>>2;