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