comparison z80_to_x86.c @ 309:cb6a37861e42

Correctly set the N flag for SBC
author Mike Pavone <pavone@retrodev.com>
date Thu, 09 May 2013 00:17:12 -0700
parents e0e81551fd7e
children bf440db64086
comparison
equal deleted inserted replaced
308:e0e81551fd7e 309:cb6a37861e42
646 dst = sbb_rr(dst, src_op.base, dst_op.base, z80_size(inst)); 646 dst = sbb_rr(dst, src_op.base, dst_op.base, z80_size(inst));
647 } else { 647 } else {
648 dst = sbb_ir(dst, src_op.disp, dst_op.base, z80_size(inst)); 648 dst = sbb_ir(dst, src_op.disp, dst_op.base, z80_size(inst));
649 } 649 }
650 dst = setcc_rdisp8(dst, CC_C, CONTEXT, zf_off(ZF_C)); 650 dst = setcc_rdisp8(dst, CC_C, CONTEXT, zf_off(ZF_C));
651 dst = mov_irdisp8(dst, 0, CONTEXT, zf_off(ZF_N), SZ_B); 651 dst = mov_irdisp8(dst, 1, CONTEXT, zf_off(ZF_N), SZ_B);
652 //TODO: Implement half-carry flag 652 //TODO: Implement half-carry flag
653 dst = setcc_rdisp8(dst, CC_O, CONTEXT, zf_off(ZF_PV)); 653 dst = setcc_rdisp8(dst, CC_O, CONTEXT, zf_off(ZF_PV));
654 dst = setcc_rdisp8(dst, CC_Z, CONTEXT, zf_off(ZF_Z)); 654 dst = setcc_rdisp8(dst, CC_Z, CONTEXT, zf_off(ZF_Z));
655 dst = setcc_rdisp8(dst, CC_S, CONTEXT, zf_off(ZF_S)); 655 dst = setcc_rdisp8(dst, CC_S, CONTEXT, zf_off(ZF_S));
656 dst = z80_save_reg(dst, inst, opts); 656 dst = z80_save_reg(dst, inst, opts);