comparison m68k.cpu @ 2586:6c58cadeabe1

Implement subx in new CPU core
author Michael Pavone <pavone@retrodev.com>
date Sat, 08 Feb 2025 16:41:20 -0800
parents c730067d5f77
children e04c7e753bf6
comparison
equal deleted inserted replaced
2585:c730067d5f77 2586:6c58cadeabe1
1126 sub src dst dst Z 1126 sub src dst dst Z
1127 update_flags XNZVC 1127 update_flags XNZVC
1128 end 1128 end
1129 m68k_save_dst Z 1129 m68k_save_dst Z
1130 m68k_prefetch 1130 m68k_prefetch
1131 1131
1132 1001DDD1ZZ000SSS subx_dy_dx
1133 invalid Z 3
1134 sbc dregs.S dregs.D dregs.D Z
1135 update_flags XNVC
1136 switch Z
1137 case 0
1138 local tmp8 8
1139 mov dregs.D tmp8
1140 if tmp8
1141 update_flags Z0
1142 end
1143 case 1
1144 local tmp16 16
1145 mov dregs.D tmp16
1146 if tmp16
1147 update_flags Z0
1148 end
1149 case 2
1150 cycles 4
1151 if dregs.D
1152 update_flags Z0
1153 end
1154 end
1155 m68k_prefetch
1156
1157 1001DDD1ZZ001SSS subx_ay_ax
1158 invalid Z 3
1159 if Z
1160 decsize Z aregs.S aregs.S
1161 else
1162 switch S
1163 case 7
1164 sub 2 aregs.S aregs.S
1165 default
1166 decsize Z aregs.S aregs.S
1167 end
1168 end
1169 #predec penalty on src only
1170 cycles 2
1171 mov aregs.S scratch1
1172 switch Z
1173 case 0
1174 ocall read_8
1175 case 1
1176 ocall read_16
1177 case 2
1178 m68k_read32
1179 end
1180 mov scratch1 scratch2
1181 if Z
1182 decsize Z aregs.D aregs.D
1183 else
1184 switch D
1185 case 7
1186 sub 2 aregs.D aregs.D
1187 default
1188 decsize Z aregs.D aregs.D
1189 end
1190 end
1191 mov aregs.D scratch1
1192 switch Z
1193 case 0
1194 ocall read_8
1195 case 1
1196 ocall read_16
1197 case 2
1198 m68k_read32
1199 end
1200 sbc scratch2 scratch1 scratch1 Z
1201 update_flags XNVC
1202 switch Z
1203 case 0
1204 local tmp8 8
1205 mov dregs.D tmp8
1206 if tmp8
1207 update_flags Z0
1208 end
1209 case 1
1210 local tmp16 16
1211 mov dregs.D tmp16
1212 if tmp16
1213 update_flags Z0
1214 end
1215 case 2
1216 if dregs.D
1217 update_flags Z0
1218 end
1219 end
1220 mov aregs.D scratch2
1221 m68k_write_size Z 0
1222 m68k_prefetch
1223
1132 1110CCC0ZZ001RRR lsri 1224 1110CCC0ZZ001RRR lsri
1133 invalid Z 3 1225 invalid Z 3
1134 switch C 1226 switch C
1135 case 0 1227 case 0
1136 meta shift 8 1228 meta shift 8