32x: don't log purge area access
[picodrive.git] / pico / 32x / memory.c
index e50ad36..ea4051b 100644 (file)
@@ -1016,6 +1016,10 @@ static u32 sh2_read16_da(u32 a, int id)
   return ((u16 *)Pico32xMem->data_array[id])[(a & 0xfff) / 2];
 }
 
+static void sh2_write_ignore(u32 a, u32 d, int id)
+{
+}
+
 // write8
 static void sh2_write8_unmapped(u32 a, u32 d, int id)
 {
@@ -1167,7 +1171,7 @@ typedef void (sh2_write_handler)(u32 a, u32 d, int id);
 #define SH2MAP_ADDR2OFFS(a) \
   (((a >> 25) & 3) | ((a >> 27) & 0x1c))
 
-u32 p32x_sh2_read8(u32 a, SH2 *sh2)
+u32 REGPARM(2) p32x_sh2_read8(u32 a, SH2 *sh2)
 {
   const sh2_memmap *sh2_map = sh2->read8_map;
   uptr p;
@@ -1180,7 +1184,7 @@ u32 p32x_sh2_read8(u32 a, SH2 *sh2)
     return *(u8 *)((p << 1) + ((a & sh2_map->mask) ^ 1));
 }
 
-u32 p32x_sh2_read16(u32 a, SH2 *sh2)
+u32 REGPARM(2) p32x_sh2_read16(u32 a, SH2 *sh2)
 {
   const sh2_memmap *sh2_map = sh2->read16_map;
   uptr p;
@@ -1193,7 +1197,7 @@ u32 p32x_sh2_read16(u32 a, SH2 *sh2)
     return *(u16 *)((p << 1) + ((a & sh2_map->mask) & ~1));
 }
 
-u32 p32x_sh2_read32(u32 a, SH2 *sh2)
+u32 REGPARM(2) p32x_sh2_read32(u32 a, SH2 *sh2)
 {
   const sh2_memmap *sh2_map = sh2->read16_map;
   sh2_read_handler *handler;
@@ -1216,7 +1220,7 @@ u32 p32x_sh2_read32(u32 a, SH2 *sh2)
   return (handler(a, sh2->is_slave) << 16) | handler(a + 2, sh2->is_slave);
 }
 
-void p32x_sh2_write8(u32 a, u32 d, SH2 *sh2)
+void REGPARM(3) p32x_sh2_write8(u32 a, u32 d, SH2 *sh2)
 {
   const void **sh2_wmap = sh2->write8_tab;
   sh2_write_handler *wh;
@@ -1225,7 +1229,7 @@ void p32x_sh2_write8(u32 a, u32 d, SH2 *sh2)
   wh(a, d, sh2->is_slave);
 }
 
-void p32x_sh2_write16(u32 a, u32 d, SH2 *sh2)
+void REGPARM(3) p32x_sh2_write16(u32 a, u32 d, SH2 *sh2)
 {
   const void **sh2_wmap = sh2->write16_tab;
   sh2_write_handler *wh;
@@ -1234,7 +1238,7 @@ void p32x_sh2_write16(u32 a, u32 d, SH2 *sh2)
   wh(a, d, sh2->is_slave);
 }
 
-void p32x_sh2_write32(u32 a, u32 d, SH2 *sh2)
+void REGPARM(3) p32x_sh2_write32(u32 a, u32 d, SH2 *sh2)
 {
   const void **sh2_wmap = sh2->write16_tab;
   sh2_write_handler *handler;
@@ -1451,6 +1455,12 @@ void PicoMemSetup32x(void)
     sh2_write16_map[i]      = sh2_write16_unmapped;
   }
 
+  // "purge area"
+  for (i = 0x08; i <= 0x0b; i++) {
+    sh2_write8_map[i]       =
+    sh2_write16_map[i]      = sh2_write_ignore;
+  }
+
   // CS0
   sh2_read8_map[0].addr   = sh2_read8_map[4].addr   = MAP_HANDLER(sh2_read8_cs0);
   sh2_read16_map[0].addr  = sh2_read16_map[4].addr  = MAP_HANDLER(sh2_read16_cs0);