diff --git a/SheepShaver/src/kpx_cpu/src/cpu/ppc/ppc-cpu.hpp b/SheepShaver/src/kpx_cpu/src/cpu/ppc/ppc-cpu.hpp index 241c5dda..d85715b4 100644 --- a/SheepShaver/src/kpx_cpu/src/cpu/ppc/ppc-cpu.hpp +++ b/SheepShaver/src/kpx_cpu/src/cpu/ppc/ppc-cpu.hpp @@ -281,6 +281,7 @@ protected: uint32 pc; uint32 opcode; const instr_info_t *instr_info; + bool done_compile; codegen_context_t(powerpc_dyngen & codegen_init) : codegen(codegen_init) diff --git a/SheepShaver/src/kpx_cpu/src/cpu/ppc/ppc-translate.cpp b/SheepShaver/src/kpx_cpu/src/cpu/ppc/ppc-translate.cpp index 13eb1669..14c740aa 100644 --- a/SheepShaver/src/kpx_cpu/src/cpu/ppc/ppc-translate.cpp +++ b/SheepShaver/src/kpx_cpu/src/cpu/ppc/ppc-translate.cpp @@ -1025,6 +1025,7 @@ powerpc_cpu::compile_block(uint32 entry_point) cg_context.pc = dpc; cg_context.opcode = opcode; cg_context.instr_info = ii; + cg_context.done_compile = done_compile; if (!compile1(cg_context)) { if ((dpc - sync_pc) > sync_pc_offset) { sync_pc = dpc; @@ -1034,6 +1035,7 @@ powerpc_cpu::compile_block(uint32 entry_point) sync_pc_offset += 4; dg.gen_invoke_CPU_im(func, opcode); } + done_compile = cg_context.done_compile; } } if (dg.full_translation_cache()) {