comparison m68k_core_x86.c @ 872:7022ba865cfd

Initial work for allowing loading a ROM from menu
author Michael Pavone <pavone@retrodev.com>
date Sun, 08 Nov 2015 15:51:57 -0800
parents 7decd421cdc8
children 9f149f0e98b7
comparison
equal deleted inserted replaced
871:f364f4f22f8f 872:7022ba865cfd
2507 call(code, opts->gen.save_context); 2507 call(code, opts->gen.save_context);
2508 call_args_abi(code, (code_ptr)sync_components, 2, opts->gen.context_reg, opts->gen.scratch1); 2508 call_args_abi(code, (code_ptr)sync_components, 2, opts->gen.context_reg, opts->gen.scratch1);
2509 mov_rr(code, RAX, opts->gen.context_reg, SZ_PTR); 2509 mov_rr(code, RAX, opts->gen.context_reg, SZ_PTR);
2510 jmp(code, opts->gen.load_context); 2510 jmp(code, opts->gen.load_context);
2511 *skip_sync = code->cur - (skip_sync+1); 2511 *skip_sync = code->cur - (skip_sync+1);
2512 cmp_irdisp(code, 0, opts->gen.context_reg, offsetof(m68k_context, should_return), SZ_B);
2513 code_ptr do_ret = code->cur + 1;
2514 jcc(code, CC_NZ, do_ret);
2512 retn(code); 2515 retn(code);
2516 *do_ret = code->cur - (do_ret+1);
2517 pop_r(code, opts->gen.scratch1);
2518 retn(code);
2519 mov_rrdisp(code, opts->gen.scratch1, opts->gen.context_reg, offsetof(m68k_context, resume_pc), SZ_PTR);
2513 *do_int = code->cur - (do_int+1); 2520 *do_int = code->cur - (do_int+1);
2514 //implement 1 instruction latency 2521 //implement 1 instruction latency
2515 cmp_irdisp(code, 0, opts->gen.context_reg, offsetof(m68k_context, int_pending), SZ_B); 2522 cmp_irdisp(code, 0, opts->gen.context_reg, offsetof(m68k_context, int_pending), SZ_B);
2516 do_int = code->cur + 1; 2523 do_int = code->cur + 1;
2517 jcc(code, CC_NZ, do_int); 2524 jcc(code, CC_NZ, do_int);