comparison z80_to_x86.c @ 702:144df1a6d3b9

Save PC to context struct when syncing Z80 at instruction start. This fixes saving savestates and probably the Z80 debugger as well
author Michael Pavone <pavone@retrodev.com>
date Tue, 12 May 2015 19:14:09 -0700
parents 200ee73c7210
children 382a2b5b70c0
comparison
equal deleted inserted replaced
701:200ee73c7210 702:144df1a6d3b9
2119 retn(code); 2119 retn(code);
2120 *skip_int = code->cur - (skip_int+1); 2120 *skip_int = code->cur - (skip_int+1);
2121 cmp_rdispr(code, options->gen.context_reg, offsetof(z80_context, sync_cycle), options->gen.cycles, SZ_D); 2121 cmp_rdispr(code, options->gen.context_reg, offsetof(z80_context, sync_cycle), options->gen.cycles, SZ_D);
2122 code_ptr skip_sync = code->cur + 1; 2122 code_ptr skip_sync = code->cur + 1;
2123 jcc(code, CC_B, skip_sync); 2123 jcc(code, CC_B, skip_sync);
2124 //save PC
2125 mov_rrdisp(code, options->gen.scratch1, options->gen.context_reg, offsetof(z80_context, pc), SZ_D);
2124 options->do_sync = code->cur; 2126 options->do_sync = code->cur;
2125 call(code, options->gen.save_context); 2127 call(code, options->gen.save_context);
2126 pop_rind(code, options->gen.context_reg); 2128 pop_rind(code, options->gen.context_reg);
2127 //restore callee saved registers 2129 //restore callee saved registers
2128 restore_callee_save_regs(code); 2130 restore_callee_save_regs(code);