Mercurial > repos > blastem
comparison z80_to_x86.c @ 302:3b831fe32c15
More fixes for confusion between Z80_UNUSED and MODE_UNUSED
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 08 May 2013 23:12:08 -0700 |
parents | 6e15509a1257 |
children | 8290d3086ff0 |
comparison
equal
deleted
inserted
replaced
301:6e15509a1257 | 302:3b831fe32c15 |
---|---|
883 if (inst->addr_mode != Z80_UNUSED) { | 883 if (inst->addr_mode != Z80_UNUSED) { |
884 dst = translate_z80_ea(inst, &dst_op, dst, opts, READ, MODIFY); | 884 dst = translate_z80_ea(inst, &dst_op, dst, opts, READ, MODIFY); |
885 dst = translate_z80_reg(inst, &src_op, dst, opts); //For IX/IY variants that also write to a register | 885 dst = translate_z80_reg(inst, &src_op, dst, opts); //For IX/IY variants that also write to a register |
886 dst = zcycles(dst, 1); | 886 dst = zcycles(dst, 1); |
887 } else { | 887 } else { |
888 src_op.mode = Z80_UNUSED; | 888 src_op.mode = MODE_UNUSED; |
889 dst = translate_z80_reg(inst, &dst_op, dst, opts); | 889 dst = translate_z80_reg(inst, &dst_op, dst, opts); |
890 } | 890 } |
891 dst = rol_ir(dst, 1, dst_op.base, SZ_B); | 891 dst = rol_ir(dst, 1, dst_op.base, SZ_B); |
892 if (src_op.mode != MODE_UNUSED) { | 892 if (src_op.mode != MODE_UNUSED) { |
893 dst = mov_rr(dst, dst_op.base, src_op.base, SZ_B); | 893 dst = mov_rr(dst, dst_op.base, src_op.base, SZ_B); |
914 if (inst->addr_mode != Z80_UNUSED) { | 914 if (inst->addr_mode != Z80_UNUSED) { |
915 dst = translate_z80_ea(inst, &dst_op, dst, opts, READ, MODIFY); | 915 dst = translate_z80_ea(inst, &dst_op, dst, opts, READ, MODIFY); |
916 dst = translate_z80_reg(inst, &src_op, dst, opts); //For IX/IY variants that also write to a register | 916 dst = translate_z80_reg(inst, &src_op, dst, opts); //For IX/IY variants that also write to a register |
917 dst = zcycles(dst, 1); | 917 dst = zcycles(dst, 1); |
918 } else { | 918 } else { |
919 src_op.mode = Z80_UNUSED; | 919 src_op.mode = MODE_UNUSED; |
920 dst = translate_z80_reg(inst, &dst_op, dst, opts); | 920 dst = translate_z80_reg(inst, &dst_op, dst, opts); |
921 } | 921 } |
922 dst = bt_irdisp8(dst, 0, CONTEXT, zf_off(ZF_C), SZ_B); | 922 dst = bt_irdisp8(dst, 0, CONTEXT, zf_off(ZF_C), SZ_B); |
923 dst = rcl_ir(dst, 1, dst_op.base, SZ_B); | 923 dst = rcl_ir(dst, 1, dst_op.base, SZ_B); |
924 if (src_op.mode != MODE_UNUSED) { | 924 if (src_op.mode != MODE_UNUSED) { |
946 if (inst->addr_mode != Z80_UNUSED) { | 946 if (inst->addr_mode != Z80_UNUSED) { |
947 dst = translate_z80_ea(inst, &dst_op, dst, opts, READ, MODIFY); | 947 dst = translate_z80_ea(inst, &dst_op, dst, opts, READ, MODIFY); |
948 dst = translate_z80_reg(inst, &src_op, dst, opts); //For IX/IY variants that also write to a register | 948 dst = translate_z80_reg(inst, &src_op, dst, opts); //For IX/IY variants that also write to a register |
949 dst = zcycles(dst, 1); | 949 dst = zcycles(dst, 1); |
950 } else { | 950 } else { |
951 src_op.mode = Z80_UNUSED; | 951 src_op.mode = MODE_UNUSED; |
952 dst = translate_z80_reg(inst, &dst_op, dst, opts); | 952 dst = translate_z80_reg(inst, &dst_op, dst, opts); |
953 } | 953 } |
954 dst = ror_ir(dst, 1, dst_op.base, SZ_B); | 954 dst = ror_ir(dst, 1, dst_op.base, SZ_B); |
955 if (src_op.mode != MODE_UNUSED) { | 955 if (src_op.mode != MODE_UNUSED) { |
956 dst = mov_rr(dst, dst_op.base, src_op.base, SZ_B); | 956 dst = mov_rr(dst, dst_op.base, src_op.base, SZ_B); |
977 if (inst->addr_mode != Z80_UNUSED) { | 977 if (inst->addr_mode != Z80_UNUSED) { |
978 dst = translate_z80_ea(inst, &dst_op, dst, opts, READ, MODIFY); | 978 dst = translate_z80_ea(inst, &dst_op, dst, opts, READ, MODIFY); |
979 dst = translate_z80_reg(inst, &src_op, dst, opts); //For IX/IY variants that also write to a register | 979 dst = translate_z80_reg(inst, &src_op, dst, opts); //For IX/IY variants that also write to a register |
980 dst = zcycles(dst, 1); | 980 dst = zcycles(dst, 1); |
981 } else { | 981 } else { |
982 src_op.mode = Z80_UNUSED; | 982 src_op.mode = MODE_UNUSED; |
983 dst = translate_z80_reg(inst, &dst_op, dst, opts); | 983 dst = translate_z80_reg(inst, &dst_op, dst, opts); |
984 } | 984 } |
985 dst = bt_irdisp8(dst, 0, CONTEXT, zf_off(ZF_C), SZ_B); | 985 dst = bt_irdisp8(dst, 0, CONTEXT, zf_off(ZF_C), SZ_B); |
986 dst = rcr_ir(dst, 1, dst_op.base, SZ_B); | 986 dst = rcr_ir(dst, 1, dst_op.base, SZ_B); |
987 if (src_op.mode != MODE_UNUSED) { | 987 if (src_op.mode != MODE_UNUSED) { |
1010 if (inst->addr_mode != Z80_UNUSED) { | 1010 if (inst->addr_mode != Z80_UNUSED) { |
1011 dst = translate_z80_ea(inst, &dst_op, dst, opts, READ, MODIFY); | 1011 dst = translate_z80_ea(inst, &dst_op, dst, opts, READ, MODIFY); |
1012 dst = translate_z80_reg(inst, &src_op, dst, opts); //For IX/IY variants that also write to a register | 1012 dst = translate_z80_reg(inst, &src_op, dst, opts); //For IX/IY variants that also write to a register |
1013 dst = zcycles(dst, 1); | 1013 dst = zcycles(dst, 1); |
1014 } else { | 1014 } else { |
1015 src_op.mode = Z80_UNUSED; | 1015 src_op.mode = MODE_UNUSED; |
1016 dst = translate_z80_reg(inst, &dst_op, dst, opts); | 1016 dst = translate_z80_reg(inst, &dst_op, dst, opts); |
1017 } | 1017 } |
1018 dst = shl_ir(dst, 1, dst_op.base, SZ_B); | 1018 dst = shl_ir(dst, 1, dst_op.base, SZ_B); |
1019 if (src_op.mode != MODE_UNUSED) { | 1019 if (src_op.mode != MODE_UNUSED) { |
1020 dst = mov_rr(dst, dst_op.base, src_op.base, SZ_B); | 1020 dst = mov_rr(dst, dst_op.base, src_op.base, SZ_B); |
1040 if (inst->addr_mode != Z80_UNUSED) { | 1040 if (inst->addr_mode != Z80_UNUSED) { |
1041 dst = translate_z80_ea(inst, &dst_op, dst, opts, READ, MODIFY); | 1041 dst = translate_z80_ea(inst, &dst_op, dst, opts, READ, MODIFY); |
1042 dst = translate_z80_reg(inst, &src_op, dst, opts); //For IX/IY variants that also write to a register | 1042 dst = translate_z80_reg(inst, &src_op, dst, opts); //For IX/IY variants that also write to a register |
1043 dst = zcycles(dst, 1); | 1043 dst = zcycles(dst, 1); |
1044 } else { | 1044 } else { |
1045 src_op.mode = Z80_UNUSED; | 1045 src_op.mode = MODE_UNUSED; |
1046 dst = translate_z80_reg(inst, &dst_op, dst, opts); | 1046 dst = translate_z80_reg(inst, &dst_op, dst, opts); |
1047 } | 1047 } |
1048 dst = sar_ir(dst, 1, dst_op.base, SZ_B); | 1048 dst = sar_ir(dst, 1, dst_op.base, SZ_B); |
1049 if (src_op.mode != MODE_UNUSED) { | 1049 if (src_op.mode != MODE_UNUSED) { |
1050 dst = mov_rr(dst, dst_op.base, src_op.base, SZ_B); | 1050 dst = mov_rr(dst, dst_op.base, src_op.base, SZ_B); |
1070 if (inst->addr_mode != Z80_UNUSED) { | 1070 if (inst->addr_mode != Z80_UNUSED) { |
1071 dst = translate_z80_ea(inst, &dst_op, dst, opts, READ, MODIFY); | 1071 dst = translate_z80_ea(inst, &dst_op, dst, opts, READ, MODIFY); |
1072 dst = translate_z80_reg(inst, &src_op, dst, opts); //For IX/IY variants that also write to a register | 1072 dst = translate_z80_reg(inst, &src_op, dst, opts); //For IX/IY variants that also write to a register |
1073 dst = zcycles(dst, 1); | 1073 dst = zcycles(dst, 1); |
1074 } else { | 1074 } else { |
1075 src_op.mode = Z80_UNUSED; | 1075 src_op.mode = MODE_UNUSED; |
1076 dst = translate_z80_reg(inst, &dst_op, dst, opts); | 1076 dst = translate_z80_reg(inst, &dst_op, dst, opts); |
1077 } | 1077 } |
1078 dst = shr_ir(dst, 1, dst_op.base, SZ_B); | 1078 dst = shr_ir(dst, 1, dst_op.base, SZ_B); |
1079 if (src_op.mode != MODE_UNUSED) { | 1079 if (src_op.mode != MODE_UNUSED) { |
1080 dst = mov_rr(dst, dst_op.base, src_op.base, SZ_B); | 1080 dst = mov_rr(dst, dst_op.base, src_op.base, SZ_B); |