code region dump added for Musashi
authornotaz <notasas@gmail.com>
Mon, 5 May 2008 20:08:08 +0000 (20:08 +0000)
committernotaz <notasas@gmail.com>
Mon, 5 May 2008 20:08:08 +0000 (20:08 +0000)
git-svn-id: file:///home/notaz/opt/svn/PicoDrive@439 be3aeb3a-fb24-0410-a615-afba39da0efa

Pico/Sek.c
cpu/musashi/Makefile
cpu/musashi/m68kconf.h

index 84d7807..ac12580 100644 (file)
@@ -193,3 +193,30 @@ PICO_INTERNAL void SekSetRealTAS(int use_real)
 #endif\r
 }\r
 \r
+#if defined(EMU_M68K) && M68K_INSTRUCTION_HOOK == OPT_SPECIFY_HANDLER\r
+static unsigned char op_flags[0x400000/2] = { 0, };\r
+static int atexit_set = 0;\r
+\r
+static void make_idc(void)\r
+{\r
+  FILE *f = fopen("idc.idc", "w");\r
+  int i;\r
+  if (!f) return;\r
+  fprintf(f, "#include <idc.idc>\nstatic main() {\n");\r
+  for (i = 0; i < 0x400000/2; i++)\r
+    if (op_flags[i] != 0)\r
+      fprintf(f, "  MakeCode(0x%06x);\n", i*2);\r
+  fprintf(f, "}\n");\r
+  fclose(f);\r
+}\r
+\r
+void instruction_hook(void)\r
+{\r
+  if (!atexit_set) {\r
+    atexit(make_idc);\r
+    atexit_set = 1;\r
+  }\r
+  if (REG_PC < 0x400000)\r
+    op_flags[REG_PC/2] = 1;\r
+}\r
+#endif\r
index 10ec952..5ace7da 100644 (file)
@@ -1,3 +1,5 @@
+all : m68kops.c
+
 m68kops.c : m68kmake
        ./$<
 
index 0079871..730cf98 100644 (file)
  * instruction.\r
  */\r
 #define M68K_INSTRUCTION_HOOK       OPT_OFF\r
-#define M68K_INSTRUCTION_CALLBACK() your_instruction_hook_function()\r
+//#define M68K_INSTRUCTION_HOOK       OPT_SPECIFY_HANDLER\r
+#define M68K_INSTRUCTION_CALLBACK() instruction_hook()\r
 \r
 \r
 /* If ON, the CPU will emulate the 4-byte prefetch queue of a real 68000 */\r