Mercurial > repos > blastem
comparison z80_to_x86.c @ 373:91d28a868551
Fix cycle count for inc and dec
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 02 Jun 2013 21:12:26 -0700 |
parents | 5dcf7551bb36 |
children | 5500d1d1269e |
comparison
equal
deleted
inserted
replaced
372:5dcf7551bb36 | 373:91d28a868551 |
---|---|
800 } else if(z80_size(inst) == SZ_W) { | 800 } else if(z80_size(inst) == SZ_W) { |
801 cycles += 2; | 801 cycles += 2; |
802 } else if(inst->reg == Z80_IXH || inst->reg == Z80_IXL || inst->reg == Z80_IYH || inst->reg == Z80_IYL || inst->addr_mode == Z80_IX_DISPLACE || inst->addr_mode == Z80_IY_DISPLACE) { | 802 } else if(inst->reg == Z80_IXH || inst->reg == Z80_IXL || inst->reg == Z80_IYH || inst->reg == Z80_IYL || inst->addr_mode == Z80_IX_DISPLACE || inst->addr_mode == Z80_IY_DISPLACE) { |
803 cycles += 4; | 803 cycles += 4; |
804 } | 804 } |
805 dst = zcycles(dst, cycles); | |
805 dst = translate_z80_reg(inst, &dst_op, dst, opts); | 806 dst = translate_z80_reg(inst, &dst_op, dst, opts); |
806 if (dst_op.mode == MODE_UNUSED) { | 807 if (dst_op.mode == MODE_UNUSED) { |
807 dst = translate_z80_ea(inst, &dst_op, dst, opts, READ, MODIFY); | 808 dst = translate_z80_ea(inst, &dst_op, dst, opts, READ, MODIFY); |
808 } | 809 } |
809 dst = add_ir(dst, 1, dst_op.base, z80_size(inst)); | 810 dst = add_ir(dst, 1, dst_op.base, z80_size(inst)); |
824 } else if(z80_size(inst) == SZ_W) { | 825 } else if(z80_size(inst) == SZ_W) { |
825 cycles += 2; | 826 cycles += 2; |
826 } else if(inst->reg == Z80_IXH || inst->reg == Z80_IXL || inst->reg == Z80_IYH || inst->reg == Z80_IYL || inst->addr_mode == Z80_IX_DISPLACE || inst->addr_mode == Z80_IY_DISPLACE) { | 827 } else if(inst->reg == Z80_IXH || inst->reg == Z80_IXL || inst->reg == Z80_IYH || inst->reg == Z80_IYL || inst->addr_mode == Z80_IX_DISPLACE || inst->addr_mode == Z80_IY_DISPLACE) { |
827 cycles += 4; | 828 cycles += 4; |
828 } | 829 } |
830 dst = zcycles(dst, cycles); | |
829 dst = translate_z80_reg(inst, &dst_op, dst, opts); | 831 dst = translate_z80_reg(inst, &dst_op, dst, opts); |
830 if (dst_op.mode == MODE_UNUSED) { | 832 if (dst_op.mode == MODE_UNUSED) { |
831 dst = translate_z80_ea(inst, &dst_op, dst, opts, READ, MODIFY); | 833 dst = translate_z80_ea(inst, &dst_op, dst, opts, READ, MODIFY); |
832 } | 834 } |
833 dst = sub_ir(dst, 1, dst_op.base, z80_size(inst)); | 835 dst = sub_ir(dst, 1, dst_op.base, z80_size(inst)); |