Both recompilers now check for interrupt after every instruction and exit the block if one has happened.

This commit is contained in:
OBattler
2020-07-13 01:23:40 +02:00
parent 099fd2fc34
commit 0cd0d83cee
6 changed files with 58 additions and 2 deletions

View File

@@ -696,6 +696,9 @@ generate_call:
block->ins++;
/* Check for interrupts. */
uop_CALL_INSTRUCTION_FUNC(ir, int_check);
if (block->ins >= MAX_INSTRUCTION_COUNT)
CPU_BLOCK_END();
@@ -756,6 +759,8 @@ generate_call:
uop_MOV_IMM(ir, IREG_ssegs, op_ssegs);
uop_LOAD_FUNC_ARG_IMM(ir, 0, fetchdat);
uop_CALL_INSTRUCTION_FUNC(ir, op);
/* Check for interrupts. */
uop_CALL_INSTRUCTION_FUNC(ir, int_check);
codegen_mark_code_present(block, cs+cpu_state.pc, 8);
last_op_32 = op_32;