From c125d82e2076aad6d24062212c55e5db834cd90c Mon Sep 17 00:00:00 2001 From: Michael Pavone Date: Sun, 8 Nov 2015 15:51:57 -0800 Subject: Initial work for allowing loading a ROM from menu --- m68k_core_x86.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'm68k_core_x86.c') diff --git a/m68k_core_x86.c b/m68k_core_x86.c index 62f0d6a..fca07b5 100644 --- a/m68k_core_x86.c +++ b/m68k_core_x86.c @@ -2509,7 +2509,14 @@ void init_m68k_opts(m68k_options * opts, memmap_chunk * memmap, uint32_t num_chu mov_rr(code, RAX, opts->gen.context_reg, SZ_PTR); jmp(code, opts->gen.load_context); *skip_sync = code->cur - (skip_sync+1); + cmp_irdisp(code, 0, opts->gen.context_reg, offsetof(m68k_context, should_return), SZ_B); + code_ptr do_ret = code->cur + 1; + jcc(code, CC_NZ, do_ret); retn(code); + *do_ret = code->cur - (do_ret+1); + pop_r(code, opts->gen.scratch1); + retn(code); + mov_rrdisp(code, opts->gen.scratch1, opts->gen.context_reg, offsetof(m68k_context, resume_pc), SZ_PTR); *do_int = code->cur - (do_int+1); //implement 1 instruction latency cmp_irdisp(code, 0, opts->gen.context_reg, offsetof(m68k_context, int_pending), SZ_B); -- cgit v1.2.3