void FIN_BLOCK() { if (!delay_slot) { jump_to((PC-1)->addr+4); PC->ops(); if (dynacore) dyna_jump(); } else { #ifdef PPC_DYNAREC PowerPC_block* blk = actual; #else precomp_block *blk = actual; #endif precomp_instr *inst = PC; jump_to((PC-1)->addr+4); if (!skip_jump) { PC->ops(); actual = blk; PC = inst+1; } else PC->ops(); if (dynacore) dyna_jump(); } }
void FIN_BLOCK() { if (!delay_slot) { jump_to((PC-1)->addr+4); PC->ops(); if (dynacore) dyna_jump(); } else { precomp_block *blk = actual; precomp_instr *inst = PC; jump_to((PC-1)->addr+4); if (!skip_jump) { PC->ops(); actual = blk; PC = inst+1; } else PC->ops(); if (dynacore) dyna_jump(); } }
static void NOTCOMPILED(void) { unsigned int *mem = fast_mem_access(blocks[PC->addr>>12]->start); #ifdef CORE_DBG DebugMessage(M64MSG_INFO, "NOTCOMPILED: addr = %x ops = %lx", PC->addr, (long) PC->ops); #endif if (mem != NULL) { recompile_block((int *)mem, blocks[PC->addr >> 12], PC->addr); PC->ops(); if (r4300emu == CORE_DYNAREC) dyna_jump(); }
// ----------------------------------------------------------- // Flow control 'fake' instructions // ----------------------------------------------------------- static void FIN_BLOCK(void) { if (!delay_slot) { jump_to((PC-1)->addr+4); #if 0 #ifdef DBG if (g_DebuggerActive) update_debugger(PC->addr); #endif // Used by dynarec only, check should be unnecessary #endif PC->ops(); if (r4300emu == CORE_DYNAREC) dyna_jump(); } else { precomp_block *blk = actual; precomp_instr *inst = PC; jump_to((PC-1)->addr+4); #if 0 #ifdef DBG if (g_DebuggerActive) update_debugger(PC->addr); #endif // Used by dynarec only, check should be unnecessary #endif PC->ops(); if (!skip_jump) { actual = blk; PC = inst+1; } if (r4300emu == CORE_DYNAREC) dyna_jump(); } }
void FIN_BLOCK() { if (!delay_slot) { jump_to((PC-1)->addr+4); /*#ifdef DBG if (debugger_mode) update_debugger(PC->addr); #endif Used by dynarec only, check should be unnecessary */ PC->ops(); if (dynacore) dyna_jump(); } else { precomp_block *blk = actual; precomp_instr *inst = PC; jump_to((PC-1)->addr+4); /*#ifdef DBG if (debugger_mode) update_debugger(PC->addr); #endif Used by dynarec only, check should be unnecessary */ if (!skip_jump) { PC->ops(); actual = blk; PC = inst+1; } else PC->ops(); if (dynacore) dyna_jump(); } }