Mercurial > repos > blastem
comparison z80_to_x86.c @ 387:582a68a90708
Fix dec and inc when the operand is in memory
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 05 Jun 2013 22:55:23 -0700 |
parents | e45327305bb7 |
children | 228e4c696317 |
comparison
equal
deleted
inserted
replaced
386:6e5c4f3ab0e2 | 387:582a68a90708 |
---|---|
815 dst = setcc_rdisp8(dst, CC_Z, CONTEXT, zf_off(ZF_Z)); | 815 dst = setcc_rdisp8(dst, CC_Z, CONTEXT, zf_off(ZF_Z)); |
816 dst = setcc_rdisp8(dst, CC_S, CONTEXT, zf_off(ZF_S)); | 816 dst = setcc_rdisp8(dst, CC_S, CONTEXT, zf_off(ZF_S)); |
817 } | 817 } |
818 dst = z80_save_reg(dst, inst, opts); | 818 dst = z80_save_reg(dst, inst, opts); |
819 dst = z80_save_ea(dst, inst, opts); | 819 dst = z80_save_ea(dst, inst, opts); |
820 dst = z80_save_result(dst, inst); | |
820 break; | 821 break; |
821 case Z80_DEC: | 822 case Z80_DEC: |
822 cycles = 4; | 823 cycles = 4; |
823 if (inst->reg == Z80_IX || inst->reg == Z80_IY) { | 824 if (inst->reg == Z80_IX || inst->reg == Z80_IY) { |
824 cycles += 6; | 825 cycles += 6; |
840 dst = setcc_rdisp8(dst, CC_Z, CONTEXT, zf_off(ZF_Z)); | 841 dst = setcc_rdisp8(dst, CC_Z, CONTEXT, zf_off(ZF_Z)); |
841 dst = setcc_rdisp8(dst, CC_S, CONTEXT, zf_off(ZF_S)); | 842 dst = setcc_rdisp8(dst, CC_S, CONTEXT, zf_off(ZF_S)); |
842 } | 843 } |
843 dst = z80_save_reg(dst, inst, opts); | 844 dst = z80_save_reg(dst, inst, opts); |
844 dst = z80_save_ea(dst, inst, opts); | 845 dst = z80_save_ea(dst, inst, opts); |
846 dst = z80_save_result(dst, inst); | |
845 break; | 847 break; |
846 //case Z80_DAA: | 848 //case Z80_DAA: |
847 case Z80_CPL: | 849 case Z80_CPL: |
848 dst = zcycles(dst, 4); | 850 dst = zcycles(dst, 4); |
849 dst = not_r(dst, opts->regs[Z80_A], SZ_B); | 851 dst = not_r(dst, opts->regs[Z80_A], SZ_B); |