Mercurial > repos > blastem
comparison m68k_to_x86.c @ 213:4d4559b04c59
Make reset trigger debug exit to make it easier to test the same cases in blastem and musashi. Fix asl #1 overflow flag.
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 16 Apr 2013 22:29:00 -0700 |
parents | 464513050c85 |
children | 0b5ec22dcda2 |
comparison
equal
deleted
inserted
replaced
212:e657a99b5abf | 213:4d4559b04c59 |
---|---|
2638 if (dst_op->mode == MODE_REG_DIRECT) { | 2638 if (dst_op->mode == MODE_REG_DIRECT) { |
2639 dst = shift_ir(dst, src_op->disp, dst_op->base, inst->extra.size); | 2639 dst = shift_ir(dst, src_op->disp, dst_op->base, inst->extra.size); |
2640 } else { | 2640 } else { |
2641 dst = shift_irdisp8(dst, src_op->disp, dst_op->base, dst_op->disp, inst->extra.size); | 2641 dst = shift_irdisp8(dst, src_op->disp, dst_op->base, dst_op->disp, inst->extra.size); |
2642 } | 2642 } |
2643 dst = setcc_r(dst, CC_O, FLAG_V); | |
2643 } | 2644 } |
2644 } else { | 2645 } else { |
2645 if (src_op->base != RCX) { | 2646 if (src_op->base != RCX) { |
2646 if (src_op->mode == MODE_REG_DIRECT) { | 2647 if (src_op->mode == MODE_REG_DIRECT) { |
2647 dst = mov_rr(dst, src_op->base, RCX, SZ_B); | 2648 dst = mov_rr(dst, src_op->base, RCX, SZ_B); |
3430 if (inst->src.params.immed & 0x700) { | 3431 if (inst->src.params.immed & 0x700) { |
3431 dst = call(dst, (uint8_t *)do_sync); | 3432 dst = call(dst, (uint8_t *)do_sync); |
3432 } | 3433 } |
3433 } | 3434 } |
3434 break; | 3435 break; |
3435 /*case M68K_RESET:*/ | 3436 case M68K_RESET: |
3437 dst = call(dst, (uint8_t *)m68k_save_context); | |
3438 dst = mov_rr(dst, CONTEXT, RDI, SZ_Q); | |
3439 dst = call(dst, (uint8_t *)print_regs_exit); | |
3440 break; | |
3436 case M68K_ROL: | 3441 case M68K_ROL: |
3437 case M68K_ROR: | 3442 case M68K_ROR: |
3438 dst = mov_ir(dst, 0, FLAG_V, SZ_B); | 3443 dst = mov_ir(dst, 0, FLAG_V, SZ_B); |
3439 if (inst->src.addr_mode == MODE_UNUSED) { | 3444 if (inst->src.addr_mode == MODE_UNUSED) { |
3440 dst = cycles(dst, BUS); | 3445 dst = cycles(dst, BUS); |