Mercurial > repos > blastem
comparison m68k_core_x86.c @ 2330:959a3e9aaac5
Fix M68K STOP instruction for sub CPU
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 23 Aug 2023 22:09:35 -0700 |
parents | 3b5fef896475 |
children | f0fc6c09517d |
comparison
equal
deleted
inserted
replaced
2329:06d5e9b08bdb | 2330:959a3e9aaac5 |
---|---|
2370 //leave supervisor mode | 2370 //leave supervisor mode |
2371 swap_ssp_usp(opts); | 2371 swap_ssp_usp(opts); |
2372 } | 2372 } |
2373 code_ptr loop_top = code->cur; | 2373 code_ptr loop_top = code->cur; |
2374 call(code, opts->do_sync); | 2374 call(code, opts->do_sync); |
2375 cmp_irdisp(code, 0, opts->gen.context_reg, offsetof(m68k_context, should_return), SZ_B); | |
2376 code_ptr no_return = code->cur + 1; | |
2377 jcc(code, CC_Z, no_return); | |
2378 mov_irdisp(code, (intptr_t)loop_top, opts->gen.context_reg, offsetof(m68k_context, resume_pc), SZ_PTR); | |
2379 retn(code); | |
2380 *no_return = code->cur - (no_return+1); | |
2375 cmp_rr(code, opts->gen.cycles, opts->gen.limit, SZ_D); | 2381 cmp_rr(code, opts->gen.cycles, opts->gen.limit, SZ_D); |
2376 code_ptr normal_cycle_up = code->cur + 1; | 2382 code_ptr normal_cycle_up = code->cur + 1; |
2377 jcc(code, CC_A, code->cur + 2); | 2383 jcc(code, CC_A, code->cur + 2); |
2378 cycles(&opts->gen, BUS); | 2384 cycles(&opts->gen, BUS); |
2379 code_ptr after_cycle_up = code->cur + 1; | 2385 code_ptr after_cycle_up = code->cur + 1; |