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);