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