32x: new SH2 memory handling, hopefully faster
[picodrive.git] / pico / memory.c
index d36ac62..6281501 100644 (file)
 \r
 extern unsigned int lastSSRamWrite; // used by serial eeprom code\r
 \r
-unsigned long m68k_read8_map  [0x1000000 >> M68K_MEM_SHIFT];\r
-unsigned long m68k_read16_map [0x1000000 >> M68K_MEM_SHIFT];\r
-unsigned long m68k_write8_map [0x1000000 >> M68K_MEM_SHIFT];\r
-unsigned long m68k_write16_map[0x1000000 >> M68K_MEM_SHIFT];\r
+uptr m68k_read8_map  [0x1000000 >> M68K_MEM_SHIFT];\r
+uptr m68k_read16_map [0x1000000 >> M68K_MEM_SHIFT];\r
+uptr m68k_write8_map [0x1000000 >> M68K_MEM_SHIFT];\r
+uptr m68k_write16_map[0x1000000 >> M68K_MEM_SHIFT];\r
 \r
-static void xmap_set(unsigned long *map, int shift, int start_addr, int end_addr,\r
+static void xmap_set(uptr *map, int shift, int start_addr, int end_addr,\r
     const void *func_or_mh, int is_func)\r
 {\r
-  unsigned long addr = (unsigned long)func_or_mh;\r
+  uptr addr = (uptr)func_or_mh;\r
   int mask = (1 << shift) - 1;\r
   int i;\r
 \r
@@ -48,13 +48,13 @@ static void xmap_set(unsigned long *map, int shift, int start_addr, int end_addr
   }\r
 }\r
 \r
-void z80_map_set(unsigned long *map, int start_addr, int end_addr,\r
+void z80_map_set(uptr *map, int start_addr, int end_addr,\r
     const void *func_or_mh, int is_func)\r
 {\r
   xmap_set(map, Z80_MEM_SHIFT, start_addr, end_addr, func_or_mh, is_func);\r
 }\r
 \r
-void cpu68k_map_set(unsigned long *map, int start_addr, int end_addr,\r
+void cpu68k_map_set(uptr *map, int start_addr, int end_addr,\r
     const void *func_or_mh, int is_func)\r
 {\r
   xmap_set(map, M68K_MEM_SHIFT, start_addr, end_addr, func_or_mh, is_func);\r
@@ -63,8 +63,8 @@ void cpu68k_map_set(unsigned long *map, int start_addr, int end_addr,
 // more specialized/optimized function (does same as above)\r
 void cpu68k_map_all_ram(int start_addr, int end_addr, void *ptr, int is_sub)\r
 {\r
-  unsigned long *r8map, *r16map, *w8map, *w16map;\r
-  unsigned long addr = (unsigned long)ptr;\r
+  uptr *r8map, *r16map, *w8map, *w16map;\r
+  uptr addr = (uptr)ptr;\r
   int shift = M68K_MEM_SHIFT;\r
   int i;\r
 \r
@@ -110,23 +110,23 @@ static void m68k_unmapped_write16(u32 a, u32 d)
 \r
 void m68k_map_unmap(int start_addr, int end_addr)\r
 {\r
-  unsigned long addr;\r
+  uptr addr;\r
   int shift = M68K_MEM_SHIFT;\r
   int i;\r
 \r
-  addr = (unsigned long)m68k_unmapped_read8;\r
+  addr = (uptr)m68k_unmapped_read8;\r
   for (i = start_addr >> shift; i <= end_addr >> shift; i++)\r
     m68k_read8_map[i] = (addr >> 1) | (1 << 31);\r
 \r
-  addr = (unsigned long)m68k_unmapped_read16;\r
+  addr = (uptr)m68k_unmapped_read16;\r
   for (i = start_addr >> shift; i <= end_addr >> shift; i++)\r
     m68k_read16_map[i] = (addr >> 1) | (1 << 31);\r
 \r
-  addr = (unsigned long)m68k_unmapped_write8;\r
+  addr = (uptr)m68k_unmapped_write8;\r
   for (i = start_addr >> shift; i <= end_addr >> shift; i++)\r
     m68k_write8_map[i] = (addr >> 1) | (1 << 31);\r
 \r
-  addr = (unsigned long)m68k_unmapped_write16;\r
+  addr = (uptr)m68k_unmapped_write16;\r
   for (i = start_addr >> shift; i <= end_addr >> shift; i++)\r
     m68k_write16_map[i] = (addr >> 1) | (1 << 31);\r
 }\r