musashi: run same amount of cycles as other cores
[picodrive.git] / cpu / musashi / m68kcpu.c
index c3f9fb8..38469f3 100644 (file)
@@ -790,6 +790,9 @@ int m68k_execute(int num_cycles)
        /* Make sure we're not stopped */\r
        if(!CPU_STOPPED)\r
        {\r
+               // notaz\r
+               m68ki_check_interrupts();\r
+\r
                /* Set our pool of clock cycles available */\r
                SET_CYCLES(num_cycles);\r
                m68ki_initial_cycles = num_cycles;\r
@@ -803,11 +806,13 @@ int m68k_execute(int num_cycles)
 \r
                /* Main loop.  Keep going until we run out of clock cycles */\r
                // notaz\r
-               while(GET_CYCLES() >= 0)\r
+               m68ki_trace_t1();\r
+\r
+               while(GET_CYCLES() > 0)\r
 //             do\r
                {\r
                        /* Set tracing accodring to T1. (T0 is done inside instruction) */\r
-                       m68ki_trace_t1(); /* auto-disable (see m68kcpu.h) */\r
+                       //m68ki_trace_t1(); /* auto-disable (see m68kcpu.h) */\r
 \r
                        /* Set the address space for reads */\r
                        m68ki_use_data_space(); /* auto-disable (see m68kcpu.h) */\r
@@ -821,10 +826,14 @@ int m68k_execute(int num_cycles)
                        /* Read an instruction and call its handler */\r
                        REG_IR = m68ki_read_imm_16();\r
                        m68ki_instruction_jump_table[REG_IR]();\r
-                       USE_CYCLES(CYC_INSTRUCTION[REG_IR]);\r
+                       USE_CYCLES(CYC_INSTRUCTION[REG_IR]); // moving this up may cause a deadlock\r
 \r
                        /* Trace m68k_exception, if necessary */\r
                        m68ki_exception_if_trace(); /* auto-disable (see m68kcpu.h) */\r
+\r
+                       m68ki_trace_t1(); /* notaz */\r
+\r
+                       m68ki_cpu_p->not_polling = 1;\r
                } // while(GET_CYCLES() > 0); // notaz\r
 \r
                /* set previous PC to current PC for the next entry into the loop */\r