9 res = DREGu8((Opcode >> 0) & 7);
15 DREGu8((Opcode >> 0) & 7) = res;
26 adr = AREG((Opcode >> 0) & 7);
34 WRITE_BYTE_F(adr, res)
46 adr = AREG((Opcode >> 0) & 7);
47 AREG((Opcode >> 0) & 7) += 1;
55 WRITE_BYTE_F(adr, res)
67 adr = AREG((Opcode >> 0) & 7) - 1;
68 AREG((Opcode >> 0) & 7) = adr;
76 WRITE_BYTE_F(adr, res)
89 adr += AREG((Opcode >> 0) & 7);
97 WRITE_BYTE_F(adr, res)
109 adr = AREG((Opcode >> 0) & 7);
112 READ_BYTE_F(adr, res)
118 WRITE_BYTE_F(adr, res)
132 READ_BYTE_F(adr, res)
138 WRITE_BYTE_F(adr, res)
152 READ_BYTE_F(adr, res)
158 WRITE_BYTE_F(adr, res)
173 READ_BYTE_F(adr, res)
179 WRITE_BYTE_F(adr, res)
194 READ_BYTE_F(adr, res)
200 WRITE_BYTE_F(adr, res)
212 res = DREGu16((Opcode >> 0) & 7);
218 DREGu16((Opcode >> 0) & 7) = res;
229 adr = AREG((Opcode >> 0) & 7);
231 READ_WORD_F(adr, res)
237 WRITE_WORD_F(adr, res)
249 adr = AREG((Opcode >> 0) & 7);
250 AREG((Opcode >> 0) & 7) += 2;
252 READ_WORD_F(adr, res)
258 WRITE_WORD_F(adr, res)
270 adr = AREG((Opcode >> 0) & 7) - 2;
271 AREG((Opcode >> 0) & 7) = adr;
273 READ_WORD_F(adr, res)
279 WRITE_WORD_F(adr, res)
292 adr += AREG((Opcode >> 0) & 7);
294 READ_WORD_F(adr, res)
300 WRITE_WORD_F(adr, res)
312 adr = AREG((Opcode >> 0) & 7);
315 READ_WORD_F(adr, res)
321 WRITE_WORD_F(adr, res)
335 READ_WORD_F(adr, res)
341 WRITE_WORD_F(adr, res)
355 READ_WORD_F(adr, res)
361 WRITE_WORD_F(adr, res)
376 READ_WORD_F(adr, res)
382 WRITE_WORD_F(adr, res)
397 READ_WORD_F(adr, res)
403 WRITE_WORD_F(adr, res)
415 res = DREGu32((Opcode >> 0) & 7);
421 DREGu32((Opcode >> 0) & 7) = res;
432 adr = AREG((Opcode >> 0) & 7);
434 READ_LONG_F(adr, res)
440 WRITE_LONG_F(adr, res)
452 adr = AREG((Opcode >> 0) & 7);
453 AREG((Opcode >> 0) & 7) += 4;
455 READ_LONG_F(adr, res)
461 WRITE_LONG_F(adr, res)
473 adr = AREG((Opcode >> 0) & 7) - 4;
474 AREG((Opcode >> 0) & 7) = adr;
476 READ_LONG_F(adr, res)
482 WRITE_LONG_F(adr, res)
495 adr += AREG((Opcode >> 0) & 7);
497 READ_LONG_F(adr, res)
503 WRITE_LONG_F(adr, res)
515 adr = AREG((Opcode >> 0) & 7);
518 READ_LONG_F(adr, res)
524 WRITE_LONG_F(adr, res)
538 READ_LONG_F(adr, res)
544 WRITE_LONG_F(adr, res)
558 READ_LONG_F(adr, res)
564 WRITE_LONG_F(adr, res)
579 READ_LONG_F(adr, res)
585 WRITE_LONG_F(adr, res)
600 READ_LONG_F(adr, res)
606 WRITE_LONG_F(adr, res)
618 res &= M68K_CCR_MASK;
637 CHECK_INT_TO_JUMP(20)
641 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
642 #ifdef USE_CYCLONE_TIMING
658 res = DREGu8((Opcode >> 0) & 7);
664 DREGu8((Opcode >> 0) & 7) = res;
675 adr = AREG((Opcode >> 0) & 7);
677 READ_BYTE_F(adr, res)
683 WRITE_BYTE_F(adr, res)
695 adr = AREG((Opcode >> 0) & 7);
696 AREG((Opcode >> 0) & 7) += 1;
698 READ_BYTE_F(adr, res)
704 WRITE_BYTE_F(adr, res)
716 adr = AREG((Opcode >> 0) & 7) - 1;
717 AREG((Opcode >> 0) & 7) = adr;
719 READ_BYTE_F(adr, res)
725 WRITE_BYTE_F(adr, res)
738 adr += AREG((Opcode >> 0) & 7);
740 READ_BYTE_F(adr, res)
746 WRITE_BYTE_F(adr, res)
758 adr = AREG((Opcode >> 0) & 7);
761 READ_BYTE_F(adr, res)
767 WRITE_BYTE_F(adr, res)
781 READ_BYTE_F(adr, res)
787 WRITE_BYTE_F(adr, res)
801 READ_BYTE_F(adr, res)
807 WRITE_BYTE_F(adr, res)
822 READ_BYTE_F(adr, res)
828 WRITE_BYTE_F(adr, res)
843 READ_BYTE_F(adr, res)
849 WRITE_BYTE_F(adr, res)
861 res = DREGu16((Opcode >> 0) & 7);
867 DREGu16((Opcode >> 0) & 7) = res;
878 adr = AREG((Opcode >> 0) & 7);
880 READ_WORD_F(adr, res)
886 WRITE_WORD_F(adr, res)
898 adr = AREG((Opcode >> 0) & 7);
899 AREG((Opcode >> 0) & 7) += 2;
901 READ_WORD_F(adr, res)
907 WRITE_WORD_F(adr, res)
919 adr = AREG((Opcode >> 0) & 7) - 2;
920 AREG((Opcode >> 0) & 7) = adr;
922 READ_WORD_F(adr, res)
928 WRITE_WORD_F(adr, res)
941 adr += AREG((Opcode >> 0) & 7);
943 READ_WORD_F(adr, res)
949 WRITE_WORD_F(adr, res)
961 adr = AREG((Opcode >> 0) & 7);
964 READ_WORD_F(adr, res)
970 WRITE_WORD_F(adr, res)
984 READ_WORD_F(adr, res)
990 WRITE_WORD_F(adr, res)
1004 READ_WORD_F(adr, res)
1010 WRITE_WORD_F(adr, res)
1025 READ_WORD_F(adr, res)
1031 WRITE_WORD_F(adr, res)
1046 READ_WORD_F(adr, res)
1052 WRITE_WORD_F(adr, res)
1064 res = DREGu32((Opcode >> 0) & 7);
1070 DREGu32((Opcode >> 0) & 7) = res;
1071 #ifdef USE_CYCLONE_TIMING
1085 adr = AREG((Opcode >> 0) & 7);
1087 READ_LONG_F(adr, res)
1093 WRITE_LONG_F(adr, res)
1105 adr = AREG((Opcode >> 0) & 7);
1106 AREG((Opcode >> 0) & 7) += 4;
1108 READ_LONG_F(adr, res)
1114 WRITE_LONG_F(adr, res)
1126 adr = AREG((Opcode >> 0) & 7) - 4;
1127 AREG((Opcode >> 0) & 7) = adr;
1129 READ_LONG_F(adr, res)
1135 WRITE_LONG_F(adr, res)
1148 adr += AREG((Opcode >> 0) & 7);
1150 READ_LONG_F(adr, res)
1156 WRITE_LONG_F(adr, res)
1168 adr = AREG((Opcode >> 0) & 7);
1171 READ_LONG_F(adr, res)
1177 WRITE_LONG_F(adr, res)
1191 READ_LONG_F(adr, res)
1197 WRITE_LONG_F(adr, res)
1211 READ_LONG_F(adr, res)
1217 WRITE_LONG_F(adr, res)
1232 READ_LONG_F(adr, res)
1238 WRITE_LONG_F(adr, res)
1253 READ_LONG_F(adr, res)
1259 WRITE_LONG_F(adr, res)
1271 res &= M68K_CCR_MASK;
1286 res &= M68K_SR_MASK;
1295 CHECK_INT_TO_JUMP(20)
1299 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
1312 res = DREGu8((Opcode >> 0) & 7);
1318 DREGu8((Opcode >> 0) & 7) = res;
1329 adr = AREG((Opcode >> 0) & 7);
1331 READ_BYTE_F(adr, res)
1337 WRITE_BYTE_F(adr, res)
1349 adr = AREG((Opcode >> 0) & 7);
1350 AREG((Opcode >> 0) & 7) += 1;
1352 READ_BYTE_F(adr, res)
1358 WRITE_BYTE_F(adr, res)
1370 adr = AREG((Opcode >> 0) & 7) - 1;
1371 AREG((Opcode >> 0) & 7) = adr;
1373 READ_BYTE_F(adr, res)
1379 WRITE_BYTE_F(adr, res)
1392 adr += AREG((Opcode >> 0) & 7);
1394 READ_BYTE_F(adr, res)
1400 WRITE_BYTE_F(adr, res)
1412 adr = AREG((Opcode >> 0) & 7);
1415 READ_BYTE_F(adr, res)
1421 WRITE_BYTE_F(adr, res)
1435 READ_BYTE_F(adr, res)
1441 WRITE_BYTE_F(adr, res)
1455 READ_BYTE_F(adr, res)
1461 WRITE_BYTE_F(adr, res)
1476 READ_BYTE_F(adr, res)
1482 WRITE_BYTE_F(adr, res)
1497 READ_BYTE_F(adr, res)
1503 WRITE_BYTE_F(adr, res)
1515 res = DREGu16((Opcode >> 0) & 7);
1521 DREGu16((Opcode >> 0) & 7) = res;
1532 adr = AREG((Opcode >> 0) & 7);
1534 READ_WORD_F(adr, res)
1540 WRITE_WORD_F(adr, res)
1552 adr = AREG((Opcode >> 0) & 7);
1553 AREG((Opcode >> 0) & 7) += 2;
1555 READ_WORD_F(adr, res)
1561 WRITE_WORD_F(adr, res)
1573 adr = AREG((Opcode >> 0) & 7) - 2;
1574 AREG((Opcode >> 0) & 7) = adr;
1576 READ_WORD_F(adr, res)
1582 WRITE_WORD_F(adr, res)
1595 adr += AREG((Opcode >> 0) & 7);
1597 READ_WORD_F(adr, res)
1603 WRITE_WORD_F(adr, res)
1615 adr = AREG((Opcode >> 0) & 7);
1618 READ_WORD_F(adr, res)
1624 WRITE_WORD_F(adr, res)
1638 READ_WORD_F(adr, res)
1644 WRITE_WORD_F(adr, res)
1658 READ_WORD_F(adr, res)
1664 WRITE_WORD_F(adr, res)
1679 READ_WORD_F(adr, res)
1685 WRITE_WORD_F(adr, res)
1700 READ_WORD_F(adr, res)
1706 WRITE_WORD_F(adr, res)
1718 res = DREGu32((Opcode >> 0) & 7);
1724 DREGu32((Opcode >> 0) & 7) = res;
1735 adr = AREG((Opcode >> 0) & 7);
1737 READ_LONG_F(adr, res)
1743 WRITE_LONG_F(adr, res)
1755 adr = AREG((Opcode >> 0) & 7);
1756 AREG((Opcode >> 0) & 7) += 4;
1758 READ_LONG_F(adr, res)
1764 WRITE_LONG_F(adr, res)
1776 adr = AREG((Opcode >> 0) & 7) - 4;
1777 AREG((Opcode >> 0) & 7) = adr;
1779 READ_LONG_F(adr, res)
1785 WRITE_LONG_F(adr, res)
1798 adr += AREG((Opcode >> 0) & 7);
1800 READ_LONG_F(adr, res)
1806 WRITE_LONG_F(adr, res)
1818 adr = AREG((Opcode >> 0) & 7);
1821 READ_LONG_F(adr, res)
1827 WRITE_LONG_F(adr, res)
1841 READ_LONG_F(adr, res)
1847 WRITE_LONG_F(adr, res)
1861 READ_LONG_F(adr, res)
1867 WRITE_LONG_F(adr, res)
1882 READ_LONG_F(adr, res)
1888 WRITE_LONG_F(adr, res)
1903 READ_LONG_F(adr, res)
1909 WRITE_LONG_F(adr, res)
1921 res &= M68K_CCR_MASK;
1936 res &= M68K_SR_MASK;
1945 CHECK_INT_TO_JUMP(20)
1949 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
1962 dst = DREGu8((Opcode >> 0) & 7);
1964 flag_N = flag_X = flag_C = res;
1965 flag_V = (src ^ dst) & (res ^ dst);
1966 flag_NotZ = res & 0xFF;
1967 DREGu8((Opcode >> 0) & 7) = res;
1978 adr = AREG((Opcode >> 0) & 7);
1980 READ_BYTE_F(adr, dst)
1982 flag_N = flag_X = flag_C = res;
1983 flag_V = (src ^ dst) & (res ^ dst);
1984 flag_NotZ = res & 0xFF;
1985 WRITE_BYTE_F(adr, res)
1997 adr = AREG((Opcode >> 0) & 7);
1998 AREG((Opcode >> 0) & 7) += 1;
2000 READ_BYTE_F(adr, dst)
2002 flag_N = flag_X = flag_C = res;
2003 flag_V = (src ^ dst) & (res ^ dst);
2004 flag_NotZ = res & 0xFF;
2005 WRITE_BYTE_F(adr, res)
2017 adr = AREG((Opcode >> 0) & 7) - 1;
2018 AREG((Opcode >> 0) & 7) = adr;
2020 READ_BYTE_F(adr, dst)
2022 flag_N = flag_X = flag_C = res;
2023 flag_V = (src ^ dst) & (res ^ dst);
2024 flag_NotZ = res & 0xFF;
2025 WRITE_BYTE_F(adr, res)
2038 adr += AREG((Opcode >> 0) & 7);
2040 READ_BYTE_F(adr, dst)
2042 flag_N = flag_X = flag_C = res;
2043 flag_V = (src ^ dst) & (res ^ dst);
2044 flag_NotZ = res & 0xFF;
2045 WRITE_BYTE_F(adr, res)
2057 adr = AREG((Opcode >> 0) & 7);
2060 READ_BYTE_F(adr, dst)
2062 flag_N = flag_X = flag_C = res;
2063 flag_V = (src ^ dst) & (res ^ dst);
2064 flag_NotZ = res & 0xFF;
2065 WRITE_BYTE_F(adr, res)
2079 READ_BYTE_F(adr, dst)
2081 flag_N = flag_X = flag_C = res;
2082 flag_V = (src ^ dst) & (res ^ dst);
2083 flag_NotZ = res & 0xFF;
2084 WRITE_BYTE_F(adr, res)
2098 READ_BYTE_F(adr, dst)
2100 flag_N = flag_X = flag_C = res;
2101 flag_V = (src ^ dst) & (res ^ dst);
2102 flag_NotZ = res & 0xFF;
2103 WRITE_BYTE_F(adr, res)
2118 READ_BYTE_F(adr, dst)
2120 flag_N = flag_X = flag_C = res;
2121 flag_V = (src ^ dst) & (res ^ dst);
2122 flag_NotZ = res & 0xFF;
2123 WRITE_BYTE_F(adr, res)
2138 READ_BYTE_F(adr, dst)
2140 flag_N = flag_X = flag_C = res;
2141 flag_V = (src ^ dst) & (res ^ dst);
2142 flag_NotZ = res & 0xFF;
2143 WRITE_BYTE_F(adr, res)
2155 dst = DREGu16((Opcode >> 0) & 7);
2157 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2158 flag_N = flag_X = flag_C = res >> 8;
2159 flag_NotZ = res & 0xFFFF;
2160 DREGu16((Opcode >> 0) & 7) = res;
2171 adr = AREG((Opcode >> 0) & 7);
2173 READ_WORD_F(adr, dst)
2175 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2176 flag_N = flag_X = flag_C = res >> 8;
2177 flag_NotZ = res & 0xFFFF;
2178 WRITE_WORD_F(adr, res)
2190 adr = AREG((Opcode >> 0) & 7);
2191 AREG((Opcode >> 0) & 7) += 2;
2193 READ_WORD_F(adr, dst)
2195 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2196 flag_N = flag_X = flag_C = res >> 8;
2197 flag_NotZ = res & 0xFFFF;
2198 WRITE_WORD_F(adr, res)
2210 adr = AREG((Opcode >> 0) & 7) - 2;
2211 AREG((Opcode >> 0) & 7) = adr;
2213 READ_WORD_F(adr, dst)
2215 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2216 flag_N = flag_X = flag_C = res >> 8;
2217 flag_NotZ = res & 0xFFFF;
2218 WRITE_WORD_F(adr, res)
2231 adr += AREG((Opcode >> 0) & 7);
2233 READ_WORD_F(adr, dst)
2235 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2236 flag_N = flag_X = flag_C = res >> 8;
2237 flag_NotZ = res & 0xFFFF;
2238 WRITE_WORD_F(adr, res)
2250 adr = AREG((Opcode >> 0) & 7);
2253 READ_WORD_F(adr, dst)
2255 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2256 flag_N = flag_X = flag_C = res >> 8;
2257 flag_NotZ = res & 0xFFFF;
2258 WRITE_WORD_F(adr, res)
2272 READ_WORD_F(adr, dst)
2274 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2275 flag_N = flag_X = flag_C = res >> 8;
2276 flag_NotZ = res & 0xFFFF;
2277 WRITE_WORD_F(adr, res)
2291 READ_WORD_F(adr, dst)
2293 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2294 flag_N = flag_X = flag_C = res >> 8;
2295 flag_NotZ = res & 0xFFFF;
2296 WRITE_WORD_F(adr, res)
2311 READ_WORD_F(adr, dst)
2313 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2314 flag_N = flag_X = flag_C = res >> 8;
2315 flag_NotZ = res & 0xFFFF;
2316 WRITE_WORD_F(adr, res)
2331 READ_WORD_F(adr, dst)
2333 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2334 flag_N = flag_X = flag_C = res >> 8;
2335 flag_NotZ = res & 0xFFFF;
2336 WRITE_WORD_F(adr, res)
2348 dst = DREGu32((Opcode >> 0) & 7);
2351 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2352 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2354 DREGu32((Opcode >> 0) & 7) = res;
2365 adr = AREG((Opcode >> 0) & 7);
2367 READ_LONG_F(adr, dst)
2370 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2371 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2373 WRITE_LONG_F(adr, res)
2385 adr = AREG((Opcode >> 0) & 7);
2386 AREG((Opcode >> 0) & 7) += 4;
2388 READ_LONG_F(adr, dst)
2391 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2392 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2394 WRITE_LONG_F(adr, res)
2406 adr = AREG((Opcode >> 0) & 7) - 4;
2407 AREG((Opcode >> 0) & 7) = adr;
2409 READ_LONG_F(adr, dst)
2412 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2413 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2415 WRITE_LONG_F(adr, res)
2428 adr += AREG((Opcode >> 0) & 7);
2430 READ_LONG_F(adr, dst)
2433 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2434 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2436 WRITE_LONG_F(adr, res)
2448 adr = AREG((Opcode >> 0) & 7);
2451 READ_LONG_F(adr, dst)
2454 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2455 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2457 WRITE_LONG_F(adr, res)
2471 READ_LONG_F(adr, dst)
2474 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2475 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2477 WRITE_LONG_F(adr, res)
2491 READ_LONG_F(adr, dst)
2494 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2495 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2497 WRITE_LONG_F(adr, res)
2512 READ_LONG_F(adr, dst)
2515 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2516 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2518 WRITE_LONG_F(adr, res)
2533 READ_LONG_F(adr, dst)
2536 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2537 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2539 WRITE_LONG_F(adr, res)
2551 dst = DREGu8((Opcode >> 0) & 7);
2553 flag_N = flag_X = flag_C = res;
2554 flag_V = (src ^ res) & (dst ^ res);
2555 flag_NotZ = res & 0xFF;
2556 DREGu8((Opcode >> 0) & 7) = res;
2567 adr = AREG((Opcode >> 0) & 7);
2569 READ_BYTE_F(adr, dst)
2571 flag_N = flag_X = flag_C = res;
2572 flag_V = (src ^ res) & (dst ^ res);
2573 flag_NotZ = res & 0xFF;
2574 WRITE_BYTE_F(adr, res)
2586 adr = AREG((Opcode >> 0) & 7);
2587 AREG((Opcode >> 0) & 7) += 1;
2589 READ_BYTE_F(adr, dst)
2591 flag_N = flag_X = flag_C = res;
2592 flag_V = (src ^ res) & (dst ^ res);
2593 flag_NotZ = res & 0xFF;
2594 WRITE_BYTE_F(adr, res)
2606 adr = AREG((Opcode >> 0) & 7) - 1;
2607 AREG((Opcode >> 0) & 7) = adr;
2609 READ_BYTE_F(adr, dst)
2611 flag_N = flag_X = flag_C = res;
2612 flag_V = (src ^ res) & (dst ^ res);
2613 flag_NotZ = res & 0xFF;
2614 WRITE_BYTE_F(adr, res)
2627 adr += AREG((Opcode >> 0) & 7);
2629 READ_BYTE_F(adr, dst)
2631 flag_N = flag_X = flag_C = res;
2632 flag_V = (src ^ res) & (dst ^ res);
2633 flag_NotZ = res & 0xFF;
2634 WRITE_BYTE_F(adr, res)
2646 adr = AREG((Opcode >> 0) & 7);
2649 READ_BYTE_F(adr, dst)
2651 flag_N = flag_X = flag_C = res;
2652 flag_V = (src ^ res) & (dst ^ res);
2653 flag_NotZ = res & 0xFF;
2654 WRITE_BYTE_F(adr, res)
2668 READ_BYTE_F(adr, dst)
2670 flag_N = flag_X = flag_C = res;
2671 flag_V = (src ^ res) & (dst ^ res);
2672 flag_NotZ = res & 0xFF;
2673 WRITE_BYTE_F(adr, res)
2687 READ_BYTE_F(adr, dst)
2689 flag_N = flag_X = flag_C = res;
2690 flag_V = (src ^ res) & (dst ^ res);
2691 flag_NotZ = res & 0xFF;
2692 WRITE_BYTE_F(adr, res)
2707 READ_BYTE_F(adr, dst)
2709 flag_N = flag_X = flag_C = res;
2710 flag_V = (src ^ res) & (dst ^ res);
2711 flag_NotZ = res & 0xFF;
2712 WRITE_BYTE_F(adr, res)
2727 READ_BYTE_F(adr, dst)
2729 flag_N = flag_X = flag_C = res;
2730 flag_V = (src ^ res) & (dst ^ res);
2731 flag_NotZ = res & 0xFF;
2732 WRITE_BYTE_F(adr, res)
2744 dst = DREGu16((Opcode >> 0) & 7);
2746 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2747 flag_N = flag_X = flag_C = res >> 8;
2748 flag_NotZ = res & 0xFFFF;
2749 DREGu16((Opcode >> 0) & 7) = res;
2760 adr = AREG((Opcode >> 0) & 7);
2762 READ_WORD_F(adr, dst)
2764 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2765 flag_N = flag_X = flag_C = res >> 8;
2766 flag_NotZ = res & 0xFFFF;
2767 WRITE_WORD_F(adr, res)
2779 adr = AREG((Opcode >> 0) & 7);
2780 AREG((Opcode >> 0) & 7) += 2;
2782 READ_WORD_F(adr, dst)
2784 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2785 flag_N = flag_X = flag_C = res >> 8;
2786 flag_NotZ = res & 0xFFFF;
2787 WRITE_WORD_F(adr, res)
2799 adr = AREG((Opcode >> 0) & 7) - 2;
2800 AREG((Opcode >> 0) & 7) = adr;
2802 READ_WORD_F(adr, dst)
2804 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2805 flag_N = flag_X = flag_C = res >> 8;
2806 flag_NotZ = res & 0xFFFF;
2807 WRITE_WORD_F(adr, res)
2820 adr += AREG((Opcode >> 0) & 7);
2822 READ_WORD_F(adr, dst)
2824 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2825 flag_N = flag_X = flag_C = res >> 8;
2826 flag_NotZ = res & 0xFFFF;
2827 WRITE_WORD_F(adr, res)
2839 adr = AREG((Opcode >> 0) & 7);
2842 READ_WORD_F(adr, dst)
2844 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2845 flag_N = flag_X = flag_C = res >> 8;
2846 flag_NotZ = res & 0xFFFF;
2847 WRITE_WORD_F(adr, res)
2861 READ_WORD_F(adr, dst)
2863 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2864 flag_N = flag_X = flag_C = res >> 8;
2865 flag_NotZ = res & 0xFFFF;
2866 WRITE_WORD_F(adr, res)
2880 READ_WORD_F(adr, dst)
2882 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2883 flag_N = flag_X = flag_C = res >> 8;
2884 flag_NotZ = res & 0xFFFF;
2885 WRITE_WORD_F(adr, res)
2900 READ_WORD_F(adr, dst)
2902 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2903 flag_N = flag_X = flag_C = res >> 8;
2904 flag_NotZ = res & 0xFFFF;
2905 WRITE_WORD_F(adr, res)
2920 READ_WORD_F(adr, dst)
2922 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2923 flag_N = flag_X = flag_C = res >> 8;
2924 flag_NotZ = res & 0xFFFF;
2925 WRITE_WORD_F(adr, res)
2937 dst = DREGu32((Opcode >> 0) & 7);
2940 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
2941 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
2943 DREGu32((Opcode >> 0) & 7) = res;
2954 adr = AREG((Opcode >> 0) & 7);
2956 READ_LONG_F(adr, dst)
2959 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
2960 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
2962 WRITE_LONG_F(adr, res)
2974 adr = AREG((Opcode >> 0) & 7);
2975 AREG((Opcode >> 0) & 7) += 4;
2977 READ_LONG_F(adr, dst)
2980 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
2981 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
2983 WRITE_LONG_F(adr, res)
2995 adr = AREG((Opcode >> 0) & 7) - 4;
2996 AREG((Opcode >> 0) & 7) = adr;
2998 READ_LONG_F(adr, dst)
3001 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3002 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3004 WRITE_LONG_F(adr, res)
3017 adr += AREG((Opcode >> 0) & 7);
3019 READ_LONG_F(adr, dst)
3022 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3023 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3025 WRITE_LONG_F(adr, res)
3037 adr = AREG((Opcode >> 0) & 7);
3040 READ_LONG_F(adr, dst)
3043 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3044 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3046 WRITE_LONG_F(adr, res)
3060 READ_LONG_F(adr, dst)
3063 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3064 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3066 WRITE_LONG_F(adr, res)
3080 READ_LONG_F(adr, dst)
3083 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3084 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3086 WRITE_LONG_F(adr, res)
3101 READ_LONG_F(adr, dst)
3104 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3105 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3107 WRITE_LONG_F(adr, res)
3122 READ_LONG_F(adr, dst)
3125 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3126 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3128 WRITE_LONG_F(adr, res)
3140 dst = DREGu8((Opcode >> 0) & 7);
3142 flag_N = flag_C = res;
3143 flag_V = (src ^ dst) & (res ^ dst);
3144 flag_NotZ = res & 0xFF;
3155 adr = AREG((Opcode >> 0) & 7);
3157 READ_BYTE_F(adr, dst)
3159 flag_N = flag_C = res;
3160 flag_V = (src ^ dst) & (res ^ dst);
3161 flag_NotZ = res & 0xFF;
3173 adr = AREG((Opcode >> 0) & 7);
3174 AREG((Opcode >> 0) & 7) += 1;
3176 READ_BYTE_F(adr, dst)
3178 flag_N = flag_C = res;
3179 flag_V = (src ^ dst) & (res ^ dst);
3180 flag_NotZ = res & 0xFF;
3192 adr = AREG((Opcode >> 0) & 7) - 1;
3193 AREG((Opcode >> 0) & 7) = adr;
3195 READ_BYTE_F(adr, dst)
3197 flag_N = flag_C = res;
3198 flag_V = (src ^ dst) & (res ^ dst);
3199 flag_NotZ = res & 0xFF;
3212 adr += AREG((Opcode >> 0) & 7);
3214 READ_BYTE_F(adr, dst)
3216 flag_N = flag_C = res;
3217 flag_V = (src ^ dst) & (res ^ dst);
3218 flag_NotZ = res & 0xFF;
3230 adr = AREG((Opcode >> 0) & 7);
3233 READ_BYTE_F(adr, dst)
3235 flag_N = flag_C = res;
3236 flag_V = (src ^ dst) & (res ^ dst);
3237 flag_NotZ = res & 0xFF;
3251 READ_BYTE_F(adr, dst)
3253 flag_N = flag_C = res;
3254 flag_V = (src ^ dst) & (res ^ dst);
3255 flag_NotZ = res & 0xFF;
3269 READ_BYTE_F(adr, dst)
3271 flag_N = flag_C = res;
3272 flag_V = (src ^ dst) & (res ^ dst);
3273 flag_NotZ = res & 0xFF;
3288 READ_BYTE_F(adr, dst)
3290 flag_N = flag_C = res;
3291 flag_V = (src ^ dst) & (res ^ dst);
3292 flag_NotZ = res & 0xFF;
3307 READ_BYTE_F(adr, dst)
3309 flag_N = flag_C = res;
3310 flag_V = (src ^ dst) & (res ^ dst);
3311 flag_NotZ = res & 0xFF;
3323 dst = DREGu16((Opcode >> 0) & 7);
3325 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3326 flag_N = flag_C = res >> 8;
3327 flag_NotZ = res & 0xFFFF;
3338 adr = AREG((Opcode >> 0) & 7);
3340 READ_WORD_F(adr, dst)
3342 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3343 flag_N = flag_C = res >> 8;
3344 flag_NotZ = res & 0xFFFF;
3356 adr = AREG((Opcode >> 0) & 7);
3357 AREG((Opcode >> 0) & 7) += 2;
3359 READ_WORD_F(adr, dst)
3361 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3362 flag_N = flag_C = res >> 8;
3363 flag_NotZ = res & 0xFFFF;
3375 adr = AREG((Opcode >> 0) & 7) - 2;
3376 AREG((Opcode >> 0) & 7) = adr;
3378 READ_WORD_F(adr, dst)
3380 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3381 flag_N = flag_C = res >> 8;
3382 flag_NotZ = res & 0xFFFF;
3395 adr += AREG((Opcode >> 0) & 7);
3397 READ_WORD_F(adr, dst)
3399 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3400 flag_N = flag_C = res >> 8;
3401 flag_NotZ = res & 0xFFFF;
3413 adr = AREG((Opcode >> 0) & 7);
3416 READ_WORD_F(adr, dst)
3418 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3419 flag_N = flag_C = res >> 8;
3420 flag_NotZ = res & 0xFFFF;
3434 READ_WORD_F(adr, dst)
3436 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3437 flag_N = flag_C = res >> 8;
3438 flag_NotZ = res & 0xFFFF;
3452 READ_WORD_F(adr, dst)
3454 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3455 flag_N = flag_C = res >> 8;
3456 flag_NotZ = res & 0xFFFF;
3471 READ_WORD_F(adr, dst)
3473 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3474 flag_N = flag_C = res >> 8;
3475 flag_NotZ = res & 0xFFFF;
3490 READ_WORD_F(adr, dst)
3492 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3493 flag_N = flag_C = res >> 8;
3494 flag_NotZ = res & 0xFFFF;
3506 dst = DREGu32((Opcode >> 0) & 7);
3509 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3510 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3522 adr = AREG((Opcode >> 0) & 7);
3524 READ_LONG_F(adr, dst)
3527 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3528 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3541 adr = AREG((Opcode >> 0) & 7);
3542 AREG((Opcode >> 0) & 7) += 4;
3544 READ_LONG_F(adr, dst)
3547 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3548 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3561 adr = AREG((Opcode >> 0) & 7) - 4;
3562 AREG((Opcode >> 0) & 7) = adr;
3564 READ_LONG_F(adr, dst)
3567 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3568 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3582 adr += AREG((Opcode >> 0) & 7);
3584 READ_LONG_F(adr, dst)
3587 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3588 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3601 adr = AREG((Opcode >> 0) & 7);
3604 READ_LONG_F(adr, dst)
3607 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3608 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3623 READ_LONG_F(adr, dst)
3626 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3627 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3642 READ_LONG_F(adr, dst)
3645 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3646 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3662 READ_LONG_F(adr, dst)
3665 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3666 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3682 READ_LONG_F(adr, dst)
3685 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3686 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3699 src = 1 << (src & 31);
3700 res = DREGu32((Opcode >> 0) & 7);
3701 flag_NotZ = res & src;
3712 src = 1 << (src & 7);
3713 adr = AREG((Opcode >> 0) & 7);
3715 READ_BYTE_F(adr, res)
3716 flag_NotZ = res & src;
3728 src = 1 << (src & 7);
3729 adr = AREG((Opcode >> 0) & 7);
3730 AREG((Opcode >> 0) & 7) += 1;
3732 READ_BYTE_F(adr, res)
3733 flag_NotZ = res & src;
3745 src = 1 << (src & 7);
3746 adr = AREG((Opcode >> 0) & 7) - 1;
3747 AREG((Opcode >> 0) & 7) = adr;
3749 READ_BYTE_F(adr, res)
3750 flag_NotZ = res & src;
3762 src = 1 << (src & 7);
3764 adr += AREG((Opcode >> 0) & 7);
3766 READ_BYTE_F(adr, res)
3767 flag_NotZ = res & src;
3779 src = 1 << (src & 7);
3780 adr = AREG((Opcode >> 0) & 7);
3783 READ_BYTE_F(adr, res)
3784 flag_NotZ = res & src;
3796 src = 1 << (src & 7);
3799 READ_BYTE_F(adr, res)
3800 flag_NotZ = res & src;
3812 src = 1 << (src & 7);
3815 READ_BYTE_F(adr, res)
3816 flag_NotZ = res & src;
3828 src = 1 << (src & 7);
3829 adr = GET_SWORD + ((u32)(PC) - BasePC);
3832 READ_BYTE_F(adr, res)
3833 flag_NotZ = res & src;
3845 src = 1 << (src & 7);
3846 adr = (u32)(PC) - BasePC;
3849 READ_BYTE_F(adr, res)
3850 flag_NotZ = res & src;
3862 src = 1 << (src & 7);
3866 READ_BYTE_F(adr, res)
3867 flag_NotZ = res & src;
3879 src = 1 << (src & 7);
3883 READ_BYTE_F(adr, res)
3884 flag_NotZ = res & src;
3896 src = 1 << (src & 31);
3897 res = DREGu32((Opcode >> 0) & 7);
3898 flag_NotZ = res & src;
3900 DREGu32((Opcode >> 0) & 7) = res;
3911 src = 1 << (src & 7);
3912 adr = AREG((Opcode >> 0) & 7);
3914 READ_BYTE_F(adr, res)
3915 flag_NotZ = res & src;
3917 WRITE_BYTE_F(adr, res)
3929 src = 1 << (src & 7);
3930 adr = AREG((Opcode >> 0) & 7);
3931 AREG((Opcode >> 0) & 7) += 1;
3933 READ_BYTE_F(adr, res)
3934 flag_NotZ = res & src;
3936 WRITE_BYTE_F(adr, res)
3948 src = 1 << (src & 7);
3949 adr = AREG((Opcode >> 0) & 7) - 1;
3950 AREG((Opcode >> 0) & 7) = adr;
3952 READ_BYTE_F(adr, res)
3953 flag_NotZ = res & src;
3955 WRITE_BYTE_F(adr, res)
3967 src = 1 << (src & 7);
3969 adr += AREG((Opcode >> 0) & 7);
3971 READ_BYTE_F(adr, res)
3972 flag_NotZ = res & src;
3974 WRITE_BYTE_F(adr, res)
3986 src = 1 << (src & 7);
3987 adr = AREG((Opcode >> 0) & 7);
3990 READ_BYTE_F(adr, res)
3991 flag_NotZ = res & src;
3993 WRITE_BYTE_F(adr, res)
4005 src = 1 << (src & 7);
4008 READ_BYTE_F(adr, res)
4009 flag_NotZ = res & src;
4011 WRITE_BYTE_F(adr, res)
4023 src = 1 << (src & 7);
4026 READ_BYTE_F(adr, res)
4027 flag_NotZ = res & src;
4029 WRITE_BYTE_F(adr, res)
4041 src = 1 << (src & 7);
4045 READ_BYTE_F(adr, res)
4046 flag_NotZ = res & src;
4048 WRITE_BYTE_F(adr, res)
4060 src = 1 << (src & 7);
4064 READ_BYTE_F(adr, res)
4065 flag_NotZ = res & src;
4067 WRITE_BYTE_F(adr, res)
4079 src = 1 << (src & 31);
4080 res = DREGu32((Opcode >> 0) & 7);
4081 flag_NotZ = res & src;
4083 DREGu32((Opcode >> 0) & 7) = res;
4094 src = 1 << (src & 7);
4095 adr = AREG((Opcode >> 0) & 7);
4097 READ_BYTE_F(adr, res)
4098 flag_NotZ = res & src;
4100 WRITE_BYTE_F(adr, res)
4112 src = 1 << (src & 7);
4113 adr = AREG((Opcode >> 0) & 7);
4114 AREG((Opcode >> 0) & 7) += 1;
4116 READ_BYTE_F(adr, res)
4117 flag_NotZ = res & src;
4119 WRITE_BYTE_F(adr, res)
4131 src = 1 << (src & 7);
4132 adr = AREG((Opcode >> 0) & 7) - 1;
4133 AREG((Opcode >> 0) & 7) = adr;
4135 READ_BYTE_F(adr, res)
4136 flag_NotZ = res & src;
4138 WRITE_BYTE_F(adr, res)
4150 src = 1 << (src & 7);
4152 adr += AREG((Opcode >> 0) & 7);
4154 READ_BYTE_F(adr, res)
4155 flag_NotZ = res & src;
4157 WRITE_BYTE_F(adr, res)
4169 src = 1 << (src & 7);
4170 adr = AREG((Opcode >> 0) & 7);
4173 READ_BYTE_F(adr, res)
4174 flag_NotZ = res & src;
4176 WRITE_BYTE_F(adr, res)
4188 src = 1 << (src & 7);
4191 READ_BYTE_F(adr, res)
4192 flag_NotZ = res & src;
4194 WRITE_BYTE_F(adr, res)
4206 src = 1 << (src & 7);
4209 READ_BYTE_F(adr, res)
4210 flag_NotZ = res & src;
4212 WRITE_BYTE_F(adr, res)
4224 src = 1 << (src & 7);
4228 READ_BYTE_F(adr, res)
4229 flag_NotZ = res & src;
4231 WRITE_BYTE_F(adr, res)
4243 src = 1 << (src & 7);
4247 READ_BYTE_F(adr, res)
4248 flag_NotZ = res & src;
4250 WRITE_BYTE_F(adr, res)
4262 src = 1 << (src & 31);
4263 res = DREGu32((Opcode >> 0) & 7);
4264 flag_NotZ = res & src;
4266 DREGu32((Opcode >> 0) & 7) = res;
4277 src = 1 << (src & 7);
4278 adr = AREG((Opcode >> 0) & 7);
4280 READ_BYTE_F(adr, res)
4281 flag_NotZ = res & src;
4283 WRITE_BYTE_F(adr, res)
4295 src = 1 << (src & 7);
4296 adr = AREG((Opcode >> 0) & 7);
4297 AREG((Opcode >> 0) & 7) += 1;
4299 READ_BYTE_F(adr, res)
4300 flag_NotZ = res & src;
4302 WRITE_BYTE_F(adr, res)
4314 src = 1 << (src & 7);
4315 adr = AREG((Opcode >> 0) & 7) - 1;
4316 AREG((Opcode >> 0) & 7) = adr;
4318 READ_BYTE_F(adr, res)
4319 flag_NotZ = res & src;
4321 WRITE_BYTE_F(adr, res)
4333 src = 1 << (src & 7);
4335 adr += AREG((Opcode >> 0) & 7);
4337 READ_BYTE_F(adr, res)
4338 flag_NotZ = res & src;
4340 WRITE_BYTE_F(adr, res)
4352 src = 1 << (src & 7);
4353 adr = AREG((Opcode >> 0) & 7);
4356 READ_BYTE_F(adr, res)
4357 flag_NotZ = res & src;
4359 WRITE_BYTE_F(adr, res)
4371 src = 1 << (src & 7);
4374 READ_BYTE_F(adr, res)
4375 flag_NotZ = res & src;
4377 WRITE_BYTE_F(adr, res)
4389 src = 1 << (src & 7);
4392 READ_BYTE_F(adr, res)
4393 flag_NotZ = res & src;
4395 WRITE_BYTE_F(adr, res)
4407 src = 1 << (src & 7);
4411 READ_BYTE_F(adr, res)
4412 flag_NotZ = res & src;
4414 WRITE_BYTE_F(adr, res)
4426 src = 1 << (src & 7);
4430 READ_BYTE_F(adr, res)
4431 flag_NotZ = res & src;
4433 WRITE_BYTE_F(adr, res)
4444 src = DREGu32((Opcode >> 9) & 7);
4445 src = 1 << (src & 31);
4446 res = DREGu32((Opcode >> 0) & 7);
4447 flag_NotZ = res & src;
4457 src = DREGu8((Opcode >> 9) & 7);
4458 src = 1 << (src & 7);
4459 adr = AREG((Opcode >> 0) & 7);
4461 READ_BYTE_F(adr, res)
4462 flag_NotZ = res & src;
4473 src = DREGu8((Opcode >> 9) & 7);
4474 src = 1 << (src & 7);
4475 adr = AREG((Opcode >> 0) & 7);
4476 AREG((Opcode >> 0) & 7) += 1;
4478 READ_BYTE_F(adr, res)
4479 flag_NotZ = res & src;
4490 src = DREGu8((Opcode >> 9) & 7);
4491 src = 1 << (src & 7);
4492 adr = AREG((Opcode >> 0) & 7) - 1;
4493 AREG((Opcode >> 0) & 7) = adr;
4495 READ_BYTE_F(adr, res)
4496 flag_NotZ = res & src;
4507 src = DREGu8((Opcode >> 9) & 7);
4508 src = 1 << (src & 7);
4510 adr += AREG((Opcode >> 0) & 7);
4512 READ_BYTE_F(adr, res)
4513 flag_NotZ = res & src;
4524 src = DREGu8((Opcode >> 9) & 7);
4525 src = 1 << (src & 7);
4526 adr = AREG((Opcode >> 0) & 7);
4529 READ_BYTE_F(adr, res)
4530 flag_NotZ = res & src;
4541 src = DREGu8((Opcode >> 9) & 7);
4542 src = 1 << (src & 7);
4545 READ_BYTE_F(adr, res)
4546 flag_NotZ = res & src;
4557 src = DREGu8((Opcode >> 9) & 7);
4558 src = 1 << (src & 7);
4561 READ_BYTE_F(adr, res)
4562 flag_NotZ = res & src;
4573 src = DREGu8((Opcode >> 9) & 7);
4574 src = 1 << (src & 7);
4575 adr = GET_SWORD + ((u32)(PC) - BasePC);
4578 READ_BYTE_F(adr, res)
4579 flag_NotZ = res & src;
4590 src = DREGu8((Opcode >> 9) & 7);
4591 src = 1 << (src & 7);
4592 adr = (u32)(PC) - BasePC;
4595 READ_BYTE_F(adr, res)
4596 flag_NotZ = res & src;
4607 src = DREGu8((Opcode >> 9) & 7);
4608 src = 1 << (src & 7);
4610 flag_NotZ = res & src;
4620 src = DREGu8((Opcode >> 9) & 7);
4621 src = 1 << (src & 7);
4625 READ_BYTE_F(adr, res)
4626 flag_NotZ = res & src;
4637 src = DREGu8((Opcode >> 9) & 7);
4638 src = 1 << (src & 7);
4642 READ_BYTE_F(adr, res)
4643 flag_NotZ = res & src;
4654 src = DREGu32((Opcode >> 9) & 7);
4655 src = 1 << (src & 31);
4656 res = DREGu32((Opcode >> 0) & 7);
4657 flag_NotZ = res & src;
4659 DREGu32((Opcode >> 0) & 7) = res;
4669 src = DREGu8((Opcode >> 9) & 7);
4670 src = 1 << (src & 7);
4671 adr = AREG((Opcode >> 0) & 7);
4673 READ_BYTE_F(adr, res)
4674 flag_NotZ = res & src;
4676 WRITE_BYTE_F(adr, res)
4687 src = DREGu8((Opcode >> 9) & 7);
4688 src = 1 << (src & 7);
4689 adr = AREG((Opcode >> 0) & 7);
4690 AREG((Opcode >> 0) & 7) += 1;
4692 READ_BYTE_F(adr, res)
4693 flag_NotZ = res & src;
4695 WRITE_BYTE_F(adr, res)
4706 src = DREGu8((Opcode >> 9) & 7);
4707 src = 1 << (src & 7);
4708 adr = AREG((Opcode >> 0) & 7) - 1;
4709 AREG((Opcode >> 0) & 7) = adr;
4711 READ_BYTE_F(adr, res)
4712 flag_NotZ = res & src;
4714 WRITE_BYTE_F(adr, res)
4725 src = DREGu8((Opcode >> 9) & 7);
4726 src = 1 << (src & 7);
4728 adr += AREG((Opcode >> 0) & 7);
4730 READ_BYTE_F(adr, res)
4731 flag_NotZ = res & src;
4733 WRITE_BYTE_F(adr, res)
4744 src = DREGu8((Opcode >> 9) & 7);
4745 src = 1 << (src & 7);
4746 adr = AREG((Opcode >> 0) & 7);
4749 READ_BYTE_F(adr, res)
4750 flag_NotZ = res & src;
4752 WRITE_BYTE_F(adr, res)
4763 src = DREGu8((Opcode >> 9) & 7);
4764 src = 1 << (src & 7);
4767 READ_BYTE_F(adr, res)
4768 flag_NotZ = res & src;
4770 WRITE_BYTE_F(adr, res)
4781 src = DREGu8((Opcode >> 9) & 7);
4782 src = 1 << (src & 7);
4785 READ_BYTE_F(adr, res)
4786 flag_NotZ = res & src;
4788 WRITE_BYTE_F(adr, res)
4799 src = DREGu8((Opcode >> 9) & 7);
4800 src = 1 << (src & 7);
4804 READ_BYTE_F(adr, res)
4805 flag_NotZ = res & src;
4807 WRITE_BYTE_F(adr, res)
4818 src = DREGu8((Opcode >> 9) & 7);
4819 src = 1 << (src & 7);
4823 READ_BYTE_F(adr, res)
4824 flag_NotZ = res & src;
4826 WRITE_BYTE_F(adr, res)
4837 src = DREGu32((Opcode >> 9) & 7);
4838 src = 1 << (src & 31);
4839 res = DREGu32((Opcode >> 0) & 7);
4840 flag_NotZ = res & src;
4842 DREGu32((Opcode >> 0) & 7) = res;
4852 src = DREGu8((Opcode >> 9) & 7);
4853 src = 1 << (src & 7);
4854 adr = AREG((Opcode >> 0) & 7);
4856 READ_BYTE_F(adr, res)
4857 flag_NotZ = res & src;
4859 WRITE_BYTE_F(adr, res)
4870 src = DREGu8((Opcode >> 9) & 7);
4871 src = 1 << (src & 7);
4872 adr = AREG((Opcode >> 0) & 7);
4873 AREG((Opcode >> 0) & 7) += 1;
4875 READ_BYTE_F(adr, res)
4876 flag_NotZ = res & src;
4878 WRITE_BYTE_F(adr, res)
4889 src = DREGu8((Opcode >> 9) & 7);
4890 src = 1 << (src & 7);
4891 adr = AREG((Opcode >> 0) & 7) - 1;
4892 AREG((Opcode >> 0) & 7) = adr;
4894 READ_BYTE_F(adr, res)
4895 flag_NotZ = res & src;
4897 WRITE_BYTE_F(adr, res)
4908 src = DREGu8((Opcode >> 9) & 7);
4909 src = 1 << (src & 7);
4911 adr += AREG((Opcode >> 0) & 7);
4913 READ_BYTE_F(adr, res)
4914 flag_NotZ = res & src;
4916 WRITE_BYTE_F(adr, res)
4927 src = DREGu8((Opcode >> 9) & 7);
4928 src = 1 << (src & 7);
4929 adr = AREG((Opcode >> 0) & 7);
4932 READ_BYTE_F(adr, res)
4933 flag_NotZ = res & src;
4935 WRITE_BYTE_F(adr, res)
4946 src = DREGu8((Opcode >> 9) & 7);
4947 src = 1 << (src & 7);
4950 READ_BYTE_F(adr, res)
4951 flag_NotZ = res & src;
4953 WRITE_BYTE_F(adr, res)
4964 src = DREGu8((Opcode >> 9) & 7);
4965 src = 1 << (src & 7);
4968 READ_BYTE_F(adr, res)
4969 flag_NotZ = res & src;
4971 WRITE_BYTE_F(adr, res)
4982 src = DREGu8((Opcode >> 9) & 7);
4983 src = 1 << (src & 7);
4987 READ_BYTE_F(adr, res)
4988 flag_NotZ = res & src;
4990 WRITE_BYTE_F(adr, res)
5001 src = DREGu8((Opcode >> 9) & 7);
5002 src = 1 << (src & 7);
5006 READ_BYTE_F(adr, res)
5007 flag_NotZ = res & src;
5009 WRITE_BYTE_F(adr, res)
5020 src = DREGu32((Opcode >> 9) & 7);
5021 src = 1 << (src & 31);
5022 res = DREGu32((Opcode >> 0) & 7);
5023 flag_NotZ = res & src;
5025 DREGu32((Opcode >> 0) & 7) = res;
5035 src = DREGu8((Opcode >> 9) & 7);
5036 src = 1 << (src & 7);
5037 adr = AREG((Opcode >> 0) & 7);
5039 READ_BYTE_F(adr, res)
5040 flag_NotZ = res & src;
5042 WRITE_BYTE_F(adr, res)
5053 src = DREGu8((Opcode >> 9) & 7);
5054 src = 1 << (src & 7);
5055 adr = AREG((Opcode >> 0) & 7);
5056 AREG((Opcode >> 0) & 7) += 1;
5058 READ_BYTE_F(adr, res)
5059 flag_NotZ = res & src;
5061 WRITE_BYTE_F(adr, res)
5072 src = DREGu8((Opcode >> 9) & 7);
5073 src = 1 << (src & 7);
5074 adr = AREG((Opcode >> 0) & 7) - 1;
5075 AREG((Opcode >> 0) & 7) = adr;
5077 READ_BYTE_F(adr, res)
5078 flag_NotZ = res & src;
5080 WRITE_BYTE_F(adr, res)
5091 src = DREGu8((Opcode >> 9) & 7);
5092 src = 1 << (src & 7);
5094 adr += AREG((Opcode >> 0) & 7);
5096 READ_BYTE_F(adr, res)
5097 flag_NotZ = res & src;
5099 WRITE_BYTE_F(adr, res)
5110 src = DREGu8((Opcode >> 9) & 7);
5111 src = 1 << (src & 7);
5112 adr = AREG((Opcode >> 0) & 7);
5115 READ_BYTE_F(adr, res)
5116 flag_NotZ = res & src;
5118 WRITE_BYTE_F(adr, res)
5129 src = DREGu8((Opcode >> 9) & 7);
5130 src = 1 << (src & 7);
5133 READ_BYTE_F(adr, res)
5134 flag_NotZ = res & src;
5136 WRITE_BYTE_F(adr, res)
5147 src = DREGu8((Opcode >> 9) & 7);
5148 src = 1 << (src & 7);
5151 READ_BYTE_F(adr, res)
5152 flag_NotZ = res & src;
5154 WRITE_BYTE_F(adr, res)
5165 src = DREGu8((Opcode >> 9) & 7);
5166 src = 1 << (src & 7);
5170 READ_BYTE_F(adr, res)
5171 flag_NotZ = res & src;
5173 WRITE_BYTE_F(adr, res)
5184 src = DREGu8((Opcode >> 9) & 7);
5185 src = 1 << (src & 7);
5189 READ_BYTE_F(adr, res)
5190 flag_NotZ = res & src;
5192 WRITE_BYTE_F(adr, res)
5204 adr += AREG((Opcode >> 0) & 7);
5206 READ_BYTE_F(adr + 0, res)
5207 READ_BYTE_F(adr + 2, src)
5208 DREGu16((Opcode >> 9) & 7) = (res << 8) | src;
5210 #ifdef USE_CYCLONE_TIMING
5224 adr += AREG((Opcode >> 0) & 7);
5226 READ_BYTE_F(adr, res)
5229 READ_BYTE_F(adr, src)
5232 READ_BYTE_F(adr, src)
5235 READ_BYTE_F(adr, src)
5236 DREG((Opcode >> 9) & 7) = res | src;
5238 #ifdef USE_CYCLONE_TIMING
5251 res = DREGu32((Opcode >> 9) & 7);
5253 adr += AREG((Opcode >> 0) & 7);
5255 WRITE_BYTE_F(adr + 0, res >> 8)
5256 WRITE_BYTE_F(adr + 2, res >> 0)
5258 #ifdef USE_CYCLONE_TIMING
5271 res = DREGu32((Opcode >> 9) & 7);
5273 adr += AREG((Opcode >> 0) & 7);
5275 WRITE_BYTE_F(adr, res >> 24)
5277 WRITE_BYTE_F(adr, res >> 16)
5279 WRITE_BYTE_F(adr, res >> 8)
5281 WRITE_BYTE_F(adr, res >> 0)
5283 #ifdef USE_CYCLONE_TIMING
5296 res = DREGu8((Opcode >> 0) & 7);
5301 DREGu8((Opcode >> 9) & 7) = res;
5311 res = DREGu8((Opcode >> 0) & 7);
5316 adr = AREG((Opcode >> 9) & 7);
5318 WRITE_BYTE_F(adr, res)
5329 res = DREGu8((Opcode >> 0) & 7);
5334 adr = AREG((Opcode >> 9) & 7);
5335 AREG((Opcode >> 9) & 7) += 1;
5337 WRITE_BYTE_F(adr, res)
5348 res = DREGu8((Opcode >> 0) & 7);
5353 adr = AREG((Opcode >> 9) & 7) - 1;
5354 AREG((Opcode >> 9) & 7) = adr;
5356 WRITE_BYTE_F(adr, res)
5367 res = DREGu8((Opcode >> 0) & 7);
5373 adr += AREG((Opcode >> 9) & 7);
5375 WRITE_BYTE_F(adr, res)
5386 res = DREGu8((Opcode >> 0) & 7);
5391 adr = AREG((Opcode >> 9) & 7);
5394 WRITE_BYTE_F(adr, res)
5405 res = DREGu8((Opcode >> 0) & 7);
5412 WRITE_BYTE_F(adr, res)
5423 res = DREGu8((Opcode >> 0) & 7);
5430 WRITE_BYTE_F(adr, res)
5441 res = DREGu8((Opcode >> 0) & 7);
5449 WRITE_BYTE_F(adr, res)
5460 res = DREGu8((Opcode >> 0) & 7);
5468 WRITE_BYTE_F(adr, res)
5480 // can't read byte from Ax registers !
5481 m68kcontext.execinfo |= M68K_FAULTED;
5482 m68kcontext.io_cycle_counter = 0;
5484 goto famec_Exec_End;
5489 DREGu8((Opcode >> 9) & 7) = res;
5500 // can't read byte from Ax registers !
5501 m68kcontext.execinfo |= M68K_FAULTED;
5502 m68kcontext.io_cycle_counter = 0;
5504 goto famec_Exec_End;
5509 adr = AREG((Opcode >> 9) & 7);
5511 WRITE_BYTE_F(adr, res)
5523 // can't read byte from Ax registers !
5524 m68kcontext.execinfo |= M68K_FAULTED;
5525 m68kcontext.io_cycle_counter = 0;
5527 goto famec_Exec_End;
5532 adr = AREG((Opcode >> 9) & 7);
5533 AREG((Opcode >> 9) & 7) += 1;
5535 WRITE_BYTE_F(adr, res)
5547 // can't read byte from Ax registers !
5548 m68kcontext.execinfo |= M68K_FAULTED;
5549 m68kcontext.io_cycle_counter = 0;
5551 goto famec_Exec_End;
5556 adr = AREG((Opcode >> 9) & 7) - 1;
5557 AREG((Opcode >> 9) & 7) = adr;
5559 WRITE_BYTE_F(adr, res)
5571 // can't read byte from Ax registers !
5572 m68kcontext.execinfo |= M68K_FAULTED;
5573 m68kcontext.io_cycle_counter = 0;
5575 goto famec_Exec_End;
5581 adr += AREG((Opcode >> 9) & 7);
5583 WRITE_BYTE_F(adr, res)
5595 // can't read byte from Ax registers !
5596 m68kcontext.execinfo |= M68K_FAULTED;
5597 m68kcontext.io_cycle_counter = 0;
5599 goto famec_Exec_End;
5604 adr = AREG((Opcode >> 9) & 7);
5607 WRITE_BYTE_F(adr, res)
5619 // can't read byte from Ax registers !
5620 m68kcontext.execinfo |= M68K_FAULTED;
5621 m68kcontext.io_cycle_counter = 0;
5623 goto famec_Exec_End;
5630 WRITE_BYTE_F(adr, res)
5642 // can't read byte from Ax registers !
5643 m68kcontext.execinfo |= M68K_FAULTED;
5644 m68kcontext.io_cycle_counter = 0;
5646 goto famec_Exec_End;
5653 WRITE_BYTE_F(adr, res)
5665 // can't read byte from Ax registers !
5666 m68kcontext.execinfo |= M68K_FAULTED;
5667 m68kcontext.io_cycle_counter = 0;
5669 goto famec_Exec_End;
5677 WRITE_BYTE_F(adr, res)
5689 // can't read byte from Ax registers !
5690 m68kcontext.execinfo |= M68K_FAULTED;
5691 m68kcontext.io_cycle_counter = 0;
5693 goto famec_Exec_End;
5701 WRITE_BYTE_F(adr, res)
5714 adr = AREG((Opcode >> 0) & 7);
5716 READ_BYTE_F(adr, res)
5721 DREGu8((Opcode >> 9) & 7) = res;
5732 adr = AREG((Opcode >> 0) & 7);
5734 READ_BYTE_F(adr, res)
5739 adr = AREG((Opcode >> 9) & 7);
5740 WRITE_BYTE_F(adr, res)
5751 adr = AREG((Opcode >> 0) & 7);
5753 READ_BYTE_F(adr, res)
5758 adr = AREG((Opcode >> 9) & 7);
5759 AREG((Opcode >> 9) & 7) += 1;
5760 WRITE_BYTE_F(adr, res)
5771 adr = AREG((Opcode >> 0) & 7);
5773 READ_BYTE_F(adr, res)
5778 adr = AREG((Opcode >> 9) & 7) - 1;
5779 AREG((Opcode >> 9) & 7) = adr;
5780 WRITE_BYTE_F(adr, res)
5791 adr = AREG((Opcode >> 0) & 7);
5793 READ_BYTE_F(adr, res)
5799 adr += AREG((Opcode >> 9) & 7);
5800 WRITE_BYTE_F(adr, res)
5811 adr = AREG((Opcode >> 0) & 7);
5813 READ_BYTE_F(adr, res)
5818 adr = AREG((Opcode >> 9) & 7);
5820 WRITE_BYTE_F(adr, res)
5831 adr = AREG((Opcode >> 0) & 7);
5833 READ_BYTE_F(adr, res)
5839 WRITE_BYTE_F(adr, res)
5850 adr = AREG((Opcode >> 0) & 7);
5852 READ_BYTE_F(adr, res)
5858 WRITE_BYTE_F(adr, res)
5869 adr = AREG((Opcode >> 0) & 7);
5871 READ_BYTE_F(adr, res)
5878 WRITE_BYTE_F(adr, res)
5889 adr = AREG((Opcode >> 0) & 7);
5891 READ_BYTE_F(adr, res)
5898 WRITE_BYTE_F(adr, res)
5909 adr = AREG((Opcode >> 0) & 7);
5910 AREG((Opcode >> 0) & 7) += 1;
5912 READ_BYTE_F(adr, res)
5917 DREGu8((Opcode >> 9) & 7) = res;
5928 adr = AREG((Opcode >> 0) & 7);
5929 AREG((Opcode >> 0) & 7) += 1;
5931 READ_BYTE_F(adr, res)
5936 adr = AREG((Opcode >> 9) & 7);
5937 WRITE_BYTE_F(adr, res)
5948 adr = AREG((Opcode >> 0) & 7);
5949 AREG((Opcode >> 0) & 7) += 1;
5951 READ_BYTE_F(adr, res)
5956 adr = AREG((Opcode >> 9) & 7);
5957 AREG((Opcode >> 9) & 7) += 1;
5958 WRITE_BYTE_F(adr, res)
5969 adr = AREG((Opcode >> 0) & 7);
5970 AREG((Opcode >> 0) & 7) += 1;
5972 READ_BYTE_F(adr, res)
5977 adr = AREG((Opcode >> 9) & 7) - 1;
5978 AREG((Opcode >> 9) & 7) = adr;
5979 WRITE_BYTE_F(adr, res)
5990 adr = AREG((Opcode >> 0) & 7);
5991 AREG((Opcode >> 0) & 7) += 1;
5993 READ_BYTE_F(adr, res)
5999 adr += AREG((Opcode >> 9) & 7);
6000 WRITE_BYTE_F(adr, res)
6011 adr = AREG((Opcode >> 0) & 7);
6012 AREG((Opcode >> 0) & 7) += 1;
6014 READ_BYTE_F(adr, res)
6019 adr = AREG((Opcode >> 9) & 7);
6021 WRITE_BYTE_F(adr, res)
6032 adr = AREG((Opcode >> 0) & 7);
6033 AREG((Opcode >> 0) & 7) += 1;
6035 READ_BYTE_F(adr, res)
6041 WRITE_BYTE_F(adr, res)
6052 adr = AREG((Opcode >> 0) & 7);
6053 AREG((Opcode >> 0) & 7) += 1;
6055 READ_BYTE_F(adr, res)
6061 WRITE_BYTE_F(adr, res)
6072 adr = AREG((Opcode >> 0) & 7);
6073 AREG((Opcode >> 0) & 7) += 1;
6075 READ_BYTE_F(adr, res)
6082 WRITE_BYTE_F(adr, res)
6093 adr = AREG((Opcode >> 0) & 7);
6094 AREG((Opcode >> 0) & 7) += 1;
6096 READ_BYTE_F(adr, res)
6103 WRITE_BYTE_F(adr, res)
6114 adr = AREG((Opcode >> 0) & 7) - 1;
6115 AREG((Opcode >> 0) & 7) = adr;
6117 READ_BYTE_F(adr, res)
6122 DREGu8((Opcode >> 9) & 7) = res;
6133 adr = AREG((Opcode >> 0) & 7) - 1;
6134 AREG((Opcode >> 0) & 7) = adr;
6136 READ_BYTE_F(adr, res)
6141 adr = AREG((Opcode >> 9) & 7);
6142 WRITE_BYTE_F(adr, res)
6153 adr = AREG((Opcode >> 0) & 7) - 1;
6154 AREG((Opcode >> 0) & 7) = adr;
6156 READ_BYTE_F(adr, res)
6161 adr = AREG((Opcode >> 9) & 7);
6162 AREG((Opcode >> 9) & 7) += 1;
6163 WRITE_BYTE_F(adr, res)
6174 adr = AREG((Opcode >> 0) & 7) - 1;
6175 AREG((Opcode >> 0) & 7) = adr;
6177 READ_BYTE_F(adr, res)
6182 adr = AREG((Opcode >> 9) & 7) - 1;
6183 AREG((Opcode >> 9) & 7) = adr;
6184 WRITE_BYTE_F(adr, res)
6195 adr = AREG((Opcode >> 0) & 7) - 1;
6196 AREG((Opcode >> 0) & 7) = adr;
6198 READ_BYTE_F(adr, res)
6204 adr += AREG((Opcode >> 9) & 7);
6205 WRITE_BYTE_F(adr, res)
6216 adr = AREG((Opcode >> 0) & 7) - 1;
6217 AREG((Opcode >> 0) & 7) = adr;
6219 READ_BYTE_F(adr, res)
6224 adr = AREG((Opcode >> 9) & 7);
6226 WRITE_BYTE_F(adr, res)
6237 adr = AREG((Opcode >> 0) & 7) - 1;
6238 AREG((Opcode >> 0) & 7) = adr;
6240 READ_BYTE_F(adr, res)
6246 WRITE_BYTE_F(adr, res)
6257 adr = AREG((Opcode >> 0) & 7) - 1;
6258 AREG((Opcode >> 0) & 7) = adr;
6260 READ_BYTE_F(adr, res)
6266 WRITE_BYTE_F(adr, res)
6277 adr = AREG((Opcode >> 0) & 7) - 1;
6278 AREG((Opcode >> 0) & 7) = adr;
6280 READ_BYTE_F(adr, res)
6287 WRITE_BYTE_F(adr, res)
6298 adr = AREG((Opcode >> 0) & 7) - 1;
6299 AREG((Opcode >> 0) & 7) = adr;
6301 READ_BYTE_F(adr, res)
6308 WRITE_BYTE_F(adr, res)
6320 adr += AREG((Opcode >> 0) & 7);
6322 READ_BYTE_F(adr, res)
6327 DREGu8((Opcode >> 9) & 7) = res;
6339 adr += AREG((Opcode >> 0) & 7);
6341 READ_BYTE_F(adr, res)
6346 adr = AREG((Opcode >> 9) & 7);
6347 WRITE_BYTE_F(adr, res)
6359 adr += AREG((Opcode >> 0) & 7);
6361 READ_BYTE_F(adr, res)
6366 adr = AREG((Opcode >> 9) & 7);
6367 AREG((Opcode >> 9) & 7) += 1;
6368 WRITE_BYTE_F(adr, res)
6380 adr += AREG((Opcode >> 0) & 7);
6382 READ_BYTE_F(adr, res)
6387 adr = AREG((Opcode >> 9) & 7) - 1;
6388 AREG((Opcode >> 9) & 7) = adr;
6389 WRITE_BYTE_F(adr, res)
6401 adr += AREG((Opcode >> 0) & 7);
6403 READ_BYTE_F(adr, res)
6409 adr += AREG((Opcode >> 9) & 7);
6410 WRITE_BYTE_F(adr, res)
6422 adr += AREG((Opcode >> 0) & 7);
6424 READ_BYTE_F(adr, res)
6429 adr = AREG((Opcode >> 9) & 7);
6431 WRITE_BYTE_F(adr, res)
6443 adr += AREG((Opcode >> 0) & 7);
6445 READ_BYTE_F(adr, res)
6451 WRITE_BYTE_F(adr, res)
6463 adr += AREG((Opcode >> 0) & 7);
6465 READ_BYTE_F(adr, res)
6471 WRITE_BYTE_F(adr, res)
6483 adr += AREG((Opcode >> 0) & 7);
6485 READ_BYTE_F(adr, res)
6492 WRITE_BYTE_F(adr, res)
6504 adr += AREG((Opcode >> 0) & 7);
6506 READ_BYTE_F(adr, res)
6513 WRITE_BYTE_F(adr, res)
6524 adr = AREG((Opcode >> 0) & 7);
6527 READ_BYTE_F(adr, res)
6532 DREGu8((Opcode >> 9) & 7) = res;
6543 adr = AREG((Opcode >> 0) & 7);
6546 READ_BYTE_F(adr, res)
6551 adr = AREG((Opcode >> 9) & 7);
6552 WRITE_BYTE_F(adr, res)
6563 adr = AREG((Opcode >> 0) & 7);
6566 READ_BYTE_F(adr, res)
6571 adr = AREG((Opcode >> 9) & 7);
6572 AREG((Opcode >> 9) & 7) += 1;
6573 WRITE_BYTE_F(adr, res)
6584 adr = AREG((Opcode >> 0) & 7);
6587 READ_BYTE_F(adr, res)
6592 adr = AREG((Opcode >> 9) & 7) - 1;
6593 AREG((Opcode >> 9) & 7) = adr;
6594 WRITE_BYTE_F(adr, res)
6605 adr = AREG((Opcode >> 0) & 7);
6608 READ_BYTE_F(adr, res)
6614 adr += AREG((Opcode >> 9) & 7);
6615 WRITE_BYTE_F(adr, res)
6626 adr = AREG((Opcode >> 0) & 7);
6629 READ_BYTE_F(adr, res)
6634 adr = AREG((Opcode >> 9) & 7);
6636 WRITE_BYTE_F(adr, res)
6647 adr = AREG((Opcode >> 0) & 7);
6650 READ_BYTE_F(adr, res)
6656 WRITE_BYTE_F(adr, res)
6667 adr = AREG((Opcode >> 0) & 7);
6670 READ_BYTE_F(adr, res)
6676 WRITE_BYTE_F(adr, res)
6687 adr = AREG((Opcode >> 0) & 7);
6690 READ_BYTE_F(adr, res)
6697 WRITE_BYTE_F(adr, res)
6708 adr = AREG((Opcode >> 0) & 7);
6711 READ_BYTE_F(adr, res)
6718 WRITE_BYTE_F(adr, res)
6731 READ_BYTE_F(adr, res)
6736 DREGu8((Opcode >> 9) & 7) = res;
6749 READ_BYTE_F(adr, res)
6754 adr = AREG((Opcode >> 9) & 7);
6755 WRITE_BYTE_F(adr, res)
6768 READ_BYTE_F(adr, res)
6773 adr = AREG((Opcode >> 9) & 7);
6774 AREG((Opcode >> 9) & 7) += 1;
6775 WRITE_BYTE_F(adr, res)
6788 READ_BYTE_F(adr, res)
6793 adr = AREG((Opcode >> 9) & 7) - 1;
6794 AREG((Opcode >> 9) & 7) = adr;
6795 WRITE_BYTE_F(adr, res)
6808 READ_BYTE_F(adr, res)
6814 adr += AREG((Opcode >> 9) & 7);
6815 WRITE_BYTE_F(adr, res)
6828 READ_BYTE_F(adr, res)
6833 adr = AREG((Opcode >> 9) & 7);
6835 WRITE_BYTE_F(adr, res)
6848 READ_BYTE_F(adr, res)
6854 WRITE_BYTE_F(adr, res)
6867 READ_BYTE_F(adr, res)
6873 WRITE_BYTE_F(adr, res)
6886 READ_BYTE_F(adr, res)
6893 WRITE_BYTE_F(adr, res)
6906 READ_BYTE_F(adr, res)
6913 WRITE_BYTE_F(adr, res)
6926 READ_BYTE_F(adr, res)
6931 DREGu8((Opcode >> 9) & 7) = res;
6944 READ_BYTE_F(adr, res)
6949 adr = AREG((Opcode >> 9) & 7);
6950 WRITE_BYTE_F(adr, res)
6963 READ_BYTE_F(adr, res)
6968 adr = AREG((Opcode >> 9) & 7);
6969 AREG((Opcode >> 9) & 7) += 1;
6970 WRITE_BYTE_F(adr, res)
6983 READ_BYTE_F(adr, res)
6988 adr = AREG((Opcode >> 9) & 7) - 1;
6989 AREG((Opcode >> 9) & 7) = adr;
6990 WRITE_BYTE_F(adr, res)
7003 READ_BYTE_F(adr, res)
7009 adr += AREG((Opcode >> 9) & 7);
7010 WRITE_BYTE_F(adr, res)
7023 READ_BYTE_F(adr, res)
7028 adr = AREG((Opcode >> 9) & 7);
7030 WRITE_BYTE_F(adr, res)
7043 READ_BYTE_F(adr, res)
7049 WRITE_BYTE_F(adr, res)
7062 READ_BYTE_F(adr, res)
7068 WRITE_BYTE_F(adr, res)
7081 READ_BYTE_F(adr, res)
7088 WRITE_BYTE_F(adr, res)
7101 READ_BYTE_F(adr, res)
7108 WRITE_BYTE_F(adr, res)
7119 adr = GET_SWORD + ((u32)(PC) - BasePC);
7122 READ_BYTE_F(adr, res)
7127 DREGu8((Opcode >> 9) & 7) = res;
7138 adr = GET_SWORD + ((u32)(PC) - BasePC);
7141 READ_BYTE_F(adr, res)
7146 adr = AREG((Opcode >> 9) & 7);
7147 WRITE_BYTE_F(adr, res)
7158 adr = GET_SWORD + ((u32)(PC) - BasePC);
7161 READ_BYTE_F(adr, res)
7166 adr = AREG((Opcode >> 9) & 7);
7167 AREG((Opcode >> 9) & 7) += 1;
7168 WRITE_BYTE_F(adr, res)
7179 adr = GET_SWORD + ((u32)(PC) - BasePC);
7182 READ_BYTE_F(adr, res)
7187 adr = AREG((Opcode >> 9) & 7) - 1;
7188 AREG((Opcode >> 9) & 7) = adr;
7189 WRITE_BYTE_F(adr, res)
7200 adr = GET_SWORD + ((u32)(PC) - BasePC);
7203 READ_BYTE_F(adr, res)
7209 adr += AREG((Opcode >> 9) & 7);
7210 WRITE_BYTE_F(adr, res)
7221 adr = GET_SWORD + ((u32)(PC) - BasePC);
7224 READ_BYTE_F(adr, res)
7229 adr = AREG((Opcode >> 9) & 7);
7231 WRITE_BYTE_F(adr, res)
7242 adr = GET_SWORD + ((u32)(PC) - BasePC);
7245 READ_BYTE_F(adr, res)
7251 WRITE_BYTE_F(adr, res)
7262 adr = GET_SWORD + ((u32)(PC) - BasePC);
7265 READ_BYTE_F(adr, res)
7271 WRITE_BYTE_F(adr, res)
7282 adr = GET_SWORD + ((u32)(PC) - BasePC);
7285 READ_BYTE_F(adr, res)
7292 WRITE_BYTE_F(adr, res)
7303 adr = GET_SWORD + ((u32)(PC) - BasePC);
7306 READ_BYTE_F(adr, res)
7313 WRITE_BYTE_F(adr, res)
7324 adr = (u32)(PC) - BasePC;
7327 READ_BYTE_F(adr, res)
7332 DREGu8((Opcode >> 9) & 7) = res;
7343 adr = (u32)(PC) - BasePC;
7346 READ_BYTE_F(adr, res)
7351 adr = AREG((Opcode >> 9) & 7);
7352 WRITE_BYTE_F(adr, res)
7363 adr = (u32)(PC) - BasePC;
7366 READ_BYTE_F(adr, res)
7371 adr = AREG((Opcode >> 9) & 7);
7372 AREG((Opcode >> 9) & 7) += 1;
7373 WRITE_BYTE_F(adr, res)
7384 adr = (u32)(PC) - BasePC;
7387 READ_BYTE_F(adr, res)
7392 adr = AREG((Opcode >> 9) & 7) - 1;
7393 AREG((Opcode >> 9) & 7) = adr;
7394 WRITE_BYTE_F(adr, res)
7405 adr = (u32)(PC) - BasePC;
7408 READ_BYTE_F(adr, res)
7414 adr += AREG((Opcode >> 9) & 7);
7415 WRITE_BYTE_F(adr, res)
7426 adr = (u32)(PC) - BasePC;
7429 READ_BYTE_F(adr, res)
7434 adr = AREG((Opcode >> 9) & 7);
7436 WRITE_BYTE_F(adr, res)
7447 adr = (u32)(PC) - BasePC;
7450 READ_BYTE_F(adr, res)
7456 WRITE_BYTE_F(adr, res)
7467 adr = (u32)(PC) - BasePC;
7470 READ_BYTE_F(adr, res)
7476 WRITE_BYTE_F(adr, res)
7487 adr = (u32)(PC) - BasePC;
7490 READ_BYTE_F(adr, res)
7497 WRITE_BYTE_F(adr, res)
7508 adr = (u32)(PC) - BasePC;
7511 READ_BYTE_F(adr, res)
7518 WRITE_BYTE_F(adr, res)
7534 DREGu8((Opcode >> 9) & 7) = res;
7549 adr = AREG((Opcode >> 9) & 7);
7551 WRITE_BYTE_F(adr, res)
7567 adr = AREG((Opcode >> 9) & 7);
7568 AREG((Opcode >> 9) & 7) += 1;
7570 WRITE_BYTE_F(adr, res)
7586 adr = AREG((Opcode >> 9) & 7) - 1;
7587 AREG((Opcode >> 9) & 7) = adr;
7589 WRITE_BYTE_F(adr, res)
7606 adr += AREG((Opcode >> 9) & 7);
7608 WRITE_BYTE_F(adr, res)
7624 adr = AREG((Opcode >> 9) & 7);
7627 WRITE_BYTE_F(adr, res)
7645 WRITE_BYTE_F(adr, res)
7663 WRITE_BYTE_F(adr, res)
7682 WRITE_BYTE_F(adr, res)
7701 WRITE_BYTE_F(adr, res)
7715 READ_BYTE_F(adr, res)
7720 DREGu8((Opcode >> 9) & 7) = res;
7734 READ_BYTE_F(adr, res)
7739 adr = AREG((Opcode >> 9) & 7);
7740 WRITE_BYTE_F(adr, res)
7754 READ_BYTE_F(adr, res)
7759 adr = AREG((Opcode >> 9) & 7);
7760 AREG((Opcode >> 9) & 7) += 1;
7761 WRITE_BYTE_F(adr, res)
7775 READ_BYTE_F(adr, res)
7780 adr = AREG((Opcode >> 9) & 7) - 1;
7781 AREG((Opcode >> 9) & 7) = adr;
7782 WRITE_BYTE_F(adr, res)
7796 READ_BYTE_F(adr, res)
7802 adr += AREG((Opcode >> 9) & 7);
7803 WRITE_BYTE_F(adr, res)
7817 READ_BYTE_F(adr, res)
7822 adr = AREG((Opcode >> 9) & 7);
7824 WRITE_BYTE_F(adr, res)
7838 READ_BYTE_F(adr, res)
7844 WRITE_BYTE_F(adr, res)
7858 READ_BYTE_F(adr, res)
7864 WRITE_BYTE_F(adr, res)
7878 READ_BYTE_F(adr, res)
7885 WRITE_BYTE_F(adr, res)
7899 READ_BYTE_F(adr, res)
7906 WRITE_BYTE_F(adr, res)
7920 READ_BYTE_F(adr, res)
7925 DREGu8((Opcode >> 9) & 7) = res;
7939 READ_BYTE_F(adr, res)
7944 adr = AREG((Opcode >> 9) & 7);
7945 WRITE_BYTE_F(adr, res)
7959 READ_BYTE_F(adr, res)
7964 adr = AREG((Opcode >> 9) & 7);
7965 AREG((Opcode >> 9) & 7) += 1;
7966 WRITE_BYTE_F(adr, res)
7980 READ_BYTE_F(adr, res)
7985 adr = AREG((Opcode >> 9) & 7) - 1;
7986 AREG((Opcode >> 9) & 7) = adr;
7987 WRITE_BYTE_F(adr, res)
8001 READ_BYTE_F(adr, res)
8007 adr += AREG((Opcode >> 9) & 7);
8008 WRITE_BYTE_F(adr, res)
8022 READ_BYTE_F(adr, res)
8027 adr = AREG((Opcode >> 9) & 7);
8029 WRITE_BYTE_F(adr, res)
8043 READ_BYTE_F(adr, res)
8049 WRITE_BYTE_F(adr, res)
8063 READ_BYTE_F(adr, res)
8069 WRITE_BYTE_F(adr, res)
8083 READ_BYTE_F(adr, res)
8090 WRITE_BYTE_F(adr, res)
8104 READ_BYTE_F(adr, res)
8111 WRITE_BYTE_F(adr, res)
8122 res = DREGu32((Opcode >> 0) & 7);
8127 DREGu32((Opcode >> 9) & 7) = res;
8137 res = DREGu32((Opcode >> 0) & 7);
8142 adr = AREG((Opcode >> 9) & 7);
8144 WRITE_LONG_F(adr, res)
8155 res = DREGu32((Opcode >> 0) & 7);
8160 adr = AREG((Opcode >> 9) & 7);
8161 AREG((Opcode >> 9) & 7) += 4;
8163 WRITE_LONG_F(adr, res)
8174 res = DREGu32((Opcode >> 0) & 7);
8179 adr = AREG((Opcode >> 9) & 7) - 4;
8180 AREG((Opcode >> 9) & 7) = adr;
8182 WRITE_LONG_DEC_F(adr, res)
8193 res = DREGu32((Opcode >> 0) & 7);
8199 adr += AREG((Opcode >> 9) & 7);
8201 WRITE_LONG_F(adr, res)
8212 res = DREGu32((Opcode >> 0) & 7);
8217 adr = AREG((Opcode >> 9) & 7);
8220 WRITE_LONG_F(adr, res)
8231 res = DREGu32((Opcode >> 0) & 7);
8238 WRITE_LONG_F(adr, res)
8249 res = DREGu32((Opcode >> 0) & 7);
8256 WRITE_LONG_F(adr, res)
8267 res = DREGu32((Opcode >> 0) & 7);
8275 WRITE_LONG_F(adr, res)
8286 res = DREGu32((Opcode >> 0) & 7);
8294 WRITE_LONG_DEC_F(adr, res)
8305 res = AREGu32((Opcode >> 0) & 7);
8310 DREGu32((Opcode >> 9) & 7) = res;
8320 res = AREGu32((Opcode >> 0) & 7);
8325 adr = AREG((Opcode >> 9) & 7);
8327 WRITE_LONG_F(adr, res)
8338 res = AREGu32((Opcode >> 0) & 7);
8343 adr = AREG((Opcode >> 9) & 7);
8344 AREG((Opcode >> 9) & 7) += 4;
8346 WRITE_LONG_F(adr, res)
8357 res = AREGu32((Opcode >> 0) & 7);
8362 adr = AREG((Opcode >> 9) & 7) - 4;
8363 AREG((Opcode >> 9) & 7) = adr;
8365 WRITE_LONG_DEC_F(adr, res)
8376 res = AREGu32((Opcode >> 0) & 7);
8382 adr += AREG((Opcode >> 9) & 7);
8384 WRITE_LONG_F(adr, res)
8395 res = AREGu32((Opcode >> 0) & 7);
8400 adr = AREG((Opcode >> 9) & 7);
8403 WRITE_LONG_F(adr, res)
8414 res = AREGu32((Opcode >> 0) & 7);
8421 WRITE_LONG_F(adr, res)
8432 res = AREGu32((Opcode >> 0) & 7);
8439 WRITE_LONG_F(adr, res)
8450 res = AREGu32((Opcode >> 0) & 7);
8458 WRITE_LONG_F(adr, res)
8469 res = AREGu32((Opcode >> 0) & 7);
8477 WRITE_LONG_DEC_F(adr, res)
8488 adr = AREG((Opcode >> 0) & 7);
8490 READ_LONG_F(adr, res)
8495 DREGu32((Opcode >> 9) & 7) = res;
8506 adr = AREG((Opcode >> 0) & 7);
8508 READ_LONG_F(adr, res)
8513 adr = AREG((Opcode >> 9) & 7);
8514 WRITE_LONG_F(adr, res)
8525 adr = AREG((Opcode >> 0) & 7);
8527 READ_LONG_F(adr, res)
8532 adr = AREG((Opcode >> 9) & 7);
8533 AREG((Opcode >> 9) & 7) += 4;
8534 WRITE_LONG_F(adr, res)
8545 adr = AREG((Opcode >> 0) & 7);
8547 READ_LONG_F(adr, res)
8552 adr = AREG((Opcode >> 9) & 7) - 4;
8553 AREG((Opcode >> 9) & 7) = adr;
8554 WRITE_LONG_DEC_F(adr, res)
8565 adr = AREG((Opcode >> 0) & 7);
8567 READ_LONG_F(adr, res)
8573 adr += AREG((Opcode >> 9) & 7);
8574 WRITE_LONG_F(adr, res)
8585 adr = AREG((Opcode >> 0) & 7);
8587 READ_LONG_F(adr, res)
8592 adr = AREG((Opcode >> 9) & 7);
8594 WRITE_LONG_F(adr, res)
8605 adr = AREG((Opcode >> 0) & 7);
8607 READ_LONG_F(adr, res)
8613 WRITE_LONG_F(adr, res)
8624 adr = AREG((Opcode >> 0) & 7);
8626 READ_LONG_F(adr, res)
8632 WRITE_LONG_F(adr, res)
8643 adr = AREG((Opcode >> 0) & 7);
8645 READ_LONG_F(adr, res)
8652 WRITE_LONG_F(adr, res)
8663 adr = AREG((Opcode >> 0) & 7);
8665 READ_LONG_F(adr, res)
8672 WRITE_LONG_DEC_F(adr, res)
8683 adr = AREG((Opcode >> 0) & 7);
8684 AREG((Opcode >> 0) & 7) += 4;
8686 READ_LONG_F(adr, res)
8691 DREGu32((Opcode >> 9) & 7) = res;
8702 adr = AREG((Opcode >> 0) & 7);
8703 AREG((Opcode >> 0) & 7) += 4;
8705 READ_LONG_F(adr, res)
8710 adr = AREG((Opcode >> 9) & 7);
8711 WRITE_LONG_F(adr, res)
8722 adr = AREG((Opcode >> 0) & 7);
8723 AREG((Opcode >> 0) & 7) += 4;
8725 READ_LONG_F(adr, res)
8730 adr = AREG((Opcode >> 9) & 7);
8731 AREG((Opcode >> 9) & 7) += 4;
8732 WRITE_LONG_F(adr, res)
8743 adr = AREG((Opcode >> 0) & 7);
8744 AREG((Opcode >> 0) & 7) += 4;
8746 READ_LONG_F(adr, res)
8751 adr = AREG((Opcode >> 9) & 7) - 4;
8752 AREG((Opcode >> 9) & 7) = adr;
8753 WRITE_LONG_DEC_F(adr, res)
8764 adr = AREG((Opcode >> 0) & 7);
8765 AREG((Opcode >> 0) & 7) += 4;
8767 READ_LONG_F(adr, res)
8773 adr += AREG((Opcode >> 9) & 7);
8774 WRITE_LONG_F(adr, res)
8785 adr = AREG((Opcode >> 0) & 7);
8786 AREG((Opcode >> 0) & 7) += 4;
8788 READ_LONG_F(adr, res)
8793 adr = AREG((Opcode >> 9) & 7);
8795 WRITE_LONG_F(adr, res)
8806 adr = AREG((Opcode >> 0) & 7);
8807 AREG((Opcode >> 0) & 7) += 4;
8809 READ_LONG_F(adr, res)
8815 WRITE_LONG_F(adr, res)
8826 adr = AREG((Opcode >> 0) & 7);
8827 AREG((Opcode >> 0) & 7) += 4;
8829 READ_LONG_F(adr, res)
8835 WRITE_LONG_F(adr, res)
8846 adr = AREG((Opcode >> 0) & 7);
8847 AREG((Opcode >> 0) & 7) += 4;
8849 READ_LONG_F(adr, res)
8856 WRITE_LONG_F(adr, res)
8867 adr = AREG((Opcode >> 0) & 7);
8868 AREG((Opcode >> 0) & 7) += 4;
8870 READ_LONG_F(adr, res)
8877 WRITE_LONG_DEC_F(adr, res)
8888 adr = AREG((Opcode >> 0) & 7) - 4;
8889 AREG((Opcode >> 0) & 7) = adr;
8891 READ_LONG_F(adr, res)
8896 DREGu32((Opcode >> 9) & 7) = res;
8907 adr = AREG((Opcode >> 0) & 7) - 4;
8908 AREG((Opcode >> 0) & 7) = adr;
8910 READ_LONG_F(adr, res)
8915 adr = AREG((Opcode >> 9) & 7);
8916 WRITE_LONG_F(adr, res)
8927 adr = AREG((Opcode >> 0) & 7) - 4;
8928 AREG((Opcode >> 0) & 7) = adr;
8930 READ_LONG_F(adr, res)
8935 adr = AREG((Opcode >> 9) & 7);
8936 AREG((Opcode >> 9) & 7) += 4;
8937 WRITE_LONG_F(adr, res)
8948 adr = AREG((Opcode >> 0) & 7) - 4;
8949 AREG((Opcode >> 0) & 7) = adr;
8951 READ_LONG_F(adr, res)
8956 adr = AREG((Opcode >> 9) & 7) - 4;
8957 AREG((Opcode >> 9) & 7) = adr;
8958 WRITE_LONG_DEC_F(adr, res)
8969 adr = AREG((Opcode >> 0) & 7) - 4;
8970 AREG((Opcode >> 0) & 7) = adr;
8972 READ_LONG_F(adr, res)
8978 adr += AREG((Opcode >> 9) & 7);
8979 WRITE_LONG_F(adr, res)
8990 adr = AREG((Opcode >> 0) & 7) - 4;
8991 AREG((Opcode >> 0) & 7) = adr;
8993 READ_LONG_F(adr, res)
8998 adr = AREG((Opcode >> 9) & 7);
9000 WRITE_LONG_F(adr, res)
9011 adr = AREG((Opcode >> 0) & 7) - 4;
9012 AREG((Opcode >> 0) & 7) = adr;
9014 READ_LONG_F(adr, res)
9020 WRITE_LONG_F(adr, res)
9031 adr = AREG((Opcode >> 0) & 7) - 4;
9032 AREG((Opcode >> 0) & 7) = adr;
9034 READ_LONG_F(adr, res)
9040 WRITE_LONG_F(adr, res)
9051 adr = AREG((Opcode >> 0) & 7) - 4;
9052 AREG((Opcode >> 0) & 7) = adr;
9054 READ_LONG_F(adr, res)
9061 WRITE_LONG_F(adr, res)
9072 adr = AREG((Opcode >> 0) & 7) - 4;
9073 AREG((Opcode >> 0) & 7) = adr;
9075 READ_LONG_F(adr, res)
9082 WRITE_LONG_DEC_F(adr, res)
9094 adr += AREG((Opcode >> 0) & 7);
9096 READ_LONG_F(adr, res)
9101 DREGu32((Opcode >> 9) & 7) = res;
9113 adr += AREG((Opcode >> 0) & 7);
9115 READ_LONG_F(adr, res)
9120 adr = AREG((Opcode >> 9) & 7);
9121 WRITE_LONG_F(adr, res)
9133 adr += AREG((Opcode >> 0) & 7);
9135 READ_LONG_F(adr, res)
9140 adr = AREG((Opcode >> 9) & 7);
9141 AREG((Opcode >> 9) & 7) += 4;
9142 WRITE_LONG_F(adr, res)
9154 adr += AREG((Opcode >> 0) & 7);
9156 READ_LONG_F(adr, res)
9161 adr = AREG((Opcode >> 9) & 7) - 4;
9162 AREG((Opcode >> 9) & 7) = adr;
9163 WRITE_LONG_DEC_F(adr, res)
9175 adr += AREG((Opcode >> 0) & 7);
9177 READ_LONG_F(adr, res)
9183 adr += AREG((Opcode >> 9) & 7);
9184 WRITE_LONG_F(adr, res)
9196 adr += AREG((Opcode >> 0) & 7);
9198 READ_LONG_F(adr, res)
9203 adr = AREG((Opcode >> 9) & 7);
9205 WRITE_LONG_F(adr, res)
9217 adr += AREG((Opcode >> 0) & 7);
9219 READ_LONG_F(adr, res)
9225 WRITE_LONG_F(adr, res)
9237 adr += AREG((Opcode >> 0) & 7);
9239 READ_LONG_F(adr, res)
9245 WRITE_LONG_F(adr, res)
9257 adr += AREG((Opcode >> 0) & 7);
9259 READ_LONG_F(adr, res)
9266 WRITE_LONG_F(adr, res)
9278 adr += AREG((Opcode >> 0) & 7);
9280 READ_LONG_F(adr, res)
9287 WRITE_LONG_DEC_F(adr, res)
9298 adr = AREG((Opcode >> 0) & 7);
9301 READ_LONG_F(adr, res)
9306 DREGu32((Opcode >> 9) & 7) = res;
9317 adr = AREG((Opcode >> 0) & 7);
9320 READ_LONG_F(adr, res)
9325 adr = AREG((Opcode >> 9) & 7);
9326 WRITE_LONG_F(adr, res)
9337 adr = AREG((Opcode >> 0) & 7);
9340 READ_LONG_F(adr, res)
9345 adr = AREG((Opcode >> 9) & 7);
9346 AREG((Opcode >> 9) & 7) += 4;
9347 WRITE_LONG_F(adr, res)
9358 adr = AREG((Opcode >> 0) & 7);
9361 READ_LONG_F(adr, res)
9366 adr = AREG((Opcode >> 9) & 7) - 4;
9367 AREG((Opcode >> 9) & 7) = adr;
9368 WRITE_LONG_DEC_F(adr, res)
9379 adr = AREG((Opcode >> 0) & 7);
9382 READ_LONG_F(adr, res)
9388 adr += AREG((Opcode >> 9) & 7);
9389 WRITE_LONG_F(adr, res)
9400 adr = AREG((Opcode >> 0) & 7);
9403 READ_LONG_F(adr, res)
9408 adr = AREG((Opcode >> 9) & 7);
9410 WRITE_LONG_F(adr, res)
9421 adr = AREG((Opcode >> 0) & 7);
9424 READ_LONG_F(adr, res)
9430 WRITE_LONG_F(adr, res)
9441 adr = AREG((Opcode >> 0) & 7);
9444 READ_LONG_F(adr, res)
9450 WRITE_LONG_F(adr, res)
9461 adr = AREG((Opcode >> 0) & 7);
9464 READ_LONG_F(adr, res)
9471 WRITE_LONG_F(adr, res)
9482 adr = AREG((Opcode >> 0) & 7);
9485 READ_LONG_F(adr, res)
9492 WRITE_LONG_DEC_F(adr, res)
9505 READ_LONG_F(adr, res)
9510 DREGu32((Opcode >> 9) & 7) = res;
9523 READ_LONG_F(adr, res)
9528 adr = AREG((Opcode >> 9) & 7);
9529 WRITE_LONG_F(adr, res)
9542 READ_LONG_F(adr, res)
9547 adr = AREG((Opcode >> 9) & 7);
9548 AREG((Opcode >> 9) & 7) += 4;
9549 WRITE_LONG_F(adr, res)
9562 READ_LONG_F(adr, res)
9567 adr = AREG((Opcode >> 9) & 7) - 4;
9568 AREG((Opcode >> 9) & 7) = adr;
9569 WRITE_LONG_DEC_F(adr, res)
9582 READ_LONG_F(adr, res)
9588 adr += AREG((Opcode >> 9) & 7);
9589 WRITE_LONG_F(adr, res)
9602 READ_LONG_F(adr, res)
9607 adr = AREG((Opcode >> 9) & 7);
9609 WRITE_LONG_F(adr, res)
9622 READ_LONG_F(adr, res)
9628 WRITE_LONG_F(adr, res)
9641 READ_LONG_F(adr, res)
9647 WRITE_LONG_F(adr, res)
9660 READ_LONG_F(adr, res)
9667 WRITE_LONG_F(adr, res)
9680 READ_LONG_F(adr, res)
9687 WRITE_LONG_DEC_F(adr, res)
9700 READ_LONG_F(adr, res)
9705 DREGu32((Opcode >> 9) & 7) = res;
9718 READ_LONG_F(adr, res)
9723 adr = AREG((Opcode >> 9) & 7);
9724 WRITE_LONG_F(adr, res)
9737 READ_LONG_F(adr, res)
9742 adr = AREG((Opcode >> 9) & 7);
9743 AREG((Opcode >> 9) & 7) += 4;
9744 WRITE_LONG_F(adr, res)
9757 READ_LONG_F(adr, res)
9762 adr = AREG((Opcode >> 9) & 7) - 4;
9763 AREG((Opcode >> 9) & 7) = adr;
9764 WRITE_LONG_DEC_F(adr, res)
9777 READ_LONG_F(adr, res)
9783 adr += AREG((Opcode >> 9) & 7);
9784 WRITE_LONG_F(adr, res)
9797 READ_LONG_F(adr, res)
9802 adr = AREG((Opcode >> 9) & 7);
9804 WRITE_LONG_F(adr, res)
9817 READ_LONG_F(adr, res)
9823 WRITE_LONG_F(adr, res)
9836 READ_LONG_F(adr, res)
9842 WRITE_LONG_F(adr, res)
9855 READ_LONG_F(adr, res)
9862 WRITE_LONG_F(adr, res)
9875 READ_LONG_F(adr, res)
9882 WRITE_LONG_DEC_F(adr, res)
9893 adr = GET_SWORD + ((u32)(PC) - BasePC);
9896 READ_LONG_F(adr, res)
9901 DREGu32((Opcode >> 9) & 7) = res;
9912 adr = GET_SWORD + ((u32)(PC) - BasePC);
9915 READ_LONG_F(adr, res)
9920 adr = AREG((Opcode >> 9) & 7);
9921 WRITE_LONG_F(adr, res)
9932 adr = GET_SWORD + ((u32)(PC) - BasePC);
9935 READ_LONG_F(adr, res)
9940 adr = AREG((Opcode >> 9) & 7);
9941 AREG((Opcode >> 9) & 7) += 4;
9942 WRITE_LONG_F(adr, res)
9953 adr = GET_SWORD + ((u32)(PC) - BasePC);
9956 READ_LONG_F(adr, res)
9961 adr = AREG((Opcode >> 9) & 7) - 4;
9962 AREG((Opcode >> 9) & 7) = adr;
9963 WRITE_LONG_DEC_F(adr, res)
9974 adr = GET_SWORD + ((u32)(PC) - BasePC);
9977 READ_LONG_F(adr, res)
9983 adr += AREG((Opcode >> 9) & 7);
9984 WRITE_LONG_F(adr, res)
9995 adr = GET_SWORD + ((u32)(PC) - BasePC);
9998 READ_LONG_F(adr, res)
10002 flag_N = res >> 24;
10003 adr = AREG((Opcode >> 9) & 7);
10005 WRITE_LONG_F(adr, res)
10016 adr = GET_SWORD + ((u32)(PC) - BasePC);
10019 READ_LONG_F(adr, res)
10023 flag_N = res >> 24;
10025 WRITE_LONG_F(adr, res)
10036 adr = GET_SWORD + ((u32)(PC) - BasePC);
10039 READ_LONG_F(adr, res)
10043 flag_N = res >> 24;
10045 WRITE_LONG_F(adr, res)
10056 adr = GET_SWORD + ((u32)(PC) - BasePC);
10059 READ_LONG_F(adr, res)
10063 flag_N = res >> 24;
10066 WRITE_LONG_F(adr, res)
10077 adr = GET_SWORD + ((u32)(PC) - BasePC);
10080 READ_LONG_F(adr, res)
10084 flag_N = res >> 24;
10087 WRITE_LONG_DEC_F(adr, res)
10098 adr = (u32)(PC) - BasePC;
10101 READ_LONG_F(adr, res)
10105 flag_N = res >> 24;
10106 DREGu32((Opcode >> 9) & 7) = res;
10117 adr = (u32)(PC) - BasePC;
10120 READ_LONG_F(adr, res)
10124 flag_N = res >> 24;
10125 adr = AREG((Opcode >> 9) & 7);
10126 WRITE_LONG_F(adr, res)
10137 adr = (u32)(PC) - BasePC;
10140 READ_LONG_F(adr, res)
10144 flag_N = res >> 24;
10145 adr = AREG((Opcode >> 9) & 7);
10146 AREG((Opcode >> 9) & 7) += 4;
10147 WRITE_LONG_F(adr, res)
10158 adr = (u32)(PC) - BasePC;
10161 READ_LONG_F(adr, res)
10165 flag_N = res >> 24;
10166 adr = AREG((Opcode >> 9) & 7) - 4;
10167 AREG((Opcode >> 9) & 7) = adr;
10168 WRITE_LONG_DEC_F(adr, res)
10179 adr = (u32)(PC) - BasePC;
10182 READ_LONG_F(adr, res)
10186 flag_N = res >> 24;
10188 adr += AREG((Opcode >> 9) & 7);
10189 WRITE_LONG_F(adr, res)
10200 adr = (u32)(PC) - BasePC;
10203 READ_LONG_F(adr, res)
10207 flag_N = res >> 24;
10208 adr = AREG((Opcode >> 9) & 7);
10210 WRITE_LONG_F(adr, res)
10221 adr = (u32)(PC) - BasePC;
10224 READ_LONG_F(adr, res)
10228 flag_N = res >> 24;
10230 WRITE_LONG_F(adr, res)
10241 adr = (u32)(PC) - BasePC;
10244 READ_LONG_F(adr, res)
10248 flag_N = res >> 24;
10250 WRITE_LONG_F(adr, res)
10261 adr = (u32)(PC) - BasePC;
10264 READ_LONG_F(adr, res)
10268 flag_N = res >> 24;
10271 WRITE_LONG_F(adr, res)
10282 adr = (u32)(PC) - BasePC;
10285 READ_LONG_F(adr, res)
10289 flag_N = res >> 24;
10292 WRITE_LONG_DEC_F(adr, res)
10307 flag_N = res >> 24;
10308 DREGu32((Opcode >> 9) & 7) = res;
10322 flag_N = res >> 24;
10323 adr = AREG((Opcode >> 9) & 7);
10325 WRITE_LONG_F(adr, res)
10340 flag_N = res >> 24;
10341 adr = AREG((Opcode >> 9) & 7);
10342 AREG((Opcode >> 9) & 7) += 4;
10344 WRITE_LONG_F(adr, res)
10359 flag_N = res >> 24;
10360 adr = AREG((Opcode >> 9) & 7) - 4;
10361 AREG((Opcode >> 9) & 7) = adr;
10363 WRITE_LONG_DEC_F(adr, res)
10378 flag_N = res >> 24;
10380 adr += AREG((Opcode >> 9) & 7);
10382 WRITE_LONG_F(adr, res)
10397 flag_N = res >> 24;
10398 adr = AREG((Opcode >> 9) & 7);
10401 WRITE_LONG_F(adr, res)
10416 flag_N = res >> 24;
10419 WRITE_LONG_F(adr, res)
10434 flag_N = res >> 24;
10437 WRITE_LONG_F(adr, res)
10452 flag_N = res >> 24;
10456 WRITE_LONG_F(adr, res)
10471 flag_N = res >> 24;
10475 WRITE_LONG_DEC_F(adr, res)
10489 READ_LONG_F(adr, res)
10493 flag_N = res >> 24;
10494 DREGu32((Opcode >> 9) & 7) = res;
10508 READ_LONG_F(adr, res)
10512 flag_N = res >> 24;
10513 adr = AREG((Opcode >> 9) & 7);
10514 WRITE_LONG_F(adr, res)
10528 READ_LONG_F(adr, res)
10532 flag_N = res >> 24;
10533 adr = AREG((Opcode >> 9) & 7);
10534 AREG((Opcode >> 9) & 7) += 4;
10535 WRITE_LONG_F(adr, res)
10549 READ_LONG_F(adr, res)
10553 flag_N = res >> 24;
10554 adr = AREG((Opcode >> 9) & 7) - 4;
10555 AREG((Opcode >> 9) & 7) = adr;
10556 WRITE_LONG_DEC_F(adr, res)
10570 READ_LONG_F(adr, res)
10574 flag_N = res >> 24;
10576 adr += AREG((Opcode >> 9) & 7);
10577 WRITE_LONG_F(adr, res)
10591 READ_LONG_F(adr, res)
10595 flag_N = res >> 24;
10596 adr = AREG((Opcode >> 9) & 7);
10598 WRITE_LONG_F(adr, res)
10612 READ_LONG_F(adr, res)
10616 flag_N = res >> 24;
10618 WRITE_LONG_F(adr, res)
10632 READ_LONG_F(adr, res)
10636 flag_N = res >> 24;
10638 WRITE_LONG_F(adr, res)
10652 READ_LONG_F(adr, res)
10656 flag_N = res >> 24;
10659 WRITE_LONG_F(adr, res)
10673 READ_LONG_F(adr, res)
10677 flag_N = res >> 24;
10680 WRITE_LONG_DEC_F(adr, res)
10694 READ_LONG_F(adr, res)
10698 flag_N = res >> 24;
10699 DREGu32((Opcode >> 9) & 7) = res;
10713 READ_LONG_F(adr, res)
10717 flag_N = res >> 24;
10718 adr = AREG((Opcode >> 9) & 7);
10719 WRITE_LONG_F(adr, res)
10733 READ_LONG_F(adr, res)
10737 flag_N = res >> 24;
10738 adr = AREG((Opcode >> 9) & 7);
10739 AREG((Opcode >> 9) & 7) += 4;
10740 WRITE_LONG_F(adr, res)
10754 READ_LONG_F(adr, res)
10758 flag_N = res >> 24;
10759 adr = AREG((Opcode >> 9) & 7) - 4;
10760 AREG((Opcode >> 9) & 7) = adr;
10761 WRITE_LONG_DEC_F(adr, res)
10775 READ_LONG_F(adr, res)
10779 flag_N = res >> 24;
10781 adr += AREG((Opcode >> 9) & 7);
10782 WRITE_LONG_F(adr, res)
10796 READ_LONG_F(adr, res)
10800 flag_N = res >> 24;
10801 adr = AREG((Opcode >> 9) & 7);
10803 WRITE_LONG_F(adr, res)
10817 READ_LONG_F(adr, res)
10821 flag_N = res >> 24;
10823 WRITE_LONG_F(adr, res)
10837 READ_LONG_F(adr, res)
10841 flag_N = res >> 24;
10843 WRITE_LONG_F(adr, res)
10857 READ_LONG_F(adr, res)
10861 flag_N = res >> 24;
10864 WRITE_LONG_F(adr, res)
10878 READ_LONG_F(adr, res)
10882 flag_N = res >> 24;
10885 WRITE_LONG_DEC_F(adr, res)
10896 res = (s32)DREGs32((Opcode >> 0) & 7);
10897 AREG((Opcode >> 9) & 7) = res;
10907 res = (s32)AREGs32((Opcode >> 0) & 7);
10908 AREG((Opcode >> 9) & 7) = res;
10918 adr = AREG((Opcode >> 0) & 7);
10920 READSX_LONG_F(adr, res)
10921 AREG((Opcode >> 9) & 7) = res;
10932 adr = AREG((Opcode >> 0) & 7);
10933 AREG((Opcode >> 0) & 7) += 4;
10935 READSX_LONG_F(adr, res)
10936 AREG((Opcode >> 9) & 7) = res;
10947 adr = AREG((Opcode >> 0) & 7) - 4;
10948 AREG((Opcode >> 0) & 7) = adr;
10950 READSX_LONG_F(adr, res)
10951 AREG((Opcode >> 9) & 7) = res;
10963 adr += AREG((Opcode >> 0) & 7);
10965 READSX_LONG_F(adr, res)
10966 AREG((Opcode >> 9) & 7) = res;
10977 adr = AREG((Opcode >> 0) & 7);
10980 READSX_LONG_F(adr, res)
10981 AREG((Opcode >> 9) & 7) = res;
10994 READSX_LONG_F(adr, res)
10995 AREG((Opcode >> 9) & 7) = res;
11008 READSX_LONG_F(adr, res)
11009 AREG((Opcode >> 9) & 7) = res;
11020 adr = GET_SWORD + ((u32)(PC) - BasePC);
11023 READSX_LONG_F(adr, res)
11024 AREG((Opcode >> 9) & 7) = res;
11035 adr = (u32)(PC) - BasePC;
11038 READSX_LONG_F(adr, res)
11039 AREG((Opcode >> 9) & 7) = res;
11051 AREG((Opcode >> 9) & 7) = res;
11064 READSX_LONG_F(adr, res)
11065 AREG((Opcode >> 9) & 7) = res;
11079 READSX_LONG_F(adr, res)
11080 AREG((Opcode >> 9) & 7) = res;
11091 res = DREGu16((Opcode >> 0) & 7);
11096 DREGu16((Opcode >> 9) & 7) = res;
11106 res = DREGu16((Opcode >> 0) & 7);
11111 adr = AREG((Opcode >> 9) & 7);
11113 WRITE_WORD_F(adr, res)
11124 res = DREGu16((Opcode >> 0) & 7);
11129 adr = AREG((Opcode >> 9) & 7);
11130 AREG((Opcode >> 9) & 7) += 2;
11132 WRITE_WORD_F(adr, res)
11143 res = DREGu16((Opcode >> 0) & 7);
11148 adr = AREG((Opcode >> 9) & 7) - 2;
11149 AREG((Opcode >> 9) & 7) = adr;
11151 WRITE_WORD_F(adr, res)
11162 res = DREGu16((Opcode >> 0) & 7);
11168 adr += AREG((Opcode >> 9) & 7);
11170 WRITE_WORD_F(adr, res)
11181 res = DREGu16((Opcode >> 0) & 7);
11186 adr = AREG((Opcode >> 9) & 7);
11189 WRITE_WORD_F(adr, res)
11200 res = DREGu16((Opcode >> 0) & 7);
11207 WRITE_WORD_F(adr, res)
11218 res = DREGu16((Opcode >> 0) & 7);
11225 WRITE_WORD_F(adr, res)
11236 res = DREGu16((Opcode >> 0) & 7);
11244 WRITE_WORD_F(adr, res)
11255 res = DREGu16((Opcode >> 0) & 7);
11263 WRITE_WORD_F(adr, res)
11274 res = AREGu16((Opcode >> 0) & 7);
11279 DREGu16((Opcode >> 9) & 7) = res;
11289 res = AREGu16((Opcode >> 0) & 7);
11294 adr = AREG((Opcode >> 9) & 7);
11296 WRITE_WORD_F(adr, res)
11307 res = AREGu16((Opcode >> 0) & 7);
11312 adr = AREG((Opcode >> 9) & 7);
11313 AREG((Opcode >> 9) & 7) += 2;
11315 WRITE_WORD_F(adr, res)
11326 res = AREGu16((Opcode >> 0) & 7);
11331 adr = AREG((Opcode >> 9) & 7) - 2;
11332 AREG((Opcode >> 9) & 7) = adr;
11334 WRITE_WORD_F(adr, res)
11345 res = AREGu16((Opcode >> 0) & 7);
11351 adr += AREG((Opcode >> 9) & 7);
11353 WRITE_WORD_F(adr, res)
11364 res = AREGu16((Opcode >> 0) & 7);
11369 adr = AREG((Opcode >> 9) & 7);
11372 WRITE_WORD_F(adr, res)
11383 res = AREGu16((Opcode >> 0) & 7);
11390 WRITE_WORD_F(adr, res)
11401 res = AREGu16((Opcode >> 0) & 7);
11408 WRITE_WORD_F(adr, res)
11419 res = AREGu16((Opcode >> 0) & 7);
11427 WRITE_WORD_F(adr, res)
11438 res = AREGu16((Opcode >> 0) & 7);
11446 WRITE_WORD_F(adr, res)
11457 adr = AREG((Opcode >> 0) & 7);
11459 READ_WORD_F(adr, res)
11464 DREGu16((Opcode >> 9) & 7) = res;
11475 adr = AREG((Opcode >> 0) & 7);
11477 READ_WORD_F(adr, res)
11482 adr = AREG((Opcode >> 9) & 7);
11483 WRITE_WORD_F(adr, res)
11494 adr = AREG((Opcode >> 0) & 7);
11496 READ_WORD_F(adr, res)
11501 adr = AREG((Opcode >> 9) & 7);
11502 AREG((Opcode >> 9) & 7) += 2;
11503 WRITE_WORD_F(adr, res)
11514 adr = AREG((Opcode >> 0) & 7);
11516 READ_WORD_F(adr, res)
11521 adr = AREG((Opcode >> 9) & 7) - 2;
11522 AREG((Opcode >> 9) & 7) = adr;
11523 WRITE_WORD_F(adr, res)
11534 adr = AREG((Opcode >> 0) & 7);
11536 READ_WORD_F(adr, res)
11542 adr += AREG((Opcode >> 9) & 7);
11543 WRITE_WORD_F(adr, res)
11554 adr = AREG((Opcode >> 0) & 7);
11556 READ_WORD_F(adr, res)
11561 adr = AREG((Opcode >> 9) & 7);
11563 WRITE_WORD_F(adr, res)
11574 adr = AREG((Opcode >> 0) & 7);
11576 READ_WORD_F(adr, res)
11582 WRITE_WORD_F(adr, res)
11593 adr = AREG((Opcode >> 0) & 7);
11595 READ_WORD_F(adr, res)
11601 WRITE_WORD_F(adr, res)
11612 adr = AREG((Opcode >> 0) & 7);
11614 READ_WORD_F(adr, res)
11621 WRITE_WORD_F(adr, res)
11632 adr = AREG((Opcode >> 0) & 7);
11634 READ_WORD_F(adr, res)
11641 WRITE_WORD_F(adr, res)
11652 adr = AREG((Opcode >> 0) & 7);
11653 AREG((Opcode >> 0) & 7) += 2;
11655 READ_WORD_F(adr, res)
11660 DREGu16((Opcode >> 9) & 7) = res;
11671 adr = AREG((Opcode >> 0) & 7);
11672 AREG((Opcode >> 0) & 7) += 2;
11674 READ_WORD_F(adr, res)
11679 adr = AREG((Opcode >> 9) & 7);
11680 WRITE_WORD_F(adr, res)
11691 adr = AREG((Opcode >> 0) & 7);
11692 AREG((Opcode >> 0) & 7) += 2;
11694 READ_WORD_F(adr, res)
11699 adr = AREG((Opcode >> 9) & 7);
11700 AREG((Opcode >> 9) & 7) += 2;
11701 WRITE_WORD_F(adr, res)
11712 adr = AREG((Opcode >> 0) & 7);
11713 AREG((Opcode >> 0) & 7) += 2;
11715 READ_WORD_F(adr, res)
11720 adr = AREG((Opcode >> 9) & 7) - 2;
11721 AREG((Opcode >> 9) & 7) = adr;
11722 WRITE_WORD_F(adr, res)
11733 adr = AREG((Opcode >> 0) & 7);
11734 AREG((Opcode >> 0) & 7) += 2;
11736 READ_WORD_F(adr, res)
11742 adr += AREG((Opcode >> 9) & 7);
11743 WRITE_WORD_F(adr, res)
11754 adr = AREG((Opcode >> 0) & 7);
11755 AREG((Opcode >> 0) & 7) += 2;
11757 READ_WORD_F(adr, res)
11762 adr = AREG((Opcode >> 9) & 7);
11764 WRITE_WORD_F(adr, res)
11775 adr = AREG((Opcode >> 0) & 7);
11776 AREG((Opcode >> 0) & 7) += 2;
11778 READ_WORD_F(adr, res)
11784 WRITE_WORD_F(adr, res)
11795 adr = AREG((Opcode >> 0) & 7);
11796 AREG((Opcode >> 0) & 7) += 2;
11798 READ_WORD_F(adr, res)
11804 WRITE_WORD_F(adr, res)
11815 adr = AREG((Opcode >> 0) & 7);
11816 AREG((Opcode >> 0) & 7) += 2;
11818 READ_WORD_F(adr, res)
11825 WRITE_WORD_F(adr, res)
11836 adr = AREG((Opcode >> 0) & 7);
11837 AREG((Opcode >> 0) & 7) += 2;
11839 READ_WORD_F(adr, res)
11846 WRITE_WORD_F(adr, res)
11857 adr = AREG((Opcode >> 0) & 7) - 2;
11858 AREG((Opcode >> 0) & 7) = adr;
11860 READ_WORD_F(adr, res)
11865 DREGu16((Opcode >> 9) & 7) = res;
11876 adr = AREG((Opcode >> 0) & 7) - 2;
11877 AREG((Opcode >> 0) & 7) = adr;
11879 READ_WORD_F(adr, res)
11884 adr = AREG((Opcode >> 9) & 7);
11885 WRITE_WORD_F(adr, res)
11896 adr = AREG((Opcode >> 0) & 7) - 2;
11897 AREG((Opcode >> 0) & 7) = adr;
11899 READ_WORD_F(adr, res)
11904 adr = AREG((Opcode >> 9) & 7);
11905 AREG((Opcode >> 9) & 7) += 2;
11906 WRITE_WORD_F(adr, res)
11917 adr = AREG((Opcode >> 0) & 7) - 2;
11918 AREG((Opcode >> 0) & 7) = adr;
11920 READ_WORD_F(adr, res)
11925 adr = AREG((Opcode >> 9) & 7) - 2;
11926 AREG((Opcode >> 9) & 7) = adr;
11927 WRITE_WORD_F(adr, res)
11938 adr = AREG((Opcode >> 0) & 7) - 2;
11939 AREG((Opcode >> 0) & 7) = adr;
11941 READ_WORD_F(adr, res)
11947 adr += AREG((Opcode >> 9) & 7);
11948 WRITE_WORD_F(adr, res)
11959 adr = AREG((Opcode >> 0) & 7) - 2;
11960 AREG((Opcode >> 0) & 7) = adr;
11962 READ_WORD_F(adr, res)
11967 adr = AREG((Opcode >> 9) & 7);
11969 WRITE_WORD_F(adr, res)
11980 adr = AREG((Opcode >> 0) & 7) - 2;
11981 AREG((Opcode >> 0) & 7) = adr;
11983 READ_WORD_F(adr, res)
11989 WRITE_WORD_F(adr, res)
12000 adr = AREG((Opcode >> 0) & 7) - 2;
12001 AREG((Opcode >> 0) & 7) = adr;
12003 READ_WORD_F(adr, res)
12009 WRITE_WORD_F(adr, res)
12020 adr = AREG((Opcode >> 0) & 7) - 2;
12021 AREG((Opcode >> 0) & 7) = adr;
12023 READ_WORD_F(adr, res)
12030 WRITE_WORD_F(adr, res)
12041 adr = AREG((Opcode >> 0) & 7) - 2;
12042 AREG((Opcode >> 0) & 7) = adr;
12044 READ_WORD_F(adr, res)
12051 WRITE_WORD_F(adr, res)
12063 adr += AREG((Opcode >> 0) & 7);
12065 READ_WORD_F(adr, res)
12070 DREGu16((Opcode >> 9) & 7) = res;
12082 adr += AREG((Opcode >> 0) & 7);
12084 READ_WORD_F(adr, res)
12089 adr = AREG((Opcode >> 9) & 7);
12090 WRITE_WORD_F(adr, res)
12102 adr += AREG((Opcode >> 0) & 7);
12104 READ_WORD_F(adr, res)
12109 adr = AREG((Opcode >> 9) & 7);
12110 AREG((Opcode >> 9) & 7) += 2;
12111 WRITE_WORD_F(adr, res)
12123 adr += AREG((Opcode >> 0) & 7);
12125 READ_WORD_F(adr, res)
12130 adr = AREG((Opcode >> 9) & 7) - 2;
12131 AREG((Opcode >> 9) & 7) = adr;
12132 WRITE_WORD_F(adr, res)
12144 adr += AREG((Opcode >> 0) & 7);
12146 READ_WORD_F(adr, res)
12152 adr += AREG((Opcode >> 9) & 7);
12153 WRITE_WORD_F(adr, res)
12165 adr += AREG((Opcode >> 0) & 7);
12167 READ_WORD_F(adr, res)
12172 adr = AREG((Opcode >> 9) & 7);
12174 WRITE_WORD_F(adr, res)
12186 adr += AREG((Opcode >> 0) & 7);
12188 READ_WORD_F(adr, res)
12194 WRITE_WORD_F(adr, res)
12206 adr += AREG((Opcode >> 0) & 7);
12208 READ_WORD_F(adr, res)
12214 WRITE_WORD_F(adr, res)
12226 adr += AREG((Opcode >> 0) & 7);
12228 READ_WORD_F(adr, res)
12235 WRITE_WORD_F(adr, res)
12247 adr += AREG((Opcode >> 0) & 7);
12249 READ_WORD_F(adr, res)
12256 WRITE_WORD_F(adr, res)
12267 adr = AREG((Opcode >> 0) & 7);
12270 READ_WORD_F(adr, res)
12275 DREGu16((Opcode >> 9) & 7) = res;
12286 adr = AREG((Opcode >> 0) & 7);
12289 READ_WORD_F(adr, res)
12294 adr = AREG((Opcode >> 9) & 7);
12295 WRITE_WORD_F(adr, res)
12306 adr = AREG((Opcode >> 0) & 7);
12309 READ_WORD_F(adr, res)
12314 adr = AREG((Opcode >> 9) & 7);
12315 AREG((Opcode >> 9) & 7) += 2;
12316 WRITE_WORD_F(adr, res)
12327 adr = AREG((Opcode >> 0) & 7);
12330 READ_WORD_F(adr, res)
12335 adr = AREG((Opcode >> 9) & 7) - 2;
12336 AREG((Opcode >> 9) & 7) = adr;
12337 WRITE_WORD_F(adr, res)
12348 adr = AREG((Opcode >> 0) & 7);
12351 READ_WORD_F(adr, res)
12357 adr += AREG((Opcode >> 9) & 7);
12358 WRITE_WORD_F(adr, res)
12369 adr = AREG((Opcode >> 0) & 7);
12372 READ_WORD_F(adr, res)
12377 adr = AREG((Opcode >> 9) & 7);
12379 WRITE_WORD_F(adr, res)
12390 adr = AREG((Opcode >> 0) & 7);
12393 READ_WORD_F(adr, res)
12399 WRITE_WORD_F(adr, res)
12410 adr = AREG((Opcode >> 0) & 7);
12413 READ_WORD_F(adr, res)
12419 WRITE_WORD_F(adr, res)
12430 adr = AREG((Opcode >> 0) & 7);
12433 READ_WORD_F(adr, res)
12440 WRITE_WORD_F(adr, res)
12451 adr = AREG((Opcode >> 0) & 7);
12454 READ_WORD_F(adr, res)
12461 WRITE_WORD_F(adr, res)
12474 READ_WORD_F(adr, res)
12479 DREGu16((Opcode >> 9) & 7) = res;
12492 READ_WORD_F(adr, res)
12497 adr = AREG((Opcode >> 9) & 7);
12498 WRITE_WORD_F(adr, res)
12511 READ_WORD_F(adr, res)
12516 adr = AREG((Opcode >> 9) & 7);
12517 AREG((Opcode >> 9) & 7) += 2;
12518 WRITE_WORD_F(adr, res)
12531 READ_WORD_F(adr, res)
12536 adr = AREG((Opcode >> 9) & 7) - 2;
12537 AREG((Opcode >> 9) & 7) = adr;
12538 WRITE_WORD_F(adr, res)
12551 READ_WORD_F(adr, res)
12557 adr += AREG((Opcode >> 9) & 7);
12558 WRITE_WORD_F(adr, res)
12571 READ_WORD_F(adr, res)
12576 adr = AREG((Opcode >> 9) & 7);
12578 WRITE_WORD_F(adr, res)
12591 READ_WORD_F(adr, res)
12597 WRITE_WORD_F(adr, res)
12610 READ_WORD_F(adr, res)
12616 WRITE_WORD_F(adr, res)
12629 READ_WORD_F(adr, res)
12636 WRITE_WORD_F(adr, res)
12649 READ_WORD_F(adr, res)
12656 WRITE_WORD_F(adr, res)
12669 READ_WORD_F(adr, res)
12674 DREGu16((Opcode >> 9) & 7) = res;
12687 READ_WORD_F(adr, res)
12692 adr = AREG((Opcode >> 9) & 7);
12693 WRITE_WORD_F(adr, res)
12706 READ_WORD_F(adr, res)
12711 adr = AREG((Opcode >> 9) & 7);
12712 AREG((Opcode >> 9) & 7) += 2;
12713 WRITE_WORD_F(adr, res)
12726 READ_WORD_F(adr, res)
12731 adr = AREG((Opcode >> 9) & 7) - 2;
12732 AREG((Opcode >> 9) & 7) = adr;
12733 WRITE_WORD_F(adr, res)
12746 READ_WORD_F(adr, res)
12752 adr += AREG((Opcode >> 9) & 7);
12753 WRITE_WORD_F(adr, res)
12766 READ_WORD_F(adr, res)
12771 adr = AREG((Opcode >> 9) & 7);
12773 WRITE_WORD_F(adr, res)
12786 READ_WORD_F(adr, res)
12792 WRITE_WORD_F(adr, res)
12805 READ_WORD_F(adr, res)
12811 WRITE_WORD_F(adr, res)
12824 READ_WORD_F(adr, res)
12831 WRITE_WORD_F(adr, res)
12844 READ_WORD_F(adr, res)
12851 WRITE_WORD_F(adr, res)
12862 adr = GET_SWORD + ((u32)(PC) - BasePC);
12865 READ_WORD_F(adr, res)
12870 DREGu16((Opcode >> 9) & 7) = res;
12881 adr = GET_SWORD + ((u32)(PC) - BasePC);
12884 READ_WORD_F(adr, res)
12889 adr = AREG((Opcode >> 9) & 7);
12890 WRITE_WORD_F(adr, res)
12901 adr = GET_SWORD + ((u32)(PC) - BasePC);
12904 READ_WORD_F(adr, res)
12909 adr = AREG((Opcode >> 9) & 7);
12910 AREG((Opcode >> 9) & 7) += 2;
12911 WRITE_WORD_F(adr, res)
12922 adr = GET_SWORD + ((u32)(PC) - BasePC);
12925 READ_WORD_F(adr, res)
12930 adr = AREG((Opcode >> 9) & 7) - 2;
12931 AREG((Opcode >> 9) & 7) = adr;
12932 WRITE_WORD_F(adr, res)
12943 adr = GET_SWORD + ((u32)(PC) - BasePC);
12946 READ_WORD_F(adr, res)
12952 adr += AREG((Opcode >> 9) & 7);
12953 WRITE_WORD_F(adr, res)
12964 adr = GET_SWORD + ((u32)(PC) - BasePC);
12967 READ_WORD_F(adr, res)
12972 adr = AREG((Opcode >> 9) & 7);
12974 WRITE_WORD_F(adr, res)
12985 adr = GET_SWORD + ((u32)(PC) - BasePC);
12988 READ_WORD_F(adr, res)
12994 WRITE_WORD_F(adr, res)
13005 adr = GET_SWORD + ((u32)(PC) - BasePC);
13008 READ_WORD_F(adr, res)
13014 WRITE_WORD_F(adr, res)
13025 adr = GET_SWORD + ((u32)(PC) - BasePC);
13028 READ_WORD_F(adr, res)
13035 WRITE_WORD_F(adr, res)
13046 adr = GET_SWORD + ((u32)(PC) - BasePC);
13049 READ_WORD_F(adr, res)
13056 WRITE_WORD_F(adr, res)
13067 adr = (u32)(PC) - BasePC;
13070 READ_WORD_F(adr, res)
13075 DREGu16((Opcode >> 9) & 7) = res;
13086 adr = (u32)(PC) - BasePC;
13089 READ_WORD_F(adr, res)
13094 adr = AREG((Opcode >> 9) & 7);
13095 WRITE_WORD_F(adr, res)
13106 adr = (u32)(PC) - BasePC;
13109 READ_WORD_F(adr, res)
13114 adr = AREG((Opcode >> 9) & 7);
13115 AREG((Opcode >> 9) & 7) += 2;
13116 WRITE_WORD_F(adr, res)
13127 adr = (u32)(PC) - BasePC;
13130 READ_WORD_F(adr, res)
13135 adr = AREG((Opcode >> 9) & 7) - 2;
13136 AREG((Opcode >> 9) & 7) = adr;
13137 WRITE_WORD_F(adr, res)
13148 adr = (u32)(PC) - BasePC;
13151 READ_WORD_F(adr, res)
13157 adr += AREG((Opcode >> 9) & 7);
13158 WRITE_WORD_F(adr, res)
13169 adr = (u32)(PC) - BasePC;
13172 READ_WORD_F(adr, res)
13177 adr = AREG((Opcode >> 9) & 7);
13179 WRITE_WORD_F(adr, res)
13190 adr = (u32)(PC) - BasePC;
13193 READ_WORD_F(adr, res)
13199 WRITE_WORD_F(adr, res)
13210 adr = (u32)(PC) - BasePC;
13213 READ_WORD_F(adr, res)
13219 WRITE_WORD_F(adr, res)
13230 adr = (u32)(PC) - BasePC;
13233 READ_WORD_F(adr, res)
13240 WRITE_WORD_F(adr, res)
13251 adr = (u32)(PC) - BasePC;
13254 READ_WORD_F(adr, res)
13261 WRITE_WORD_F(adr, res)
13277 DREGu16((Opcode >> 9) & 7) = res;
13292 adr = AREG((Opcode >> 9) & 7);
13294 WRITE_WORD_F(adr, res)
13310 adr = AREG((Opcode >> 9) & 7);
13311 AREG((Opcode >> 9) & 7) += 2;
13313 WRITE_WORD_F(adr, res)
13329 adr = AREG((Opcode >> 9) & 7) - 2;
13330 AREG((Opcode >> 9) & 7) = adr;
13332 WRITE_WORD_F(adr, res)
13349 adr += AREG((Opcode >> 9) & 7);
13351 WRITE_WORD_F(adr, res)
13367 adr = AREG((Opcode >> 9) & 7);
13370 WRITE_WORD_F(adr, res)
13388 WRITE_WORD_F(adr, res)
13406 WRITE_WORD_F(adr, res)
13425 WRITE_WORD_F(adr, res)
13444 WRITE_WORD_F(adr, res)
13458 READ_WORD_F(adr, res)
13463 DREGu16((Opcode >> 9) & 7) = res;
13477 READ_WORD_F(adr, res)
13482 adr = AREG((Opcode >> 9) & 7);
13483 WRITE_WORD_F(adr, res)
13497 READ_WORD_F(adr, res)
13502 adr = AREG((Opcode >> 9) & 7);
13503 AREG((Opcode >> 9) & 7) += 2;
13504 WRITE_WORD_F(adr, res)
13518 READ_WORD_F(adr, res)
13523 adr = AREG((Opcode >> 9) & 7) - 2;
13524 AREG((Opcode >> 9) & 7) = adr;
13525 WRITE_WORD_F(adr, res)
13539 READ_WORD_F(adr, res)
13545 adr += AREG((Opcode >> 9) & 7);
13546 WRITE_WORD_F(adr, res)
13560 READ_WORD_F(adr, res)
13565 adr = AREG((Opcode >> 9) & 7);
13567 WRITE_WORD_F(adr, res)
13581 READ_WORD_F(adr, res)
13587 WRITE_WORD_F(adr, res)
13601 READ_WORD_F(adr, res)
13607 WRITE_WORD_F(adr, res)
13621 READ_WORD_F(adr, res)
13628 WRITE_WORD_F(adr, res)
13642 READ_WORD_F(adr, res)
13649 WRITE_WORD_F(adr, res)
13663 READ_WORD_F(adr, res)
13668 DREGu16((Opcode >> 9) & 7) = res;
13682 READ_WORD_F(adr, res)
13687 adr = AREG((Opcode >> 9) & 7);
13688 WRITE_WORD_F(adr, res)
13702 READ_WORD_F(adr, res)
13707 adr = AREG((Opcode >> 9) & 7);
13708 AREG((Opcode >> 9) & 7) += 2;
13709 WRITE_WORD_F(adr, res)
13723 READ_WORD_F(adr, res)
13728 adr = AREG((Opcode >> 9) & 7) - 2;
13729 AREG((Opcode >> 9) & 7) = adr;
13730 WRITE_WORD_F(adr, res)
13744 READ_WORD_F(adr, res)
13750 adr += AREG((Opcode >> 9) & 7);
13751 WRITE_WORD_F(adr, res)
13765 READ_WORD_F(adr, res)
13770 adr = AREG((Opcode >> 9) & 7);
13772 WRITE_WORD_F(adr, res)
13786 READ_WORD_F(adr, res)
13792 WRITE_WORD_F(adr, res)
13806 READ_WORD_F(adr, res)
13812 WRITE_WORD_F(adr, res)
13826 READ_WORD_F(adr, res)
13833 WRITE_WORD_F(adr, res)
13847 READ_WORD_F(adr, res)
13854 WRITE_WORD_F(adr, res)
13865 res = (s32)DREGs16((Opcode >> 0) & 7);
13866 AREG((Opcode >> 9) & 7) = res;
13876 res = (s32)AREGs16((Opcode >> 0) & 7);
13877 AREG((Opcode >> 9) & 7) = res;
13887 adr = AREG((Opcode >> 0) & 7);
13889 READSX_WORD_F(adr, res)
13890 AREG((Opcode >> 9) & 7) = res;
13901 adr = AREG((Opcode >> 0) & 7);
13902 AREG((Opcode >> 0) & 7) += 2;
13904 READSX_WORD_F(adr, res)
13905 AREG((Opcode >> 9) & 7) = res;
13916 adr = AREG((Opcode >> 0) & 7) - 2;
13917 AREG((Opcode >> 0) & 7) = adr;
13919 READSX_WORD_F(adr, res)
13920 AREG((Opcode >> 9) & 7) = res;
13932 adr += AREG((Opcode >> 0) & 7);
13934 READSX_WORD_F(adr, res)
13935 AREG((Opcode >> 9) & 7) = res;
13946 adr = AREG((Opcode >> 0) & 7);
13949 READSX_WORD_F(adr, res)
13950 AREG((Opcode >> 9) & 7) = res;
13963 READSX_WORD_F(adr, res)
13964 AREG((Opcode >> 9) & 7) = res;
13977 READSX_WORD_F(adr, res)
13978 AREG((Opcode >> 9) & 7) = res;
13989 adr = GET_SWORD + ((u32)(PC) - BasePC);
13992 READSX_WORD_F(adr, res)
13993 AREG((Opcode >> 9) & 7) = res;
14004 adr = (u32)(PC) - BasePC;
14007 READSX_WORD_F(adr, res)
14008 AREG((Opcode >> 9) & 7) = res;
14020 AREG((Opcode >> 9) & 7) = res;
14033 READSX_WORD_F(adr, res)
14034 AREG((Opcode >> 9) & 7) = res;
14048 READSX_WORD_F(adr, res)
14049 AREG((Opcode >> 9) & 7) = res;
14060 src = DREGu8((Opcode >> 0) & 7);
14061 res = -src - ((flag_X >> 8) & 1);
14062 flag_V = res & src;
14063 flag_N = flag_X = flag_C = res;
14064 flag_NotZ |= res & 0xFF;
14065 DREGu8((Opcode >> 0) & 7) = res;
14075 adr = AREG((Opcode >> 0) & 7);
14077 READ_BYTE_F(adr, src)
14078 res = -src - ((flag_X >> 8) & 1);
14079 flag_V = res & src;
14080 flag_N = flag_X = flag_C = res;
14081 flag_NotZ |= res & 0xFF;
14082 WRITE_BYTE_F(adr, res)
14093 adr = AREG((Opcode >> 0) & 7);
14094 AREG((Opcode >> 0) & 7) += 1;
14096 READ_BYTE_F(adr, src)
14097 res = -src - ((flag_X >> 8) & 1);
14098 flag_V = res & src;
14099 flag_N = flag_X = flag_C = res;
14100 flag_NotZ |= res & 0xFF;
14101 WRITE_BYTE_F(adr, res)
14112 adr = AREG((Opcode >> 0) & 7) - 1;
14113 AREG((Opcode >> 0) & 7) = adr;
14115 READ_BYTE_F(adr, src)
14116 res = -src - ((flag_X >> 8) & 1);
14117 flag_V = res & src;
14118 flag_N = flag_X = flag_C = res;
14119 flag_NotZ |= res & 0xFF;
14120 WRITE_BYTE_F(adr, res)
14132 adr += AREG((Opcode >> 0) & 7);
14134 READ_BYTE_F(adr, src)
14135 res = -src - ((flag_X >> 8) & 1);
14136 flag_V = res & src;
14137 flag_N = flag_X = flag_C = res;
14138 flag_NotZ |= res & 0xFF;
14139 WRITE_BYTE_F(adr, res)
14150 adr = AREG((Opcode >> 0) & 7);
14153 READ_BYTE_F(adr, src)
14154 res = -src - ((flag_X >> 8) & 1);
14155 flag_V = res & src;
14156 flag_N = flag_X = flag_C = res;
14157 flag_NotZ |= res & 0xFF;
14158 WRITE_BYTE_F(adr, res)
14171 READ_BYTE_F(adr, src)
14172 res = -src - ((flag_X >> 8) & 1);
14173 flag_V = res & src;
14174 flag_N = flag_X = flag_C = res;
14175 flag_NotZ |= res & 0xFF;
14176 WRITE_BYTE_F(adr, res)
14189 READ_BYTE_F(adr, src)
14190 res = -src - ((flag_X >> 8) & 1);
14191 flag_V = res & src;
14192 flag_N = flag_X = flag_C = res;
14193 flag_NotZ |= res & 0xFF;
14194 WRITE_BYTE_F(adr, res)
14208 READ_BYTE_F(adr, src)
14209 res = -src - ((flag_X >> 8) & 1);
14210 flag_V = res & src;
14211 flag_N = flag_X = flag_C = res;
14212 flag_NotZ |= res & 0xFF;
14213 WRITE_BYTE_F(adr, res)
14227 READ_BYTE_F(adr, src)
14228 res = -src - ((flag_X >> 8) & 1);
14229 flag_V = res & src;
14230 flag_N = flag_X = flag_C = res;
14231 flag_NotZ |= res & 0xFF;
14232 WRITE_BYTE_F(adr, res)
14243 src = DREGu16((Opcode >> 0) & 7);
14244 res = -src - ((flag_X >> 8) & 1);
14245 flag_V = (res & src) >> 8;
14246 flag_N = flag_X = flag_C = res >> 8;
14247 flag_NotZ |= res & 0xFFFF;
14248 DREGu16((Opcode >> 0) & 7) = res;
14258 adr = AREG((Opcode >> 0) & 7);
14260 READ_WORD_F(adr, src)
14261 res = -src - ((flag_X >> 8) & 1);
14262 flag_V = (res & src) >> 8;
14263 flag_N = flag_X = flag_C = res >> 8;
14264 flag_NotZ |= res & 0xFFFF;
14265 WRITE_WORD_F(adr, res)
14276 adr = AREG((Opcode >> 0) & 7);
14277 AREG((Opcode >> 0) & 7) += 2;
14279 READ_WORD_F(adr, src)
14280 res = -src - ((flag_X >> 8) & 1);
14281 flag_V = (res & src) >> 8;
14282 flag_N = flag_X = flag_C = res >> 8;
14283 flag_NotZ |= res & 0xFFFF;
14284 WRITE_WORD_F(adr, res)
14295 adr = AREG((Opcode >> 0) & 7) - 2;
14296 AREG((Opcode >> 0) & 7) = adr;
14298 READ_WORD_F(adr, src)
14299 res = -src - ((flag_X >> 8) & 1);
14300 flag_V = (res & src) >> 8;
14301 flag_N = flag_X = flag_C = res >> 8;
14302 flag_NotZ |= res & 0xFFFF;
14303 WRITE_WORD_F(adr, res)
14315 adr += AREG((Opcode >> 0) & 7);
14317 READ_WORD_F(adr, src)
14318 res = -src - ((flag_X >> 8) & 1);
14319 flag_V = (res & src) >> 8;
14320 flag_N = flag_X = flag_C = res >> 8;
14321 flag_NotZ |= res & 0xFFFF;
14322 WRITE_WORD_F(adr, res)
14333 adr = AREG((Opcode >> 0) & 7);
14336 READ_WORD_F(adr, src)
14337 res = -src - ((flag_X >> 8) & 1);
14338 flag_V = (res & src) >> 8;
14339 flag_N = flag_X = flag_C = res >> 8;
14340 flag_NotZ |= res & 0xFFFF;
14341 WRITE_WORD_F(adr, res)
14354 READ_WORD_F(adr, src)
14355 res = -src - ((flag_X >> 8) & 1);
14356 flag_V = (res & src) >> 8;
14357 flag_N = flag_X = flag_C = res >> 8;
14358 flag_NotZ |= res & 0xFFFF;
14359 WRITE_WORD_F(adr, res)
14372 READ_WORD_F(adr, src)
14373 res = -src - ((flag_X >> 8) & 1);
14374 flag_V = (res & src) >> 8;
14375 flag_N = flag_X = flag_C = res >> 8;
14376 flag_NotZ |= res & 0xFFFF;
14377 WRITE_WORD_F(adr, res)
14391 READ_WORD_F(adr, src)
14392 res = -src - ((flag_X >> 8) & 1);
14393 flag_V = (res & src) >> 8;
14394 flag_N = flag_X = flag_C = res >> 8;
14395 flag_NotZ |= res & 0xFFFF;
14396 WRITE_WORD_F(adr, res)
14410 READ_WORD_F(adr, src)
14411 res = -src - ((flag_X >> 8) & 1);
14412 flag_V = (res & src) >> 8;
14413 flag_N = flag_X = flag_C = res >> 8;
14414 flag_NotZ |= res & 0xFFFF;
14415 WRITE_WORD_F(adr, res)
14426 src = DREGu32((Opcode >> 0) & 7);
14427 res = -src - ((flag_X >> 8) & 1);
14429 flag_V = (res & src) >> 24;
14430 flag_X = flag_C = (res?1:0)<<8;
14431 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14432 flag_N = res >> 24;
14433 DREGu32((Opcode >> 0) & 7) = res;
14443 adr = AREG((Opcode >> 0) & 7);
14445 READ_LONG_F(adr, src)
14446 res = -src - ((flag_X >> 8) & 1);
14448 flag_V = (res & src) >> 24;
14449 flag_X = flag_C = (res?1:0)<<8;
14450 // flag_X = flag_C = ((src & res & 1) | (src >> 1) | (res >> 1)) >> 23;
14451 flag_N = res >> 24;
14452 WRITE_LONG_F(adr, res)
14463 adr = AREG((Opcode >> 0) & 7);
14464 AREG((Opcode >> 0) & 7) += 4;
14466 READ_LONG_F(adr, src)
14467 res = -src - ((flag_X >> 8) & 1);
14469 flag_V = (res & src) >> 24;
14470 flag_X = flag_C = (res?1:0)<<8;
14471 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14472 flag_N = res >> 24;
14473 WRITE_LONG_F(adr, res)
14484 adr = AREG((Opcode >> 0) & 7) - 4;
14485 AREG((Opcode >> 0) & 7) = adr;
14487 READ_LONG_F(adr, src)
14488 res = -src - ((flag_X >> 8) & 1);
14490 flag_V = (res & src) >> 24;
14491 flag_X = flag_C = (res?1:0)<<8;
14492 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14493 flag_N = res >> 24;
14494 WRITE_LONG_F(adr, res)
14506 adr += AREG((Opcode >> 0) & 7);
14508 READ_LONG_F(adr, src)
14509 res = -src - ((flag_X >> 8) & 1);
14511 flag_V = (res & src) >> 24;
14512 flag_X = flag_C = (res?1:0)<<8;
14513 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14514 flag_N = res >> 24;
14515 WRITE_LONG_F(adr, res)
14526 adr = AREG((Opcode >> 0) & 7);
14529 READ_LONG_F(adr, src)
14530 res = -src - ((flag_X >> 8) & 1);
14532 flag_V = (res & src) >> 24;
14533 flag_X = flag_C = (res?1:0)<<8;
14534 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14535 flag_N = res >> 24;
14536 WRITE_LONG_F(adr, res)
14549 READ_LONG_F(adr, src)
14550 res = -src - ((flag_X >> 8) & 1);
14552 flag_V = (res & src) >> 24;
14553 flag_X = flag_C = (res?1:0)<<8;
14554 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14555 flag_N = res >> 24;
14556 WRITE_LONG_F(adr, res)
14569 READ_LONG_F(adr, src)
14570 res = -src - ((flag_X >> 8) & 1);
14572 flag_V = (res & src) >> 24;
14573 flag_X = flag_C = (res?1:0)<<8;
14574 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14575 flag_N = res >> 24;
14576 WRITE_LONG_F(adr, res)
14590 READ_LONG_F(adr, src)
14591 res = -src - ((flag_X >> 8) & 1);
14593 flag_V = (res & src) >> 24;
14594 flag_X = flag_C = (res?1:0)<<8;
14595 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14596 flag_N = res >> 24;
14597 WRITE_LONG_F(adr, res)
14611 READ_LONG_F(adr, src)
14612 res = -src - ((flag_X >> 8) & 1);
14614 flag_V = (res & src) >> 24;
14615 flag_X = flag_C = (res?1:0)<<8;
14616 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14617 flag_N = res >> 24;
14618 WRITE_LONG_F(adr, res)
14630 flag_N = flag_NotZ = flag_V = flag_C = 0;
14631 DREGu8((Opcode >> 0) & 7) = res;
14641 adr = AREG((Opcode >> 0) & 7);
14643 flag_N = flag_NotZ = flag_V = flag_C = 0;
14645 WRITE_BYTE_F(adr, res)
14656 adr = AREG((Opcode >> 0) & 7);
14657 AREG((Opcode >> 0) & 7) += 1;
14659 flag_N = flag_NotZ = flag_V = flag_C = 0;
14661 WRITE_BYTE_F(adr, res)
14672 adr = AREG((Opcode >> 0) & 7) - 1;
14673 AREG((Opcode >> 0) & 7) = adr;
14675 flag_N = flag_NotZ = flag_V = flag_C = 0;
14677 WRITE_BYTE_F(adr, res)
14689 adr += AREG((Opcode >> 0) & 7);
14691 flag_N = flag_NotZ = flag_V = flag_C = 0;
14693 WRITE_BYTE_F(adr, res)
14704 adr = AREG((Opcode >> 0) & 7);
14707 flag_N = flag_NotZ = flag_V = flag_C = 0;
14709 WRITE_BYTE_F(adr, res)
14722 flag_N = flag_NotZ = flag_V = flag_C = 0;
14724 WRITE_BYTE_F(adr, res)
14737 flag_N = flag_NotZ = flag_V = flag_C = 0;
14739 WRITE_BYTE_F(adr, res)
14753 flag_N = flag_NotZ = flag_V = flag_C = 0;
14755 WRITE_BYTE_F(adr, res)
14769 flag_N = flag_NotZ = flag_V = flag_C = 0;
14771 WRITE_BYTE_F(adr, res)
14783 flag_N = flag_NotZ = flag_V = flag_C = 0;
14784 DREGu16((Opcode >> 0) & 7) = res;
14794 adr = AREG((Opcode >> 0) & 7);
14796 flag_N = flag_NotZ = flag_V = flag_C = 0;
14798 WRITE_WORD_F(adr, res)
14809 adr = AREG((Opcode >> 0) & 7);
14810 AREG((Opcode >> 0) & 7) += 2;
14812 flag_N = flag_NotZ = flag_V = flag_C = 0;
14814 WRITE_WORD_F(adr, res)
14825 adr = AREG((Opcode >> 0) & 7) - 2;
14826 AREG((Opcode >> 0) & 7) = adr;
14828 flag_N = flag_NotZ = flag_V = flag_C = 0;
14830 WRITE_WORD_F(adr, res)
14842 adr += AREG((Opcode >> 0) & 7);
14844 flag_N = flag_NotZ = flag_V = flag_C = 0;
14846 WRITE_WORD_F(adr, res)
14857 adr = AREG((Opcode >> 0) & 7);
14860 flag_N = flag_NotZ = flag_V = flag_C = 0;
14862 WRITE_WORD_F(adr, res)
14875 flag_N = flag_NotZ = flag_V = flag_C = 0;
14877 WRITE_WORD_F(adr, res)
14890 flag_N = flag_NotZ = flag_V = flag_C = 0;
14892 WRITE_WORD_F(adr, res)
14906 flag_N = flag_NotZ = flag_V = flag_C = 0;
14908 WRITE_WORD_F(adr, res)
14922 flag_N = flag_NotZ = flag_V = flag_C = 0;
14924 WRITE_WORD_F(adr, res)
14936 flag_N = flag_NotZ = flag_V = flag_C = 0;
14937 DREGu32((Opcode >> 0) & 7) = res;
14947 adr = AREG((Opcode >> 0) & 7);
14949 flag_N = flag_NotZ = flag_V = flag_C = 0;
14951 WRITE_LONG_F(adr, res)
14962 adr = AREG((Opcode >> 0) & 7);
14963 AREG((Opcode >> 0) & 7) += 4;
14965 flag_N = flag_NotZ = flag_V = flag_C = 0;
14967 WRITE_LONG_F(adr, res)
14978 adr = AREG((Opcode >> 0) & 7) - 4;
14979 AREG((Opcode >> 0) & 7) = adr;
14981 flag_N = flag_NotZ = flag_V = flag_C = 0;
14983 WRITE_LONG_F(adr, res)
14995 adr += AREG((Opcode >> 0) & 7);
14997 flag_N = flag_NotZ = flag_V = flag_C = 0;
14999 WRITE_LONG_F(adr, res)
15010 adr = AREG((Opcode >> 0) & 7);
15013 flag_N = flag_NotZ = flag_V = flag_C = 0;
15015 WRITE_LONG_F(adr, res)
15028 flag_N = flag_NotZ = flag_V = flag_C = 0;
15030 WRITE_LONG_F(adr, res)
15043 flag_N = flag_NotZ = flag_V = flag_C = 0;
15045 WRITE_LONG_F(adr, res)
15059 flag_N = flag_NotZ = flag_V = flag_C = 0;
15061 WRITE_LONG_F(adr, res)
15075 flag_N = flag_NotZ = flag_V = flag_C = 0;
15077 WRITE_LONG_F(adr, res)
15088 src = DREGu8((Opcode >> 0) & 7);
15090 flag_V = res & src;
15091 flag_N = flag_X = flag_C = res;
15092 flag_NotZ = res & 0xFF;
15093 DREGu8((Opcode >> 0) & 7) = res;
15103 adr = AREG((Opcode >> 0) & 7);
15105 READ_BYTE_F(adr, src)
15107 flag_V = res & src;
15108 flag_N = flag_X = flag_C = res;
15109 flag_NotZ = res & 0xFF;
15110 WRITE_BYTE_F(adr, res)
15121 adr = AREG((Opcode >> 0) & 7);
15122 AREG((Opcode >> 0) & 7) += 1;
15124 READ_BYTE_F(adr, src)
15126 flag_V = res & src;
15127 flag_N = flag_X = flag_C = res;
15128 flag_NotZ = res & 0xFF;
15129 WRITE_BYTE_F(adr, res)
15140 adr = AREG((Opcode >> 0) & 7) - 1;
15141 AREG((Opcode >> 0) & 7) = adr;
15143 READ_BYTE_F(adr, src)
15145 flag_V = res & src;
15146 flag_N = flag_X = flag_C = res;
15147 flag_NotZ = res & 0xFF;
15148 WRITE_BYTE_F(adr, res)
15160 adr += AREG((Opcode >> 0) & 7);
15162 READ_BYTE_F(adr, src)
15164 flag_V = res & src;
15165 flag_N = flag_X = flag_C = res;
15166 flag_NotZ = res & 0xFF;
15167 WRITE_BYTE_F(adr, res)
15178 adr = AREG((Opcode >> 0) & 7);
15181 READ_BYTE_F(adr, src)
15183 flag_V = res & src;
15184 flag_N = flag_X = flag_C = res;
15185 flag_NotZ = res & 0xFF;
15186 WRITE_BYTE_F(adr, res)
15199 READ_BYTE_F(adr, src)
15201 flag_V = res & src;
15202 flag_N = flag_X = flag_C = res;
15203 flag_NotZ = res & 0xFF;
15204 WRITE_BYTE_F(adr, res)
15217 READ_BYTE_F(adr, src)
15219 flag_V = res & src;
15220 flag_N = flag_X = flag_C = res;
15221 flag_NotZ = res & 0xFF;
15222 WRITE_BYTE_F(adr, res)
15236 READ_BYTE_F(adr, src)
15238 flag_V = res & src;
15239 flag_N = flag_X = flag_C = res;
15240 flag_NotZ = res & 0xFF;
15241 WRITE_BYTE_F(adr, res)
15255 READ_BYTE_F(adr, src)
15257 flag_V = res & src;
15258 flag_N = flag_X = flag_C = res;
15259 flag_NotZ = res & 0xFF;
15260 WRITE_BYTE_F(adr, res)
15271 src = DREGu16((Opcode >> 0) & 7);
15273 flag_V = (res & src) >> 8;
15274 flag_N = flag_X = flag_C = res >> 8;
15275 flag_NotZ = res & 0xFFFF;
15276 DREGu16((Opcode >> 0) & 7) = res;
15286 adr = AREG((Opcode >> 0) & 7);
15288 READ_WORD_F(adr, src)
15290 flag_V = (res & src) >> 8;
15291 flag_N = flag_X = flag_C = res >> 8;
15292 flag_NotZ = res & 0xFFFF;
15293 WRITE_WORD_F(adr, res)
15304 adr = AREG((Opcode >> 0) & 7);
15305 AREG((Opcode >> 0) & 7) += 2;
15307 READ_WORD_F(adr, src)
15309 flag_V = (res & src) >> 8;
15310 flag_N = flag_X = flag_C = res >> 8;
15311 flag_NotZ = res & 0xFFFF;
15312 WRITE_WORD_F(adr, res)
15323 adr = AREG((Opcode >> 0) & 7) - 2;
15324 AREG((Opcode >> 0) & 7) = adr;
15326 READ_WORD_F(adr, src)
15328 flag_V = (res & src) >> 8;
15329 flag_N = flag_X = flag_C = res >> 8;
15330 flag_NotZ = res & 0xFFFF;
15331 WRITE_WORD_F(adr, res)
15343 adr += AREG((Opcode >> 0) & 7);
15345 READ_WORD_F(adr, src)
15347 flag_V = (res & src) >> 8;
15348 flag_N = flag_X = flag_C = res >> 8;
15349 flag_NotZ = res & 0xFFFF;
15350 WRITE_WORD_F(adr, res)
15361 adr = AREG((Opcode >> 0) & 7);
15364 READ_WORD_F(adr, src)
15366 flag_V = (res & src) >> 8;
15367 flag_N = flag_X = flag_C = res >> 8;
15368 flag_NotZ = res & 0xFFFF;
15369 WRITE_WORD_F(adr, res)
15382 READ_WORD_F(adr, src)
15384 flag_V = (res & src) >> 8;
15385 flag_N = flag_X = flag_C = res >> 8;
15386 flag_NotZ = res & 0xFFFF;
15387 WRITE_WORD_F(adr, res)
15400 READ_WORD_F(adr, src)
15402 flag_V = (res & src) >> 8;
15403 flag_N = flag_X = flag_C = res >> 8;
15404 flag_NotZ = res & 0xFFFF;
15405 WRITE_WORD_F(adr, res)
15419 READ_WORD_F(adr, src)
15421 flag_V = (res & src) >> 8;
15422 flag_N = flag_X = flag_C = res >> 8;
15423 flag_NotZ = res & 0xFFFF;
15424 WRITE_WORD_F(adr, res)
15438 READ_WORD_F(adr, src)
15440 flag_V = (res & src) >> 8;
15441 flag_N = flag_X = flag_C = res >> 8;
15442 flag_NotZ = res & 0xFFFF;
15443 WRITE_WORD_F(adr, res)
15454 src = DREGu32((Opcode >> 0) & 7);
15457 flag_V = (res & src) >> 24;
15458 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15459 flag_N = res >> 24;
15460 DREGu32((Opcode >> 0) & 7) = res;
15470 adr = AREG((Opcode >> 0) & 7);
15472 READ_LONG_F(adr, src)
15475 flag_V = (res & src) >> 24;
15476 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15477 flag_N = res >> 24;
15478 WRITE_LONG_F(adr, res)
15489 adr = AREG((Opcode >> 0) & 7);
15490 AREG((Opcode >> 0) & 7) += 4;
15492 READ_LONG_F(adr, src)
15495 flag_V = (res & src) >> 24;
15496 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15497 flag_N = res >> 24;
15498 WRITE_LONG_F(adr, res)
15509 adr = AREG((Opcode >> 0) & 7) - 4;
15510 AREG((Opcode >> 0) & 7) = adr;
15512 READ_LONG_F(adr, src)
15515 flag_V = (res & src) >> 24;
15516 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15517 flag_N = res >> 24;
15518 WRITE_LONG_F(adr, res)
15530 adr += AREG((Opcode >> 0) & 7);
15532 READ_LONG_F(adr, src)
15535 flag_V = (res & src) >> 24;
15536 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15537 flag_N = res >> 24;
15538 WRITE_LONG_F(adr, res)
15549 adr = AREG((Opcode >> 0) & 7);
15552 READ_LONG_F(adr, src)
15555 flag_V = (res & src) >> 24;
15556 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15557 flag_N = res >> 24;
15558 WRITE_LONG_F(adr, res)
15571 READ_LONG_F(adr, src)
15574 flag_V = (res & src) >> 24;
15575 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15576 flag_N = res >> 24;
15577 WRITE_LONG_F(adr, res)
15590 READ_LONG_F(adr, src)
15593 flag_V = (res & src) >> 24;
15594 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15595 flag_N = res >> 24;
15596 WRITE_LONG_F(adr, res)
15610 READ_LONG_F(adr, src)
15613 flag_V = (res & src) >> 24;
15614 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15615 flag_N = res >> 24;
15616 WRITE_LONG_F(adr, res)
15630 READ_LONG_F(adr, src)
15633 flag_V = (res & src) >> 24;
15634 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15635 flag_N = res >> 24;
15636 WRITE_LONG_F(adr, res)
15647 src = DREGu8((Opcode >> 0) & 7);
15652 flag_NotZ = res & 0xFF;
15653 DREGu8((Opcode >> 0) & 7) = res;
15663 adr = AREG((Opcode >> 0) & 7);
15665 READ_BYTE_F(adr, src)
15670 flag_NotZ = res & 0xFF;
15671 WRITE_BYTE_F(adr, res)
15682 adr = AREG((Opcode >> 0) & 7);
15683 AREG((Opcode >> 0) & 7) += 1;
15685 READ_BYTE_F(adr, src)
15690 flag_NotZ = res & 0xFF;
15691 WRITE_BYTE_F(adr, res)
15702 adr = AREG((Opcode >> 0) & 7) - 1;
15703 AREG((Opcode >> 0) & 7) = adr;
15705 READ_BYTE_F(adr, src)
15710 flag_NotZ = res & 0xFF;
15711 WRITE_BYTE_F(adr, res)
15723 adr += AREG((Opcode >> 0) & 7);
15725 READ_BYTE_F(adr, src)
15730 flag_NotZ = res & 0xFF;
15731 WRITE_BYTE_F(adr, res)
15742 adr = AREG((Opcode >> 0) & 7);
15745 READ_BYTE_F(adr, src)
15750 flag_NotZ = res & 0xFF;
15751 WRITE_BYTE_F(adr, res)
15764 READ_BYTE_F(adr, src)
15769 flag_NotZ = res & 0xFF;
15770 WRITE_BYTE_F(adr, res)
15783 READ_BYTE_F(adr, src)
15788 flag_NotZ = res & 0xFF;
15789 WRITE_BYTE_F(adr, res)
15803 READ_BYTE_F(adr, src)
15808 flag_NotZ = res & 0xFF;
15809 WRITE_BYTE_F(adr, res)
15823 READ_BYTE_F(adr, src)
15828 flag_NotZ = res & 0xFF;
15829 WRITE_BYTE_F(adr, res)
15840 src = DREGu16((Opcode >> 0) & 7);
15844 flag_NotZ = res & 0xFFFF;
15846 DREGu16((Opcode >> 0) & 7) = res;
15856 adr = AREG((Opcode >> 0) & 7);
15858 READ_WORD_F(adr, src)
15862 flag_NotZ = res & 0xFFFF;
15864 WRITE_WORD_F(adr, res)
15875 adr = AREG((Opcode >> 0) & 7);
15876 AREG((Opcode >> 0) & 7) += 2;
15878 READ_WORD_F(adr, src)
15882 flag_NotZ = res & 0xFFFF;
15884 WRITE_WORD_F(adr, res)
15895 adr = AREG((Opcode >> 0) & 7) - 2;
15896 AREG((Opcode >> 0) & 7) = adr;
15898 READ_WORD_F(adr, src)
15902 flag_NotZ = res & 0xFFFF;
15904 WRITE_WORD_F(adr, res)
15916 adr += AREG((Opcode >> 0) & 7);
15918 READ_WORD_F(adr, src)
15922 flag_NotZ = res & 0xFFFF;
15924 WRITE_WORD_F(adr, res)
15935 adr = AREG((Opcode >> 0) & 7);
15938 READ_WORD_F(adr, src)
15942 flag_NotZ = res & 0xFFFF;
15944 WRITE_WORD_F(adr, res)
15957 READ_WORD_F(adr, src)
15961 flag_NotZ = res & 0xFFFF;
15963 WRITE_WORD_F(adr, res)
15976 READ_WORD_F(adr, src)
15980 flag_NotZ = res & 0xFFFF;
15982 WRITE_WORD_F(adr, res)
15996 READ_WORD_F(adr, src)
16000 flag_NotZ = res & 0xFFFF;
16002 WRITE_WORD_F(adr, res)
16016 READ_WORD_F(adr, src)
16020 flag_NotZ = res & 0xFFFF;
16022 WRITE_WORD_F(adr, res)
16033 src = DREGu32((Opcode >> 0) & 7);
16038 flag_N = res >> 24;
16039 DREGu32((Opcode >> 0) & 7) = res;
16049 adr = AREG((Opcode >> 0) & 7);
16051 READ_LONG_F(adr, src)
16056 flag_N = res >> 24;
16057 WRITE_LONG_F(adr, res)
16068 adr = AREG((Opcode >> 0) & 7);
16069 AREG((Opcode >> 0) & 7) += 4;
16071 READ_LONG_F(adr, src)
16076 flag_N = res >> 24;
16077 WRITE_LONG_F(adr, res)
16088 adr = AREG((Opcode >> 0) & 7) - 4;
16089 AREG((Opcode >> 0) & 7) = adr;
16091 READ_LONG_F(adr, src)
16096 flag_N = res >> 24;
16097 WRITE_LONG_F(adr, res)
16109 adr += AREG((Opcode >> 0) & 7);
16111 READ_LONG_F(adr, src)
16116 flag_N = res >> 24;
16117 WRITE_LONG_F(adr, res)
16128 adr = AREG((Opcode >> 0) & 7);
16131 READ_LONG_F(adr, src)
16136 flag_N = res >> 24;
16137 WRITE_LONG_F(adr, res)
16150 READ_LONG_F(adr, src)
16155 flag_N = res >> 24;
16156 WRITE_LONG_F(adr, res)
16169 READ_LONG_F(adr, src)
16174 flag_N = res >> 24;
16175 WRITE_LONG_F(adr, res)
16189 READ_LONG_F(adr, src)
16194 flag_N = res >> 24;
16195 WRITE_LONG_F(adr, res)
16209 READ_LONG_F(adr, src)
16214 flag_N = res >> 24;
16215 WRITE_LONG_F(adr, res)
16227 DREGu16((Opcode >> 0) & 7) = res;
16238 adr = AREG((Opcode >> 0) & 7);
16240 WRITE_WORD_F(adr, res)
16252 adr = AREG((Opcode >> 0) & 7);
16253 AREG((Opcode >> 0) & 7) += 2;
16255 WRITE_WORD_F(adr, res)
16267 adr = AREG((Opcode >> 0) & 7) - 2;
16268 AREG((Opcode >> 0) & 7) = adr;
16270 WRITE_WORD_F(adr, res)
16283 adr += AREG((Opcode >> 0) & 7);
16285 WRITE_WORD_F(adr, res)
16297 adr = AREG((Opcode >> 0) & 7);
16300 WRITE_WORD_F(adr, res)
16314 WRITE_WORD_F(adr, res)
16328 WRITE_WORD_F(adr, res)
16343 WRITE_WORD_F(adr, res)
16358 WRITE_WORD_F(adr, res)
16369 res = DREGu16((Opcode >> 0) & 7);
16380 adr = AREG((Opcode >> 0) & 7);
16382 READ_WORD_F(adr, res)
16394 adr = AREG((Opcode >> 0) & 7);
16395 AREG((Opcode >> 0) & 7) += 2;
16397 READ_WORD_F(adr, res)
16409 adr = AREG((Opcode >> 0) & 7) - 2;
16410 AREG((Opcode >> 0) & 7) = adr;
16412 READ_WORD_F(adr, res)
16425 adr += AREG((Opcode >> 0) & 7);
16427 READ_WORD_F(adr, res)
16439 adr = AREG((Opcode >> 0) & 7);
16442 READ_WORD_F(adr, res)
16456 READ_WORD_F(adr, res)
16470 READ_WORD_F(adr, res)
16482 adr = GET_SWORD + ((u32)(PC) - BasePC);
16485 READ_WORD_F(adr, res)
16497 adr = (u32)(PC) - BasePC;
16500 READ_WORD_F(adr, res)
16526 READ_WORD_F(adr, res)
16541 READ_WORD_F(adr, res)
16555 res = DREGu16((Opcode >> 0) & 7);
16563 CHECK_INT_TO_JUMP(12)
16567 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16581 adr = AREG((Opcode >> 0) & 7);
16583 READ_WORD_F(adr, res)
16592 CHECK_INT_TO_JUMP(16)
16596 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16610 adr = AREG((Opcode >> 0) & 7);
16611 AREG((Opcode >> 0) & 7) += 2;
16613 READ_WORD_F(adr, res)
16622 CHECK_INT_TO_JUMP(16)
16626 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16640 adr = AREG((Opcode >> 0) & 7) - 2;
16641 AREG((Opcode >> 0) & 7) = adr;
16643 READ_WORD_F(adr, res)
16652 CHECK_INT_TO_JUMP(18)
16656 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16671 adr += AREG((Opcode >> 0) & 7);
16673 READ_WORD_F(adr, res)
16682 CHECK_INT_TO_JUMP(20)
16686 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16700 adr = AREG((Opcode >> 0) & 7);
16703 READ_WORD_F(adr, res)
16712 CHECK_INT_TO_JUMP(22)
16716 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16733 READ_WORD_F(adr, res)
16742 CHECK_INT_TO_JUMP(20)
16746 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16762 READ_WORD_F(adr, res)
16771 CHECK_INT_TO_JUMP(24)
16775 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16789 adr = GET_SWORD + ((u32)(PC) - BasePC);
16792 READ_WORD_F(adr, res)
16801 CHECK_INT_TO_JUMP(20)
16805 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16819 adr = (u32)(PC) - BasePC;
16822 READ_WORD_F(adr, res)
16831 CHECK_INT_TO_JUMP(22)
16835 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16857 CHECK_INT_TO_JUMP(16)
16861 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16878 READ_WORD_F(adr, res)
16887 CHECK_INT_TO_JUMP(16)
16891 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16908 READ_WORD_F(adr, res)
16917 CHECK_INT_TO_JUMP(18)
16921 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16933 res = DREGu8((Opcode >> 0) & 7);
16934 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
16938 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
16940 DREGu8((Opcode >> 0) & 7) = res;
16942 flag_X = flag_C = M68K_SR_C;
16944 else flag_X = flag_C = 0;
16955 adr = AREG((Opcode >> 0) & 7);
16957 READ_BYTE_F(adr, res)
16958 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
16962 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
16964 WRITE_BYTE_F(adr, res)
16966 flag_X = flag_C = M68K_SR_C;
16968 else flag_X = flag_C = 0;
16980 adr = AREG((Opcode >> 0) & 7);
16981 AREG((Opcode >> 0) & 7) += 1;
16983 READ_BYTE_F(adr, res)
16984 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
16988 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
16990 WRITE_BYTE_F(adr, res)
16992 flag_X = flag_C = M68K_SR_C;
16994 else flag_X = flag_C = 0;
17006 adr = AREG((Opcode >> 0) & 7) - 1;
17007 AREG((Opcode >> 0) & 7) = adr;
17009 READ_BYTE_F(adr, res)
17010 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17014 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17016 WRITE_BYTE_F(adr, res)
17018 flag_X = flag_C = M68K_SR_C;
17020 else flag_X = flag_C = 0;
17033 adr += AREG((Opcode >> 0) & 7);
17035 READ_BYTE_F(adr, res)
17036 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17040 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17042 WRITE_BYTE_F(adr, res)
17044 flag_X = flag_C = M68K_SR_C;
17046 else flag_X = flag_C = 0;
17058 adr = AREG((Opcode >> 0) & 7);
17061 READ_BYTE_F(adr, res)
17062 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17066 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17068 WRITE_BYTE_F(adr, res)
17070 flag_X = flag_C = M68K_SR_C;
17072 else flag_X = flag_C = 0;
17086 READ_BYTE_F(adr, res)
17087 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17091 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17093 WRITE_BYTE_F(adr, res)
17095 flag_X = flag_C = M68K_SR_C;
17097 else flag_X = flag_C = 0;
17111 READ_BYTE_F(adr, res)
17112 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17116 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17118 WRITE_BYTE_F(adr, res)
17120 flag_X = flag_C = M68K_SR_C;
17122 else flag_X = flag_C = 0;
17137 READ_BYTE_F(adr, res)
17138 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17142 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17144 WRITE_BYTE_F(adr, res)
17146 flag_X = flag_C = M68K_SR_C;
17148 else flag_X = flag_C = 0;
17163 READ_BYTE_F(adr, res)
17164 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17168 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17170 WRITE_BYTE_F(adr, res)
17172 flag_X = flag_C = M68K_SR_C;
17174 else flag_X = flag_C = 0;
17186 adr = AREG((Opcode >> 0) & 7);
17200 adr += AREG((Opcode >> 0) & 7);
17213 adr = AREG((Opcode >> 0) & 7);
17253 adr = GET_SWORD + ((u32)(PC) - BasePC);
17267 adr = (u32)(PC) - BasePC;
17281 res = DREGu32((Opcode >> 0) & 7);
17282 res = (res >> 16) | (res << 16);
17286 flag_N = res >> 24;
17287 DREGu32((Opcode >> 0) & 7) = res;
17300 adr = AREG((Opcode >> 0) & 7);
17301 psrc = &DREGu32(0);
17308 WRITE_WORD_F(adr, *psrc)
17312 } while (res >>= 1);
17314 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17315 #ifdef USE_CYCLONE_TIMING
17331 adr = AREG((Opcode >> 0) & 7);
17332 psrc = &AREGu32(7);
17340 WRITE_WORD_F(adr, *psrc)
17343 } while (res >>= 1);
17344 AREG((Opcode >> 0) & 7) = adr;
17346 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17360 adr += AREG((Opcode >> 0) & 7);
17361 psrc = &DREGu32(0);
17368 WRITE_WORD_F(adr, *psrc)
17372 } while (res >>= 1);
17374 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17375 #ifdef USE_CYCLONE_TIMING
17391 adr = AREG((Opcode >> 0) & 7);
17393 psrc = &DREGu32(0);
17400 WRITE_WORD_F(adr, *psrc)
17404 } while (res >>= 1);
17406 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17407 #ifdef USE_CYCLONE_TIMING
17424 psrc = &DREGu32(0);
17431 WRITE_WORD_F(adr, *psrc)
17435 } while (res >>= 1);
17437 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17438 #ifdef USE_CYCLONE_TIMING
17455 psrc = &DREGu32(0);
17462 WRITE_WORD_F(adr, *psrc)
17466 } while (res >>= 1);
17468 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17469 #ifdef USE_CYCLONE_TIMING
17486 psrc = &AREGu32(7);
17494 WRITE_WORD_F(adr, *psrc)
17497 } while (res >>= 1);
17500 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17513 adr = AREG((Opcode >> 0) & 7);
17514 psrc = &DREGu32(0);
17521 WRITE_LONG_F(adr, *psrc)
17525 } while (res >>= 1);
17527 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17528 #ifdef USE_CYCLONE_TIMING
17544 adr = AREG((Opcode >> 0) & 7);
17545 psrc = &AREGu32(7);
17553 WRITE_LONG_DEC_F(adr, *psrc)
17556 } while (res >>= 1);
17557 AREG((Opcode >> 0) & 7) = adr;
17559 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17573 adr += AREG((Opcode >> 0) & 7);
17574 psrc = &DREGu32(0);
17581 WRITE_LONG_F(adr, *psrc)
17585 } while (res >>= 1);
17587 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17588 #ifdef USE_CYCLONE_TIMING
17604 adr = AREG((Opcode >> 0) & 7);
17606 psrc = &DREGu32(0);
17613 WRITE_LONG_F(adr, *psrc)
17617 } while (res >>= 1);
17619 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17620 #ifdef USE_CYCLONE_TIMING
17637 psrc = &DREGu32(0);
17644 WRITE_LONG_F(adr, *psrc)
17648 } while (res >>= 1);
17650 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17651 #ifdef USE_CYCLONE_TIMING
17668 psrc = &DREGu32(0);
17675 WRITE_LONG_F(adr, *psrc)
17679 } while (res >>= 1);
17681 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17682 #ifdef USE_CYCLONE_TIMING
17699 psrc = &AREGu32(7);
17707 WRITE_LONG_DEC_F(adr, *psrc)
17710 } while (res >>= 1);
17713 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17723 res = (s32)DREGs8((Opcode >> 0) & 7);
17728 DREGu16((Opcode >> 0) & 7) = res;
17738 res = (s32)DREGs16((Opcode >> 0) & 7);
17743 DREGu32((Opcode >> 0) & 7) = res;
17753 res = DREGu8((Opcode >> 0) & 7);
17767 adr = AREG((Opcode >> 0) & 7);
17769 READ_BYTE_F(adr, res)
17784 adr = AREG((Opcode >> 0) & 7);
17785 AREG((Opcode >> 0) & 7) += 1;
17787 READ_BYTE_F(adr, res)
17802 adr = AREG((Opcode >> 0) & 7) - 1;
17803 AREG((Opcode >> 0) & 7) = adr;
17805 READ_BYTE_F(adr, res)
17821 adr += AREG((Opcode >> 0) & 7);
17823 READ_BYTE_F(adr, res)
17838 adr = AREG((Opcode >> 0) & 7);
17841 READ_BYTE_F(adr, res)
17858 READ_BYTE_F(adr, res)
17875 READ_BYTE_F(adr, res)
17893 READ_BYTE_F(adr, res)
17911 READ_BYTE_F(adr, res)
17926 res = DREGu16((Opcode >> 0) & 7);
17940 adr = AREG((Opcode >> 0) & 7);
17942 READ_WORD_F(adr, res)
17957 adr = AREG((Opcode >> 0) & 7);
17958 AREG((Opcode >> 0) & 7) += 2;
17960 READ_WORD_F(adr, res)
17975 adr = AREG((Opcode >> 0) & 7) - 2;
17976 AREG((Opcode >> 0) & 7) = adr;
17978 READ_WORD_F(adr, res)
17994 adr += AREG((Opcode >> 0) & 7);
17996 READ_WORD_F(adr, res)
18011 adr = AREG((Opcode >> 0) & 7);
18014 READ_WORD_F(adr, res)
18031 READ_WORD_F(adr, res)
18048 READ_WORD_F(adr, res)
18066 READ_WORD_F(adr, res)
18084 READ_WORD_F(adr, res)
18099 res = DREGu32((Opcode >> 0) & 7);
18103 flag_N = res >> 24;
18113 adr = AREG((Opcode >> 0) & 7);
18115 READ_LONG_F(adr, res)
18119 flag_N = res >> 24;
18130 adr = AREG((Opcode >> 0) & 7);
18131 AREG((Opcode >> 0) & 7) += 4;
18133 READ_LONG_F(adr, res)
18137 flag_N = res >> 24;
18148 adr = AREG((Opcode >> 0) & 7) - 4;
18149 AREG((Opcode >> 0) & 7) = adr;
18151 READ_LONG_F(adr, res)
18155 flag_N = res >> 24;
18167 adr += AREG((Opcode >> 0) & 7);
18169 READ_LONG_F(adr, res)
18173 flag_N = res >> 24;
18184 adr = AREG((Opcode >> 0) & 7);
18187 READ_LONG_F(adr, res)
18191 flag_N = res >> 24;
18204 READ_LONG_F(adr, res)
18208 flag_N = res >> 24;
18221 READ_LONG_F(adr, res)
18225 flag_N = res >> 24;
18239 READ_LONG_F(adr, res)
18243 flag_N = res >> 24;
18257 READ_LONG_F(adr, res)
18261 flag_N = res >> 24;
18272 res = DREGu8((Opcode >> 0) & 7);
18278 DREGu8((Opcode >> 0) & 7) = res;
18288 adr = AREG((Opcode >> 0) & 7);
18290 READ_BYTE_F(adr, res)
18295 #ifdef PICODRIVE_HACK
18296 if (g_m68kcontext == &PicoCpuFS68k) {
18298 WRITE_BYTE_F(adr, res);
18303 #ifdef USE_CYCLONE_TIMING
18316 adr = AREG((Opcode >> 0) & 7);
18317 AREG((Opcode >> 0) & 7) += 1;
18319 READ_BYTE_F(adr, res)
18325 #ifdef PICODRIVE_HACK
18326 if (g_m68kcontext == &PicoCpuFS68k) {
18328 WRITE_BYTE_F(adr, res);
18333 #ifdef USE_CYCLONE_TIMING
18346 adr = AREG((Opcode >> 0) & 7) - 1;
18347 AREG((Opcode >> 0) & 7) = adr;
18349 READ_BYTE_F(adr, res)
18355 #ifdef PICODRIVE_HACK
18356 if (g_m68kcontext == &PicoCpuFS68k) {
18358 WRITE_BYTE_F(adr, res);
18363 #ifdef USE_CYCLONE_TIMING
18377 adr += AREG((Opcode >> 0) & 7);
18379 READ_BYTE_F(adr, res)
18385 #ifdef PICODRIVE_HACK
18386 if (g_m68kcontext == &PicoCpuFS68k) {
18388 WRITE_BYTE_F(adr, res);
18393 #ifdef USE_CYCLONE_TIMING
18406 adr = AREG((Opcode >> 0) & 7);
18409 READ_BYTE_F(adr, res)
18415 #ifdef PICODRIVE_HACK
18416 if (g_m68kcontext == &PicoCpuFS68k) {
18418 WRITE_BYTE_F(adr, res);
18423 #ifdef USE_CYCLONE_TIMING
18438 READ_BYTE_F(adr, res)
18444 #ifdef PICODRIVE_HACK
18445 if (g_m68kcontext == &PicoCpuFS68k) {
18447 WRITE_BYTE_F(adr, res);
18452 #ifdef USE_CYCLONE_TIMING
18467 READ_BYTE_F(adr, res)
18473 #ifdef PICODRIVE_HACK
18474 if (g_m68kcontext == &PicoCpuFS68k) {
18476 WRITE_BYTE_F(adr, res);
18481 #ifdef USE_CYCLONE_TIMING
18497 READ_BYTE_F(adr, res)
18503 #ifdef PICODRIVE_HACK
18504 if (g_m68kcontext == &PicoCpuFS68k) {
18506 WRITE_BYTE_F(adr, res);
18511 #ifdef USE_CYCLONE_TIMING
18527 READ_BYTE_F(adr, res)
18533 #ifdef PICODRIVE_HACK
18534 if (g_m68kcontext == &PicoCpuFS68k) {
18536 WRITE_BYTE_F(adr, res);
18541 #ifdef USE_CYCLONE_TIMING
18551 SET_PC(execute_exception(M68K_ILLEGAL_INSTRUCTION_EX, GET_PC-2, GET_SR));
18555 // ILLEGAL A000-AFFF
18558 SET_PC(execute_exception(M68K_1010_EX, GET_PC-2, GET_SR));
18562 // ILLEGAL F000-FFFF
18565 SET_PC(execute_exception(M68K_1111_EX, GET_PC-2, GET_SR));
18566 RET(0) // 4 already taken by exc. handler
18578 adr = AREG((Opcode >> 0) & 7);
18579 psrc = &DREGs32(0);
18586 READSX_WORD_F(adr, *psrc)
18590 } while (res >>= 1);
18592 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18593 #ifdef USE_CYCLONE_TIMING
18609 adr = AREG((Opcode >> 0) & 7);
18610 psrc = &DREGs32(0);
18617 READSX_WORD_F(adr, *psrc)
18621 } while (res >>= 1);
18622 AREG((Opcode >> 0) & 7) = adr;
18624 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18638 adr += AREG((Opcode >> 0) & 7);
18639 psrc = &DREGs32(0);
18646 READSX_WORD_F(adr, *psrc)
18650 } while (res >>= 1);
18652 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18653 #ifdef USE_CYCLONE_TIMING
18669 adr = AREG((Opcode >> 0) & 7);
18671 psrc = &DREGs32(0);
18678 READSX_WORD_F(adr, *psrc)
18682 } while (res >>= 1);
18684 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18685 #ifdef USE_CYCLONE_TIMING
18702 psrc = &DREGs32(0);
18709 READSX_WORD_F(adr, *psrc)
18713 } while (res >>= 1);
18715 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18716 #ifdef USE_CYCLONE_TIMING
18733 psrc = &DREGs32(0);
18740 READSX_WORD_F(adr, *psrc)
18744 } while (res >>= 1);
18746 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18747 #ifdef USE_CYCLONE_TIMING
18763 adr = GET_SWORD + ((u32)(PC) - BasePC);
18765 psrc = &DREGs32(0);
18772 READSX_WORD_F(adr, *psrc)
18776 } while (res >>= 1);
18778 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18779 #ifdef USE_CYCLONE_TIMING
18795 adr = (u32)(PC) - BasePC;
18797 psrc = &DREGs32(0);
18804 READSX_WORD_F(adr, *psrc)
18808 } while (res >>= 1);
18810 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18811 #ifdef USE_CYCLONE_TIMING
18828 psrc = &DREGs32(0);
18835 READSX_WORD_F(adr, *psrc)
18839 } while (res >>= 1);
18842 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18855 adr = AREG((Opcode >> 0) & 7);
18856 psrc = &DREGu32(0);
18863 READ_LONG_F(adr, *psrc)
18867 } while (res >>= 1);
18869 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18870 #ifdef USE_CYCLONE_TIMING
18886 adr = AREG((Opcode >> 0) & 7);
18887 psrc = &DREGu32(0);
18894 READ_LONG_F(adr, *psrc)
18898 } while (res >>= 1);
18899 AREG((Opcode >> 0) & 7) = adr;
18901 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18915 adr += AREG((Opcode >> 0) & 7);
18916 psrc = &DREGu32(0);
18923 READ_LONG_F(adr, *psrc)
18927 } while (res >>= 1);
18929 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18930 #ifdef USE_CYCLONE_TIMING
18946 adr = AREG((Opcode >> 0) & 7);
18948 psrc = &DREGu32(0);
18955 READ_LONG_F(adr, *psrc)
18959 } while (res >>= 1);
18961 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18962 #ifdef USE_CYCLONE_TIMING
18979 psrc = &DREGu32(0);
18986 READ_LONG_F(adr, *psrc)
18990 } while (res >>= 1);
18992 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18993 #ifdef USE_CYCLONE_TIMING
19010 psrc = &DREGu32(0);
19017 READ_LONG_F(adr, *psrc)
19021 } while (res >>= 1);
19023 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
19024 #ifdef USE_CYCLONE_TIMING
19040 adr = GET_SWORD + ((u32)(PC) - BasePC);
19042 psrc = &DREGu32(0);
19049 READ_LONG_F(adr, *psrc)
19053 } while (res >>= 1);
19055 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
19056 #ifdef USE_CYCLONE_TIMING
19072 adr = (u32)(PC) - BasePC;
19074 psrc = &DREGu32(0);
19081 READ_LONG_F(adr, *psrc)
19085 } while (res >>= 1);
19087 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
19088 #ifdef USE_CYCLONE_TIMING
19105 psrc = &DREGu32(0);
19112 READ_LONG_F(adr, *psrc)
19116 } while (res >>= 1);
19119 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
19126 SET_PC(execute_exception(M68K_TRAP_BASE_EX + (Opcode & 0xF), GET_PC, GET_SR));
19136 res = AREGu32((Opcode >> 0) & 7);
19140 AREG((Opcode >> 0) & 7) = res;
19155 WRITE_LONG_DEC_F(AREG(7), AREG(7))
19168 src = AREGu32((Opcode >> 0) & 7);
19171 READ_LONG_F(src, res)
19172 AREG((Opcode >> 0) & 7) = res;
19184 READ_LONG_F(AREG(7), AREG(7))
19197 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19200 res = AREGu32((Opcode >> 0) & 7);
19213 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19217 AREG((Opcode >> 0) & 7) = res;
19229 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19233 if (m68kcontext.reset_handler) m68kcontext.reset_handler();
19234 // CPU->Reset_CallBack();
19253 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19257 res &= M68K_SR_MASK;
19265 m68kcontext.execinfo |= FM68K_HALTED;
19266 m68kcontext.io_cycle_counter = 0;
19278 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19293 m68kcontext.execinfo &= ~(FM68K_EMULATE_GROUP_0|FM68K_EMULATE_TRACE|FM68K_DO_TRACE);
19294 CHECK_INT_TO_JUMP(20)
19307 CHECK_BRANCH_EXCEPTION(res)
19316 SET_PC(execute_exception(M68K_TRAPV_EX, GET_PC, GET_SR));
19331 CHECK_BRANCH_EXCEPTION(res)
19342 adr = AREG((Opcode >> 0) & 7);
19346 oldPC = (u32)(PC) - BasePC;
19351 CHECK_BRANCH_EXCEPTION(adr)
19363 adr += AREG((Opcode >> 0) & 7);
19367 oldPC = (u32)(PC) - BasePC;
19372 CHECK_BRANCH_EXCEPTION(adr)
19383 adr = AREG((Opcode >> 0) & 7);
19388 oldPC = (u32)(PC) - BasePC;
19393 CHECK_BRANCH_EXCEPTION(adr)
19408 oldPC = (u32)(PC) - BasePC;
19413 CHECK_BRANCH_EXCEPTION(adr)
19428 oldPC = (u32)(PC) - BasePC;
19433 CHECK_BRANCH_EXCEPTION(adr)
19444 adr = GET_SWORD + ((u32)(PC) - BasePC);
19449 oldPC = (u32)(PC) - BasePC;
19454 CHECK_BRANCH_EXCEPTION(adr)
19465 adr = (u32)(PC) - BasePC;
19470 oldPC = (u32)(PC) - BasePC;
19475 CHECK_BRANCH_EXCEPTION(adr)
19486 adr = AREG((Opcode >> 0) & 7);
19488 CHECK_BRANCH_EXCEPTION(adr)
19499 adr += AREG((Opcode >> 0) & 7);
19501 CHECK_BRANCH_EXCEPTION(adr)
19511 adr = AREG((Opcode >> 0) & 7);
19514 CHECK_BRANCH_EXCEPTION(adr)
19526 CHECK_BRANCH_EXCEPTION(adr)
19538 CHECK_BRANCH_EXCEPTION(adr)
19548 adr = GET_SWORD + ((u32)(PC) - BasePC);
19551 CHECK_BRANCH_EXCEPTION(adr)
19561 adr = (u32)(PC) - BasePC;
19564 CHECK_BRANCH_EXCEPTION(adr)
19574 src = DREGu16((Opcode >> 0) & 7);
19575 res = DREGu16((Opcode >> 9) & 7);
19576 if (((s32)res < 0) || (res > src))
19579 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19590 adr = AREG((Opcode >> 0) & 7);
19592 READ_WORD_F(adr, src)
19593 res = DREGu16((Opcode >> 9) & 7);
19594 if (((s32)res < 0) || (res > src))
19597 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19609 adr = AREG((Opcode >> 0) & 7);
19610 AREG((Opcode >> 0) & 7) += 2;
19612 READ_WORD_F(adr, src)
19613 res = DREGu16((Opcode >> 9) & 7);
19614 if (((s32)res < 0) || (res > src))
19617 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19629 adr = AREG((Opcode >> 0) & 7) - 2;
19630 AREG((Opcode >> 0) & 7) = adr;
19632 READ_WORD_F(adr, src)
19633 res = DREGu16((Opcode >> 9) & 7);
19634 if (((s32)res < 0) || (res > src))
19637 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19650 adr += AREG((Opcode >> 0) & 7);
19652 READ_WORD_F(adr, src)
19653 res = DREGu16((Opcode >> 9) & 7);
19654 if (((s32)res < 0) || (res > src))
19657 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19669 adr = AREG((Opcode >> 0) & 7);
19672 READ_WORD_F(adr, src)
19673 res = DREGu16((Opcode >> 9) & 7);
19674 if (((s32)res < 0) || (res > src))
19677 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19691 READ_WORD_F(adr, src)
19692 res = DREGu16((Opcode >> 9) & 7);
19693 if (((s32)res < 0) || (res > src))
19696 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19710 READ_WORD_F(adr, src)
19711 res = DREGu16((Opcode >> 9) & 7);
19712 if (((s32)res < 0) || (res > src))
19715 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19727 adr = GET_SWORD + ((u32)(PC) - BasePC);
19730 READ_WORD_F(adr, src)
19731 res = DREGu16((Opcode >> 9) & 7);
19732 if (((s32)res < 0) || (res > src))
19735 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19747 adr = (u32)(PC) - BasePC;
19750 READ_WORD_F(adr, src)
19751 res = DREGu16((Opcode >> 9) & 7);
19752 if (((s32)res < 0) || (res > src))
19755 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19768 res = DREGu16((Opcode >> 9) & 7);
19769 if (((s32)res < 0) || (res > src))
19772 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19787 READ_WORD_F(adr, src)
19788 res = DREGu16((Opcode >> 9) & 7);
19789 if (((s32)res < 0) || (res > src))
19792 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19807 READ_WORD_F(adr, src)
19808 res = DREGu16((Opcode >> 9) & 7);
19809 if (((s32)res < 0) || (res > src))
19812 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19824 adr = AREG((Opcode >> 0) & 7);
19826 AREG((Opcode >> 9) & 7) = res;
19837 adr += AREG((Opcode >> 0) & 7);
19839 AREG((Opcode >> 9) & 7) = res;
19849 adr = AREG((Opcode >> 0) & 7);
19852 AREG((Opcode >> 9) & 7) = res;
19864 AREG((Opcode >> 9) & 7) = res;
19876 AREG((Opcode >> 9) & 7) = res;
19886 adr = GET_SWORD + ((u32)(PC) - BasePC);
19889 AREG((Opcode >> 9) & 7) = res;
19899 adr = (u32)(PC) - BasePC;
19902 AREG((Opcode >> 9) & 7) = res;
19913 DREGu8((Opcode >> 0) & 7) = res;
19924 DREGu8((Opcode >> 0) & 7) = res;
19934 if (flag_NotZ && (!(flag_C & 0x100)))
19937 DREGu8((Opcode >> 0) & 7) = res;
19941 DREGu8((Opcode >> 0) & 7) = res;
19951 if ((!flag_NotZ) || (flag_C & 0x100))
19954 DREGu8((Opcode >> 0) & 7) = res;
19958 DREGu8((Opcode >> 0) & 7) = res;
19968 if (!(flag_C & 0x100))
19971 DREGu8((Opcode >> 0) & 7) = res;
19975 DREGu8((Opcode >> 0) & 7) = res;
19985 if (flag_C & 0x100)
19988 DREGu8((Opcode >> 0) & 7) = res;
19992 DREGu8((Opcode >> 0) & 7) = res;
20005 DREGu8((Opcode >> 0) & 7) = res;
20009 DREGu8((Opcode >> 0) & 7) = res;
20022 DREGu8((Opcode >> 0) & 7) = res;
20026 DREGu8((Opcode >> 0) & 7) = res;
20036 if (!(flag_V & 0x80))
20039 DREGu8((Opcode >> 0) & 7) = res;
20043 DREGu8((Opcode >> 0) & 7) = res;
20056 DREGu8((Opcode >> 0) & 7) = res;
20060 DREGu8((Opcode >> 0) & 7) = res;
20070 if (!(flag_N & 0x80))
20073 DREGu8((Opcode >> 0) & 7) = res;
20077 DREGu8((Opcode >> 0) & 7) = res;
20090 DREGu8((Opcode >> 0) & 7) = res;
20094 DREGu8((Opcode >> 0) & 7) = res;
20104 if (!((flag_N ^ flag_V) & 0x80))
20107 DREGu8((Opcode >> 0) & 7) = res;
20111 DREGu8((Opcode >> 0) & 7) = res;
20121 if ((flag_N ^ flag_V) & 0x80)
20124 DREGu8((Opcode >> 0) & 7) = res;
20128 DREGu8((Opcode >> 0) & 7) = res;
20138 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20141 DREGu8((Opcode >> 0) & 7) = res;
20145 DREGu8((Opcode >> 0) & 7) = res;
20155 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20158 DREGu8((Opcode >> 0) & 7) = res;
20162 DREGu8((Opcode >> 0) & 7) = res;
20172 adr = AREG((Opcode >> 0) & 7);
20175 WRITE_BYTE_F(adr, res)
20186 adr = AREG((Opcode >> 0) & 7);
20189 WRITE_BYTE_F(adr, res)
20200 adr = AREG((Opcode >> 0) & 7);
20201 if (flag_NotZ && (!(flag_C & 0x100)))
20205 WRITE_BYTE_F(adr, res)
20211 WRITE_BYTE_F(adr, res)
20222 adr = AREG((Opcode >> 0) & 7);
20223 if ((!flag_NotZ) || (flag_C & 0x100))
20227 WRITE_BYTE_F(adr, res)
20233 WRITE_BYTE_F(adr, res)
20244 adr = AREG((Opcode >> 0) & 7);
20245 if (!(flag_C & 0x100))
20249 WRITE_BYTE_F(adr, res)
20255 WRITE_BYTE_F(adr, res)
20266 adr = AREG((Opcode >> 0) & 7);
20267 if (flag_C & 0x100)
20271 WRITE_BYTE_F(adr, res)
20277 WRITE_BYTE_F(adr, res)
20288 adr = AREG((Opcode >> 0) & 7);
20293 WRITE_BYTE_F(adr, res)
20299 WRITE_BYTE_F(adr, res)
20310 adr = AREG((Opcode >> 0) & 7);
20315 WRITE_BYTE_F(adr, res)
20321 WRITE_BYTE_F(adr, res)
20332 adr = AREG((Opcode >> 0) & 7);
20333 if (!(flag_V & 0x80))
20337 WRITE_BYTE_F(adr, res)
20343 WRITE_BYTE_F(adr, res)
20354 adr = AREG((Opcode >> 0) & 7);
20359 WRITE_BYTE_F(adr, res)
20365 WRITE_BYTE_F(adr, res)
20376 adr = AREG((Opcode >> 0) & 7);
20377 if (!(flag_N & 0x80))
20381 WRITE_BYTE_F(adr, res)
20387 WRITE_BYTE_F(adr, res)
20398 adr = AREG((Opcode >> 0) & 7);
20403 WRITE_BYTE_F(adr, res)
20409 WRITE_BYTE_F(adr, res)
20420 adr = AREG((Opcode >> 0) & 7);
20421 if (!((flag_N ^ flag_V) & 0x80))
20425 WRITE_BYTE_F(adr, res)
20431 WRITE_BYTE_F(adr, res)
20442 adr = AREG((Opcode >> 0) & 7);
20443 if ((flag_N ^ flag_V) & 0x80)
20447 WRITE_BYTE_F(adr, res)
20453 WRITE_BYTE_F(adr, res)
20464 adr = AREG((Opcode >> 0) & 7);
20465 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20469 WRITE_BYTE_F(adr, res)
20475 WRITE_BYTE_F(adr, res)
20486 adr = AREG((Opcode >> 0) & 7);
20487 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20491 WRITE_BYTE_F(adr, res)
20497 WRITE_BYTE_F(adr, res)
20508 adr = AREG((Opcode >> 0) & 7);
20509 AREG((Opcode >> 0) & 7) += 1;
20512 WRITE_BYTE_F(adr, res)
20523 adr = AREG((Opcode >> 0) & 7);
20524 AREG((Opcode >> 0) & 7) += 1;
20527 WRITE_BYTE_F(adr, res)
20538 adr = AREG((Opcode >> 0) & 7);
20539 AREG((Opcode >> 0) & 7) += 1;
20540 if (flag_NotZ && (!(flag_C & 0x100)))
20544 WRITE_BYTE_F(adr, res)
20550 WRITE_BYTE_F(adr, res)
20561 adr = AREG((Opcode >> 0) & 7);
20562 AREG((Opcode >> 0) & 7) += 1;
20563 if ((!flag_NotZ) || (flag_C & 0x100))
20567 WRITE_BYTE_F(adr, res)
20573 WRITE_BYTE_F(adr, res)
20584 adr = AREG((Opcode >> 0) & 7);
20585 AREG((Opcode >> 0) & 7) += 1;
20586 if (!(flag_C & 0x100))
20590 WRITE_BYTE_F(adr, res)
20596 WRITE_BYTE_F(adr, res)
20607 adr = AREG((Opcode >> 0) & 7);
20608 AREG((Opcode >> 0) & 7) += 1;
20609 if (flag_C & 0x100)
20613 WRITE_BYTE_F(adr, res)
20619 WRITE_BYTE_F(adr, res)
20630 adr = AREG((Opcode >> 0) & 7);
20631 AREG((Opcode >> 0) & 7) += 1;
20636 WRITE_BYTE_F(adr, res)
20642 WRITE_BYTE_F(adr, res)
20653 adr = AREG((Opcode >> 0) & 7);
20654 AREG((Opcode >> 0) & 7) += 1;
20659 WRITE_BYTE_F(adr, res)
20665 WRITE_BYTE_F(adr, res)
20676 adr = AREG((Opcode >> 0) & 7);
20677 AREG((Opcode >> 0) & 7) += 1;
20678 if (!(flag_V & 0x80))
20682 WRITE_BYTE_F(adr, res)
20688 WRITE_BYTE_F(adr, res)
20699 adr = AREG((Opcode >> 0) & 7);
20700 AREG((Opcode >> 0) & 7) += 1;
20705 WRITE_BYTE_F(adr, res)
20711 WRITE_BYTE_F(adr, res)
20722 adr = AREG((Opcode >> 0) & 7);
20723 AREG((Opcode >> 0) & 7) += 1;
20724 if (!(flag_N & 0x80))
20728 WRITE_BYTE_F(adr, res)
20734 WRITE_BYTE_F(adr, res)
20745 adr = AREG((Opcode >> 0) & 7);
20746 AREG((Opcode >> 0) & 7) += 1;
20751 WRITE_BYTE_F(adr, res)
20757 WRITE_BYTE_F(adr, res)
20768 adr = AREG((Opcode >> 0) & 7);
20769 AREG((Opcode >> 0) & 7) += 1;
20770 if (!((flag_N ^ flag_V) & 0x80))
20774 WRITE_BYTE_F(adr, res)
20780 WRITE_BYTE_F(adr, res)
20791 adr = AREG((Opcode >> 0) & 7);
20792 AREG((Opcode >> 0) & 7) += 1;
20793 if ((flag_N ^ flag_V) & 0x80)
20797 WRITE_BYTE_F(adr, res)
20803 WRITE_BYTE_F(adr, res)
20814 adr = AREG((Opcode >> 0) & 7);
20815 AREG((Opcode >> 0) & 7) += 1;
20816 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20820 WRITE_BYTE_F(adr, res)
20826 WRITE_BYTE_F(adr, res)
20837 adr = AREG((Opcode >> 0) & 7);
20838 AREG((Opcode >> 0) & 7) += 1;
20839 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20843 WRITE_BYTE_F(adr, res)
20849 WRITE_BYTE_F(adr, res)
20860 adr = AREG((Opcode >> 0) & 7) - 1;
20861 AREG((Opcode >> 0) & 7) = adr;
20864 WRITE_BYTE_F(adr, res)
20875 adr = AREG((Opcode >> 0) & 7) - 1;
20876 AREG((Opcode >> 0) & 7) = adr;
20879 WRITE_BYTE_F(adr, res)
20890 adr = AREG((Opcode >> 0) & 7) - 1;
20891 AREG((Opcode >> 0) & 7) = adr;
20892 if (flag_NotZ && (!(flag_C & 0x100)))
20896 WRITE_BYTE_F(adr, res)
20902 WRITE_BYTE_F(adr, res)
20913 adr = AREG((Opcode >> 0) & 7) - 1;
20914 AREG((Opcode >> 0) & 7) = adr;
20915 if ((!flag_NotZ) || (flag_C & 0x100))
20919 WRITE_BYTE_F(adr, res)
20925 WRITE_BYTE_F(adr, res)
20936 adr = AREG((Opcode >> 0) & 7) - 1;
20937 AREG((Opcode >> 0) & 7) = adr;
20938 if (!(flag_C & 0x100))
20942 WRITE_BYTE_F(adr, res)
20948 WRITE_BYTE_F(adr, res)
20959 adr = AREG((Opcode >> 0) & 7) - 1;
20960 AREG((Opcode >> 0) & 7) = adr;
20961 if (flag_C & 0x100)
20965 WRITE_BYTE_F(adr, res)
20971 WRITE_BYTE_F(adr, res)
20982 adr = AREG((Opcode >> 0) & 7) - 1;
20983 AREG((Opcode >> 0) & 7) = adr;
20988 WRITE_BYTE_F(adr, res)
20994 WRITE_BYTE_F(adr, res)
21005 adr = AREG((Opcode >> 0) & 7) - 1;
21006 AREG((Opcode >> 0) & 7) = adr;
21011 WRITE_BYTE_F(adr, res)
21017 WRITE_BYTE_F(adr, res)
21028 adr = AREG((Opcode >> 0) & 7) - 1;
21029 AREG((Opcode >> 0) & 7) = adr;
21030 if (!(flag_V & 0x80))
21034 WRITE_BYTE_F(adr, res)
21040 WRITE_BYTE_F(adr, res)
21051 adr = AREG((Opcode >> 0) & 7) - 1;
21052 AREG((Opcode >> 0) & 7) = adr;
21057 WRITE_BYTE_F(adr, res)
21063 WRITE_BYTE_F(adr, res)
21074 adr = AREG((Opcode >> 0) & 7) - 1;
21075 AREG((Opcode >> 0) & 7) = adr;
21076 if (!(flag_N & 0x80))
21080 WRITE_BYTE_F(adr, res)
21086 WRITE_BYTE_F(adr, res)
21097 adr = AREG((Opcode >> 0) & 7) - 1;
21098 AREG((Opcode >> 0) & 7) = adr;
21103 WRITE_BYTE_F(adr, res)
21109 WRITE_BYTE_F(adr, res)
21120 adr = AREG((Opcode >> 0) & 7) - 1;
21121 AREG((Opcode >> 0) & 7) = adr;
21122 if (!((flag_N ^ flag_V) & 0x80))
21126 WRITE_BYTE_F(adr, res)
21132 WRITE_BYTE_F(adr, res)
21143 adr = AREG((Opcode >> 0) & 7) - 1;
21144 AREG((Opcode >> 0) & 7) = adr;
21145 if ((flag_N ^ flag_V) & 0x80)
21149 WRITE_BYTE_F(adr, res)
21155 WRITE_BYTE_F(adr, res)
21166 adr = AREG((Opcode >> 0) & 7) - 1;
21167 AREG((Opcode >> 0) & 7) = adr;
21168 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21172 WRITE_BYTE_F(adr, res)
21178 WRITE_BYTE_F(adr, res)
21189 adr = AREG((Opcode >> 0) & 7) - 1;
21190 AREG((Opcode >> 0) & 7) = adr;
21191 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21195 WRITE_BYTE_F(adr, res)
21201 WRITE_BYTE_F(adr, res)
21213 adr += AREG((Opcode >> 0) & 7);
21216 WRITE_BYTE_F(adr, res)
21228 adr += AREG((Opcode >> 0) & 7);
21231 WRITE_BYTE_F(adr, res)
21243 adr += AREG((Opcode >> 0) & 7);
21244 if (flag_NotZ && (!(flag_C & 0x100)))
21248 WRITE_BYTE_F(adr, res)
21254 WRITE_BYTE_F(adr, res)
21266 adr += AREG((Opcode >> 0) & 7);
21267 if ((!flag_NotZ) || (flag_C & 0x100))
21271 WRITE_BYTE_F(adr, res)
21277 WRITE_BYTE_F(adr, res)
21289 adr += AREG((Opcode >> 0) & 7);
21290 if (!(flag_C & 0x100))
21294 WRITE_BYTE_F(adr, res)
21300 WRITE_BYTE_F(adr, res)
21312 adr += AREG((Opcode >> 0) & 7);
21313 if (flag_C & 0x100)
21317 WRITE_BYTE_F(adr, res)
21323 WRITE_BYTE_F(adr, res)
21335 adr += AREG((Opcode >> 0) & 7);
21340 WRITE_BYTE_F(adr, res)
21346 WRITE_BYTE_F(adr, res)
21358 adr += AREG((Opcode >> 0) & 7);
21363 WRITE_BYTE_F(adr, res)
21369 WRITE_BYTE_F(adr, res)
21381 adr += AREG((Opcode >> 0) & 7);
21382 if (!(flag_V & 0x80))
21386 WRITE_BYTE_F(adr, res)
21392 WRITE_BYTE_F(adr, res)
21404 adr += AREG((Opcode >> 0) & 7);
21409 WRITE_BYTE_F(adr, res)
21415 WRITE_BYTE_F(adr, res)
21427 adr += AREG((Opcode >> 0) & 7);
21428 if (!(flag_N & 0x80))
21432 WRITE_BYTE_F(adr, res)
21438 WRITE_BYTE_F(adr, res)
21450 adr += AREG((Opcode >> 0) & 7);
21455 WRITE_BYTE_F(adr, res)
21461 WRITE_BYTE_F(adr, res)
21473 adr += AREG((Opcode >> 0) & 7);
21474 if (!((flag_N ^ flag_V) & 0x80))
21478 WRITE_BYTE_F(adr, res)
21484 WRITE_BYTE_F(adr, res)
21496 adr += AREG((Opcode >> 0) & 7);
21497 if ((flag_N ^ flag_V) & 0x80)
21501 WRITE_BYTE_F(adr, res)
21507 WRITE_BYTE_F(adr, res)
21519 adr += AREG((Opcode >> 0) & 7);
21520 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21524 WRITE_BYTE_F(adr, res)
21530 WRITE_BYTE_F(adr, res)
21542 adr += AREG((Opcode >> 0) & 7);
21543 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21547 WRITE_BYTE_F(adr, res)
21553 WRITE_BYTE_F(adr, res)
21564 adr = AREG((Opcode >> 0) & 7);
21568 WRITE_BYTE_F(adr, res)
21579 adr = AREG((Opcode >> 0) & 7);
21583 WRITE_BYTE_F(adr, res)
21594 adr = AREG((Opcode >> 0) & 7);
21596 if (flag_NotZ && (!(flag_C & 0x100)))
21600 WRITE_BYTE_F(adr, res)
21606 WRITE_BYTE_F(adr, res)
21617 adr = AREG((Opcode >> 0) & 7);
21619 if ((!flag_NotZ) || (flag_C & 0x100))
21623 WRITE_BYTE_F(adr, res)
21629 WRITE_BYTE_F(adr, res)
21640 adr = AREG((Opcode >> 0) & 7);
21642 if (!(flag_C & 0x100))
21646 WRITE_BYTE_F(adr, res)
21652 WRITE_BYTE_F(adr, res)
21663 adr = AREG((Opcode >> 0) & 7);
21665 if (flag_C & 0x100)
21669 WRITE_BYTE_F(adr, res)
21675 WRITE_BYTE_F(adr, res)
21686 adr = AREG((Opcode >> 0) & 7);
21692 WRITE_BYTE_F(adr, res)
21698 WRITE_BYTE_F(adr, res)
21709 adr = AREG((Opcode >> 0) & 7);
21715 WRITE_BYTE_F(adr, res)
21721 WRITE_BYTE_F(adr, res)
21732 adr = AREG((Opcode >> 0) & 7);
21734 if (!(flag_V & 0x80))
21738 WRITE_BYTE_F(adr, res)
21744 WRITE_BYTE_F(adr, res)
21755 adr = AREG((Opcode >> 0) & 7);
21761 WRITE_BYTE_F(adr, res)
21767 WRITE_BYTE_F(adr, res)
21778 adr = AREG((Opcode >> 0) & 7);
21780 if (!(flag_N & 0x80))
21784 WRITE_BYTE_F(adr, res)
21790 WRITE_BYTE_F(adr, res)
21801 adr = AREG((Opcode >> 0) & 7);
21807 WRITE_BYTE_F(adr, res)
21813 WRITE_BYTE_F(adr, res)
21824 adr = AREG((Opcode >> 0) & 7);
21826 if (!((flag_N ^ flag_V) & 0x80))
21830 WRITE_BYTE_F(adr, res)
21836 WRITE_BYTE_F(adr, res)
21847 adr = AREG((Opcode >> 0) & 7);
21849 if ((flag_N ^ flag_V) & 0x80)
21853 WRITE_BYTE_F(adr, res)
21859 WRITE_BYTE_F(adr, res)
21870 adr = AREG((Opcode >> 0) & 7);
21872 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21876 WRITE_BYTE_F(adr, res)
21882 WRITE_BYTE_F(adr, res)
21893 adr = AREG((Opcode >> 0) & 7);
21895 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21899 WRITE_BYTE_F(adr, res)
21905 WRITE_BYTE_F(adr, res)
21919 WRITE_BYTE_F(adr, res)
21933 WRITE_BYTE_F(adr, res)
21945 if (flag_NotZ && (!(flag_C & 0x100)))
21949 WRITE_BYTE_F(adr, res)
21955 WRITE_BYTE_F(adr, res)
21967 if ((!flag_NotZ) || (flag_C & 0x100))
21971 WRITE_BYTE_F(adr, res)
21977 WRITE_BYTE_F(adr, res)
21989 if (!(flag_C & 0x100))
21993 WRITE_BYTE_F(adr, res)
21999 WRITE_BYTE_F(adr, res)
22011 if (flag_C & 0x100)
22015 WRITE_BYTE_F(adr, res)
22021 WRITE_BYTE_F(adr, res)
22037 WRITE_BYTE_F(adr, res)
22043 WRITE_BYTE_F(adr, res)
22059 WRITE_BYTE_F(adr, res)
22065 WRITE_BYTE_F(adr, res)
22077 if (!(flag_V & 0x80))
22081 WRITE_BYTE_F(adr, res)
22087 WRITE_BYTE_F(adr, res)
22103 WRITE_BYTE_F(adr, res)
22109 WRITE_BYTE_F(adr, res)
22121 if (!(flag_N & 0x80))
22125 WRITE_BYTE_F(adr, res)
22131 WRITE_BYTE_F(adr, res)
22147 WRITE_BYTE_F(adr, res)
22153 WRITE_BYTE_F(adr, res)
22165 if (!((flag_N ^ flag_V) & 0x80))
22169 WRITE_BYTE_F(adr, res)
22175 WRITE_BYTE_F(adr, res)
22187 if ((flag_N ^ flag_V) & 0x80)
22191 WRITE_BYTE_F(adr, res)
22197 WRITE_BYTE_F(adr, res)
22209 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22213 WRITE_BYTE_F(adr, res)
22219 WRITE_BYTE_F(adr, res)
22231 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22235 WRITE_BYTE_F(adr, res)
22241 WRITE_BYTE_F(adr, res)
22255 WRITE_BYTE_F(adr, res)
22269 WRITE_BYTE_F(adr, res)
22281 if (flag_NotZ && (!(flag_C & 0x100)))
22285 WRITE_BYTE_F(adr, res)
22291 WRITE_BYTE_F(adr, res)
22303 if ((!flag_NotZ) || (flag_C & 0x100))
22307 WRITE_BYTE_F(adr, res)
22313 WRITE_BYTE_F(adr, res)
22325 if (!(flag_C & 0x100))
22329 WRITE_BYTE_F(adr, res)
22335 WRITE_BYTE_F(adr, res)
22347 if (flag_C & 0x100)
22351 WRITE_BYTE_F(adr, res)
22357 WRITE_BYTE_F(adr, res)
22373 WRITE_BYTE_F(adr, res)
22379 WRITE_BYTE_F(adr, res)
22395 WRITE_BYTE_F(adr, res)
22401 WRITE_BYTE_F(adr, res)
22413 if (!(flag_V & 0x80))
22417 WRITE_BYTE_F(adr, res)
22423 WRITE_BYTE_F(adr, res)
22439 WRITE_BYTE_F(adr, res)
22445 WRITE_BYTE_F(adr, res)
22457 if (!(flag_N & 0x80))
22461 WRITE_BYTE_F(adr, res)
22467 WRITE_BYTE_F(adr, res)
22483 WRITE_BYTE_F(adr, res)
22489 WRITE_BYTE_F(adr, res)
22501 if (!((flag_N ^ flag_V) & 0x80))
22505 WRITE_BYTE_F(adr, res)
22511 WRITE_BYTE_F(adr, res)
22523 if ((flag_N ^ flag_V) & 0x80)
22527 WRITE_BYTE_F(adr, res)
22533 WRITE_BYTE_F(adr, res)
22545 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22549 WRITE_BYTE_F(adr, res)
22555 WRITE_BYTE_F(adr, res)
22567 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22571 WRITE_BYTE_F(adr, res)
22577 WRITE_BYTE_F(adr, res)
22592 WRITE_BYTE_F(adr, res)
22607 WRITE_BYTE_F(adr, res)
22620 if (flag_NotZ && (!(flag_C & 0x100)))
22624 WRITE_BYTE_F(adr, res)
22630 WRITE_BYTE_F(adr, res)
22643 if ((!flag_NotZ) || (flag_C & 0x100))
22647 WRITE_BYTE_F(adr, res)
22653 WRITE_BYTE_F(adr, res)
22666 if (!(flag_C & 0x100))
22670 WRITE_BYTE_F(adr, res)
22676 WRITE_BYTE_F(adr, res)
22689 if (flag_C & 0x100)
22693 WRITE_BYTE_F(adr, res)
22699 WRITE_BYTE_F(adr, res)
22716 WRITE_BYTE_F(adr, res)
22722 WRITE_BYTE_F(adr, res)
22739 WRITE_BYTE_F(adr, res)
22745 WRITE_BYTE_F(adr, res)
22758 if (!(flag_V & 0x80))
22762 WRITE_BYTE_F(adr, res)
22768 WRITE_BYTE_F(adr, res)
22785 WRITE_BYTE_F(adr, res)
22791 WRITE_BYTE_F(adr, res)
22804 if (!(flag_N & 0x80))
22808 WRITE_BYTE_F(adr, res)
22814 WRITE_BYTE_F(adr, res)
22831 WRITE_BYTE_F(adr, res)
22837 WRITE_BYTE_F(adr, res)
22850 if (!((flag_N ^ flag_V) & 0x80))
22854 WRITE_BYTE_F(adr, res)
22860 WRITE_BYTE_F(adr, res)
22873 if ((flag_N ^ flag_V) & 0x80)
22877 WRITE_BYTE_F(adr, res)
22883 WRITE_BYTE_F(adr, res)
22896 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22900 WRITE_BYTE_F(adr, res)
22906 WRITE_BYTE_F(adr, res)
22919 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22923 WRITE_BYTE_F(adr, res)
22929 WRITE_BYTE_F(adr, res)
22944 WRITE_BYTE_F(adr, res)
22959 WRITE_BYTE_F(adr, res)
22972 if (flag_NotZ && (!(flag_C & 0x100)))
22976 WRITE_BYTE_F(adr, res)
22982 WRITE_BYTE_F(adr, res)
22995 if ((!flag_NotZ) || (flag_C & 0x100))
22999 WRITE_BYTE_F(adr, res)
23005 WRITE_BYTE_F(adr, res)
23018 if (!(flag_C & 0x100))
23022 WRITE_BYTE_F(adr, res)
23028 WRITE_BYTE_F(adr, res)
23041 if (flag_C & 0x100)
23045 WRITE_BYTE_F(adr, res)
23051 WRITE_BYTE_F(adr, res)
23068 WRITE_BYTE_F(adr, res)
23074 WRITE_BYTE_F(adr, res)
23091 WRITE_BYTE_F(adr, res)
23097 WRITE_BYTE_F(adr, res)
23110 if (!(flag_V & 0x80))
23114 WRITE_BYTE_F(adr, res)
23120 WRITE_BYTE_F(adr, res)
23137 WRITE_BYTE_F(adr, res)
23143 WRITE_BYTE_F(adr, res)
23156 if (!(flag_N & 0x80))
23160 WRITE_BYTE_F(adr, res)
23166 WRITE_BYTE_F(adr, res)
23183 WRITE_BYTE_F(adr, res)
23189 WRITE_BYTE_F(adr, res)
23202 if (!((flag_N ^ flag_V) & 0x80))
23206 WRITE_BYTE_F(adr, res)
23212 WRITE_BYTE_F(adr, res)
23225 if ((flag_N ^ flag_V) & 0x80)
23229 WRITE_BYTE_F(adr, res)
23235 WRITE_BYTE_F(adr, res)
23248 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
23252 WRITE_BYTE_F(adr, res)
23258 WRITE_BYTE_F(adr, res)
23271 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
23275 WRITE_BYTE_F(adr, res)
23281 WRITE_BYTE_F(adr, res)
23302 res = DREGu16((Opcode >> 0) & 7);
23304 DREGu16((Opcode >> 0) & 7) = res;
23305 if ((s32)res != -1)
23309 newPC = (u32)(PC) - BasePC;
23310 newPC += GET_SWORD;
23312 CHECK_BRANCH_EXCEPTION(newPC)
23325 if ((!flag_NotZ) || (flag_C & 0x100))
23327 res = DREGu16((Opcode >> 0) & 7);
23329 DREGu16((Opcode >> 0) & 7) = res;
23330 if ((s32)res != -1)
23334 newPC = (u32)(PC) - BasePC;
23335 newPC += GET_SWORD;
23337 CHECK_BRANCH_EXCEPTION(newPC)
23356 if (flag_NotZ && (!(flag_C & 0x100)))
23358 res = DREGu16((Opcode >> 0) & 7);
23360 DREGu16((Opcode >> 0) & 7) = res;
23361 if ((s32)res != -1)
23365 newPC = (u32)(PC) - BasePC;
23366 newPC += GET_SWORD;
23368 CHECK_BRANCH_EXCEPTION(newPC)
23387 if (flag_C & 0x100)
23389 res = DREGu16((Opcode >> 0) & 7);
23391 DREGu16((Opcode >> 0) & 7) = res;
23392 if ((s32)res != -1)
23396 newPC = (u32)(PC) - BasePC;
23397 newPC += GET_SWORD;
23399 CHECK_BRANCH_EXCEPTION(newPC)
23418 if (!(flag_C & 0x100))
23420 res = DREGu16((Opcode >> 0) & 7);
23422 DREGu16((Opcode >> 0) & 7) = res;
23423 if ((s32)res != -1)
23427 newPC = (u32)(PC) - BasePC;
23428 newPC += GET_SWORD;
23430 CHECK_BRANCH_EXCEPTION(newPC)
23451 res = DREGu16((Opcode >> 0) & 7);
23453 DREGu16((Opcode >> 0) & 7) = res;
23454 if ((s32)res != -1)
23458 newPC = (u32)(PC) - BasePC;
23459 newPC += GET_SWORD;
23461 CHECK_BRANCH_EXCEPTION(newPC)
23482 res = DREGu16((Opcode >> 0) & 7);
23484 DREGu16((Opcode >> 0) & 7) = res;
23485 if ((s32)res != -1)
23489 newPC = (u32)(PC) - BasePC;
23490 newPC += GET_SWORD;
23492 CHECK_BRANCH_EXCEPTION(newPC)
23513 res = DREGu16((Opcode >> 0) & 7);
23515 DREGu16((Opcode >> 0) & 7) = res;
23516 if ((s32)res != -1)
23520 newPC = (u32)(PC) - BasePC;
23521 newPC += GET_SWORD;
23523 CHECK_BRANCH_EXCEPTION(newPC)
23542 if (!(flag_V & 0x80))
23544 res = DREGu16((Opcode >> 0) & 7);
23546 DREGu16((Opcode >> 0) & 7) = res;
23547 if ((s32)res != -1)
23551 newPC = (u32)(PC) - BasePC;
23552 newPC += GET_SWORD;
23554 CHECK_BRANCH_EXCEPTION(newPC)
23575 res = DREGu16((Opcode >> 0) & 7);
23577 DREGu16((Opcode >> 0) & 7) = res;
23578 if ((s32)res != -1)
23582 newPC = (u32)(PC) - BasePC;
23583 newPC += GET_SWORD;
23585 CHECK_BRANCH_EXCEPTION(newPC)
23604 if (!(flag_N & 0x80))
23606 res = DREGu16((Opcode >> 0) & 7);
23608 DREGu16((Opcode >> 0) & 7) = res;
23609 if ((s32)res != -1)
23613 newPC = (u32)(PC) - BasePC;
23614 newPC += GET_SWORD;
23616 CHECK_BRANCH_EXCEPTION(newPC)
23635 if ((flag_N ^ flag_V) & 0x80)
23637 res = DREGu16((Opcode >> 0) & 7);
23639 DREGu16((Opcode >> 0) & 7) = res;
23640 if ((s32)res != -1)
23644 newPC = (u32)(PC) - BasePC;
23645 newPC += GET_SWORD;
23647 CHECK_BRANCH_EXCEPTION(newPC)
23666 if (!((flag_N ^ flag_V) & 0x80))
23668 res = DREGu16((Opcode >> 0) & 7);
23670 DREGu16((Opcode >> 0) & 7) = res;
23671 if ((s32)res != -1)
23675 newPC = (u32)(PC) - BasePC;
23676 newPC += GET_SWORD;
23678 CHECK_BRANCH_EXCEPTION(newPC)
23697 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
23699 res = DREGu16((Opcode >> 0) & 7);
23701 DREGu16((Opcode >> 0) & 7) = res;
23702 if ((s32)res != -1)
23706 newPC = (u32)(PC) - BasePC;
23707 newPC += GET_SWORD;
23709 CHECK_BRANCH_EXCEPTION(newPC)
23728 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
23730 res = DREGu16((Opcode >> 0) & 7);
23732 DREGu16((Opcode >> 0) & 7) = res;
23733 if ((s32)res != -1)
23737 newPC = (u32)(PC) - BasePC;
23738 newPC += GET_SWORD;
23740 CHECK_BRANCH_EXCEPTION(newPC)
23759 src = (((Opcode >> 9) - 1) & 7) + 1;
23760 dst = DREGu8((Opcode >> 0) & 7);
23762 flag_N = flag_X = flag_C = res;
23763 flag_V = (src ^ res) & (dst ^ res);
23764 flag_NotZ = res & 0xFF;
23765 DREGu8((Opcode >> 0) & 7) = res;
23775 src = (((Opcode >> 9) - 1) & 7) + 1;
23776 adr = AREG((Opcode >> 0) & 7);
23778 READ_BYTE_F(adr, dst)
23780 flag_N = flag_X = flag_C = res;
23781 flag_V = (src ^ res) & (dst ^ res);
23782 flag_NotZ = res & 0xFF;
23783 WRITE_BYTE_F(adr, res)
23794 src = (((Opcode >> 9) - 1) & 7) + 1;
23795 adr = AREG((Opcode >> 0) & 7);
23796 AREG((Opcode >> 0) & 7) += 1;
23798 READ_BYTE_F(adr, dst)
23800 flag_N = flag_X = flag_C = res;
23801 flag_V = (src ^ res) & (dst ^ res);
23802 flag_NotZ = res & 0xFF;
23803 WRITE_BYTE_F(adr, res)
23814 src = (((Opcode >> 9) - 1) & 7) + 1;
23815 adr = AREG((Opcode >> 0) & 7) - 1;
23816 AREG((Opcode >> 0) & 7) = adr;
23818 READ_BYTE_F(adr, dst)
23820 flag_N = flag_X = flag_C = res;
23821 flag_V = (src ^ res) & (dst ^ res);
23822 flag_NotZ = res & 0xFF;
23823 WRITE_BYTE_F(adr, res)
23834 src = (((Opcode >> 9) - 1) & 7) + 1;
23836 adr += AREG((Opcode >> 0) & 7);
23838 READ_BYTE_F(adr, dst)
23840 flag_N = flag_X = flag_C = res;
23841 flag_V = (src ^ res) & (dst ^ res);
23842 flag_NotZ = res & 0xFF;
23843 WRITE_BYTE_F(adr, res)
23854 src = (((Opcode >> 9) - 1) & 7) + 1;
23855 adr = AREG((Opcode >> 0) & 7);
23858 READ_BYTE_F(adr, dst)
23860 flag_N = flag_X = flag_C = res;
23861 flag_V = (src ^ res) & (dst ^ res);
23862 flag_NotZ = res & 0xFF;
23863 WRITE_BYTE_F(adr, res)
23874 src = (((Opcode >> 9) - 1) & 7) + 1;
23877 READ_BYTE_F(adr, dst)
23879 flag_N = flag_X = flag_C = res;
23880 flag_V = (src ^ res) & (dst ^ res);
23881 flag_NotZ = res & 0xFF;
23882 WRITE_BYTE_F(adr, res)
23893 src = (((Opcode >> 9) - 1) & 7) + 1;
23896 READ_BYTE_F(adr, dst)
23898 flag_N = flag_X = flag_C = res;
23899 flag_V = (src ^ res) & (dst ^ res);
23900 flag_NotZ = res & 0xFF;
23901 WRITE_BYTE_F(adr, res)
23912 src = (((Opcode >> 9) - 1) & 7) + 1;
23916 READ_BYTE_F(adr, dst)
23918 flag_N = flag_X = flag_C = res;
23919 flag_V = (src ^ res) & (dst ^ res);
23920 flag_NotZ = res & 0xFF;
23921 WRITE_BYTE_F(adr, res)
23932 src = (((Opcode >> 9) - 1) & 7) + 1;
23936 READ_BYTE_F(adr, dst)
23938 flag_N = flag_X = flag_C = res;
23939 flag_V = (src ^ res) & (dst ^ res);
23940 flag_NotZ = res & 0xFF;
23941 WRITE_BYTE_F(adr, res)
23952 src = (((Opcode >> 9) - 1) & 7) + 1;
23953 dst = DREGu16((Opcode >> 0) & 7);
23955 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
23956 flag_N = flag_X = flag_C = res >> 8;
23957 flag_NotZ = res & 0xFFFF;
23958 DREGu16((Opcode >> 0) & 7) = res;
23968 src = (((Opcode >> 9) - 1) & 7) + 1;
23969 dst = AREGu32((Opcode >> 0) & 7);
23971 AREG((Opcode >> 0) & 7) = res;
23972 #ifdef USE_CYCLONE_TIMING
23985 src = (((Opcode >> 9) - 1) & 7) + 1;
23986 adr = AREG((Opcode >> 0) & 7);
23988 READ_WORD_F(adr, dst)
23990 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
23991 flag_N = flag_X = flag_C = res >> 8;
23992 flag_NotZ = res & 0xFFFF;
23993 WRITE_WORD_F(adr, res)
24004 src = (((Opcode >> 9) - 1) & 7) + 1;
24005 adr = AREG((Opcode >> 0) & 7);
24006 AREG((Opcode >> 0) & 7) += 2;
24008 READ_WORD_F(adr, dst)
24010 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24011 flag_N = flag_X = flag_C = res >> 8;
24012 flag_NotZ = res & 0xFFFF;
24013 WRITE_WORD_F(adr, res)
24024 src = (((Opcode >> 9) - 1) & 7) + 1;
24025 adr = AREG((Opcode >> 0) & 7) - 2;
24026 AREG((Opcode >> 0) & 7) = adr;
24028 READ_WORD_F(adr, dst)
24030 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24031 flag_N = flag_X = flag_C = res >> 8;
24032 flag_NotZ = res & 0xFFFF;
24033 WRITE_WORD_F(adr, res)
24044 src = (((Opcode >> 9) - 1) & 7) + 1;
24046 adr += AREG((Opcode >> 0) & 7);
24048 READ_WORD_F(adr, dst)
24050 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24051 flag_N = flag_X = flag_C = res >> 8;
24052 flag_NotZ = res & 0xFFFF;
24053 WRITE_WORD_F(adr, res)
24064 src = (((Opcode >> 9) - 1) & 7) + 1;
24065 adr = AREG((Opcode >> 0) & 7);
24068 READ_WORD_F(adr, dst)
24070 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24071 flag_N = flag_X = flag_C = res >> 8;
24072 flag_NotZ = res & 0xFFFF;
24073 WRITE_WORD_F(adr, res)
24084 src = (((Opcode >> 9) - 1) & 7) + 1;
24087 READ_WORD_F(adr, dst)
24089 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24090 flag_N = flag_X = flag_C = res >> 8;
24091 flag_NotZ = res & 0xFFFF;
24092 WRITE_WORD_F(adr, res)
24103 src = (((Opcode >> 9) - 1) & 7) + 1;
24106 READ_WORD_F(adr, dst)
24108 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24109 flag_N = flag_X = flag_C = res >> 8;
24110 flag_NotZ = res & 0xFFFF;
24111 WRITE_WORD_F(adr, res)
24122 src = (((Opcode >> 9) - 1) & 7) + 1;
24126 READ_WORD_F(adr, dst)
24128 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24129 flag_N = flag_X = flag_C = res >> 8;
24130 flag_NotZ = res & 0xFFFF;
24131 WRITE_WORD_F(adr, res)
24142 src = (((Opcode >> 9) - 1) & 7) + 1;
24146 READ_WORD_F(adr, dst)
24148 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24149 flag_N = flag_X = flag_C = res >> 8;
24150 flag_NotZ = res & 0xFFFF;
24151 WRITE_WORD_F(adr, res)
24162 src = (((Opcode >> 9) - 1) & 7) + 1;
24163 dst = DREGu32((Opcode >> 0) & 7);
24166 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24167 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24168 flag_N = res >> 24;
24169 DREGu32((Opcode >> 0) & 7) = res;
24179 src = (((Opcode >> 9) - 1) & 7) + 1;
24180 dst = AREGu32((Opcode >> 0) & 7);
24182 AREG((Opcode >> 0) & 7) = res;
24192 src = (((Opcode >> 9) - 1) & 7) + 1;
24193 adr = AREG((Opcode >> 0) & 7);
24195 READ_LONG_F(adr, dst)
24198 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24199 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24200 flag_N = res >> 24;
24201 WRITE_LONG_F(adr, res)
24212 src = (((Opcode >> 9) - 1) & 7) + 1;
24213 adr = AREG((Opcode >> 0) & 7);
24214 AREG((Opcode >> 0) & 7) += 4;
24216 READ_LONG_F(adr, dst)
24219 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24220 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24221 flag_N = res >> 24;
24222 WRITE_LONG_F(adr, res)
24233 src = (((Opcode >> 9) - 1) & 7) + 1;
24234 adr = AREG((Opcode >> 0) & 7) - 4;
24235 AREG((Opcode >> 0) & 7) = adr;
24237 READ_LONG_F(adr, dst)
24240 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24241 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24242 flag_N = res >> 24;
24243 WRITE_LONG_F(adr, res)
24254 src = (((Opcode >> 9) - 1) & 7) + 1;
24256 adr += AREG((Opcode >> 0) & 7);
24258 READ_LONG_F(adr, dst)
24261 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24262 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24263 flag_N = res >> 24;
24264 WRITE_LONG_F(adr, res)
24275 src = (((Opcode >> 9) - 1) & 7) + 1;
24276 adr = AREG((Opcode >> 0) & 7);
24279 READ_LONG_F(adr, dst)
24282 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24283 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24284 flag_N = res >> 24;
24285 WRITE_LONG_F(adr, res)
24296 src = (((Opcode >> 9) - 1) & 7) + 1;
24299 READ_LONG_F(adr, dst)
24302 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24303 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24304 flag_N = res >> 24;
24305 WRITE_LONG_F(adr, res)
24316 src = (((Opcode >> 9) - 1) & 7) + 1;
24319 READ_LONG_F(adr, dst)
24322 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24323 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24324 flag_N = res >> 24;
24325 WRITE_LONG_F(adr, res)
24336 src = (((Opcode >> 9) - 1) & 7) + 1;
24340 READ_LONG_F(adr, dst)
24343 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24344 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24345 flag_N = res >> 24;
24346 WRITE_LONG_F(adr, res)
24357 src = (((Opcode >> 9) - 1) & 7) + 1;
24361 READ_LONG_F(adr, dst)
24364 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24365 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24366 flag_N = res >> 24;
24367 WRITE_LONG_F(adr, res)
24378 src = (((Opcode >> 9) - 1) & 7) + 1;
24379 dst = DREGu8((Opcode >> 0) & 7);
24381 flag_N = flag_X = flag_C = res;
24382 flag_V = (src ^ dst) & (res ^ dst);
24383 flag_NotZ = res & 0xFF;
24384 DREGu8((Opcode >> 0) & 7) = res;
24394 src = (((Opcode >> 9) - 1) & 7) + 1;
24395 adr = AREG((Opcode >> 0) & 7);
24397 READ_BYTE_F(adr, dst)
24399 flag_N = flag_X = flag_C = res;
24400 flag_V = (src ^ dst) & (res ^ dst);
24401 flag_NotZ = res & 0xFF;
24402 WRITE_BYTE_F(adr, res)
24413 src = (((Opcode >> 9) - 1) & 7) + 1;
24414 adr = AREG((Opcode >> 0) & 7);
24415 AREG((Opcode >> 0) & 7) += 1;
24417 READ_BYTE_F(adr, dst)
24419 flag_N = flag_X = flag_C = res;
24420 flag_V = (src ^ dst) & (res ^ dst);
24421 flag_NotZ = res & 0xFF;
24422 WRITE_BYTE_F(adr, res)
24433 src = (((Opcode >> 9) - 1) & 7) + 1;
24434 adr = AREG((Opcode >> 0) & 7) - 1;
24435 AREG((Opcode >> 0) & 7) = adr;
24437 READ_BYTE_F(adr, dst)
24439 flag_N = flag_X = flag_C = res;
24440 flag_V = (src ^ dst) & (res ^ dst);
24441 flag_NotZ = res & 0xFF;
24442 WRITE_BYTE_F(adr, res)
24453 src = (((Opcode >> 9) - 1) & 7) + 1;
24455 adr += AREG((Opcode >> 0) & 7);
24457 READ_BYTE_F(adr, dst)
24459 flag_N = flag_X = flag_C = res;
24460 flag_V = (src ^ dst) & (res ^ dst);
24461 flag_NotZ = res & 0xFF;
24462 WRITE_BYTE_F(adr, res)
24473 src = (((Opcode >> 9) - 1) & 7) + 1;
24474 adr = AREG((Opcode >> 0) & 7);
24477 READ_BYTE_F(adr, dst)
24479 flag_N = flag_X = flag_C = res;
24480 flag_V = (src ^ dst) & (res ^ dst);
24481 flag_NotZ = res & 0xFF;
24482 WRITE_BYTE_F(adr, res)
24493 src = (((Opcode >> 9) - 1) & 7) + 1;
24496 READ_BYTE_F(adr, dst)
24498 flag_N = flag_X = flag_C = res;
24499 flag_V = (src ^ dst) & (res ^ dst);
24500 flag_NotZ = res & 0xFF;
24501 WRITE_BYTE_F(adr, res)
24512 src = (((Opcode >> 9) - 1) & 7) + 1;
24515 READ_BYTE_F(adr, dst)
24517 flag_N = flag_X = flag_C = res;
24518 flag_V = (src ^ dst) & (res ^ dst);
24519 flag_NotZ = res & 0xFF;
24520 WRITE_BYTE_F(adr, res)
24531 src = (((Opcode >> 9) - 1) & 7) + 1;
24535 READ_BYTE_F(adr, dst)
24537 flag_N = flag_X = flag_C = res;
24538 flag_V = (src ^ dst) & (res ^ dst);
24539 flag_NotZ = res & 0xFF;
24540 WRITE_BYTE_F(adr, res)
24551 src = (((Opcode >> 9) - 1) & 7) + 1;
24555 READ_BYTE_F(adr, dst)
24557 flag_N = flag_X = flag_C = res;
24558 flag_V = (src ^ dst) & (res ^ dst);
24559 flag_NotZ = res & 0xFF;
24560 WRITE_BYTE_F(adr, res)
24571 src = (((Opcode >> 9) - 1) & 7) + 1;
24572 dst = DREGu16((Opcode >> 0) & 7);
24574 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24575 flag_N = flag_X = flag_C = res >> 8;
24576 flag_NotZ = res & 0xFFFF;
24577 DREGu16((Opcode >> 0) & 7) = res;
24587 src = (((Opcode >> 9) - 1) & 7) + 1;
24588 dst = AREGu32((Opcode >> 0) & 7);
24590 AREG((Opcode >> 0) & 7) = res;
24600 src = (((Opcode >> 9) - 1) & 7) + 1;
24601 adr = AREG((Opcode >> 0) & 7);
24603 READ_WORD_F(adr, dst)
24605 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24606 flag_N = flag_X = flag_C = res >> 8;
24607 flag_NotZ = res & 0xFFFF;
24608 WRITE_WORD_F(adr, res)
24619 src = (((Opcode >> 9) - 1) & 7) + 1;
24620 adr = AREG((Opcode >> 0) & 7);
24621 AREG((Opcode >> 0) & 7) += 2;
24623 READ_WORD_F(adr, dst)
24625 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24626 flag_N = flag_X = flag_C = res >> 8;
24627 flag_NotZ = res & 0xFFFF;
24628 WRITE_WORD_F(adr, res)
24639 src = (((Opcode >> 9) - 1) & 7) + 1;
24640 adr = AREG((Opcode >> 0) & 7) - 2;
24641 AREG((Opcode >> 0) & 7) = adr;
24643 READ_WORD_F(adr, dst)
24645 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24646 flag_N = flag_X = flag_C = res >> 8;
24647 flag_NotZ = res & 0xFFFF;
24648 WRITE_WORD_F(adr, res)
24659 src = (((Opcode >> 9) - 1) & 7) + 1;
24661 adr += AREG((Opcode >> 0) & 7);
24663 READ_WORD_F(adr, dst)
24665 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24666 flag_N = flag_X = flag_C = res >> 8;
24667 flag_NotZ = res & 0xFFFF;
24668 WRITE_WORD_F(adr, res)
24679 src = (((Opcode >> 9) - 1) & 7) + 1;
24680 adr = AREG((Opcode >> 0) & 7);
24683 READ_WORD_F(adr, dst)
24685 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24686 flag_N = flag_X = flag_C = res >> 8;
24687 flag_NotZ = res & 0xFFFF;
24688 WRITE_WORD_F(adr, res)
24699 src = (((Opcode >> 9) - 1) & 7) + 1;
24702 READ_WORD_F(adr, dst)
24704 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24705 flag_N = flag_X = flag_C = res >> 8;
24706 flag_NotZ = res & 0xFFFF;
24707 WRITE_WORD_F(adr, res)
24718 src = (((Opcode >> 9) - 1) & 7) + 1;
24721 READ_WORD_F(adr, dst)
24723 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24724 flag_N = flag_X = flag_C = res >> 8;
24725 flag_NotZ = res & 0xFFFF;
24726 WRITE_WORD_F(adr, res)
24737 src = (((Opcode >> 9) - 1) & 7) + 1;
24741 READ_WORD_F(adr, dst)
24743 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24744 flag_N = flag_X = flag_C = res >> 8;
24745 flag_NotZ = res & 0xFFFF;
24746 WRITE_WORD_F(adr, res)
24757 src = (((Opcode >> 9) - 1) & 7) + 1;
24761 READ_WORD_F(adr, dst)
24763 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24764 flag_N = flag_X = flag_C = res >> 8;
24765 flag_NotZ = res & 0xFFFF;
24766 WRITE_WORD_F(adr, res)
24777 src = (((Opcode >> 9) - 1) & 7) + 1;
24778 dst = DREGu32((Opcode >> 0) & 7);
24781 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24782 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24783 flag_N = res >> 24;
24784 DREGu32((Opcode >> 0) & 7) = res;
24794 src = (((Opcode >> 9) - 1) & 7) + 1;
24795 dst = AREGu32((Opcode >> 0) & 7);
24797 AREG((Opcode >> 0) & 7) = res;
24807 src = (((Opcode >> 9) - 1) & 7) + 1;
24808 adr = AREG((Opcode >> 0) & 7);
24810 READ_LONG_F(adr, dst)
24813 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24814 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24815 flag_N = res >> 24;
24816 WRITE_LONG_F(adr, res)
24827 src = (((Opcode >> 9) - 1) & 7) + 1;
24828 adr = AREG((Opcode >> 0) & 7);
24829 AREG((Opcode >> 0) & 7) += 4;
24831 READ_LONG_F(adr, dst)
24834 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24835 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24836 flag_N = res >> 24;
24837 WRITE_LONG_F(adr, res)
24848 src = (((Opcode >> 9) - 1) & 7) + 1;
24849 adr = AREG((Opcode >> 0) & 7) - 4;
24850 AREG((Opcode >> 0) & 7) = adr;
24852 READ_LONG_F(adr, dst)
24855 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24856 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24857 flag_N = res >> 24;
24858 WRITE_LONG_F(adr, res)
24869 src = (((Opcode >> 9) - 1) & 7) + 1;
24871 adr += AREG((Opcode >> 0) & 7);
24873 READ_LONG_F(adr, dst)
24876 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24877 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24878 flag_N = res >> 24;
24879 WRITE_LONG_F(adr, res)
24890 src = (((Opcode >> 9) - 1) & 7) + 1;
24891 adr = AREG((Opcode >> 0) & 7);
24894 READ_LONG_F(adr, dst)
24897 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24898 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24899 flag_N = res >> 24;
24900 WRITE_LONG_F(adr, res)
24911 src = (((Opcode >> 9) - 1) & 7) + 1;
24914 READ_LONG_F(adr, dst)
24917 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24918 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24919 flag_N = res >> 24;
24920 WRITE_LONG_F(adr, res)
24931 src = (((Opcode >> 9) - 1) & 7) + 1;
24934 READ_LONG_F(adr, dst)
24937 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24938 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24939 flag_N = res >> 24;
24940 WRITE_LONG_F(adr, res)
24951 src = (((Opcode >> 9) - 1) & 7) + 1;
24955 READ_LONG_F(adr, dst)
24958 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24959 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24960 flag_N = res >> 24;
24961 WRITE_LONG_F(adr, res)
24972 src = (((Opcode >> 9) - 1) & 7) + 1;
24976 READ_LONG_F(adr, dst)
24979 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24980 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24981 flag_N = res >> 24;
24982 WRITE_LONG_F(adr, res)
24993 if (flag_NotZ && (!(flag_C & 0x100)))
24995 PC += ((s8)(Opcode & 0xFE)) >> 1;
24996 m68kcontext.io_cycle_counter -= 2;
25007 if ((!flag_NotZ) || (flag_C & 0x100))
25009 PC += ((s8)(Opcode & 0xFE)) >> 1;
25010 m68kcontext.io_cycle_counter -= 2;
25021 if (!(flag_C & 0x100))
25023 PC += ((s8)(Opcode & 0xFE)) >> 1;
25024 m68kcontext.io_cycle_counter -= 2;
25035 if (flag_C & 0x100)
25037 PC += ((s8)(Opcode & 0xFE)) >> 1;
25038 m68kcontext.io_cycle_counter -= 2;
25051 PC += ((s8)(Opcode & 0xFE)) >> 1;
25052 m68kcontext.io_cycle_counter -= 2;
25065 PC += ((s8)(Opcode & 0xFE)) >> 1;
25066 m68kcontext.io_cycle_counter -= 2;
25077 if (!(flag_V & 0x80))
25079 PC += ((s8)(Opcode & 0xFE)) >> 1;
25080 m68kcontext.io_cycle_counter -= 2;
25093 PC += ((s8)(Opcode & 0xFE)) >> 1;
25094 m68kcontext.io_cycle_counter -= 2;
25105 if (!(flag_N & 0x80))
25107 PC += ((s8)(Opcode & 0xFE)) >> 1;
25108 m68kcontext.io_cycle_counter -= 2;
25121 PC += ((s8)(Opcode & 0xFE)) >> 1;
25122 m68kcontext.io_cycle_counter -= 2;
25133 if (!((flag_N ^ flag_V) & 0x80))
25135 PC += ((s8)(Opcode & 0xFE)) >> 1;
25136 m68kcontext.io_cycle_counter -= 2;
25147 if ((flag_N ^ flag_V) & 0x80)
25149 PC += ((s8)(Opcode & 0xFE)) >> 1;
25150 m68kcontext.io_cycle_counter -= 2;
25161 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
25163 PC += ((s8)(Opcode & 0xFE)) >> 1;
25164 m68kcontext.io_cycle_counter -= 2;
25175 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
25177 PC += ((s8)(Opcode & 0xFE)) >> 1;
25178 m68kcontext.io_cycle_counter -= 2;
25189 if (flag_NotZ && (!(flag_C & 0x100)))
25193 newPC = (u32)(PC) - BasePC;
25194 newPC += GET_SWORD;
25196 CHECK_BRANCH_EXCEPTION(newPC)
25209 if ((!flag_NotZ) || (flag_C & 0x100))
25213 newPC = (u32)(PC) - BasePC;
25214 newPC += GET_SWORD;
25216 CHECK_BRANCH_EXCEPTION(newPC)
25229 if (!(flag_C & 0x100))
25233 newPC = (u32)(PC) - BasePC;
25234 newPC += GET_SWORD;
25236 CHECK_BRANCH_EXCEPTION(newPC)
25249 if (flag_C & 0x100)
25253 newPC = (u32)(PC) - BasePC;
25254 newPC += GET_SWORD;
25256 CHECK_BRANCH_EXCEPTION(newPC)
25273 newPC = (u32)(PC) - BasePC;
25274 newPC += GET_SWORD;
25276 CHECK_BRANCH_EXCEPTION(newPC)
25293 newPC = (u32)(PC) - BasePC;
25294 newPC += GET_SWORD;
25296 CHECK_BRANCH_EXCEPTION(newPC)
25309 if (!(flag_V & 0x80))
25313 newPC = (u32)(PC) - BasePC;
25314 newPC += GET_SWORD;
25316 CHECK_BRANCH_EXCEPTION(newPC)
25333 newPC = (u32)(PC) - BasePC;
25334 newPC += GET_SWORD;
25336 CHECK_BRANCH_EXCEPTION(newPC)
25349 if (!(flag_N & 0x80))
25353 newPC = (u32)(PC) - BasePC;
25354 newPC += GET_SWORD;
25356 CHECK_BRANCH_EXCEPTION(newPC)
25373 newPC = (u32)(PC) - BasePC;
25374 newPC += GET_SWORD;
25376 CHECK_BRANCH_EXCEPTION(newPC)
25389 if (!((flag_N ^ flag_V) & 0x80))
25393 newPC = (u32)(PC) - BasePC;
25394 newPC += GET_SWORD;
25396 CHECK_BRANCH_EXCEPTION(newPC)
25409 if ((flag_N ^ flag_V) & 0x80)
25413 newPC = (u32)(PC) - BasePC;
25414 newPC += GET_SWORD;
25416 CHECK_BRANCH_EXCEPTION(newPC)
25429 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
25433 newPC = (u32)(PC) - BasePC;
25434 newPC += GET_SWORD;
25436 CHECK_BRANCH_EXCEPTION(newPC)
25449 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
25453 newPC = (u32)(PC) - BasePC;
25454 newPC += GET_SWORD;
25456 CHECK_BRANCH_EXCEPTION(newPC)
25466 #ifdef FAMEC_CHECK_BRANCHES
25467 u32 newPC = (u32)(PC) - BasePC;
25471 CHECK_BRANCH_EXCEPTION(offs)
25473 PC += ((s8)(Opcode & 0xFE)) >> 1;
25487 newPC = (u32)(PC) - BasePC;
25488 newPC += GET_SWORD;
25490 CHECK_BRANCH_EXCEPTION(newPC)
25505 oldPC = (u32)(PC) - BasePC;
25507 #ifdef FAMEC_CHECK_BRANCHES
25511 CHECK_BRANCH_EXCEPTION(offs)
25513 PC += ((s8)(Opcode & 0xFE)) >> 1;
25529 newPC = (u32)(PC) - BasePC;
25532 newPC += GET_SWORD;
25534 CHECK_BRANCH_EXCEPTION(newPC)
25546 res = (s32)(s8)Opcode;
25547 flag_C = flag_V = 0;
25548 flag_N = flag_NotZ = res;
25549 DREGu32((Opcode >> 9) & 7) = res;
25559 src = DREGu8((Opcode >> 0) & 7);
25560 res = DREGu8((Opcode >> 9) & 7);
25566 DREGu8((Opcode >> 9) & 7) = res;
25576 adr = AREG((Opcode >> 0) & 7);
25578 READ_BYTE_F(adr, src)
25579 res = DREGu8((Opcode >> 9) & 7);
25585 DREGu8((Opcode >> 9) & 7) = res;
25596 adr = AREG((Opcode >> 0) & 7);
25597 AREG((Opcode >> 0) & 7) += 1;
25599 READ_BYTE_F(adr, src)
25600 res = DREGu8((Opcode >> 9) & 7);
25606 DREGu8((Opcode >> 9) & 7) = res;
25617 adr = AREG((Opcode >> 0) & 7) - 1;
25618 AREG((Opcode >> 0) & 7) = adr;
25620 READ_BYTE_F(adr, src)
25621 res = DREGu8((Opcode >> 9) & 7);
25627 DREGu8((Opcode >> 9) & 7) = res;
25639 adr += AREG((Opcode >> 0) & 7);
25641 READ_BYTE_F(adr, src)
25642 res = DREGu8((Opcode >> 9) & 7);
25648 DREGu8((Opcode >> 9) & 7) = res;
25659 adr = AREG((Opcode >> 0) & 7);
25662 READ_BYTE_F(adr, src)
25663 res = DREGu8((Opcode >> 9) & 7);
25669 DREGu8((Opcode >> 9) & 7) = res;
25682 READ_BYTE_F(adr, src)
25683 res = DREGu8((Opcode >> 9) & 7);
25689 DREGu8((Opcode >> 9) & 7) = res;
25702 READ_BYTE_F(adr, src)
25703 res = DREGu8((Opcode >> 9) & 7);
25709 DREGu8((Opcode >> 9) & 7) = res;
25720 adr = GET_SWORD + ((u32)(PC) - BasePC);
25723 READ_BYTE_F(adr, src)
25724 res = DREGu8((Opcode >> 9) & 7);
25730 DREGu8((Opcode >> 9) & 7) = res;
25741 adr = (u32)(PC) - BasePC;
25744 READ_BYTE_F(adr, src)
25745 res = DREGu8((Opcode >> 9) & 7);
25751 DREGu8((Opcode >> 9) & 7) = res;
25763 res = DREGu8((Opcode >> 9) & 7);
25769 DREGu8((Opcode >> 9) & 7) = res;
25782 READ_BYTE_F(adr, src)
25783 res = DREGu8((Opcode >> 9) & 7);
25789 DREGu8((Opcode >> 9) & 7) = res;
25803 READ_BYTE_F(adr, src)
25804 res = DREGu8((Opcode >> 9) & 7);
25810 DREGu8((Opcode >> 9) & 7) = res;
25821 src = DREGu16((Opcode >> 0) & 7);
25822 res = DREGu16((Opcode >> 9) & 7);
25828 DREGu16((Opcode >> 9) & 7) = res;
25838 adr = AREG((Opcode >> 0) & 7);
25840 READ_WORD_F(adr, src)
25841 res = DREGu16((Opcode >> 9) & 7);
25847 DREGu16((Opcode >> 9) & 7) = res;
25858 adr = AREG((Opcode >> 0) & 7);
25859 AREG((Opcode >> 0) & 7) += 2;
25861 READ_WORD_F(adr, src)
25862 res = DREGu16((Opcode >> 9) & 7);
25868 DREGu16((Opcode >> 9) & 7) = res;
25879 adr = AREG((Opcode >> 0) & 7) - 2;
25880 AREG((Opcode >> 0) & 7) = adr;
25882 READ_WORD_F(adr, src)
25883 res = DREGu16((Opcode >> 9) & 7);
25889 DREGu16((Opcode >> 9) & 7) = res;
25901 adr += AREG((Opcode >> 0) & 7);
25903 READ_WORD_F(adr, src)
25904 res = DREGu16((Opcode >> 9) & 7);
25910 DREGu16((Opcode >> 9) & 7) = res;
25921 adr = AREG((Opcode >> 0) & 7);
25924 READ_WORD_F(adr, src)
25925 res = DREGu16((Opcode >> 9) & 7);
25931 DREGu16((Opcode >> 9) & 7) = res;
25944 READ_WORD_F(adr, src)
25945 res = DREGu16((Opcode >> 9) & 7);
25951 DREGu16((Opcode >> 9) & 7) = res;
25964 READ_WORD_F(adr, src)
25965 res = DREGu16((Opcode >> 9) & 7);
25971 DREGu16((Opcode >> 9) & 7) = res;
25982 adr = GET_SWORD + ((u32)(PC) - BasePC);
25985 READ_WORD_F(adr, src)
25986 res = DREGu16((Opcode >> 9) & 7);
25992 DREGu16((Opcode >> 9) & 7) = res;
26003 adr = (u32)(PC) - BasePC;
26006 READ_WORD_F(adr, src)
26007 res = DREGu16((Opcode >> 9) & 7);
26013 DREGu16((Opcode >> 9) & 7) = res;
26025 res = DREGu16((Opcode >> 9) & 7);
26031 DREGu16((Opcode >> 9) & 7) = res;
26044 READ_WORD_F(adr, src)
26045 res = DREGu16((Opcode >> 9) & 7);
26051 DREGu16((Opcode >> 9) & 7) = res;
26065 READ_WORD_F(adr, src)
26066 res = DREGu16((Opcode >> 9) & 7);
26072 DREGu16((Opcode >> 9) & 7) = res;
26083 src = DREGu32((Opcode >> 0) & 7);
26084 res = DREGu32((Opcode >> 9) & 7);
26089 flag_N = res >> 24;
26090 DREGu32((Opcode >> 9) & 7) = res;
26100 adr = AREG((Opcode >> 0) & 7);
26102 READ_LONG_F(adr, src)
26103 res = DREGu32((Opcode >> 9) & 7);
26108 flag_N = res >> 24;
26109 DREGu32((Opcode >> 9) & 7) = res;
26120 adr = AREG((Opcode >> 0) & 7);
26121 AREG((Opcode >> 0) & 7) += 4;
26123 READ_LONG_F(adr, src)
26124 res = DREGu32((Opcode >> 9) & 7);
26129 flag_N = res >> 24;
26130 DREGu32((Opcode >> 9) & 7) = res;
26141 adr = AREG((Opcode >> 0) & 7) - 4;
26142 AREG((Opcode >> 0) & 7) = adr;
26144 READ_LONG_F(adr, src)
26145 res = DREGu32((Opcode >> 9) & 7);
26150 flag_N = res >> 24;
26151 DREGu32((Opcode >> 9) & 7) = res;
26163 adr += AREG((Opcode >> 0) & 7);
26165 READ_LONG_F(adr, src)
26166 res = DREGu32((Opcode >> 9) & 7);
26171 flag_N = res >> 24;
26172 DREGu32((Opcode >> 9) & 7) = res;
26183 adr = AREG((Opcode >> 0) & 7);
26186 READ_LONG_F(adr, src)
26187 res = DREGu32((Opcode >> 9) & 7);
26192 flag_N = res >> 24;
26193 DREGu32((Opcode >> 9) & 7) = res;
26206 READ_LONG_F(adr, src)
26207 res = DREGu32((Opcode >> 9) & 7);
26212 flag_N = res >> 24;
26213 DREGu32((Opcode >> 9) & 7) = res;
26226 READ_LONG_F(adr, src)
26227 res = DREGu32((Opcode >> 9) & 7);
26232 flag_N = res >> 24;
26233 DREGu32((Opcode >> 9) & 7) = res;
26244 adr = GET_SWORD + ((u32)(PC) - BasePC);
26247 READ_LONG_F(adr, src)
26248 res = DREGu32((Opcode >> 9) & 7);
26253 flag_N = res >> 24;
26254 DREGu32((Opcode >> 9) & 7) = res;
26265 adr = (u32)(PC) - BasePC;
26268 READ_LONG_F(adr, src)
26269 res = DREGu32((Opcode >> 9) & 7);
26274 flag_N = res >> 24;
26275 DREGu32((Opcode >> 9) & 7) = res;
26287 res = DREGu32((Opcode >> 9) & 7);
26292 flag_N = res >> 24;
26293 DREGu32((Opcode >> 9) & 7) = res;
26306 READ_LONG_F(adr, src)
26307 res = DREGu32((Opcode >> 9) & 7);
26312 flag_N = res >> 24;
26313 DREGu32((Opcode >> 9) & 7) = res;
26327 READ_LONG_F(adr, src)
26328 res = DREGu32((Opcode >> 9) & 7);
26333 flag_N = res >> 24;
26334 DREGu32((Opcode >> 9) & 7) = res;
26345 src = DREGu8((Opcode >> 9) & 7);
26346 adr = AREG((Opcode >> 0) & 7);
26348 READ_BYTE_F(adr, res)
26354 WRITE_BYTE_F(adr, res)
26365 src = DREGu8((Opcode >> 9) & 7);
26366 adr = AREG((Opcode >> 0) & 7);
26367 AREG((Opcode >> 0) & 7) += 1;
26369 READ_BYTE_F(adr, res)
26375 WRITE_BYTE_F(adr, res)
26386 src = DREGu8((Opcode >> 9) & 7);
26387 adr = AREG((Opcode >> 0) & 7) - 1;
26388 AREG((Opcode >> 0) & 7) = adr;
26390 READ_BYTE_F(adr, res)
26396 WRITE_BYTE_F(adr, res)
26407 src = DREGu8((Opcode >> 9) & 7);
26409 adr += AREG((Opcode >> 0) & 7);
26411 READ_BYTE_F(adr, res)
26417 WRITE_BYTE_F(adr, res)
26428 src = DREGu8((Opcode >> 9) & 7);
26429 adr = AREG((Opcode >> 0) & 7);
26432 READ_BYTE_F(adr, res)
26438 WRITE_BYTE_F(adr, res)
26449 src = DREGu8((Opcode >> 9) & 7);
26452 READ_BYTE_F(adr, res)
26458 WRITE_BYTE_F(adr, res)
26469 src = DREGu8((Opcode >> 9) & 7);
26472 READ_BYTE_F(adr, res)
26478 WRITE_BYTE_F(adr, res)
26489 src = DREGu8((Opcode >> 9) & 7);
26493 READ_BYTE_F(adr, res)
26499 WRITE_BYTE_F(adr, res)
26510 src = DREGu8((Opcode >> 9) & 7);
26514 READ_BYTE_F(adr, res)
26520 WRITE_BYTE_F(adr, res)
26531 src = DREGu16((Opcode >> 9) & 7);
26532 adr = AREG((Opcode >> 0) & 7);
26534 READ_WORD_F(adr, res)
26540 WRITE_WORD_F(adr, res)
26551 src = DREGu16((Opcode >> 9) & 7);
26552 adr = AREG((Opcode >> 0) & 7);
26553 AREG((Opcode >> 0) & 7) += 2;
26555 READ_WORD_F(adr, res)
26561 WRITE_WORD_F(adr, res)
26572 src = DREGu16((Opcode >> 9) & 7);
26573 adr = AREG((Opcode >> 0) & 7) - 2;
26574 AREG((Opcode >> 0) & 7) = adr;
26576 READ_WORD_F(adr, res)
26582 WRITE_WORD_F(adr, res)
26593 src = DREGu16((Opcode >> 9) & 7);
26595 adr += AREG((Opcode >> 0) & 7);
26597 READ_WORD_F(adr, res)
26603 WRITE_WORD_F(adr, res)
26614 src = DREGu16((Opcode >> 9) & 7);
26615 adr = AREG((Opcode >> 0) & 7);
26618 READ_WORD_F(adr, res)
26624 WRITE_WORD_F(adr, res)
26635 src = DREGu16((Opcode >> 9) & 7);
26638 READ_WORD_F(adr, res)
26644 WRITE_WORD_F(adr, res)
26655 src = DREGu16((Opcode >> 9) & 7);
26658 READ_WORD_F(adr, res)
26664 WRITE_WORD_F(adr, res)
26675 src = DREGu16((Opcode >> 9) & 7);
26679 READ_WORD_F(adr, res)
26685 WRITE_WORD_F(adr, res)
26696 src = DREGu16((Opcode >> 9) & 7);
26700 READ_WORD_F(adr, res)
26706 WRITE_WORD_F(adr, res)
26717 src = DREGu32((Opcode >> 9) & 7);
26718 adr = AREG((Opcode >> 0) & 7);
26720 READ_LONG_F(adr, res)
26725 flag_N = res >> 24;
26726 WRITE_LONG_F(adr, res)
26737 src = DREGu32((Opcode >> 9) & 7);
26738 adr = AREG((Opcode >> 0) & 7);
26739 AREG((Opcode >> 0) & 7) += 4;
26741 READ_LONG_F(adr, res)
26746 flag_N = res >> 24;
26747 WRITE_LONG_F(adr, res)
26758 src = DREGu32((Opcode >> 9) & 7);
26759 adr = AREG((Opcode >> 0) & 7) - 4;
26760 AREG((Opcode >> 0) & 7) = adr;
26762 READ_LONG_F(adr, res)
26767 flag_N = res >> 24;
26768 WRITE_LONG_F(adr, res)
26779 src = DREGu32((Opcode >> 9) & 7);
26781 adr += AREG((Opcode >> 0) & 7);
26783 READ_LONG_F(adr, res)
26788 flag_N = res >> 24;
26789 WRITE_LONG_F(adr, res)
26800 src = DREGu32((Opcode >> 9) & 7);
26801 adr = AREG((Opcode >> 0) & 7);
26804 READ_LONG_F(adr, res)
26809 flag_N = res >> 24;
26810 WRITE_LONG_F(adr, res)
26821 src = DREGu32((Opcode >> 9) & 7);
26824 READ_LONG_F(adr, res)
26829 flag_N = res >> 24;
26830 WRITE_LONG_F(adr, res)
26841 src = DREGu32((Opcode >> 9) & 7);
26844 READ_LONG_F(adr, res)
26849 flag_N = res >> 24;
26850 WRITE_LONG_F(adr, res)
26861 src = DREGu32((Opcode >> 9) & 7);
26865 READ_LONG_F(adr, res)
26870 flag_N = res >> 24;
26871 WRITE_LONG_F(adr, res)
26882 src = DREGu32((Opcode >> 9) & 7);
26886 READ_LONG_F(adr, res)
26891 flag_N = res >> 24;
26892 WRITE_LONG_F(adr, res)
26903 src = DREGu8((Opcode >> 0) & 7);
26904 dst = DREGu8((Opcode >> 9) & 7);
26905 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26906 if (res > 9) res -= 6;
26907 res += (dst & 0xF0) - (src & 0xF0);
26911 flag_X = flag_C = M68K_SR_C;
26913 else flag_X = flag_C = 0;
26914 flag_NotZ |= res & 0xFF;
26916 DREGu8((Opcode >> 9) & 7) = res;
26926 adr = AREG((Opcode >> 0) & 7) - 1;
26927 AREG((Opcode >> 0) & 7) = adr;
26929 READ_BYTE_F(adr, src)
26930 adr = AREG((Opcode >> 9) & 7) - 1;
26931 AREG((Opcode >> 9) & 7) = adr;
26932 READ_BYTE_F(adr, dst)
26933 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26934 if (res > 9) res -= 6;
26935 res += (dst & 0xF0) - (src & 0xF0);
26939 flag_X = flag_C = M68K_SR_C;
26941 else flag_X = flag_C = 0;
26942 flag_NotZ |= res & 0xFF;
26944 WRITE_BYTE_F(adr, res)
26958 READ_BYTE_F(adr, src)
26959 adr = AREG((Opcode >> 9) & 7) - 1;
26960 AREG((Opcode >> 9) & 7) = adr;
26961 READ_BYTE_F(adr, dst)
26962 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26963 if (res > 9) res -= 6;
26964 res += (dst & 0xF0) - (src & 0xF0);
26968 flag_X = flag_C = M68K_SR_C;
26970 else flag_X = flag_C = 0;
26971 flag_NotZ |= res & 0xFF;
26973 WRITE_BYTE_F(adr, res)
26984 adr = AREG((Opcode >> 0) & 7) - 1;
26985 AREG((Opcode >> 0) & 7) = adr;
26987 READ_BYTE_F(adr, src)
26990 READ_BYTE_F(adr, dst)
26991 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26992 if (res > 9) res -= 6;
26993 res += (dst & 0xF0) - (src & 0xF0);
26997 flag_X = flag_C = M68K_SR_C;
26999 else flag_X = flag_C = 0;
27000 flag_NotZ |= res & 0xFF;
27002 WRITE_BYTE_F(adr, res)
27016 READ_BYTE_F(adr, src)
27019 READ_BYTE_F(adr, dst)
27020 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
27021 if (res > 9) res -= 6;
27022 res += (dst & 0xF0) - (src & 0xF0);
27026 flag_X = flag_C = M68K_SR_C;
27028 else flag_X = flag_C = 0;
27029 flag_NotZ |= res & 0xFF;
27031 WRITE_BYTE_F(adr, res)
27042 src = DREGu16((Opcode >> 0) & 7);
27045 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27046 #ifdef USE_CYCLONE_TIMING_DIV
27052 dst = DREGu32((Opcode >> 9) & 7);
27059 if (q & 0xFFFF0000)
27061 flag_V = M68K_SR_V;
27062 #ifdef USE_CYCLONE_TIMING_DIV
27071 flag_V = flag_C = 0;
27072 res = q | (r << 16);
27073 DREGu32((Opcode >> 9) & 7) = res;
27075 #ifdef USE_CYCLONE_TIMING_DIV
27088 adr = AREG((Opcode >> 0) & 7);
27090 READ_WORD_F(adr, src)
27093 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27094 #ifdef USE_CYCLONE_TIMING_DIV
27100 dst = DREGu32((Opcode >> 9) & 7);
27107 if (q & 0xFFFF0000)
27109 flag_V = M68K_SR_V;
27110 #ifdef USE_CYCLONE_TIMING_DIV
27119 flag_V = flag_C = 0;
27120 res = q | (r << 16);
27121 DREGu32((Opcode >> 9) & 7) = res;
27123 #ifdef USE_CYCLONE_TIMING_DIV
27136 adr = AREG((Opcode >> 0) & 7);
27137 AREG((Opcode >> 0) & 7) += 2;
27139 READ_WORD_F(adr, src)
27142 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27143 #ifdef USE_CYCLONE_TIMING_DIV
27149 dst = DREGu32((Opcode >> 9) & 7);
27156 if (q & 0xFFFF0000)
27158 flag_V = M68K_SR_V;
27159 #ifdef USE_CYCLONE_TIMING_DIV
27168 flag_V = flag_C = 0;
27169 res = q | (r << 16);
27170 DREGu32((Opcode >> 9) & 7) = res;
27172 #ifdef USE_CYCLONE_TIMING_DIV
27185 adr = AREG((Opcode >> 0) & 7) - 2;
27186 AREG((Opcode >> 0) & 7) = adr;
27188 READ_WORD_F(adr, src)
27191 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27192 #ifdef USE_CYCLONE_TIMING_DIV
27198 dst = DREGu32((Opcode >> 9) & 7);
27205 if (q & 0xFFFF0000)
27207 flag_V = M68K_SR_V;
27208 #ifdef USE_CYCLONE_TIMING_DIV
27217 flag_V = flag_C = 0;
27218 res = q | (r << 16);
27219 DREGu32((Opcode >> 9) & 7) = res;
27221 #ifdef USE_CYCLONE_TIMING_DIV
27235 adr += AREG((Opcode >> 0) & 7);
27237 READ_WORD_F(adr, src)
27240 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27241 #ifdef USE_CYCLONE_TIMING_DIV
27247 dst = DREGu32((Opcode >> 9) & 7);
27254 if (q & 0xFFFF0000)
27256 flag_V = M68K_SR_V;
27257 #ifdef USE_CYCLONE_TIMING_DIV
27266 flag_V = flag_C = 0;
27267 res = q | (r << 16);
27268 DREGu32((Opcode >> 9) & 7) = res;
27270 #ifdef USE_CYCLONE_TIMING_DIV
27283 adr = AREG((Opcode >> 0) & 7);
27286 READ_WORD_F(adr, src)
27289 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27290 #ifdef USE_CYCLONE_TIMING_DIV
27296 dst = DREGu32((Opcode >> 9) & 7);
27303 if (q & 0xFFFF0000)
27305 flag_V = M68K_SR_V;
27306 #ifdef USE_CYCLONE_TIMING_DIV
27315 flag_V = flag_C = 0;
27316 res = q | (r << 16);
27317 DREGu32((Opcode >> 9) & 7) = res;
27319 #ifdef USE_CYCLONE_TIMING_DIV
27334 READ_WORD_F(adr, src)
27337 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27338 #ifdef USE_CYCLONE_TIMING_DIV
27344 dst = DREGu32((Opcode >> 9) & 7);
27351 if (q & 0xFFFF0000)
27353 flag_V = M68K_SR_V;
27354 #ifdef USE_CYCLONE_TIMING_DIV
27363 flag_V = flag_C = 0;
27364 res = q | (r << 16);
27365 DREGu32((Opcode >> 9) & 7) = res;
27367 #ifdef USE_CYCLONE_TIMING_DIV
27382 READ_WORD_F(adr, src)
27385 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27386 #ifdef USE_CYCLONE_TIMING_DIV
27392 dst = DREGu32((Opcode >> 9) & 7);
27399 if (q & 0xFFFF0000)
27401 flag_V = M68K_SR_V;
27402 #ifdef USE_CYCLONE_TIMING_DIV
27411 flag_V = flag_C = 0;
27412 res = q | (r << 16);
27413 DREGu32((Opcode >> 9) & 7) = res;
27415 #ifdef USE_CYCLONE_TIMING_DIV
27428 adr = GET_SWORD + ((u32)(PC) - BasePC);
27431 READ_WORD_F(adr, src)
27434 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27435 #ifdef USE_CYCLONE_TIMING_DIV
27441 dst = DREGu32((Opcode >> 9) & 7);
27448 if (q & 0xFFFF0000)
27450 flag_V = M68K_SR_V;
27451 #ifdef USE_CYCLONE_TIMING_DIV
27460 flag_V = flag_C = 0;
27461 res = q | (r << 16);
27462 DREGu32((Opcode >> 9) & 7) = res;
27464 #ifdef USE_CYCLONE_TIMING_DIV
27477 adr = (u32)(PC) - BasePC;
27480 READ_WORD_F(adr, src)
27483 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27484 #ifdef USE_CYCLONE_TIMING_DIV
27490 dst = DREGu32((Opcode >> 9) & 7);
27497 if (q & 0xFFFF0000)
27499 flag_V = M68K_SR_V;
27500 #ifdef USE_CYCLONE_TIMING_DIV
27509 flag_V = flag_C = 0;
27510 res = q | (r << 16);
27511 DREGu32((Opcode >> 9) & 7) = res;
27513 #ifdef USE_CYCLONE_TIMING_DIV
27529 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27530 #ifdef USE_CYCLONE_TIMING_DIV
27536 dst = DREGu32((Opcode >> 9) & 7);
27543 if (q & 0xFFFF0000)
27545 flag_V = M68K_SR_V;
27546 #ifdef USE_CYCLONE_TIMING_DIV
27555 flag_V = flag_C = 0;
27556 res = q | (r << 16);
27557 DREGu32((Opcode >> 9) & 7) = res;
27559 #ifdef USE_CYCLONE_TIMING_DIV
27575 READ_WORD_F(adr, src)
27578 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27579 #ifdef USE_CYCLONE_TIMING_DIV
27585 dst = DREGu32((Opcode >> 9) & 7);
27592 if (q & 0xFFFF0000)
27594 flag_V = M68K_SR_V;
27595 #ifdef USE_CYCLONE_TIMING_DIV
27604 flag_V = flag_C = 0;
27605 res = q | (r << 16);
27606 DREGu32((Opcode >> 9) & 7) = res;
27608 #ifdef USE_CYCLONE_TIMING_DIV
27624 READ_WORD_F(adr, src)
27627 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27628 #ifdef USE_CYCLONE_TIMING_DIV
27634 dst = DREGu32((Opcode >> 9) & 7);
27641 if (q & 0xFFFF0000)
27643 flag_V = M68K_SR_V;
27644 #ifdef USE_CYCLONE_TIMING_DIV
27653 flag_V = flag_C = 0;
27654 res = q | (r << 16);
27655 DREGu32((Opcode >> 9) & 7) = res;
27657 #ifdef USE_CYCLONE_TIMING_DIV
27670 src = (s32)DREGs16((Opcode >> 0) & 7);
27673 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27674 #ifdef USE_CYCLONE_TIMING_DIV
27679 dst = DREGu32((Opcode >> 9) & 7);
27680 if ((dst == 0x80000000) && (src == (u32)-1))
27682 flag_NotZ = flag_N = 0;
27683 flag_V = flag_C = 0;
27685 DREGu32((Opcode >> 9) & 7) = res;
27686 #ifdef USE_CYCLONE_TIMING_DIV
27694 q = (s32)dst / (s32)src;
27695 r = (s32)dst % (s32)src;
27697 if ((q > 0x7FFF) || (q < -0x8000))
27699 flag_V = M68K_SR_V;
27700 #ifdef USE_CYCLONE_TIMING_DIV
27708 flag_V = flag_C = 0;
27709 res = q | (r << 16);
27710 DREGu32((Opcode >> 9) & 7) = res;
27712 #ifdef USE_CYCLONE_TIMING_DIV
27713 end81C0: m68kcontext.io_cycle_counter -= 50;
27724 adr = AREG((Opcode >> 0) & 7);
27726 READSX_WORD_F(adr, src)
27729 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27730 #ifdef USE_CYCLONE_TIMING_DIV
27735 dst = DREGu32((Opcode >> 9) & 7);
27736 if ((dst == 0x80000000) && (src == (u32)-1))
27738 flag_NotZ = flag_N = 0;
27739 flag_V = flag_C = 0;
27741 DREGu32((Opcode >> 9) & 7) = res;
27742 #ifdef USE_CYCLONE_TIMING_DIV
27750 q = (s32)dst / (s32)src;
27751 r = (s32)dst % (s32)src;
27753 if ((q > 0x7FFF) || (q < -0x8000))
27755 flag_V = M68K_SR_V;
27756 #ifdef USE_CYCLONE_TIMING_DIV
27764 flag_V = flag_C = 0;
27765 res = q | (r << 16);
27766 DREGu32((Opcode >> 9) & 7) = res;
27768 #ifdef USE_CYCLONE_TIMING_DIV
27769 end81D0: m68kcontext.io_cycle_counter -= 50;
27780 adr = AREG((Opcode >> 0) & 7);
27781 AREG((Opcode >> 0) & 7) += 2;
27783 READSX_WORD_F(adr, src)
27786 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27787 #ifdef USE_CYCLONE_TIMING_DIV
27792 dst = DREGu32((Opcode >> 9) & 7);
27793 if ((dst == 0x80000000) && (src == (u32)-1))
27795 flag_NotZ = flag_N = 0;
27796 flag_V = flag_C = 0;
27798 DREGu32((Opcode >> 9) & 7) = res;
27799 #ifdef USE_CYCLONE_TIMING_DIV
27807 q = (s32)dst / (s32)src;
27808 r = (s32)dst % (s32)src;
27810 if ((q > 0x7FFF) || (q < -0x8000))
27812 flag_V = M68K_SR_V;
27813 #ifdef USE_CYCLONE_TIMING_DIV
27821 flag_V = flag_C = 0;
27822 res = q | (r << 16);
27823 DREGu32((Opcode >> 9) & 7) = res;
27825 #ifdef USE_CYCLONE_TIMING_DIV
27826 end81D8: m68kcontext.io_cycle_counter -= 50;
27837 adr = AREG((Opcode >> 0) & 7) - 2;
27838 AREG((Opcode >> 0) & 7) = adr;
27840 READSX_WORD_F(adr, src)
27843 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27844 #ifdef USE_CYCLONE_TIMING_DIV
27849 dst = DREGu32((Opcode >> 9) & 7);
27850 if ((dst == 0x80000000) && (src == (u32)-1))
27852 flag_NotZ = flag_N = 0;
27853 flag_V = flag_C = 0;
27855 DREGu32((Opcode >> 9) & 7) = res;
27856 #ifdef USE_CYCLONE_TIMING_DIV
27864 q = (s32)dst / (s32)src;
27865 r = (s32)dst % (s32)src;
27867 if ((q > 0x7FFF) || (q < -0x8000))
27869 flag_V = M68K_SR_V;
27870 #ifdef USE_CYCLONE_TIMING_DIV
27878 flag_V = flag_C = 0;
27879 res = q | (r << 16);
27880 DREGu32((Opcode >> 9) & 7) = res;
27882 #ifdef USE_CYCLONE_TIMING_DIV
27883 end81E0: m68kcontext.io_cycle_counter -= 50;
27895 adr += AREG((Opcode >> 0) & 7);
27897 READSX_WORD_F(adr, src)
27900 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27901 #ifdef USE_CYCLONE_TIMING_DIV
27906 dst = DREGu32((Opcode >> 9) & 7);
27907 if ((dst == 0x80000000) && (src == (u32)-1))
27909 flag_NotZ = flag_N = 0;
27910 flag_V = flag_C = 0;
27912 DREGu32((Opcode >> 9) & 7) = res;
27913 #ifdef USE_CYCLONE_TIMING_DIV
27921 q = (s32)dst / (s32)src;
27922 r = (s32)dst % (s32)src;
27924 if ((q > 0x7FFF) || (q < -0x8000))
27926 flag_V = M68K_SR_V;
27927 #ifdef USE_CYCLONE_TIMING_DIV
27935 flag_V = flag_C = 0;
27936 res = q | (r << 16);
27937 DREGu32((Opcode >> 9) & 7) = res;
27939 #ifdef USE_CYCLONE_TIMING_DIV
27940 end81E8: m68kcontext.io_cycle_counter -= 50;
27951 adr = AREG((Opcode >> 0) & 7);
27954 READSX_WORD_F(adr, src)
27957 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27958 #ifdef USE_CYCLONE_TIMING_DIV
27963 dst = DREGu32((Opcode >> 9) & 7);
27964 if ((dst == 0x80000000) && (src == (u32)-1))
27966 flag_NotZ = flag_N = 0;
27967 flag_V = flag_C = 0;
27969 DREGu32((Opcode >> 9) & 7) = res;
27970 #ifdef USE_CYCLONE_TIMING_DIV
27978 q = (s32)dst / (s32)src;
27979 r = (s32)dst % (s32)src;
27981 if ((q > 0x7FFF) || (q < -0x8000))
27983 flag_V = M68K_SR_V;
27984 #ifdef USE_CYCLONE_TIMING_DIV
27992 flag_V = flag_C = 0;
27993 res = q | (r << 16);
27994 DREGu32((Opcode >> 9) & 7) = res;
27996 #ifdef USE_CYCLONE_TIMING_DIV
27997 end81F0: m68kcontext.io_cycle_counter -= 50;
28010 READSX_WORD_F(adr, src)
28013 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28014 #ifdef USE_CYCLONE_TIMING_DIV
28019 dst = DREGu32((Opcode >> 9) & 7);
28020 if ((dst == 0x80000000) && (src == (u32)-1))
28022 flag_NotZ = flag_N = 0;
28023 flag_V = flag_C = 0;
28025 DREGu32((Opcode >> 9) & 7) = res;
28026 #ifdef USE_CYCLONE_TIMING_DIV
28034 q = (s32)dst / (s32)src;
28035 r = (s32)dst % (s32)src;
28037 if ((q > 0x7FFF) || (q < -0x8000))
28039 flag_V = M68K_SR_V;
28040 #ifdef USE_CYCLONE_TIMING_DIV
28048 flag_V = flag_C = 0;
28049 res = q | (r << 16);
28050 DREGu32((Opcode >> 9) & 7) = res;
28052 #ifdef USE_CYCLONE_TIMING_DIV
28053 end81F8: m68kcontext.io_cycle_counter -= 50;
28066 READSX_WORD_F(adr, src)
28069 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28070 #ifdef USE_CYCLONE_TIMING_DIV
28075 dst = DREGu32((Opcode >> 9) & 7);
28076 if ((dst == 0x80000000) && (src == (u32)-1))
28078 flag_NotZ = flag_N = 0;
28079 flag_V = flag_C = 0;
28081 DREGu32((Opcode >> 9) & 7) = res;
28082 #ifdef USE_CYCLONE_TIMING_DIV
28090 q = (s32)dst / (s32)src;
28091 r = (s32)dst % (s32)src;
28093 if ((q > 0x7FFF) || (q < -0x8000))
28095 flag_V = M68K_SR_V;
28096 #ifdef USE_CYCLONE_TIMING_DIV
28104 flag_V = flag_C = 0;
28105 res = q | (r << 16);
28106 DREGu32((Opcode >> 9) & 7) = res;
28108 #ifdef USE_CYCLONE_TIMING_DIV
28109 end81F9: m68kcontext.io_cycle_counter -= 50;
28120 adr = GET_SWORD + ((u32)(PC) - BasePC);
28123 READSX_WORD_F(adr, src)
28126 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28127 #ifdef USE_CYCLONE_TIMING_DIV
28132 dst = DREGu32((Opcode >> 9) & 7);
28133 if ((dst == 0x80000000) && (src == (u32)-1))
28135 flag_NotZ = flag_N = 0;
28136 flag_V = flag_C = 0;
28138 DREGu32((Opcode >> 9) & 7) = res;
28139 #ifdef USE_CYCLONE_TIMING_DIV
28147 q = (s32)dst / (s32)src;
28148 r = (s32)dst % (s32)src;
28150 if ((q > 0x7FFF) || (q < -0x8000))
28152 flag_V = M68K_SR_V;
28153 #ifdef USE_CYCLONE_TIMING_DIV
28161 flag_V = flag_C = 0;
28162 res = q | (r << 16);
28163 DREGu32((Opcode >> 9) & 7) = res;
28165 #ifdef USE_CYCLONE_TIMING_DIV
28166 end81FA: m68kcontext.io_cycle_counter -= 50;
28177 adr = (u32)(PC) - BasePC;
28180 READSX_WORD_F(adr, src)
28183 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28184 #ifdef USE_CYCLONE_TIMING_DIV
28189 dst = DREGu32((Opcode >> 9) & 7);
28190 if ((dst == 0x80000000) && (src == (u32)-1))
28192 flag_NotZ = flag_N = 0;
28193 flag_V = flag_C = 0;
28195 DREGu32((Opcode >> 9) & 7) = res;
28196 #ifdef USE_CYCLONE_TIMING_DIV
28204 q = (s32)dst / (s32)src;
28205 r = (s32)dst % (s32)src;
28207 if ((q > 0x7FFF) || (q < -0x8000))
28209 flag_V = M68K_SR_V;
28210 #ifdef USE_CYCLONE_TIMING_DIV
28218 flag_V = flag_C = 0;
28219 res = q | (r << 16);
28220 DREGu32((Opcode >> 9) & 7) = res;
28222 #ifdef USE_CYCLONE_TIMING_DIV
28223 end81FB: m68kcontext.io_cycle_counter -= 50;
28237 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28238 #ifdef USE_CYCLONE_TIMING_DIV
28243 dst = DREGu32((Opcode >> 9) & 7);
28244 if ((dst == 0x80000000) && (src == (u32)-1))
28246 flag_NotZ = flag_N = 0;
28247 flag_V = flag_C = 0;
28249 DREGu32((Opcode >> 9) & 7) = res;
28250 #ifdef USE_CYCLONE_TIMING_DIV
28258 q = (s32)dst / (s32)src;
28259 r = (s32)dst % (s32)src;
28261 if ((q > 0x7FFF) || (q < -0x8000))
28263 flag_V = M68K_SR_V;
28264 #ifdef USE_CYCLONE_TIMING_DIV
28272 flag_V = flag_C = 0;
28273 res = q | (r << 16);
28274 DREGu32((Opcode >> 9) & 7) = res;
28276 #ifdef USE_CYCLONE_TIMING_DIV
28277 end81FC: m68kcontext.io_cycle_counter -= 50;
28291 READSX_WORD_F(adr, src)
28294 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28295 #ifdef USE_CYCLONE_TIMING_DIV
28300 dst = DREGu32((Opcode >> 9) & 7);
28301 if ((dst == 0x80000000) && (src == (u32)-1))
28303 flag_NotZ = flag_N = 0;
28304 flag_V = flag_C = 0;
28306 DREGu32((Opcode >> 9) & 7) = res;
28307 #ifdef USE_CYCLONE_TIMING_DIV
28315 q = (s32)dst / (s32)src;
28316 r = (s32)dst % (s32)src;
28318 if ((q > 0x7FFF) || (q < -0x8000))
28320 flag_V = M68K_SR_V;
28321 #ifdef USE_CYCLONE_TIMING_DIV
28329 flag_V = flag_C = 0;
28330 res = q | (r << 16);
28331 DREGu32((Opcode >> 9) & 7) = res;
28333 #ifdef USE_CYCLONE_TIMING_DIV
28334 end81DF: m68kcontext.io_cycle_counter -= 50;
28348 READSX_WORD_F(adr, src)
28351 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28352 #ifdef USE_CYCLONE_TIMING_DIV
28357 dst = DREGu32((Opcode >> 9) & 7);
28358 if ((dst == 0x80000000) && (src == (u32)-1))
28360 flag_NotZ = flag_N = 0;
28361 flag_V = flag_C = 0;
28363 DREGu32((Opcode >> 9) & 7) = res;
28364 #ifdef USE_CYCLONE_TIMING_DIV
28372 q = (s32)dst / (s32)src;
28373 r = (s32)dst % (s32)src;
28375 if ((q > 0x7FFF) || (q < -0x8000))
28377 flag_V = M68K_SR_V;
28378 #ifdef USE_CYCLONE_TIMING_DIV
28386 flag_V = flag_C = 0;
28387 res = q | (r << 16);
28388 DREGu32((Opcode >> 9) & 7) = res;
28390 #ifdef USE_CYCLONE_TIMING_DIV
28391 end81E7: m68kcontext.io_cycle_counter -= 50;
28402 src = DREGu8((Opcode >> 0) & 7);
28403 dst = DREGu8((Opcode >> 9) & 7);
28405 flag_N = flag_X = flag_C = res;
28406 flag_V = (src ^ dst) & (res ^ dst);
28407 flag_NotZ = res & 0xFF;
28408 DREGu8((Opcode >> 9) & 7) = res;
28419 // can't read byte from Ax registers !
28420 m68kcontext.execinfo |= M68K_FAULTED;
28421 m68kcontext.io_cycle_counter = 0;
28423 goto famec_Exec_End;
28424 dst = DREGu8((Opcode >> 9) & 7);
28426 flag_N = flag_X = flag_C = res;
28427 flag_V = (src ^ dst) & (res ^ dst);
28428 flag_NotZ = res & 0xFF;
28429 DREGu8((Opcode >> 9) & 7) = res;
28441 adr = AREG((Opcode >> 0) & 7);
28443 READ_BYTE_F(adr, src)
28444 dst = DREGu8((Opcode >> 9) & 7);
28446 flag_N = flag_X = flag_C = res;
28447 flag_V = (src ^ dst) & (res ^ dst);
28448 flag_NotZ = res & 0xFF;
28449 DREGu8((Opcode >> 9) & 7) = res;
28460 adr = AREG((Opcode >> 0) & 7);
28461 AREG((Opcode >> 0) & 7) += 1;
28463 READ_BYTE_F(adr, src)
28464 dst = DREGu8((Opcode >> 9) & 7);
28466 flag_N = flag_X = flag_C = res;
28467 flag_V = (src ^ dst) & (res ^ dst);
28468 flag_NotZ = res & 0xFF;
28469 DREGu8((Opcode >> 9) & 7) = res;
28480 adr = AREG((Opcode >> 0) & 7) - 1;
28481 AREG((Opcode >> 0) & 7) = adr;
28483 READ_BYTE_F(adr, src)
28484 dst = DREGu8((Opcode >> 9) & 7);
28486 flag_N = flag_X = flag_C = res;
28487 flag_V = (src ^ dst) & (res ^ dst);
28488 flag_NotZ = res & 0xFF;
28489 DREGu8((Opcode >> 9) & 7) = res;
28501 adr += AREG((Opcode >> 0) & 7);
28503 READ_BYTE_F(adr, src)
28504 dst = DREGu8((Opcode >> 9) & 7);
28506 flag_N = flag_X = flag_C = res;
28507 flag_V = (src ^ dst) & (res ^ dst);
28508 flag_NotZ = res & 0xFF;
28509 DREGu8((Opcode >> 9) & 7) = res;
28520 adr = AREG((Opcode >> 0) & 7);
28523 READ_BYTE_F(adr, src)
28524 dst = DREGu8((Opcode >> 9) & 7);
28526 flag_N = flag_X = flag_C = res;
28527 flag_V = (src ^ dst) & (res ^ dst);
28528 flag_NotZ = res & 0xFF;
28529 DREGu8((Opcode >> 9) & 7) = res;
28542 READ_BYTE_F(adr, src)
28543 dst = DREGu8((Opcode >> 9) & 7);
28545 flag_N = flag_X = flag_C = res;
28546 flag_V = (src ^ dst) & (res ^ dst);
28547 flag_NotZ = res & 0xFF;
28548 DREGu8((Opcode >> 9) & 7) = res;
28561 READ_BYTE_F(adr, src)
28562 dst = DREGu8((Opcode >> 9) & 7);
28564 flag_N = flag_X = flag_C = res;
28565 flag_V = (src ^ dst) & (res ^ dst);
28566 flag_NotZ = res & 0xFF;
28567 DREGu8((Opcode >> 9) & 7) = res;
28578 adr = GET_SWORD + ((u32)(PC) - BasePC);
28581 READ_BYTE_F(adr, src)
28582 dst = DREGu8((Opcode >> 9) & 7);
28584 flag_N = flag_X = flag_C = res;
28585 flag_V = (src ^ dst) & (res ^ dst);
28586 flag_NotZ = res & 0xFF;
28587 DREGu8((Opcode >> 9) & 7) = res;
28598 adr = (u32)(PC) - BasePC;
28601 READ_BYTE_F(adr, src)
28602 dst = DREGu8((Opcode >> 9) & 7);
28604 flag_N = flag_X = flag_C = res;
28605 flag_V = (src ^ dst) & (res ^ dst);
28606 flag_NotZ = res & 0xFF;
28607 DREGu8((Opcode >> 9) & 7) = res;
28619 dst = DREGu8((Opcode >> 9) & 7);
28621 flag_N = flag_X = flag_C = res;
28622 flag_V = (src ^ dst) & (res ^ dst);
28623 flag_NotZ = res & 0xFF;
28624 DREGu8((Opcode >> 9) & 7) = res;
28637 READ_BYTE_F(adr, src)
28638 dst = DREGu8((Opcode >> 9) & 7);
28640 flag_N = flag_X = flag_C = res;
28641 flag_V = (src ^ dst) & (res ^ dst);
28642 flag_NotZ = res & 0xFF;
28643 DREGu8((Opcode >> 9) & 7) = res;
28657 READ_BYTE_F(adr, src)
28658 dst = DREGu8((Opcode >> 9) & 7);
28660 flag_N = flag_X = flag_C = res;
28661 flag_V = (src ^ dst) & (res ^ dst);
28662 flag_NotZ = res & 0xFF;
28663 DREGu8((Opcode >> 9) & 7) = res;
28674 src = DREGu16((Opcode >> 0) & 7);
28675 dst = DREGu16((Opcode >> 9) & 7);
28677 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28678 flag_N = flag_X = flag_C = res >> 8;
28679 flag_NotZ = res & 0xFFFF;
28680 DREGu16((Opcode >> 9) & 7) = res;
28690 src = AREGu16((Opcode >> 0) & 7);
28691 dst = DREGu16((Opcode >> 9) & 7);
28693 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28694 flag_N = flag_X = flag_C = res >> 8;
28695 flag_NotZ = res & 0xFFFF;
28696 DREGu16((Opcode >> 9) & 7) = res;
28706 adr = AREG((Opcode >> 0) & 7);
28708 READ_WORD_F(adr, src)
28709 dst = DREGu16((Opcode >> 9) & 7);
28711 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28712 flag_N = flag_X = flag_C = res >> 8;
28713 flag_NotZ = res & 0xFFFF;
28714 DREGu16((Opcode >> 9) & 7) = res;
28725 adr = AREG((Opcode >> 0) & 7);
28726 AREG((Opcode >> 0) & 7) += 2;
28728 READ_WORD_F(adr, src)
28729 dst = DREGu16((Opcode >> 9) & 7);
28731 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28732 flag_N = flag_X = flag_C = res >> 8;
28733 flag_NotZ = res & 0xFFFF;
28734 DREGu16((Opcode >> 9) & 7) = res;
28745 adr = AREG((Opcode >> 0) & 7) - 2;
28746 AREG((Opcode >> 0) & 7) = adr;
28748 READ_WORD_F(adr, src)
28749 dst = DREGu16((Opcode >> 9) & 7);
28751 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28752 flag_N = flag_X = flag_C = res >> 8;
28753 flag_NotZ = res & 0xFFFF;
28754 DREGu16((Opcode >> 9) & 7) = res;
28766 adr += AREG((Opcode >> 0) & 7);
28768 READ_WORD_F(adr, src)
28769 dst = DREGu16((Opcode >> 9) & 7);
28771 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28772 flag_N = flag_X = flag_C = res >> 8;
28773 flag_NotZ = res & 0xFFFF;
28774 DREGu16((Opcode >> 9) & 7) = res;
28785 adr = AREG((Opcode >> 0) & 7);
28788 READ_WORD_F(adr, src)
28789 dst = DREGu16((Opcode >> 9) & 7);
28791 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28792 flag_N = flag_X = flag_C = res >> 8;
28793 flag_NotZ = res & 0xFFFF;
28794 DREGu16((Opcode >> 9) & 7) = res;
28807 READ_WORD_F(adr, src)
28808 dst = DREGu16((Opcode >> 9) & 7);
28810 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28811 flag_N = flag_X = flag_C = res >> 8;
28812 flag_NotZ = res & 0xFFFF;
28813 DREGu16((Opcode >> 9) & 7) = res;
28826 READ_WORD_F(adr, src)
28827 dst = DREGu16((Opcode >> 9) & 7);
28829 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28830 flag_N = flag_X = flag_C = res >> 8;
28831 flag_NotZ = res & 0xFFFF;
28832 DREGu16((Opcode >> 9) & 7) = res;
28843 adr = GET_SWORD + ((u32)(PC) - BasePC);
28846 READ_WORD_F(adr, src)
28847 dst = DREGu16((Opcode >> 9) & 7);
28849 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28850 flag_N = flag_X = flag_C = res >> 8;
28851 flag_NotZ = res & 0xFFFF;
28852 DREGu16((Opcode >> 9) & 7) = res;
28863 adr = (u32)(PC) - BasePC;
28866 READ_WORD_F(adr, src)
28867 dst = DREGu16((Opcode >> 9) & 7);
28869 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28870 flag_N = flag_X = flag_C = res >> 8;
28871 flag_NotZ = res & 0xFFFF;
28872 DREGu16((Opcode >> 9) & 7) = res;
28884 dst = DREGu16((Opcode >> 9) & 7);
28886 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28887 flag_N = flag_X = flag_C = res >> 8;
28888 flag_NotZ = res & 0xFFFF;
28889 DREGu16((Opcode >> 9) & 7) = res;
28902 READ_WORD_F(adr, src)
28903 dst = DREGu16((Opcode >> 9) & 7);
28905 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28906 flag_N = flag_X = flag_C = res >> 8;
28907 flag_NotZ = res & 0xFFFF;
28908 DREGu16((Opcode >> 9) & 7) = res;
28922 READ_WORD_F(adr, src)
28923 dst = DREGu16((Opcode >> 9) & 7);
28925 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28926 flag_N = flag_X = flag_C = res >> 8;
28927 flag_NotZ = res & 0xFFFF;
28928 DREGu16((Opcode >> 9) & 7) = res;
28939 src = DREGu32((Opcode >> 0) & 7);
28940 dst = DREGu32((Opcode >> 9) & 7);
28943 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28944 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28945 flag_N = res >> 24;
28946 DREGu32((Opcode >> 9) & 7) = res;
28956 src = AREGu32((Opcode >> 0) & 7);
28957 dst = DREGu32((Opcode >> 9) & 7);
28960 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28961 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28962 flag_N = res >> 24;
28963 DREGu32((Opcode >> 9) & 7) = res;
28973 adr = AREG((Opcode >> 0) & 7);
28975 READ_LONG_F(adr, src)
28976 dst = DREGu32((Opcode >> 9) & 7);
28979 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28980 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28981 flag_N = res >> 24;
28982 DREGu32((Opcode >> 9) & 7) = res;
28993 adr = AREG((Opcode >> 0) & 7);
28994 AREG((Opcode >> 0) & 7) += 4;
28996 READ_LONG_F(adr, src)
28997 dst = DREGu32((Opcode >> 9) & 7);
29000 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29001 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29002 flag_N = res >> 24;
29003 DREGu32((Opcode >> 9) & 7) = res;
29014 adr = AREG((Opcode >> 0) & 7) - 4;
29015 AREG((Opcode >> 0) & 7) = adr;
29017 READ_LONG_F(adr, src)
29018 dst = DREGu32((Opcode >> 9) & 7);
29021 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29022 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29023 flag_N = res >> 24;
29024 DREGu32((Opcode >> 9) & 7) = res;
29036 adr += AREG((Opcode >> 0) & 7);
29038 READ_LONG_F(adr, src)
29039 dst = DREGu32((Opcode >> 9) & 7);
29042 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29043 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29044 flag_N = res >> 24;
29045 DREGu32((Opcode >> 9) & 7) = res;
29056 adr = AREG((Opcode >> 0) & 7);
29059 READ_LONG_F(adr, src)
29060 dst = DREGu32((Opcode >> 9) & 7);
29063 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29064 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29065 flag_N = res >> 24;
29066 DREGu32((Opcode >> 9) & 7) = res;
29079 READ_LONG_F(adr, src)
29080 dst = DREGu32((Opcode >> 9) & 7);
29083 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29084 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29085 flag_N = res >> 24;
29086 DREGu32((Opcode >> 9) & 7) = res;
29099 READ_LONG_F(adr, src)
29100 dst = DREGu32((Opcode >> 9) & 7);
29103 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29104 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29105 flag_N = res >> 24;
29106 DREGu32((Opcode >> 9) & 7) = res;
29117 adr = GET_SWORD + ((u32)(PC) - BasePC);
29120 READ_LONG_F(adr, src)
29121 dst = DREGu32((Opcode >> 9) & 7);
29124 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29125 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29126 flag_N = res >> 24;
29127 DREGu32((Opcode >> 9) & 7) = res;
29138 adr = (u32)(PC) - BasePC;
29141 READ_LONG_F(adr, src)
29142 dst = DREGu32((Opcode >> 9) & 7);
29145 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29146 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29147 flag_N = res >> 24;
29148 DREGu32((Opcode >> 9) & 7) = res;
29160 dst = DREGu32((Opcode >> 9) & 7);
29163 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29164 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29165 flag_N = res >> 24;
29166 DREGu32((Opcode >> 9) & 7) = res;
29179 READ_LONG_F(adr, src)
29180 dst = DREGu32((Opcode >> 9) & 7);
29183 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29184 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29185 flag_N = res >> 24;
29186 DREGu32((Opcode >> 9) & 7) = res;
29200 READ_LONG_F(adr, src)
29201 dst = DREGu32((Opcode >> 9) & 7);
29204 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29205 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29206 flag_N = res >> 24;
29207 DREGu32((Opcode >> 9) & 7) = res;
29218 src = DREGu8((Opcode >> 9) & 7);
29219 adr = AREG((Opcode >> 0) & 7);
29221 READ_BYTE_F(adr, dst)
29223 flag_N = flag_X = flag_C = res;
29224 flag_V = (src ^ dst) & (res ^ dst);
29225 flag_NotZ = res & 0xFF;
29226 WRITE_BYTE_F(adr, res)
29237 src = DREGu8((Opcode >> 9) & 7);
29238 adr = AREG((Opcode >> 0) & 7);
29239 AREG((Opcode >> 0) & 7) += 1;
29241 READ_BYTE_F(adr, dst)
29243 flag_N = flag_X = flag_C = res;
29244 flag_V = (src ^ dst) & (res ^ dst);
29245 flag_NotZ = res & 0xFF;
29246 WRITE_BYTE_F(adr, res)
29257 src = DREGu8((Opcode >> 9) & 7);
29258 adr = AREG((Opcode >> 0) & 7) - 1;
29259 AREG((Opcode >> 0) & 7) = adr;
29261 READ_BYTE_F(adr, dst)
29263 flag_N = flag_X = flag_C = res;
29264 flag_V = (src ^ dst) & (res ^ dst);
29265 flag_NotZ = res & 0xFF;
29266 WRITE_BYTE_F(adr, res)
29277 src = DREGu8((Opcode >> 9) & 7);
29279 adr += AREG((Opcode >> 0) & 7);
29281 READ_BYTE_F(adr, dst)
29283 flag_N = flag_X = flag_C = res;
29284 flag_V = (src ^ dst) & (res ^ dst);
29285 flag_NotZ = res & 0xFF;
29286 WRITE_BYTE_F(adr, res)
29297 src = DREGu8((Opcode >> 9) & 7);
29298 adr = AREG((Opcode >> 0) & 7);
29301 READ_BYTE_F(adr, dst)
29303 flag_N = flag_X = flag_C = res;
29304 flag_V = (src ^ dst) & (res ^ dst);
29305 flag_NotZ = res & 0xFF;
29306 WRITE_BYTE_F(adr, res)
29317 src = DREGu8((Opcode >> 9) & 7);
29320 READ_BYTE_F(adr, dst)
29322 flag_N = flag_X = flag_C = res;
29323 flag_V = (src ^ dst) & (res ^ dst);
29324 flag_NotZ = res & 0xFF;
29325 WRITE_BYTE_F(adr, res)
29336 src = DREGu8((Opcode >> 9) & 7);
29339 READ_BYTE_F(adr, dst)
29341 flag_N = flag_X = flag_C = res;
29342 flag_V = (src ^ dst) & (res ^ dst);
29343 flag_NotZ = res & 0xFF;
29344 WRITE_BYTE_F(adr, res)
29355 src = DREGu8((Opcode >> 9) & 7);
29359 READ_BYTE_F(adr, dst)
29361 flag_N = flag_X = flag_C = res;
29362 flag_V = (src ^ dst) & (res ^ dst);
29363 flag_NotZ = res & 0xFF;
29364 WRITE_BYTE_F(adr, res)
29375 src = DREGu8((Opcode >> 9) & 7);
29379 READ_BYTE_F(adr, dst)
29381 flag_N = flag_X = flag_C = res;
29382 flag_V = (src ^ dst) & (res ^ dst);
29383 flag_NotZ = res & 0xFF;
29384 WRITE_BYTE_F(adr, res)
29395 src = DREGu16((Opcode >> 9) & 7);
29396 adr = AREG((Opcode >> 0) & 7);
29398 READ_WORD_F(adr, dst)
29400 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29401 flag_N = flag_X = flag_C = res >> 8;
29402 flag_NotZ = res & 0xFFFF;
29403 WRITE_WORD_F(adr, res)
29414 src = DREGu16((Opcode >> 9) & 7);
29415 adr = AREG((Opcode >> 0) & 7);
29416 AREG((Opcode >> 0) & 7) += 2;
29418 READ_WORD_F(adr, dst)
29420 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29421 flag_N = flag_X = flag_C = res >> 8;
29422 flag_NotZ = res & 0xFFFF;
29423 WRITE_WORD_F(adr, res)
29434 src = DREGu16((Opcode >> 9) & 7);
29435 adr = AREG((Opcode >> 0) & 7) - 2;
29436 AREG((Opcode >> 0) & 7) = adr;
29438 READ_WORD_F(adr, dst)
29440 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29441 flag_N = flag_X = flag_C = res >> 8;
29442 flag_NotZ = res & 0xFFFF;
29443 WRITE_WORD_F(adr, res)
29454 src = DREGu16((Opcode >> 9) & 7);
29456 adr += AREG((Opcode >> 0) & 7);
29458 READ_WORD_F(adr, dst)
29460 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29461 flag_N = flag_X = flag_C = res >> 8;
29462 flag_NotZ = res & 0xFFFF;
29463 WRITE_WORD_F(adr, res)
29474 src = DREGu16((Opcode >> 9) & 7);
29475 adr = AREG((Opcode >> 0) & 7);
29478 READ_WORD_F(adr, dst)
29480 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29481 flag_N = flag_X = flag_C = res >> 8;
29482 flag_NotZ = res & 0xFFFF;
29483 WRITE_WORD_F(adr, res)
29494 src = DREGu16((Opcode >> 9) & 7);
29497 READ_WORD_F(adr, dst)
29499 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29500 flag_N = flag_X = flag_C = res >> 8;
29501 flag_NotZ = res & 0xFFFF;
29502 WRITE_WORD_F(adr, res)
29513 src = DREGu16((Opcode >> 9) & 7);
29516 READ_WORD_F(adr, dst)
29518 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29519 flag_N = flag_X = flag_C = res >> 8;
29520 flag_NotZ = res & 0xFFFF;
29521 WRITE_WORD_F(adr, res)
29532 src = DREGu16((Opcode >> 9) & 7);
29536 READ_WORD_F(adr, dst)
29538 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29539 flag_N = flag_X = flag_C = res >> 8;
29540 flag_NotZ = res & 0xFFFF;
29541 WRITE_WORD_F(adr, res)
29552 src = DREGu16((Opcode >> 9) & 7);
29556 READ_WORD_F(adr, dst)
29558 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29559 flag_N = flag_X = flag_C = res >> 8;
29560 flag_NotZ = res & 0xFFFF;
29561 WRITE_WORD_F(adr, res)
29572 src = DREGu32((Opcode >> 9) & 7);
29573 adr = AREG((Opcode >> 0) & 7);
29575 READ_LONG_F(adr, dst)
29578 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29579 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29580 flag_N = res >> 24;
29581 WRITE_LONG_F(adr, res)
29592 src = DREGu32((Opcode >> 9) & 7);
29593 adr = AREG((Opcode >> 0) & 7);
29594 AREG((Opcode >> 0) & 7) += 4;
29596 READ_LONG_F(adr, dst)
29599 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29600 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29601 flag_N = res >> 24;
29602 WRITE_LONG_F(adr, res)
29613 src = DREGu32((Opcode >> 9) & 7);
29614 adr = AREG((Opcode >> 0) & 7) - 4;
29615 AREG((Opcode >> 0) & 7) = adr;
29617 READ_LONG_F(adr, dst)
29620 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29621 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29622 flag_N = res >> 24;
29623 WRITE_LONG_F(adr, res)
29634 src = DREGu32((Opcode >> 9) & 7);
29636 adr += AREG((Opcode >> 0) & 7);
29638 READ_LONG_F(adr, dst)
29641 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29642 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29643 flag_N = res >> 24;
29644 WRITE_LONG_F(adr, res)
29655 src = DREGu32((Opcode >> 9) & 7);
29656 adr = AREG((Opcode >> 0) & 7);
29659 READ_LONG_F(adr, dst)
29662 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29663 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29664 flag_N = res >> 24;
29665 WRITE_LONG_F(adr, res)
29676 src = DREGu32((Opcode >> 9) & 7);
29679 READ_LONG_F(adr, dst)
29682 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29683 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29684 flag_N = res >> 24;
29685 WRITE_LONG_F(adr, res)
29696 src = DREGu32((Opcode >> 9) & 7);
29699 READ_LONG_F(adr, dst)
29702 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29703 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29704 flag_N = res >> 24;
29705 WRITE_LONG_F(adr, res)
29716 src = DREGu32((Opcode >> 9) & 7);
29720 READ_LONG_F(adr, dst)
29723 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29724 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29725 flag_N = res >> 24;
29726 WRITE_LONG_F(adr, res)
29737 src = DREGu32((Opcode >> 9) & 7);
29741 READ_LONG_F(adr, dst)
29744 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29745 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29746 flag_N = res >> 24;
29747 WRITE_LONG_F(adr, res)
29758 src = DREGu8((Opcode >> 0) & 7);
29759 dst = DREGu8((Opcode >> 9) & 7);
29760 res = dst - src - ((flag_X >> 8) & 1);
29761 flag_N = flag_X = flag_C = res;
29762 flag_V = (src ^ dst) & (res ^ dst);
29763 flag_NotZ |= res & 0xFF;
29764 DREGu8((Opcode >> 9) & 7) = res;
29774 src = DREGu16((Opcode >> 0) & 7);
29775 dst = DREGu16((Opcode >> 9) & 7);
29776 res = dst - src - ((flag_X >> 8) & 1);
29777 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29778 flag_N = flag_X = flag_C = res >> 8;
29779 flag_NotZ |= res & 0xFFFF;
29780 DREGu16((Opcode >> 9) & 7) = res;
29790 src = DREGu32((Opcode >> 0) & 7);
29791 dst = DREGu32((Opcode >> 9) & 7);
29792 res = dst - src - ((flag_X >> 8) & 1);
29794 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29795 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29796 flag_N = res >> 24;
29797 DREGu32((Opcode >> 9) & 7) = res;
29807 adr = AREG((Opcode >> 0) & 7) - 1;
29808 AREG((Opcode >> 0) & 7) = adr;
29810 READ_BYTE_F(adr, src)
29811 adr = AREG((Opcode >> 9) & 7) - 1;
29812 AREG((Opcode >> 9) & 7) = adr;
29813 READ_BYTE_F(adr, dst)
29814 res = dst - src - ((flag_X >> 8) & 1);
29815 flag_N = flag_X = flag_C = res;
29816 flag_V = (src ^ dst) & (res ^ dst);
29817 flag_NotZ |= res & 0xFF;
29818 WRITE_BYTE_F(adr, res)
29829 adr = AREG((Opcode >> 0) & 7) - 2;
29830 AREG((Opcode >> 0) & 7) = adr;
29832 READ_WORD_F(adr, src)
29833 adr = AREG((Opcode >> 9) & 7) - 2;
29834 AREG((Opcode >> 9) & 7) = adr;
29835 READ_WORD_F(adr, dst)
29836 res = dst - src - ((flag_X >> 8) & 1);
29837 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29838 flag_N = flag_X = flag_C = res >> 8;
29839 flag_NotZ |= res & 0xFFFF;
29840 WRITE_WORD_F(adr, res)
29851 adr = AREG((Opcode >> 0) & 7) - 4;
29852 AREG((Opcode >> 0) & 7) = adr;
29854 READ_LONG_F(adr, src)
29855 adr = AREG((Opcode >> 9) & 7) - 4;
29856 AREG((Opcode >> 9) & 7) = adr;
29857 READ_LONG_F(adr, dst)
29858 res = dst - src - ((flag_X >> 8) & 1);
29860 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29861 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29862 flag_N = res >> 24;
29863 WRITE_LONG_F(adr, res)
29877 READ_BYTE_F(adr, src)
29878 adr = AREG((Opcode >> 9) & 7) - 1;
29879 AREG((Opcode >> 9) & 7) = adr;
29880 READ_BYTE_F(adr, dst)
29881 res = dst - src - ((flag_X >> 8) & 1);
29882 flag_N = flag_X = flag_C = res;
29883 flag_V = (src ^ dst) & (res ^ dst);
29884 flag_NotZ |= res & 0xFF;
29885 WRITE_BYTE_F(adr, res)
29899 READ_WORD_F(adr, src)
29900 adr = AREG((Opcode >> 9) & 7) - 2;
29901 AREG((Opcode >> 9) & 7) = adr;
29902 READ_WORD_F(adr, dst)
29903 res = dst - src - ((flag_X >> 8) & 1);
29904 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29905 flag_N = flag_X = flag_C = res >> 8;
29906 flag_NotZ |= res & 0xFFFF;
29907 WRITE_WORD_F(adr, res)
29921 READ_LONG_F(adr, src)
29922 adr = AREG((Opcode >> 9) & 7) - 4;
29923 AREG((Opcode >> 9) & 7) = adr;
29924 READ_LONG_F(adr, dst)
29925 res = dst - src - ((flag_X >> 8) & 1);
29927 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29928 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29929 flag_N = res >> 24;
29930 WRITE_LONG_F(adr, res)
29941 adr = AREG((Opcode >> 0) & 7) - 1;
29942 AREG((Opcode >> 0) & 7) = adr;
29944 READ_BYTE_F(adr, src)
29947 READ_BYTE_F(adr, dst)
29948 res = dst - src - ((flag_X >> 8) & 1);
29949 flag_N = flag_X = flag_C = res;
29950 flag_V = (src ^ dst) & (res ^ dst);
29951 flag_NotZ |= res & 0xFF;
29952 WRITE_BYTE_F(adr, res)
29963 adr = AREG((Opcode >> 0) & 7) - 2;
29964 AREG((Opcode >> 0) & 7) = adr;
29966 READ_WORD_F(adr, src)
29969 READ_WORD_F(adr, dst)
29970 res = dst - src - ((flag_X >> 8) & 1);
29971 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29972 flag_N = flag_X = flag_C = res >> 8;
29973 flag_NotZ |= res & 0xFFFF;
29974 WRITE_WORD_F(adr, res)
29985 adr = AREG((Opcode >> 0) & 7) - 4;
29986 AREG((Opcode >> 0) & 7) = adr;
29988 READ_LONG_F(adr, src)
29991 READ_LONG_F(adr, dst)
29992 res = dst - src - ((flag_X >> 8) & 1);
29994 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29995 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29996 flag_N = res >> 24;
29997 WRITE_LONG_F(adr, res)
30011 READ_BYTE_F(adr, src)
30014 READ_BYTE_F(adr, dst)
30015 res = dst - src - ((flag_X >> 8) & 1);
30016 flag_N = flag_X = flag_C = res;
30017 flag_V = (src ^ dst) & (res ^ dst);
30018 flag_NotZ |= res & 0xFF;
30019 WRITE_BYTE_F(adr, res)
30033 READ_WORD_F(adr, src)
30036 READ_WORD_F(adr, dst)
30037 res = dst - src - ((flag_X >> 8) & 1);
30038 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30039 flag_N = flag_X = flag_C = res >> 8;
30040 flag_NotZ |= res & 0xFFFF;
30041 WRITE_WORD_F(adr, res)
30055 READ_LONG_F(adr, src)
30058 READ_LONG_F(adr, dst)
30059 res = dst - src - ((flag_X >> 8) & 1);
30061 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
30062 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
30063 flag_N = res >> 24;
30064 WRITE_LONG_F(adr, res)
30075 src = (s32)DREGs16((Opcode >> 0) & 7);
30076 dst = AREGu32((Opcode >> 9) & 7);
30078 AREG((Opcode >> 9) & 7) = res;
30088 src = (s32)AREGs16((Opcode >> 0) & 7);
30089 dst = AREGu32((Opcode >> 9) & 7);
30091 AREG((Opcode >> 9) & 7) = res;
30101 adr = AREG((Opcode >> 0) & 7);
30103 READSX_WORD_F(adr, src)
30104 dst = AREGu32((Opcode >> 9) & 7);
30106 AREG((Opcode >> 9) & 7) = res;
30108 #ifdef USE_CYCLONE_TIMING
30121 adr = AREG((Opcode >> 0) & 7);
30122 AREG((Opcode >> 0) & 7) += 2;
30124 READSX_WORD_F(adr, src)
30125 dst = AREGu32((Opcode >> 9) & 7);
30127 AREG((Opcode >> 9) & 7) = res;
30129 #ifdef USE_CYCLONE_TIMING
30142 adr = AREG((Opcode >> 0) & 7) - 2;
30143 AREG((Opcode >> 0) & 7) = adr;
30145 READSX_WORD_F(adr, src)
30146 dst = AREGu32((Opcode >> 9) & 7);
30148 AREG((Opcode >> 9) & 7) = res;
30150 #ifdef USE_CYCLONE_TIMING
30164 adr += AREG((Opcode >> 0) & 7);
30166 READSX_WORD_F(adr, src)
30167 dst = AREGu32((Opcode >> 9) & 7);
30169 AREG((Opcode >> 9) & 7) = res;
30171 #ifdef USE_CYCLONE_TIMING
30184 adr = AREG((Opcode >> 0) & 7);
30187 READSX_WORD_F(adr, src)
30188 dst = AREGu32((Opcode >> 9) & 7);
30190 AREG((Opcode >> 9) & 7) = res;
30192 #ifdef USE_CYCLONE_TIMING
30207 READSX_WORD_F(adr, src)
30208 dst = AREGu32((Opcode >> 9) & 7);
30210 AREG((Opcode >> 9) & 7) = res;
30212 #ifdef USE_CYCLONE_TIMING
30227 READSX_WORD_F(adr, src)
30228 dst = AREGu32((Opcode >> 9) & 7);
30230 AREG((Opcode >> 9) & 7) = res;
30232 #ifdef USE_CYCLONE_TIMING
30245 adr = GET_SWORD + ((u32)(PC) - BasePC);
30248 READSX_WORD_F(adr, src)
30249 dst = AREGu32((Opcode >> 9) & 7);
30251 AREG((Opcode >> 9) & 7) = res;
30253 #ifdef USE_CYCLONE_TIMING
30266 adr = (u32)(PC) - BasePC;
30269 READSX_WORD_F(adr, src)
30270 dst = AREGu32((Opcode >> 9) & 7);
30272 AREG((Opcode >> 9) & 7) = res;
30274 #ifdef USE_CYCLONE_TIMING
30288 dst = AREGu32((Opcode >> 9) & 7);
30290 AREG((Opcode >> 9) & 7) = res;
30303 READSX_WORD_F(adr, src)
30304 dst = AREGu32((Opcode >> 9) & 7);
30306 AREG((Opcode >> 9) & 7) = res;
30308 #ifdef USE_CYCLONE_TIMING
30324 READSX_WORD_F(adr, src)
30325 dst = AREGu32((Opcode >> 9) & 7);
30327 AREG((Opcode >> 9) & 7) = res;
30329 #ifdef USE_CYCLONE_TIMING
30342 src = (s32)DREGs32((Opcode >> 0) & 7);
30343 dst = AREGu32((Opcode >> 9) & 7);
30345 AREG((Opcode >> 9) & 7) = res;
30346 #ifdef USE_CYCLONE_TIMING
30359 src = (s32)AREGs32((Opcode >> 0) & 7);
30360 dst = AREGu32((Opcode >> 9) & 7);
30362 AREG((Opcode >> 9) & 7) = res;
30363 #ifdef USE_CYCLONE_TIMING
30376 adr = AREG((Opcode >> 0) & 7);
30378 READSX_LONG_F(adr, src)
30379 dst = AREGu32((Opcode >> 9) & 7);
30381 AREG((Opcode >> 9) & 7) = res;
30392 adr = AREG((Opcode >> 0) & 7);
30393 AREG((Opcode >> 0) & 7) += 4;
30395 READSX_LONG_F(adr, src)
30396 dst = AREGu32((Opcode >> 9) & 7);
30398 AREG((Opcode >> 9) & 7) = res;
30409 adr = AREG((Opcode >> 0) & 7) - 4;
30410 AREG((Opcode >> 0) & 7) = adr;
30412 READSX_LONG_F(adr, src)
30413 dst = AREGu32((Opcode >> 9) & 7);
30415 AREG((Opcode >> 9) & 7) = res;
30427 adr += AREG((Opcode >> 0) & 7);
30429 READSX_LONG_F(adr, src)
30430 dst = AREGu32((Opcode >> 9) & 7);
30432 AREG((Opcode >> 9) & 7) = res;
30443 adr = AREG((Opcode >> 0) & 7);
30446 READSX_LONG_F(adr, src)
30447 dst = AREGu32((Opcode >> 9) & 7);
30449 AREG((Opcode >> 9) & 7) = res;
30462 READSX_LONG_F(adr, src)
30463 dst = AREGu32((Opcode >> 9) & 7);
30465 AREG((Opcode >> 9) & 7) = res;
30478 READSX_LONG_F(adr, src)
30479 dst = AREGu32((Opcode >> 9) & 7);
30481 AREG((Opcode >> 9) & 7) = res;
30492 adr = GET_SWORD + ((u32)(PC) - BasePC);
30495 READSX_LONG_F(adr, src)
30496 dst = AREGu32((Opcode >> 9) & 7);
30498 AREG((Opcode >> 9) & 7) = res;
30509 adr = (u32)(PC) - BasePC;
30512 READSX_LONG_F(adr, src)
30513 dst = AREGu32((Opcode >> 9) & 7);
30515 AREG((Opcode >> 9) & 7) = res;
30527 dst = AREGu32((Opcode >> 9) & 7);
30529 AREG((Opcode >> 9) & 7) = res;
30530 #ifdef USE_CYCLONE_TIMING
30546 READSX_LONG_F(adr, src)
30547 dst = AREGu32((Opcode >> 9) & 7);
30549 AREG((Opcode >> 9) & 7) = res;
30563 READSX_LONG_F(adr, src)
30564 dst = AREGu32((Opcode >> 9) & 7);
30566 AREG((Opcode >> 9) & 7) = res;
30577 src = DREGu8((Opcode >> 0) & 7);
30578 dst = DREGu8((Opcode >> 9) & 7);
30580 flag_N = flag_C = res;
30581 flag_V = (src ^ dst) & (res ^ dst);
30582 flag_NotZ = res & 0xFF;
30593 // can't read byte from Ax registers !
30594 m68kcontext.execinfo |= M68K_FAULTED;
30595 m68kcontext.io_cycle_counter = 0;
30597 goto famec_Exec_End;
30598 dst = DREGu8((Opcode >> 9) & 7);
30600 flag_N = flag_C = res;
30601 flag_V = (src ^ dst) & (res ^ dst);
30602 flag_NotZ = res & 0xFF;
30614 adr = AREG((Opcode >> 0) & 7);
30616 READ_BYTE_F(adr, src)
30617 dst = DREGu8((Opcode >> 9) & 7);
30619 flag_N = flag_C = res;
30620 flag_V = (src ^ dst) & (res ^ dst);
30621 flag_NotZ = res & 0xFF;
30632 adr = AREG((Opcode >> 0) & 7);
30633 AREG((Opcode >> 0) & 7) += 1;
30635 READ_BYTE_F(adr, src)
30636 dst = DREGu8((Opcode >> 9) & 7);
30638 flag_N = flag_C = res;
30639 flag_V = (src ^ dst) & (res ^ dst);
30640 flag_NotZ = res & 0xFF;
30651 adr = AREG((Opcode >> 0) & 7) - 1;
30652 AREG((Opcode >> 0) & 7) = adr;
30654 READ_BYTE_F(adr, src)
30655 dst = DREGu8((Opcode >> 9) & 7);
30657 flag_N = flag_C = res;
30658 flag_V = (src ^ dst) & (res ^ dst);
30659 flag_NotZ = res & 0xFF;
30671 adr += AREG((Opcode >> 0) & 7);
30673 READ_BYTE_F(adr, src)
30674 dst = DREGu8((Opcode >> 9) & 7);
30676 flag_N = flag_C = res;
30677 flag_V = (src ^ dst) & (res ^ dst);
30678 flag_NotZ = res & 0xFF;
30689 adr = AREG((Opcode >> 0) & 7);
30692 READ_BYTE_F(adr, src)
30693 dst = DREGu8((Opcode >> 9) & 7);
30695 flag_N = flag_C = res;
30696 flag_V = (src ^ dst) & (res ^ dst);
30697 flag_NotZ = res & 0xFF;
30710 READ_BYTE_F(adr, src)
30711 dst = DREGu8((Opcode >> 9) & 7);
30713 flag_N = flag_C = res;
30714 flag_V = (src ^ dst) & (res ^ dst);
30715 flag_NotZ = res & 0xFF;
30728 READ_BYTE_F(adr, src)
30729 dst = DREGu8((Opcode >> 9) & 7);
30731 flag_N = flag_C = res;
30732 flag_V = (src ^ dst) & (res ^ dst);
30733 flag_NotZ = res & 0xFF;
30744 adr = GET_SWORD + ((u32)(PC) - BasePC);
30747 READ_BYTE_F(adr, src)
30748 dst = DREGu8((Opcode >> 9) & 7);
30750 flag_N = flag_C = res;
30751 flag_V = (src ^ dst) & (res ^ dst);
30752 flag_NotZ = res & 0xFF;
30763 adr = (u32)(PC) - BasePC;
30766 READ_BYTE_F(adr, src)
30767 dst = DREGu8((Opcode >> 9) & 7);
30769 flag_N = flag_C = res;
30770 flag_V = (src ^ dst) & (res ^ dst);
30771 flag_NotZ = res & 0xFF;
30783 dst = DREGu8((Opcode >> 9) & 7);
30785 flag_N = flag_C = res;
30786 flag_V = (src ^ dst) & (res ^ dst);
30787 flag_NotZ = res & 0xFF;
30800 READ_BYTE_F(adr, src)
30801 dst = DREGu8((Opcode >> 9) & 7);
30803 flag_N = flag_C = res;
30804 flag_V = (src ^ dst) & (res ^ dst);
30805 flag_NotZ = res & 0xFF;
30819 READ_BYTE_F(adr, src)
30820 dst = DREGu8((Opcode >> 9) & 7);
30822 flag_N = flag_C = res;
30823 flag_V = (src ^ dst) & (res ^ dst);
30824 flag_NotZ = res & 0xFF;
30835 src = DREGu16((Opcode >> 0) & 7);
30836 dst = DREGu16((Opcode >> 9) & 7);
30838 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30839 flag_N = flag_C = res >> 8;
30840 flag_NotZ = res & 0xFFFF;
30850 src = AREGu16((Opcode >> 0) & 7);
30851 dst = DREGu16((Opcode >> 9) & 7);
30853 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30854 flag_N = flag_C = res >> 8;
30855 flag_NotZ = res & 0xFFFF;
30865 adr = AREG((Opcode >> 0) & 7);
30867 READ_WORD_F(adr, src)
30868 dst = DREGu16((Opcode >> 9) & 7);
30870 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30871 flag_N = flag_C = res >> 8;
30872 flag_NotZ = res & 0xFFFF;
30883 adr = AREG((Opcode >> 0) & 7);
30884 AREG((Opcode >> 0) & 7) += 2;
30886 READ_WORD_F(adr, src)
30887 dst = DREGu16((Opcode >> 9) & 7);
30889 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30890 flag_N = flag_C = res >> 8;
30891 flag_NotZ = res & 0xFFFF;
30902 adr = AREG((Opcode >> 0) & 7) - 2;
30903 AREG((Opcode >> 0) & 7) = adr;
30905 READ_WORD_F(adr, src)
30906 dst = DREGu16((Opcode >> 9) & 7);
30908 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30909 flag_N = flag_C = res >> 8;
30910 flag_NotZ = res & 0xFFFF;
30922 adr += AREG((Opcode >> 0) & 7);
30924 READ_WORD_F(adr, src)
30925 dst = DREGu16((Opcode >> 9) & 7);
30927 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30928 flag_N = flag_C = res >> 8;
30929 flag_NotZ = res & 0xFFFF;
30940 adr = AREG((Opcode >> 0) & 7);
30943 READ_WORD_F(adr, src)
30944 dst = DREGu16((Opcode >> 9) & 7);
30946 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30947 flag_N = flag_C = res >> 8;
30948 flag_NotZ = res & 0xFFFF;
30961 READ_WORD_F(adr, src)
30962 dst = DREGu16((Opcode >> 9) & 7);
30964 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30965 flag_N = flag_C = res >> 8;
30966 flag_NotZ = res & 0xFFFF;
30979 READ_WORD_F(adr, src)
30980 dst = DREGu16((Opcode >> 9) & 7);
30982 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30983 flag_N = flag_C = res >> 8;
30984 flag_NotZ = res & 0xFFFF;
30995 adr = GET_SWORD + ((u32)(PC) - BasePC);
30998 READ_WORD_F(adr, src)
30999 dst = DREGu16((Opcode >> 9) & 7);
31001 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31002 flag_N = flag_C = res >> 8;
31003 flag_NotZ = res & 0xFFFF;
31014 adr = (u32)(PC) - BasePC;
31017 READ_WORD_F(adr, src)
31018 dst = DREGu16((Opcode >> 9) & 7);
31020 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31021 flag_N = flag_C = res >> 8;
31022 flag_NotZ = res & 0xFFFF;
31034 dst = DREGu16((Opcode >> 9) & 7);
31036 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31037 flag_N = flag_C = res >> 8;
31038 flag_NotZ = res & 0xFFFF;
31051 READ_WORD_F(adr, src)
31052 dst = DREGu16((Opcode >> 9) & 7);
31054 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31055 flag_N = flag_C = res >> 8;
31056 flag_NotZ = res & 0xFFFF;
31070 READ_WORD_F(adr, src)
31071 dst = DREGu16((Opcode >> 9) & 7);
31073 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31074 flag_N = flag_C = res >> 8;
31075 flag_NotZ = res & 0xFFFF;
31086 src = DREGu32((Opcode >> 0) & 7);
31087 dst = DREGu32((Opcode >> 9) & 7);
31090 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31091 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31092 flag_N = res >> 24;
31102 src = AREGu32((Opcode >> 0) & 7);
31103 dst = DREGu32((Opcode >> 9) & 7);
31106 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31107 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31108 flag_N = res >> 24;
31118 adr = AREG((Opcode >> 0) & 7);
31120 READ_LONG_F(adr, src)
31121 dst = DREGu32((Opcode >> 9) & 7);
31124 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31125 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31126 flag_N = res >> 24;
31137 adr = AREG((Opcode >> 0) & 7);
31138 AREG((Opcode >> 0) & 7) += 4;
31140 READ_LONG_F(adr, src)
31141 dst = DREGu32((Opcode >> 9) & 7);
31144 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31145 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31146 flag_N = res >> 24;
31157 adr = AREG((Opcode >> 0) & 7) - 4;
31158 AREG((Opcode >> 0) & 7) = adr;
31160 READ_LONG_F(adr, src)
31161 dst = DREGu32((Opcode >> 9) & 7);
31164 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31165 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31166 flag_N = res >> 24;
31178 adr += AREG((Opcode >> 0) & 7);
31180 READ_LONG_F(adr, src)
31181 dst = DREGu32((Opcode >> 9) & 7);
31184 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31185 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31186 flag_N = res >> 24;
31197 adr = AREG((Opcode >> 0) & 7);
31200 READ_LONG_F(adr, src)
31201 dst = DREGu32((Opcode >> 9) & 7);
31204 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31205 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31206 flag_N = res >> 24;
31219 READ_LONG_F(adr, src)
31220 dst = DREGu32((Opcode >> 9) & 7);
31223 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31224 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31225 flag_N = res >> 24;
31238 READ_LONG_F(adr, src)
31239 dst = DREGu32((Opcode >> 9) & 7);
31242 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31243 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31244 flag_N = res >> 24;
31255 adr = GET_SWORD + ((u32)(PC) - BasePC);
31258 READ_LONG_F(adr, src)
31259 dst = DREGu32((Opcode >> 9) & 7);
31262 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31263 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31264 flag_N = res >> 24;
31275 adr = (u32)(PC) - BasePC;
31278 READ_LONG_F(adr, src)
31279 dst = DREGu32((Opcode >> 9) & 7);
31282 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31283 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31284 flag_N = res >> 24;
31296 dst = DREGu32((Opcode >> 9) & 7);
31299 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31300 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31301 flag_N = res >> 24;
31314 READ_LONG_F(adr, src)
31315 dst = DREGu32((Opcode >> 9) & 7);
31318 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31319 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31320 flag_N = res >> 24;
31334 READ_LONG_F(adr, src)
31335 dst = DREGu32((Opcode >> 9) & 7);
31338 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31339 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31340 flag_N = res >> 24;
31351 adr = AREG((Opcode >> 0) & 7);
31352 AREG((Opcode >> 0) & 7) += 1;
31354 READ_BYTE_F(adr, src)
31355 adr = AREG((Opcode >> 9) & 7);
31356 AREG((Opcode >> 9) & 7) += 1;
31357 READ_BYTE_F(adr, dst)
31359 flag_N = flag_C = res;
31360 flag_V = (src ^ dst) & (res ^ dst);
31361 flag_NotZ = res & 0xFF;
31372 adr = AREG((Opcode >> 0) & 7);
31373 AREG((Opcode >> 0) & 7) += 2;
31375 READ_WORD_F(adr, src)
31376 adr = AREG((Opcode >> 9) & 7);
31377 AREG((Opcode >> 9) & 7) += 2;
31378 READ_WORD_F(adr, dst)
31380 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31381 flag_N = flag_C = res >> 8;
31382 flag_NotZ = res & 0xFFFF;
31393 adr = AREG((Opcode >> 0) & 7);
31394 AREG((Opcode >> 0) & 7) += 4;
31396 READ_LONG_F(adr, src)
31397 adr = AREG((Opcode >> 9) & 7);
31398 AREG((Opcode >> 9) & 7) += 4;
31399 READ_LONG_F(adr, dst)
31402 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31403 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31404 flag_N = res >> 24;
31418 READ_BYTE_F(adr, src)
31419 adr = AREG((Opcode >> 9) & 7);
31420 AREG((Opcode >> 9) & 7) += 1;
31421 READ_BYTE_F(adr, dst)
31423 flag_N = flag_C = res;
31424 flag_V = (src ^ dst) & (res ^ dst);
31425 flag_NotZ = res & 0xFF;
31439 READ_WORD_F(adr, src)
31440 adr = AREG((Opcode >> 9) & 7);
31441 AREG((Opcode >> 9) & 7) += 2;
31442 READ_WORD_F(adr, dst)
31444 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31445 flag_N = flag_C = res >> 8;
31446 flag_NotZ = res & 0xFFFF;
31460 READ_LONG_F(adr, src)
31461 adr = AREG((Opcode >> 9) & 7);
31462 AREG((Opcode >> 9) & 7) += 4;
31463 READ_LONG_F(adr, dst)
31466 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31467 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31468 flag_N = res >> 24;
31479 adr = AREG((Opcode >> 0) & 7);
31480 AREG((Opcode >> 0) & 7) += 1;
31482 READ_BYTE_F(adr, src)
31485 READ_BYTE_F(adr, dst)
31487 flag_N = flag_C = res;
31488 flag_V = (src ^ dst) & (res ^ dst);
31489 flag_NotZ = res & 0xFF;
31500 adr = AREG((Opcode >> 0) & 7);
31501 AREG((Opcode >> 0) & 7) += 2;
31503 READ_WORD_F(adr, src)
31506 READ_WORD_F(adr, dst)
31508 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31509 flag_N = flag_C = res >> 8;
31510 flag_NotZ = res & 0xFFFF;
31521 adr = AREG((Opcode >> 0) & 7);
31522 AREG((Opcode >> 0) & 7) += 4;
31524 READ_LONG_F(adr, src)
31527 READ_LONG_F(adr, dst)
31530 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31531 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31532 flag_N = res >> 24;
31546 READ_BYTE_F(adr, src)
31549 READ_BYTE_F(adr, dst)
31551 flag_N = flag_C = res;
31552 flag_V = (src ^ dst) & (res ^ dst);
31553 flag_NotZ = res & 0xFF;
31567 READ_WORD_F(adr, src)
31570 READ_WORD_F(adr, dst)
31572 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31573 flag_N = flag_C = res >> 8;
31574 flag_NotZ = res & 0xFFFF;
31588 READ_LONG_F(adr, src)
31591 READ_LONG_F(adr, dst)
31594 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31595 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31596 flag_N = res >> 24;
31607 src = DREGu8((Opcode >> 9) & 7);
31608 res = DREGu8((Opcode >> 0) & 7);
31614 DREGu8((Opcode >> 0) & 7) = res;
31624 src = DREGu8((Opcode >> 9) & 7);
31625 adr = AREG((Opcode >> 0) & 7);
31627 READ_BYTE_F(adr, res)
31633 WRITE_BYTE_F(adr, res)
31644 src = DREGu8((Opcode >> 9) & 7);
31645 adr = AREG((Opcode >> 0) & 7);
31646 AREG((Opcode >> 0) & 7) += 1;
31648 READ_BYTE_F(adr, res)
31654 WRITE_BYTE_F(adr, res)
31665 src = DREGu8((Opcode >> 9) & 7);
31666 adr = AREG((Opcode >> 0) & 7) - 1;
31667 AREG((Opcode >> 0) & 7) = adr;
31669 READ_BYTE_F(adr, res)
31675 WRITE_BYTE_F(adr, res)
31686 src = DREGu8((Opcode >> 9) & 7);
31688 adr += AREG((Opcode >> 0) & 7);
31690 READ_BYTE_F(adr, res)
31696 WRITE_BYTE_F(adr, res)
31707 src = DREGu8((Opcode >> 9) & 7);
31708 adr = AREG((Opcode >> 0) & 7);
31711 READ_BYTE_F(adr, res)
31717 WRITE_BYTE_F(adr, res)
31728 src = DREGu8((Opcode >> 9) & 7);
31731 READ_BYTE_F(adr, res)
31737 WRITE_BYTE_F(adr, res)
31748 src = DREGu8((Opcode >> 9) & 7);
31751 READ_BYTE_F(adr, res)
31757 WRITE_BYTE_F(adr, res)
31768 src = DREGu8((Opcode >> 9) & 7);
31772 READ_BYTE_F(adr, res)
31778 WRITE_BYTE_F(adr, res)
31789 src = DREGu8((Opcode >> 9) & 7);
31793 READ_BYTE_F(adr, res)
31799 WRITE_BYTE_F(adr, res)
31810 src = DREGu16((Opcode >> 9) & 7);
31811 res = DREGu16((Opcode >> 0) & 7);
31817 DREGu16((Opcode >> 0) & 7) = res;
31827 src = DREGu16((Opcode >> 9) & 7);
31828 adr = AREG((Opcode >> 0) & 7);
31830 READ_WORD_F(adr, res)
31836 WRITE_WORD_F(adr, res)
31847 src = DREGu16((Opcode >> 9) & 7);
31848 adr = AREG((Opcode >> 0) & 7);
31849 AREG((Opcode >> 0) & 7) += 2;
31851 READ_WORD_F(adr, res)
31857 WRITE_WORD_F(adr, res)
31868 src = DREGu16((Opcode >> 9) & 7);
31869 adr = AREG((Opcode >> 0) & 7) - 2;
31870 AREG((Opcode >> 0) & 7) = adr;
31872 READ_WORD_F(adr, res)
31878 WRITE_WORD_F(adr, res)
31889 src = DREGu16((Opcode >> 9) & 7);
31891 adr += AREG((Opcode >> 0) & 7);
31893 READ_WORD_F(adr, res)
31899 WRITE_WORD_F(adr, res)
31910 src = DREGu16((Opcode >> 9) & 7);
31911 adr = AREG((Opcode >> 0) & 7);
31914 READ_WORD_F(adr, res)
31920 WRITE_WORD_F(adr, res)
31931 src = DREGu16((Opcode >> 9) & 7);
31934 READ_WORD_F(adr, res)
31940 WRITE_WORD_F(adr, res)
31951 src = DREGu16((Opcode >> 9) & 7);
31954 READ_WORD_F(adr, res)
31960 WRITE_WORD_F(adr, res)
31971 src = DREGu16((Opcode >> 9) & 7);
31975 READ_WORD_F(adr, res)
31981 WRITE_WORD_F(adr, res)
31992 src = DREGu16((Opcode >> 9) & 7);
31996 READ_WORD_F(adr, res)
32002 WRITE_WORD_F(adr, res)
32013 src = DREGu32((Opcode >> 9) & 7);
32014 res = DREGu32((Opcode >> 0) & 7);
32019 flag_N = res >> 24;
32020 DREGu32((Opcode >> 0) & 7) = res;
32030 src = DREGu32((Opcode >> 9) & 7);
32031 adr = AREG((Opcode >> 0) & 7);
32033 READ_LONG_F(adr, res)
32038 flag_N = res >> 24;
32039 WRITE_LONG_F(adr, res)
32050 src = DREGu32((Opcode >> 9) & 7);
32051 adr = AREG((Opcode >> 0) & 7);
32052 AREG((Opcode >> 0) & 7) += 4;
32054 READ_LONG_F(adr, res)
32059 flag_N = res >> 24;
32060 WRITE_LONG_F(adr, res)
32071 src = DREGu32((Opcode >> 9) & 7);
32072 adr = AREG((Opcode >> 0) & 7) - 4;
32073 AREG((Opcode >> 0) & 7) = adr;
32075 READ_LONG_F(adr, res)
32080 flag_N = res >> 24;
32081 WRITE_LONG_F(adr, res)
32092 src = DREGu32((Opcode >> 9) & 7);
32094 adr += AREG((Opcode >> 0) & 7);
32096 READ_LONG_F(adr, res)
32101 flag_N = res >> 24;
32102 WRITE_LONG_F(adr, res)
32113 src = DREGu32((Opcode >> 9) & 7);
32114 adr = AREG((Opcode >> 0) & 7);
32117 READ_LONG_F(adr, res)
32122 flag_N = res >> 24;
32123 WRITE_LONG_F(adr, res)
32134 src = DREGu32((Opcode >> 9) & 7);
32137 READ_LONG_F(adr, res)
32142 flag_N = res >> 24;
32143 WRITE_LONG_F(adr, res)
32154 src = DREGu32((Opcode >> 9) & 7);
32157 READ_LONG_F(adr, res)
32162 flag_N = res >> 24;
32163 WRITE_LONG_F(adr, res)
32174 src = DREGu32((Opcode >> 9) & 7);
32178 READ_LONG_F(adr, res)
32183 flag_N = res >> 24;
32184 WRITE_LONG_F(adr, res)
32195 src = DREGu32((Opcode >> 9) & 7);
32199 READ_LONG_F(adr, res)
32204 flag_N = res >> 24;
32205 WRITE_LONG_F(adr, res)
32216 src = (s32)DREGs16((Opcode >> 0) & 7);
32217 dst = AREGu32((Opcode >> 9) & 7);
32220 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32221 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32222 flag_N = res >> 24;
32232 src = (s32)AREGs16((Opcode >> 0) & 7);
32233 dst = AREGu32((Opcode >> 9) & 7);
32236 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32237 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32238 flag_N = res >> 24;
32248 adr = AREG((Opcode >> 0) & 7);
32250 READSX_WORD_F(adr, src)
32251 dst = AREGu32((Opcode >> 9) & 7);
32254 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32255 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32256 flag_N = res >> 24;
32267 adr = AREG((Opcode >> 0) & 7);
32268 AREG((Opcode >> 0) & 7) += 2;
32270 READSX_WORD_F(adr, src)
32271 dst = AREGu32((Opcode >> 9) & 7);
32274 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32275 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32276 flag_N = res >> 24;
32287 adr = AREG((Opcode >> 0) & 7) - 2;
32288 AREG((Opcode >> 0) & 7) = adr;
32290 READSX_WORD_F(adr, src)
32291 dst = AREGu32((Opcode >> 9) & 7);
32294 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32295 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32296 flag_N = res >> 24;
32308 adr += AREG((Opcode >> 0) & 7);
32310 READSX_WORD_F(adr, src)
32311 dst = AREGu32((Opcode >> 9) & 7);
32314 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32315 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32316 flag_N = res >> 24;
32327 adr = AREG((Opcode >> 0) & 7);
32330 READSX_WORD_F(adr, src)
32331 dst = AREGu32((Opcode >> 9) & 7);
32334 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32335 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32336 flag_N = res >> 24;
32349 READSX_WORD_F(adr, src)
32350 dst = AREGu32((Opcode >> 9) & 7);
32353 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32354 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32355 flag_N = res >> 24;
32368 READSX_WORD_F(adr, src)
32369 dst = AREGu32((Opcode >> 9) & 7);
32372 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32373 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32374 flag_N = res >> 24;
32385 adr = GET_SWORD + ((u32)(PC) - BasePC);
32388 READSX_WORD_F(adr, src)
32389 dst = AREGu32((Opcode >> 9) & 7);
32392 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32393 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32394 flag_N = res >> 24;
32405 adr = (u32)(PC) - BasePC;
32408 READSX_WORD_F(adr, src)
32409 dst = AREGu32((Opcode >> 9) & 7);
32412 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32413 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32414 flag_N = res >> 24;
32426 dst = AREGu32((Opcode >> 9) & 7);
32429 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32430 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32431 flag_N = res >> 24;
32444 READSX_WORD_F(adr, src)
32445 dst = AREGu32((Opcode >> 9) & 7);
32448 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32449 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32450 flag_N = res >> 24;
32464 READSX_WORD_F(adr, src)
32465 dst = AREGu32((Opcode >> 9) & 7);
32468 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32469 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32470 flag_N = res >> 24;
32481 src = (s32)DREGs32((Opcode >> 0) & 7);
32482 dst = AREGu32((Opcode >> 9) & 7);
32485 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32486 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32487 flag_N = res >> 24;
32497 src = (s32)AREGs32((Opcode >> 0) & 7);
32498 dst = AREGu32((Opcode >> 9) & 7);
32501 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32502 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32503 flag_N = res >> 24;
32513 adr = AREG((Opcode >> 0) & 7);
32515 READSX_LONG_F(adr, src)
32516 dst = AREGu32((Opcode >> 9) & 7);
32519 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32520 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32521 flag_N = res >> 24;
32532 adr = AREG((Opcode >> 0) & 7);
32533 AREG((Opcode >> 0) & 7) += 4;
32535 READSX_LONG_F(adr, src)
32536 dst = AREGu32((Opcode >> 9) & 7);
32539 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32540 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32541 flag_N = res >> 24;
32552 adr = AREG((Opcode >> 0) & 7) - 4;
32553 AREG((Opcode >> 0) & 7) = adr;
32555 READSX_LONG_F(adr, src)
32556 dst = AREGu32((Opcode >> 9) & 7);
32559 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32560 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32561 flag_N = res >> 24;
32573 adr += AREG((Opcode >> 0) & 7);
32575 READSX_LONG_F(adr, src)
32576 dst = AREGu32((Opcode >> 9) & 7);
32579 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32580 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32581 flag_N = res >> 24;
32592 adr = AREG((Opcode >> 0) & 7);
32595 READSX_LONG_F(adr, src)
32596 dst = AREGu32((Opcode >> 9) & 7);
32599 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32600 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32601 flag_N = res >> 24;
32614 READSX_LONG_F(adr, src)
32615 dst = AREGu32((Opcode >> 9) & 7);
32618 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32619 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32620 flag_N = res >> 24;
32633 READSX_LONG_F(adr, src)
32634 dst = AREGu32((Opcode >> 9) & 7);
32637 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32638 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32639 flag_N = res >> 24;
32650 adr = GET_SWORD + ((u32)(PC) - BasePC);
32653 READSX_LONG_F(adr, src)
32654 dst = AREGu32((Opcode >> 9) & 7);
32657 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32658 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32659 flag_N = res >> 24;
32670 adr = (u32)(PC) - BasePC;
32673 READSX_LONG_F(adr, src)
32674 dst = AREGu32((Opcode >> 9) & 7);
32677 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32678 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32679 flag_N = res >> 24;
32691 dst = AREGu32((Opcode >> 9) & 7);
32694 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32695 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32696 flag_N = res >> 24;
32709 READSX_LONG_F(adr, src)
32710 dst = AREGu32((Opcode >> 9) & 7);
32713 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32714 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32715 flag_N = res >> 24;
32729 READSX_LONG_F(adr, src)
32730 dst = AREGu32((Opcode >> 9) & 7);
32733 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32734 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32735 flag_N = res >> 24;
32746 src = DREGu8((Opcode >> 0) & 7);
32747 res = DREGu8((Opcode >> 9) & 7);
32753 DREGu8((Opcode >> 9) & 7) = res;
32763 adr = AREG((Opcode >> 0) & 7);
32765 READ_BYTE_F(adr, src)
32766 res = DREGu8((Opcode >> 9) & 7);
32772 DREGu8((Opcode >> 9) & 7) = res;
32783 adr = AREG((Opcode >> 0) & 7);
32784 AREG((Opcode >> 0) & 7) += 1;
32786 READ_BYTE_F(adr, src)
32787 res = DREGu8((Opcode >> 9) & 7);
32793 DREGu8((Opcode >> 9) & 7) = res;
32804 adr = AREG((Opcode >> 0) & 7) - 1;
32805 AREG((Opcode >> 0) & 7) = adr;
32807 READ_BYTE_F(adr, src)
32808 res = DREGu8((Opcode >> 9) & 7);
32814 DREGu8((Opcode >> 9) & 7) = res;
32826 adr += AREG((Opcode >> 0) & 7);
32828 READ_BYTE_F(adr, src)
32829 res = DREGu8((Opcode >> 9) & 7);
32835 DREGu8((Opcode >> 9) & 7) = res;
32846 adr = AREG((Opcode >> 0) & 7);
32849 READ_BYTE_F(adr, src)
32850 res = DREGu8((Opcode >> 9) & 7);
32856 DREGu8((Opcode >> 9) & 7) = res;
32869 READ_BYTE_F(adr, src)
32870 res = DREGu8((Opcode >> 9) & 7);
32876 DREGu8((Opcode >> 9) & 7) = res;
32889 READ_BYTE_F(adr, src)
32890 res = DREGu8((Opcode >> 9) & 7);
32896 DREGu8((Opcode >> 9) & 7) = res;
32907 adr = GET_SWORD + ((u32)(PC) - BasePC);
32910 READ_BYTE_F(adr, src)
32911 res = DREGu8((Opcode >> 9) & 7);
32917 DREGu8((Opcode >> 9) & 7) = res;
32928 adr = (u32)(PC) - BasePC;
32931 READ_BYTE_F(adr, src)
32932 res = DREGu8((Opcode >> 9) & 7);
32938 DREGu8((Opcode >> 9) & 7) = res;
32950 res = DREGu8((Opcode >> 9) & 7);
32956 DREGu8((Opcode >> 9) & 7) = res;
32969 READ_BYTE_F(adr, src)
32970 res = DREGu8((Opcode >> 9) & 7);
32976 DREGu8((Opcode >> 9) & 7) = res;
32990 READ_BYTE_F(adr, src)
32991 res = DREGu8((Opcode >> 9) & 7);
32997 DREGu8((Opcode >> 9) & 7) = res;
33008 src = DREGu16((Opcode >> 0) & 7);
33009 res = DREGu16((Opcode >> 9) & 7);
33015 DREGu16((Opcode >> 9) & 7) = res;
33025 adr = AREG((Opcode >> 0) & 7);
33027 READ_WORD_F(adr, src)
33028 res = DREGu16((Opcode >> 9) & 7);
33034 DREGu16((Opcode >> 9) & 7) = res;
33045 adr = AREG((Opcode >> 0) & 7);
33046 AREG((Opcode >> 0) & 7) += 2;
33048 READ_WORD_F(adr, src)
33049 res = DREGu16((Opcode >> 9) & 7);
33055 DREGu16((Opcode >> 9) & 7) = res;
33066 adr = AREG((Opcode >> 0) & 7) - 2;
33067 AREG((Opcode >> 0) & 7) = adr;
33069 READ_WORD_F(adr, src)
33070 res = DREGu16((Opcode >> 9) & 7);
33076 DREGu16((Opcode >> 9) & 7) = res;
33088 adr += AREG((Opcode >> 0) & 7);
33090 READ_WORD_F(adr, src)
33091 res = DREGu16((Opcode >> 9) & 7);
33097 DREGu16((Opcode >> 9) & 7) = res;
33108 adr = AREG((Opcode >> 0) & 7);
33111 READ_WORD_F(adr, src)
33112 res = DREGu16((Opcode >> 9) & 7);
33118 DREGu16((Opcode >> 9) & 7) = res;
33131 READ_WORD_F(adr, src)
33132 res = DREGu16((Opcode >> 9) & 7);
33138 DREGu16((Opcode >> 9) & 7) = res;
33151 READ_WORD_F(adr, src)
33152 res = DREGu16((Opcode >> 9) & 7);
33158 DREGu16((Opcode >> 9) & 7) = res;
33169 adr = GET_SWORD + ((u32)(PC) - BasePC);
33172 READ_WORD_F(adr, src)
33173 res = DREGu16((Opcode >> 9) & 7);
33179 DREGu16((Opcode >> 9) & 7) = res;
33190 adr = (u32)(PC) - BasePC;
33193 READ_WORD_F(adr, src)
33194 res = DREGu16((Opcode >> 9) & 7);
33200 DREGu16((Opcode >> 9) & 7) = res;
33212 res = DREGu16((Opcode >> 9) & 7);
33218 DREGu16((Opcode >> 9) & 7) = res;
33231 READ_WORD_F(adr, src)
33232 res = DREGu16((Opcode >> 9) & 7);
33238 DREGu16((Opcode >> 9) & 7) = res;
33252 READ_WORD_F(adr, src)
33253 res = DREGu16((Opcode >> 9) & 7);
33259 DREGu16((Opcode >> 9) & 7) = res;
33270 src = DREGu32((Opcode >> 0) & 7);
33271 res = DREGu32((Opcode >> 9) & 7);
33276 flag_N = res >> 24;
33277 DREGu32((Opcode >> 9) & 7) = res;
33287 adr = AREG((Opcode >> 0) & 7);
33289 READ_LONG_F(adr, src)
33290 res = DREGu32((Opcode >> 9) & 7);
33295 flag_N = res >> 24;
33296 DREGu32((Opcode >> 9) & 7) = res;
33307 adr = AREG((Opcode >> 0) & 7);
33308 AREG((Opcode >> 0) & 7) += 4;
33310 READ_LONG_F(adr, src)
33311 res = DREGu32((Opcode >> 9) & 7);
33316 flag_N = res >> 24;
33317 DREGu32((Opcode >> 9) & 7) = res;
33328 adr = AREG((Opcode >> 0) & 7) - 4;
33329 AREG((Opcode >> 0) & 7) = adr;
33331 READ_LONG_F(adr, src)
33332 res = DREGu32((Opcode >> 9) & 7);
33337 flag_N = res >> 24;
33338 DREGu32((Opcode >> 9) & 7) = res;
33350 adr += AREG((Opcode >> 0) & 7);
33352 READ_LONG_F(adr, src)
33353 res = DREGu32((Opcode >> 9) & 7);
33358 flag_N = res >> 24;
33359 DREGu32((Opcode >> 9) & 7) = res;
33370 adr = AREG((Opcode >> 0) & 7);
33373 READ_LONG_F(adr, src)
33374 res = DREGu32((Opcode >> 9) & 7);
33379 flag_N = res >> 24;
33380 DREGu32((Opcode >> 9) & 7) = res;
33393 READ_LONG_F(adr, src)
33394 res = DREGu32((Opcode >> 9) & 7);
33399 flag_N = res >> 24;
33400 DREGu32((Opcode >> 9) & 7) = res;
33413 READ_LONG_F(adr, src)
33414 res = DREGu32((Opcode >> 9) & 7);
33419 flag_N = res >> 24;
33420 DREGu32((Opcode >> 9) & 7) = res;
33431 adr = GET_SWORD + ((u32)(PC) - BasePC);
33434 READ_LONG_F(adr, src)
33435 res = DREGu32((Opcode >> 9) & 7);
33440 flag_N = res >> 24;
33441 DREGu32((Opcode >> 9) & 7) = res;
33452 adr = (u32)(PC) - BasePC;
33455 READ_LONG_F(adr, src)
33456 res = DREGu32((Opcode >> 9) & 7);
33461 flag_N = res >> 24;
33462 DREGu32((Opcode >> 9) & 7) = res;
33474 res = DREGu32((Opcode >> 9) & 7);
33479 flag_N = res >> 24;
33480 DREGu32((Opcode >> 9) & 7) = res;
33493 READ_LONG_F(adr, src)
33494 res = DREGu32((Opcode >> 9) & 7);
33499 flag_N = res >> 24;
33500 DREGu32((Opcode >> 9) & 7) = res;
33514 READ_LONG_F(adr, src)
33515 res = DREGu32((Opcode >> 9) & 7);
33520 flag_N = res >> 24;
33521 DREGu32((Opcode >> 9) & 7) = res;
33532 src = DREGu8((Opcode >> 9) & 7);
33533 adr = AREG((Opcode >> 0) & 7);
33535 READ_BYTE_F(adr, res)
33541 WRITE_BYTE_F(adr, res)
33552 src = DREGu8((Opcode >> 9) & 7);
33553 adr = AREG((Opcode >> 0) & 7);
33554 AREG((Opcode >> 0) & 7) += 1;
33556 READ_BYTE_F(adr, res)
33562 WRITE_BYTE_F(adr, res)
33573 src = DREGu8((Opcode >> 9) & 7);
33574 adr = AREG((Opcode >> 0) & 7) - 1;
33575 AREG((Opcode >> 0) & 7) = adr;
33577 READ_BYTE_F(adr, res)
33583 WRITE_BYTE_F(adr, res)
33594 src = DREGu8((Opcode >> 9) & 7);
33596 adr += AREG((Opcode >> 0) & 7);
33598 READ_BYTE_F(adr, res)
33604 WRITE_BYTE_F(adr, res)
33615 src = DREGu8((Opcode >> 9) & 7);
33616 adr = AREG((Opcode >> 0) & 7);
33619 READ_BYTE_F(adr, res)
33625 WRITE_BYTE_F(adr, res)
33636 src = DREGu8((Opcode >> 9) & 7);
33639 READ_BYTE_F(adr, res)
33645 WRITE_BYTE_F(adr, res)
33656 src = DREGu8((Opcode >> 9) & 7);
33659 READ_BYTE_F(adr, res)
33665 WRITE_BYTE_F(adr, res)
33676 src = DREGu8((Opcode >> 9) & 7);
33680 READ_BYTE_F(adr, res)
33686 WRITE_BYTE_F(adr, res)
33697 src = DREGu8((Opcode >> 9) & 7);
33701 READ_BYTE_F(adr, res)
33707 WRITE_BYTE_F(adr, res)
33718 src = DREGu16((Opcode >> 9) & 7);
33719 adr = AREG((Opcode >> 0) & 7);
33721 READ_WORD_F(adr, res)
33727 WRITE_WORD_F(adr, res)
33738 src = DREGu16((Opcode >> 9) & 7);
33739 adr = AREG((Opcode >> 0) & 7);
33740 AREG((Opcode >> 0) & 7) += 2;
33742 READ_WORD_F(adr, res)
33748 WRITE_WORD_F(adr, res)
33759 src = DREGu16((Opcode >> 9) & 7);
33760 adr = AREG((Opcode >> 0) & 7) - 2;
33761 AREG((Opcode >> 0) & 7) = adr;
33763 READ_WORD_F(adr, res)
33769 WRITE_WORD_F(adr, res)
33780 src = DREGu16((Opcode >> 9) & 7);
33782 adr += AREG((Opcode >> 0) & 7);
33784 READ_WORD_F(adr, res)
33790 WRITE_WORD_F(adr, res)
33801 src = DREGu16((Opcode >> 9) & 7);
33802 adr = AREG((Opcode >> 0) & 7);
33805 READ_WORD_F(adr, res)
33811 WRITE_WORD_F(adr, res)
33822 src = DREGu16((Opcode >> 9) & 7);
33825 READ_WORD_F(adr, res)
33831 WRITE_WORD_F(adr, res)
33842 src = DREGu16((Opcode >> 9) & 7);
33845 READ_WORD_F(adr, res)
33851 WRITE_WORD_F(adr, res)
33862 src = DREGu16((Opcode >> 9) & 7);
33866 READ_WORD_F(adr, res)
33872 WRITE_WORD_F(adr, res)
33883 src = DREGu16((Opcode >> 9) & 7);
33887 READ_WORD_F(adr, res)
33893 WRITE_WORD_F(adr, res)
33904 src = DREGu32((Opcode >> 9) & 7);
33905 adr = AREG((Opcode >> 0) & 7);
33907 READ_LONG_F(adr, res)
33912 flag_N = res >> 24;
33913 WRITE_LONG_F(adr, res)
33924 src = DREGu32((Opcode >> 9) & 7);
33925 adr = AREG((Opcode >> 0) & 7);
33926 AREG((Opcode >> 0) & 7) += 4;
33928 READ_LONG_F(adr, res)
33933 flag_N = res >> 24;
33934 WRITE_LONG_F(adr, res)
33945 src = DREGu32((Opcode >> 9) & 7);
33946 adr = AREG((Opcode >> 0) & 7) - 4;
33947 AREG((Opcode >> 0) & 7) = adr;
33949 READ_LONG_F(adr, res)
33954 flag_N = res >> 24;
33955 WRITE_LONG_F(adr, res)
33966 src = DREGu32((Opcode >> 9) & 7);
33968 adr += AREG((Opcode >> 0) & 7);
33970 READ_LONG_F(adr, res)
33975 flag_N = res >> 24;
33976 WRITE_LONG_F(adr, res)
33987 src = DREGu32((Opcode >> 9) & 7);
33988 adr = AREG((Opcode >> 0) & 7);
33991 READ_LONG_F(adr, res)
33996 flag_N = res >> 24;
33997 WRITE_LONG_F(adr, res)
34008 src = DREGu32((Opcode >> 9) & 7);
34011 READ_LONG_F(adr, res)
34016 flag_N = res >> 24;
34017 WRITE_LONG_F(adr, res)
34028 src = DREGu32((Opcode >> 9) & 7);
34031 READ_LONG_F(adr, res)
34036 flag_N = res >> 24;
34037 WRITE_LONG_F(adr, res)
34048 src = DREGu32((Opcode >> 9) & 7);
34052 READ_LONG_F(adr, res)
34057 flag_N = res >> 24;
34058 WRITE_LONG_F(adr, res)
34069 src = DREGu32((Opcode >> 9) & 7);
34073 READ_LONG_F(adr, res)
34078 flag_N = res >> 24;
34079 WRITE_LONG_F(adr, res)
34090 src = DREGu8((Opcode >> 0) & 7);
34091 dst = DREGu8((Opcode >> 9) & 7);
34092 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34093 if (res > 9) res += 6;
34094 res += (dst & 0xF0) + (src & 0xF0);
34098 flag_X = flag_C = M68K_SR_C;
34100 else flag_X = flag_C = 0;
34101 flag_NotZ |= res & 0xFF;
34103 DREGu8((Opcode >> 9) & 7) = res;
34113 adr = AREG((Opcode >> 0) & 7) - 1;
34114 AREG((Opcode >> 0) & 7) = adr;
34116 READ_BYTE_F(adr, src)
34117 adr = AREG((Opcode >> 9) & 7) - 1;
34118 AREG((Opcode >> 9) & 7) = adr;
34119 READ_BYTE_F(adr, dst)
34120 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34121 if (res > 9) res += 6;
34122 res += (dst & 0xF0) + (src & 0xF0);
34126 flag_X = flag_C = M68K_SR_C;
34128 else flag_X = flag_C = 0;
34129 flag_NotZ |= res & 0xFF;
34131 WRITE_BYTE_F(adr, res)
34145 READ_BYTE_F(adr, src)
34146 adr = AREG((Opcode >> 9) & 7) - 1;
34147 AREG((Opcode >> 9) & 7) = adr;
34148 READ_BYTE_F(adr, dst)
34149 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34150 if (res > 9) res += 6;
34151 res += (dst & 0xF0) + (src & 0xF0);
34155 flag_X = flag_C = M68K_SR_C;
34157 else flag_X = flag_C = 0;
34158 flag_NotZ |= res & 0xFF;
34160 WRITE_BYTE_F(adr, res)
34171 adr = AREG((Opcode >> 0) & 7) - 1;
34172 AREG((Opcode >> 0) & 7) = adr;
34174 READ_BYTE_F(adr, src)
34177 READ_BYTE_F(adr, dst)
34178 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34179 if (res > 9) res += 6;
34180 res += (dst & 0xF0) + (src & 0xF0);
34184 flag_X = flag_C = M68K_SR_C;
34186 else flag_X = flag_C = 0;
34187 flag_NotZ |= res & 0xFF;
34189 WRITE_BYTE_F(adr, res)
34203 READ_BYTE_F(adr, src)
34206 READ_BYTE_F(adr, dst)
34207 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34208 if (res > 9) res += 6;
34209 res += (dst & 0xF0) + (src & 0xF0);
34213 flag_X = flag_C = M68K_SR_C;
34215 else flag_X = flag_C = 0;
34216 flag_NotZ |= res & 0xFF;
34218 WRITE_BYTE_F(adr, res)
34229 src = DREGu16((Opcode >> 0) & 7);
34230 res = DREGu16((Opcode >> 9) & 7);
34232 flag_N = res >> 24;
34234 flag_V = flag_C = 0;
34235 DREGu32((Opcode >> 9) & 7) = res;
34236 #ifdef USE_CYCLONE_TIMING
34249 adr = AREG((Opcode >> 0) & 7);
34251 READ_WORD_F(adr, src)
34252 res = DREGu16((Opcode >> 9) & 7);
34254 flag_N = res >> 24;
34256 flag_V = flag_C = 0;
34257 DREGu32((Opcode >> 9) & 7) = res;
34259 #ifdef USE_CYCLONE_TIMING
34272 adr = AREG((Opcode >> 0) & 7);
34273 AREG((Opcode >> 0) & 7) += 2;
34275 READ_WORD_F(adr, src)
34276 res = DREGu16((Opcode >> 9) & 7);
34278 flag_N = res >> 24;
34280 flag_V = flag_C = 0;
34281 DREGu32((Opcode >> 9) & 7) = res;
34283 #ifdef USE_CYCLONE_TIMING
34296 adr = AREG((Opcode >> 0) & 7) - 2;
34297 AREG((Opcode >> 0) & 7) = adr;
34299 READ_WORD_F(adr, src)
34300 res = DREGu16((Opcode >> 9) & 7);
34302 flag_N = res >> 24;
34304 flag_V = flag_C = 0;
34305 DREGu32((Opcode >> 9) & 7) = res;
34307 #ifdef USE_CYCLONE_TIMING
34321 adr += AREG((Opcode >> 0) & 7);
34323 READ_WORD_F(adr, src)
34324 res = DREGu16((Opcode >> 9) & 7);
34326 flag_N = res >> 24;
34328 flag_V = flag_C = 0;
34329 DREGu32((Opcode >> 9) & 7) = res;
34331 #ifdef USE_CYCLONE_TIMING
34344 adr = AREG((Opcode >> 0) & 7);
34347 READ_WORD_F(adr, src)
34348 res = DREGu16((Opcode >> 9) & 7);
34350 flag_N = res >> 24;
34352 flag_V = flag_C = 0;
34353 DREGu32((Opcode >> 9) & 7) = res;
34355 #ifdef USE_CYCLONE_TIMING
34370 READ_WORD_F(adr, src)
34371 res = DREGu16((Opcode >> 9) & 7);
34373 flag_N = res >> 24;
34375 flag_V = flag_C = 0;
34376 DREGu32((Opcode >> 9) & 7) = res;
34378 #ifdef USE_CYCLONE_TIMING
34393 READ_WORD_F(adr, src)
34394 res = DREGu16((Opcode >> 9) & 7);
34396 flag_N = res >> 24;
34398 flag_V = flag_C = 0;
34399 DREGu32((Opcode >> 9) & 7) = res;
34401 #ifdef USE_CYCLONE_TIMING
34414 adr = GET_SWORD + ((u32)(PC) - BasePC);
34417 READ_WORD_F(adr, src)
34418 res = DREGu16((Opcode >> 9) & 7);
34420 flag_N = res >> 24;
34422 flag_V = flag_C = 0;
34423 DREGu32((Opcode >> 9) & 7) = res;
34425 #ifdef USE_CYCLONE_TIMING
34438 adr = (u32)(PC) - BasePC;
34441 READ_WORD_F(adr, src)
34442 res = DREGu16((Opcode >> 9) & 7);
34444 flag_N = res >> 24;
34446 flag_V = flag_C = 0;
34447 DREGu32((Opcode >> 9) & 7) = res;
34449 #ifdef USE_CYCLONE_TIMING
34463 res = DREGu16((Opcode >> 9) & 7);
34465 flag_N = res >> 24;
34467 flag_V = flag_C = 0;
34468 DREGu32((Opcode >> 9) & 7) = res;
34469 #ifdef USE_CYCLONE_TIMING
34485 READ_WORD_F(adr, src)
34486 res = DREGu16((Opcode >> 9) & 7);
34488 flag_N = res >> 24;
34490 flag_V = flag_C = 0;
34491 DREGu32((Opcode >> 9) & 7) = res;
34493 #ifdef USE_CYCLONE_TIMING
34509 READ_WORD_F(adr, src)
34510 res = DREGu16((Opcode >> 9) & 7);
34512 flag_N = res >> 24;
34514 flag_V = flag_C = 0;
34515 DREGu32((Opcode >> 9) & 7) = res;
34517 #ifdef USE_CYCLONE_TIMING
34530 src = (s32)DREGs16((Opcode >> 0) & 7);
34531 res = (s32)DREGs16((Opcode >> 9) & 7);
34532 res = ((s32)res) * ((s32)src);
34533 flag_N = res >> 24;
34535 flag_V = flag_C = 0;
34536 DREGu32((Opcode >> 9) & 7) = res;
34537 #ifdef USE_CYCLONE_TIMING
34550 adr = AREG((Opcode >> 0) & 7);
34552 READSX_WORD_F(adr, src)
34553 res = (s32)DREGs16((Opcode >> 9) & 7);
34554 res = ((s32)res) * ((s32)src);
34555 flag_N = res >> 24;
34557 flag_V = flag_C = 0;
34558 DREGu32((Opcode >> 9) & 7) = res;
34560 #ifdef USE_CYCLONE_TIMING
34573 adr = AREG((Opcode >> 0) & 7);
34574 AREG((Opcode >> 0) & 7) += 2;
34576 READSX_WORD_F(adr, src)
34577 res = (s32)DREGs16((Opcode >> 9) & 7);
34578 res = ((s32)res) * ((s32)src);
34579 flag_N = res >> 24;
34581 flag_V = flag_C = 0;
34582 DREGu32((Opcode >> 9) & 7) = res;
34584 #ifdef USE_CYCLONE_TIMING
34597 adr = AREG((Opcode >> 0) & 7) - 2;
34598 AREG((Opcode >> 0) & 7) = adr;
34600 READSX_WORD_F(adr, src)
34601 res = (s32)DREGs16((Opcode >> 9) & 7);
34602 res = ((s32)res) * ((s32)src);
34603 flag_N = res >> 24;
34605 flag_V = flag_C = 0;
34606 DREGu32((Opcode >> 9) & 7) = res;
34608 #ifdef USE_CYCLONE_TIMING
34622 adr += AREG((Opcode >> 0) & 7);
34624 READSX_WORD_F(adr, src)
34625 res = (s32)DREGs16((Opcode >> 9) & 7);
34626 res = ((s32)res) * ((s32)src);
34627 flag_N = res >> 24;
34629 flag_V = flag_C = 0;
34630 DREGu32((Opcode >> 9) & 7) = res;
34632 #ifdef USE_CYCLONE_TIMING
34645 adr = AREG((Opcode >> 0) & 7);
34648 READSX_WORD_F(adr, src)
34649 res = (s32)DREGs16((Opcode >> 9) & 7);
34650 res = ((s32)res) * ((s32)src);
34651 flag_N = res >> 24;
34653 flag_V = flag_C = 0;
34654 DREGu32((Opcode >> 9) & 7) = res;
34656 #ifdef USE_CYCLONE_TIMING
34671 READSX_WORD_F(adr, src)
34672 res = (s32)DREGs16((Opcode >> 9) & 7);
34673 res = ((s32)res) * ((s32)src);
34674 flag_N = res >> 24;
34676 flag_V = flag_C = 0;
34677 DREGu32((Opcode >> 9) & 7) = res;
34679 #ifdef USE_CYCLONE_TIMING
34694 READSX_WORD_F(adr, src)
34695 res = (s32)DREGs16((Opcode >> 9) & 7);
34696 res = ((s32)res) * ((s32)src);
34697 flag_N = res >> 24;
34699 flag_V = flag_C = 0;
34700 DREGu32((Opcode >> 9) & 7) = res;
34702 #ifdef USE_CYCLONE_TIMING
34715 adr = GET_SWORD + ((u32)(PC) - BasePC);
34718 READSX_WORD_F(adr, src)
34719 res = (s32)DREGs16((Opcode >> 9) & 7);
34720 res = ((s32)res) * ((s32)src);
34721 flag_N = res >> 24;
34723 flag_V = flag_C = 0;
34724 DREGu32((Opcode >> 9) & 7) = res;
34726 #ifdef USE_CYCLONE_TIMING
34739 adr = (u32)(PC) - BasePC;
34742 READSX_WORD_F(adr, src)
34743 res = (s32)DREGs16((Opcode >> 9) & 7);
34744 res = ((s32)res) * ((s32)src);
34745 flag_N = res >> 24;
34747 flag_V = flag_C = 0;
34748 DREGu32((Opcode >> 9) & 7) = res;
34750 #ifdef USE_CYCLONE_TIMING
34764 res = (s32)DREGs16((Opcode >> 9) & 7);
34765 res = ((s32)res) * ((s32)src);
34766 flag_N = res >> 24;
34768 flag_V = flag_C = 0;
34769 DREGu32((Opcode >> 9) & 7) = res;
34770 #ifdef USE_CYCLONE_TIMING
34786 READSX_WORD_F(adr, src)
34787 res = (s32)DREGs16((Opcode >> 9) & 7);
34788 res = ((s32)res) * ((s32)src);
34789 flag_N = res >> 24;
34791 flag_V = flag_C = 0;
34792 DREGu32((Opcode >> 9) & 7) = res;
34794 #ifdef USE_CYCLONE_TIMING
34810 READSX_WORD_F(adr, src)
34811 res = (s32)DREGs16((Opcode >> 9) & 7);
34812 res = ((s32)res) * ((s32)src);
34813 flag_N = res >> 24;
34815 flag_V = flag_C = 0;
34816 DREGu32((Opcode >> 9) & 7) = res;
34818 #ifdef USE_CYCLONE_TIMING
34831 res = DREGu32((Opcode >> 0) & 7);
34832 src = DREGu32((Opcode >> 9) & 7);
34833 DREGu32((Opcode >> 9) & 7) = res;
34835 DREGu32((Opcode >> 0) & 7) = res;
34845 res = AREGu32((Opcode >> 0) & 7);
34846 src = AREGu32((Opcode >> 9) & 7);
34847 AREG((Opcode >> 9) & 7) = res;
34849 AREG((Opcode >> 0) & 7) = res;
34859 res = AREGu32((Opcode >> 0) & 7);
34860 src = DREGu32((Opcode >> 9) & 7);
34861 DREGu32((Opcode >> 9) & 7) = res;
34863 AREG((Opcode >> 0) & 7) = res;
34873 src = DREGu8((Opcode >> 0) & 7);
34874 dst = DREGu8((Opcode >> 9) & 7);
34876 flag_N = flag_X = flag_C = res;
34877 flag_V = (src ^ res) & (dst ^ res);
34878 flag_NotZ = res & 0xFF;
34879 DREGu8((Opcode >> 9) & 7) = res;
34890 // can't read byte from Ax registers !
34891 m68kcontext.execinfo |= M68K_FAULTED;
34892 m68kcontext.io_cycle_counter = 0;
34894 goto famec_Exec_End;
34895 dst = DREGu8((Opcode >> 9) & 7);
34897 flag_N = flag_X = flag_C = res;
34898 flag_V = (src ^ res) & (dst ^ res);
34899 flag_NotZ = res & 0xFF;
34900 DREGu8((Opcode >> 9) & 7) = res;
34912 adr = AREG((Opcode >> 0) & 7);
34914 READ_BYTE_F(adr, src)
34915 dst = DREGu8((Opcode >> 9) & 7);
34917 flag_N = flag_X = flag_C = res;
34918 flag_V = (src ^ res) & (dst ^ res);
34919 flag_NotZ = res & 0xFF;
34920 DREGu8((Opcode >> 9) & 7) = res;
34931 adr = AREG((Opcode >> 0) & 7);
34932 AREG((Opcode >> 0) & 7) += 1;
34934 READ_BYTE_F(adr, src)
34935 dst = DREGu8((Opcode >> 9) & 7);
34937 flag_N = flag_X = flag_C = res;
34938 flag_V = (src ^ res) & (dst ^ res);
34939 flag_NotZ = res & 0xFF;
34940 DREGu8((Opcode >> 9) & 7) = res;
34951 adr = AREG((Opcode >> 0) & 7) - 1;
34952 AREG((Opcode >> 0) & 7) = adr;
34954 READ_BYTE_F(adr, src)
34955 dst = DREGu8((Opcode >> 9) & 7);
34957 flag_N = flag_X = flag_C = res;
34958 flag_V = (src ^ res) & (dst ^ res);
34959 flag_NotZ = res & 0xFF;
34960 DREGu8((Opcode >> 9) & 7) = res;
34972 adr += AREG((Opcode >> 0) & 7);
34974 READ_BYTE_F(adr, src)
34975 dst = DREGu8((Opcode >> 9) & 7);
34977 flag_N = flag_X = flag_C = res;
34978 flag_V = (src ^ res) & (dst ^ res);
34979 flag_NotZ = res & 0xFF;
34980 DREGu8((Opcode >> 9) & 7) = res;
34991 adr = AREG((Opcode >> 0) & 7);
34994 READ_BYTE_F(adr, src)
34995 dst = DREGu8((Opcode >> 9) & 7);
34997 flag_N = flag_X = flag_C = res;
34998 flag_V = (src ^ res) & (dst ^ res);
34999 flag_NotZ = res & 0xFF;
35000 DREGu8((Opcode >> 9) & 7) = res;
35013 READ_BYTE_F(adr, src)
35014 dst = DREGu8((Opcode >> 9) & 7);
35016 flag_N = flag_X = flag_C = res;
35017 flag_V = (src ^ res) & (dst ^ res);
35018 flag_NotZ = res & 0xFF;
35019 DREGu8((Opcode >> 9) & 7) = res;
35032 READ_BYTE_F(adr, src)
35033 dst = DREGu8((Opcode >> 9) & 7);
35035 flag_N = flag_X = flag_C = res;
35036 flag_V = (src ^ res) & (dst ^ res);
35037 flag_NotZ = res & 0xFF;
35038 DREGu8((Opcode >> 9) & 7) = res;
35049 adr = GET_SWORD + ((u32)(PC) - BasePC);
35052 READ_BYTE_F(adr, src)
35053 dst = DREGu8((Opcode >> 9) & 7);
35055 flag_N = flag_X = flag_C = res;
35056 flag_V = (src ^ res) & (dst ^ res);
35057 flag_NotZ = res & 0xFF;
35058 DREGu8((Opcode >> 9) & 7) = res;
35069 adr = (u32)(PC) - BasePC;
35072 READ_BYTE_F(adr, src)
35073 dst = DREGu8((Opcode >> 9) & 7);
35075 flag_N = flag_X = flag_C = res;
35076 flag_V = (src ^ res) & (dst ^ res);
35077 flag_NotZ = res & 0xFF;
35078 DREGu8((Opcode >> 9) & 7) = res;
35090 dst = DREGu8((Opcode >> 9) & 7);
35092 flag_N = flag_X = flag_C = res;
35093 flag_V = (src ^ res) & (dst ^ res);
35094 flag_NotZ = res & 0xFF;
35095 DREGu8((Opcode >> 9) & 7) = res;
35108 READ_BYTE_F(adr, src)
35109 dst = DREGu8((Opcode >> 9) & 7);
35111 flag_N = flag_X = flag_C = res;
35112 flag_V = (src ^ res) & (dst ^ res);
35113 flag_NotZ = res & 0xFF;
35114 DREGu8((Opcode >> 9) & 7) = res;
35128 READ_BYTE_F(adr, src)
35129 dst = DREGu8((Opcode >> 9) & 7);
35131 flag_N = flag_X = flag_C = res;
35132 flag_V = (src ^ res) & (dst ^ res);
35133 flag_NotZ = res & 0xFF;
35134 DREGu8((Opcode >> 9) & 7) = res;
35145 src = DREGu16((Opcode >> 0) & 7);
35146 dst = DREGu16((Opcode >> 9) & 7);
35148 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35149 flag_N = flag_X = flag_C = res >> 8;
35150 flag_NotZ = res & 0xFFFF;
35151 DREGu16((Opcode >> 9) & 7) = res;
35161 src = AREGu16((Opcode >> 0) & 7);
35162 dst = DREGu16((Opcode >> 9) & 7);
35164 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35165 flag_N = flag_X = flag_C = res >> 8;
35166 flag_NotZ = res & 0xFFFF;
35167 DREGu16((Opcode >> 9) & 7) = res;
35177 adr = AREG((Opcode >> 0) & 7);
35179 READ_WORD_F(adr, src)
35180 dst = DREGu16((Opcode >> 9) & 7);
35182 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35183 flag_N = flag_X = flag_C = res >> 8;
35184 flag_NotZ = res & 0xFFFF;
35185 DREGu16((Opcode >> 9) & 7) = res;
35196 adr = AREG((Opcode >> 0) & 7);
35197 AREG((Opcode >> 0) & 7) += 2;
35199 READ_WORD_F(adr, src)
35200 dst = DREGu16((Opcode >> 9) & 7);
35202 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35203 flag_N = flag_X = flag_C = res >> 8;
35204 flag_NotZ = res & 0xFFFF;
35205 DREGu16((Opcode >> 9) & 7) = res;
35216 adr = AREG((Opcode >> 0) & 7) - 2;
35217 AREG((Opcode >> 0) & 7) = adr;
35219 READ_WORD_F(adr, src)
35220 dst = DREGu16((Opcode >> 9) & 7);
35222 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35223 flag_N = flag_X = flag_C = res >> 8;
35224 flag_NotZ = res & 0xFFFF;
35225 DREGu16((Opcode >> 9) & 7) = res;
35237 adr += AREG((Opcode >> 0) & 7);
35239 READ_WORD_F(adr, src)
35240 dst = DREGu16((Opcode >> 9) & 7);
35242 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35243 flag_N = flag_X = flag_C = res >> 8;
35244 flag_NotZ = res & 0xFFFF;
35245 DREGu16((Opcode >> 9) & 7) = res;
35256 adr = AREG((Opcode >> 0) & 7);
35259 READ_WORD_F(adr, src)
35260 dst = DREGu16((Opcode >> 9) & 7);
35262 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35263 flag_N = flag_X = flag_C = res >> 8;
35264 flag_NotZ = res & 0xFFFF;
35265 DREGu16((Opcode >> 9) & 7) = res;
35278 READ_WORD_F(adr, src)
35279 dst = DREGu16((Opcode >> 9) & 7);
35281 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35282 flag_N = flag_X = flag_C = res >> 8;
35283 flag_NotZ = res & 0xFFFF;
35284 DREGu16((Opcode >> 9) & 7) = res;
35297 READ_WORD_F(adr, src)
35298 dst = DREGu16((Opcode >> 9) & 7);
35300 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35301 flag_N = flag_X = flag_C = res >> 8;
35302 flag_NotZ = res & 0xFFFF;
35303 DREGu16((Opcode >> 9) & 7) = res;
35314 adr = GET_SWORD + ((u32)(PC) - BasePC);
35317 READ_WORD_F(adr, src)
35318 dst = DREGu16((Opcode >> 9) & 7);
35320 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35321 flag_N = flag_X = flag_C = res >> 8;
35322 flag_NotZ = res & 0xFFFF;
35323 DREGu16((Opcode >> 9) & 7) = res;
35334 adr = (u32)(PC) - BasePC;
35337 READ_WORD_F(adr, src)
35338 dst = DREGu16((Opcode >> 9) & 7);
35340 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35341 flag_N = flag_X = flag_C = res >> 8;
35342 flag_NotZ = res & 0xFFFF;
35343 DREGu16((Opcode >> 9) & 7) = res;
35355 dst = DREGu16((Opcode >> 9) & 7);
35357 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35358 flag_N = flag_X = flag_C = res >> 8;
35359 flag_NotZ = res & 0xFFFF;
35360 DREGu16((Opcode >> 9) & 7) = res;
35373 READ_WORD_F(adr, src)
35374 dst = DREGu16((Opcode >> 9) & 7);
35376 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35377 flag_N = flag_X = flag_C = res >> 8;
35378 flag_NotZ = res & 0xFFFF;
35379 DREGu16((Opcode >> 9) & 7) = res;
35393 READ_WORD_F(adr, src)
35394 dst = DREGu16((Opcode >> 9) & 7);
35396 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35397 flag_N = flag_X = flag_C = res >> 8;
35398 flag_NotZ = res & 0xFFFF;
35399 DREGu16((Opcode >> 9) & 7) = res;
35410 src = DREGu32((Opcode >> 0) & 7);
35411 dst = DREGu32((Opcode >> 9) & 7);
35414 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35415 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35416 flag_N = res >> 24;
35417 DREGu32((Opcode >> 9) & 7) = res;
35427 src = AREGu32((Opcode >> 0) & 7);
35428 dst = DREGu32((Opcode >> 9) & 7);
35431 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35432 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35433 flag_N = res >> 24;
35434 DREGu32((Opcode >> 9) & 7) = res;
35444 adr = AREG((Opcode >> 0) & 7);
35446 READ_LONG_F(adr, src)
35447 dst = DREGu32((Opcode >> 9) & 7);
35450 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35451 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35452 flag_N = res >> 24;
35453 DREGu32((Opcode >> 9) & 7) = res;
35464 adr = AREG((Opcode >> 0) & 7);
35465 AREG((Opcode >> 0) & 7) += 4;
35467 READ_LONG_F(adr, src)
35468 dst = DREGu32((Opcode >> 9) & 7);
35471 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35472 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35473 flag_N = res >> 24;
35474 DREGu32((Opcode >> 9) & 7) = res;
35485 adr = AREG((Opcode >> 0) & 7) - 4;
35486 AREG((Opcode >> 0) & 7) = adr;
35488 READ_LONG_F(adr, src)
35489 dst = DREGu32((Opcode >> 9) & 7);
35492 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35493 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35494 flag_N = res >> 24;
35495 DREGu32((Opcode >> 9) & 7) = res;
35507 adr += AREG((Opcode >> 0) & 7);
35509 READ_LONG_F(adr, src)
35510 dst = DREGu32((Opcode >> 9) & 7);
35513 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35514 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35515 flag_N = res >> 24;
35516 DREGu32((Opcode >> 9) & 7) = res;
35527 adr = AREG((Opcode >> 0) & 7);
35530 READ_LONG_F(adr, src)
35531 dst = DREGu32((Opcode >> 9) & 7);
35534 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35535 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35536 flag_N = res >> 24;
35537 DREGu32((Opcode >> 9) & 7) = res;
35550 READ_LONG_F(adr, src)
35551 dst = DREGu32((Opcode >> 9) & 7);
35554 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35555 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35556 flag_N = res >> 24;
35557 DREGu32((Opcode >> 9) & 7) = res;
35570 READ_LONG_F(adr, src)
35571 dst = DREGu32((Opcode >> 9) & 7);
35574 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35575 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35576 flag_N = res >> 24;
35577 DREGu32((Opcode >> 9) & 7) = res;
35588 adr = GET_SWORD + ((u32)(PC) - BasePC);
35591 READ_LONG_F(adr, src)
35592 dst = DREGu32((Opcode >> 9) & 7);
35595 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35596 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35597 flag_N = res >> 24;
35598 DREGu32((Opcode >> 9) & 7) = res;
35609 adr = (u32)(PC) - BasePC;
35612 READ_LONG_F(adr, src)
35613 dst = DREGu32((Opcode >> 9) & 7);
35616 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35617 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35618 flag_N = res >> 24;
35619 DREGu32((Opcode >> 9) & 7) = res;
35631 dst = DREGu32((Opcode >> 9) & 7);
35634 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35635 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35636 flag_N = res >> 24;
35637 DREGu32((Opcode >> 9) & 7) = res;
35650 READ_LONG_F(adr, src)
35651 dst = DREGu32((Opcode >> 9) & 7);
35654 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35655 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35656 flag_N = res >> 24;
35657 DREGu32((Opcode >> 9) & 7) = res;
35671 READ_LONG_F(adr, src)
35672 dst = DREGu32((Opcode >> 9) & 7);
35675 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35676 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35677 flag_N = res >> 24;
35678 DREGu32((Opcode >> 9) & 7) = res;
35689 src = DREGu8((Opcode >> 9) & 7);
35690 adr = AREG((Opcode >> 0) & 7);
35692 READ_BYTE_F(adr, dst)
35694 flag_N = flag_X = flag_C = res;
35695 flag_V = (src ^ res) & (dst ^ res);
35696 flag_NotZ = res & 0xFF;
35697 WRITE_BYTE_F(adr, res)
35708 src = DREGu8((Opcode >> 9) & 7);
35709 adr = AREG((Opcode >> 0) & 7);
35710 AREG((Opcode >> 0) & 7) += 1;
35712 READ_BYTE_F(adr, dst)
35714 flag_N = flag_X = flag_C = res;
35715 flag_V = (src ^ res) & (dst ^ res);
35716 flag_NotZ = res & 0xFF;
35717 WRITE_BYTE_F(adr, res)
35728 src = DREGu8((Opcode >> 9) & 7);
35729 adr = AREG((Opcode >> 0) & 7) - 1;
35730 AREG((Opcode >> 0) & 7) = adr;
35732 READ_BYTE_F(adr, dst)
35734 flag_N = flag_X = flag_C = res;
35735 flag_V = (src ^ res) & (dst ^ res);
35736 flag_NotZ = res & 0xFF;
35737 WRITE_BYTE_F(adr, res)
35748 src = DREGu8((Opcode >> 9) & 7);
35750 adr += AREG((Opcode >> 0) & 7);
35752 READ_BYTE_F(adr, dst)
35754 flag_N = flag_X = flag_C = res;
35755 flag_V = (src ^ res) & (dst ^ res);
35756 flag_NotZ = res & 0xFF;
35757 WRITE_BYTE_F(adr, res)
35768 src = DREGu8((Opcode >> 9) & 7);
35769 adr = AREG((Opcode >> 0) & 7);
35772 READ_BYTE_F(adr, dst)
35774 flag_N = flag_X = flag_C = res;
35775 flag_V = (src ^ res) & (dst ^ res);
35776 flag_NotZ = res & 0xFF;
35777 WRITE_BYTE_F(adr, res)
35788 src = DREGu8((Opcode >> 9) & 7);
35791 READ_BYTE_F(adr, dst)
35793 flag_N = flag_X = flag_C = res;
35794 flag_V = (src ^ res) & (dst ^ res);
35795 flag_NotZ = res & 0xFF;
35796 WRITE_BYTE_F(adr, res)
35807 src = DREGu8((Opcode >> 9) & 7);
35810 READ_BYTE_F(adr, dst)
35812 flag_N = flag_X = flag_C = res;
35813 flag_V = (src ^ res) & (dst ^ res);
35814 flag_NotZ = res & 0xFF;
35815 WRITE_BYTE_F(adr, res)
35826 src = DREGu8((Opcode >> 9) & 7);
35830 READ_BYTE_F(adr, dst)
35832 flag_N = flag_X = flag_C = res;
35833 flag_V = (src ^ res) & (dst ^ res);
35834 flag_NotZ = res & 0xFF;
35835 WRITE_BYTE_F(adr, res)
35846 src = DREGu8((Opcode >> 9) & 7);
35850 READ_BYTE_F(adr, dst)
35852 flag_N = flag_X = flag_C = res;
35853 flag_V = (src ^ res) & (dst ^ res);
35854 flag_NotZ = res & 0xFF;
35855 WRITE_BYTE_F(adr, res)
35866 src = DREGu16((Opcode >> 9) & 7);
35867 adr = AREG((Opcode >> 0) & 7);
35869 READ_WORD_F(adr, dst)
35871 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35872 flag_N = flag_X = flag_C = res >> 8;
35873 flag_NotZ = res & 0xFFFF;
35874 WRITE_WORD_F(adr, res)
35885 src = DREGu16((Opcode >> 9) & 7);
35886 adr = AREG((Opcode >> 0) & 7);
35887 AREG((Opcode >> 0) & 7) += 2;
35889 READ_WORD_F(adr, dst)
35891 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35892 flag_N = flag_X = flag_C = res >> 8;
35893 flag_NotZ = res & 0xFFFF;
35894 WRITE_WORD_F(adr, res)
35905 src = DREGu16((Opcode >> 9) & 7);
35906 adr = AREG((Opcode >> 0) & 7) - 2;
35907 AREG((Opcode >> 0) & 7) = adr;
35909 READ_WORD_F(adr, dst)
35911 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35912 flag_N = flag_X = flag_C = res >> 8;
35913 flag_NotZ = res & 0xFFFF;
35914 WRITE_WORD_F(adr, res)
35925 src = DREGu16((Opcode >> 9) & 7);
35927 adr += AREG((Opcode >> 0) & 7);
35929 READ_WORD_F(adr, dst)
35931 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35932 flag_N = flag_X = flag_C = res >> 8;
35933 flag_NotZ = res & 0xFFFF;
35934 WRITE_WORD_F(adr, res)
35945 src = DREGu16((Opcode >> 9) & 7);
35946 adr = AREG((Opcode >> 0) & 7);
35949 READ_WORD_F(adr, dst)
35951 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35952 flag_N = flag_X = flag_C = res >> 8;
35953 flag_NotZ = res & 0xFFFF;
35954 WRITE_WORD_F(adr, res)
35965 src = DREGu16((Opcode >> 9) & 7);
35968 READ_WORD_F(adr, dst)
35970 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35971 flag_N = flag_X = flag_C = res >> 8;
35972 flag_NotZ = res & 0xFFFF;
35973 WRITE_WORD_F(adr, res)
35984 src = DREGu16((Opcode >> 9) & 7);
35987 READ_WORD_F(adr, dst)
35989 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35990 flag_N = flag_X = flag_C = res >> 8;
35991 flag_NotZ = res & 0xFFFF;
35992 WRITE_WORD_F(adr, res)
36003 src = DREGu16((Opcode >> 9) & 7);
36007 READ_WORD_F(adr, dst)
36009 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36010 flag_N = flag_X = flag_C = res >> 8;
36011 flag_NotZ = res & 0xFFFF;
36012 WRITE_WORD_F(adr, res)
36023 src = DREGu16((Opcode >> 9) & 7);
36027 READ_WORD_F(adr, dst)
36029 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36030 flag_N = flag_X = flag_C = res >> 8;
36031 flag_NotZ = res & 0xFFFF;
36032 WRITE_WORD_F(adr, res)
36043 src = DREGu32((Opcode >> 9) & 7);
36044 adr = AREG((Opcode >> 0) & 7);
36046 READ_LONG_F(adr, dst)
36049 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36050 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36051 flag_N = res >> 24;
36052 WRITE_LONG_F(adr, res)
36063 src = DREGu32((Opcode >> 9) & 7);
36064 adr = AREG((Opcode >> 0) & 7);
36065 AREG((Opcode >> 0) & 7) += 4;
36067 READ_LONG_F(adr, dst)
36070 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36071 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36072 flag_N = res >> 24;
36073 WRITE_LONG_F(adr, res)
36084 src = DREGu32((Opcode >> 9) & 7);
36085 adr = AREG((Opcode >> 0) & 7) - 4;
36086 AREG((Opcode >> 0) & 7) = adr;
36088 READ_LONG_F(adr, dst)
36091 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36092 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36093 flag_N = res >> 24;
36094 WRITE_LONG_F(adr, res)
36105 src = DREGu32((Opcode >> 9) & 7);
36107 adr += AREG((Opcode >> 0) & 7);
36109 READ_LONG_F(adr, dst)
36112 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36113 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36114 flag_N = res >> 24;
36115 WRITE_LONG_F(adr, res)
36126 src = DREGu32((Opcode >> 9) & 7);
36127 adr = AREG((Opcode >> 0) & 7);
36130 READ_LONG_F(adr, dst)
36133 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36134 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36135 flag_N = res >> 24;
36136 WRITE_LONG_F(adr, res)
36147 src = DREGu32((Opcode >> 9) & 7);
36150 READ_LONG_F(adr, dst)
36153 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36154 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36155 flag_N = res >> 24;
36156 WRITE_LONG_F(adr, res)
36167 src = DREGu32((Opcode >> 9) & 7);
36170 READ_LONG_F(adr, dst)
36173 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36174 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36175 flag_N = res >> 24;
36176 WRITE_LONG_F(adr, res)
36187 src = DREGu32((Opcode >> 9) & 7);
36191 READ_LONG_F(adr, dst)
36194 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36195 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36196 flag_N = res >> 24;
36197 WRITE_LONG_F(adr, res)
36208 src = DREGu32((Opcode >> 9) & 7);
36212 READ_LONG_F(adr, dst)
36215 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36216 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36217 flag_N = res >> 24;
36218 WRITE_LONG_F(adr, res)
36229 src = DREGu8((Opcode >> 0) & 7);
36230 dst = DREGu8((Opcode >> 9) & 7);
36231 res = dst + src + ((flag_X >> 8) & 1);
36232 flag_N = flag_X = flag_C = res;
36233 flag_V = (src ^ res) & (dst ^ res);
36234 flag_NotZ |= res & 0xFF;
36235 DREGu8((Opcode >> 9) & 7) = res;
36245 src = DREGu16((Opcode >> 0) & 7);
36246 dst = DREGu16((Opcode >> 9) & 7);
36247 res = dst + src + ((flag_X >> 8) & 1);
36248 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36249 flag_N = flag_X = flag_C = res >> 8;
36250 flag_NotZ |= res & 0xFFFF;
36251 DREGu16((Opcode >> 9) & 7) = res;
36261 src = DREGu32((Opcode >> 0) & 7);
36262 dst = DREGu32((Opcode >> 9) & 7);
36263 res = dst + src + ((flag_X >> 8) & 1);
36265 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36266 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36267 flag_N = res >> 24;
36268 DREGu32((Opcode >> 9) & 7) = res;
36278 adr = AREG((Opcode >> 0) & 7) - 1;
36279 AREG((Opcode >> 0) & 7) = adr;
36281 READ_BYTE_F(adr, src)
36282 adr = AREG((Opcode >> 9) & 7) - 1;
36283 AREG((Opcode >> 9) & 7) = adr;
36284 READ_BYTE_F(adr, dst)
36285 res = dst + src + ((flag_X >> 8) & 1);
36286 flag_N = flag_X = flag_C = res;
36287 flag_V = (src ^ res) & (dst ^ res);
36288 flag_NotZ |= res & 0xFF;
36289 WRITE_BYTE_F(adr, res)
36300 adr = AREG((Opcode >> 0) & 7) - 2;
36301 AREG((Opcode >> 0) & 7) = adr;
36303 READ_WORD_F(adr, src)
36304 adr = AREG((Opcode >> 9) & 7) - 2;
36305 AREG((Opcode >> 9) & 7) = adr;
36306 READ_WORD_F(adr, dst)
36307 res = dst + src + ((flag_X >> 8) & 1);
36308 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36309 flag_N = flag_X = flag_C = res >> 8;
36310 flag_NotZ |= res & 0xFFFF;
36311 WRITE_WORD_F(adr, res)
36322 adr = AREG((Opcode >> 0) & 7) - 4;
36323 AREG((Opcode >> 0) & 7) = adr;
36325 READ_LONG_F(adr, src)
36326 adr = AREG((Opcode >> 9) & 7) - 4;
36327 AREG((Opcode >> 9) & 7) = adr;
36328 READ_LONG_F(adr, dst)
36329 res = dst + src + ((flag_X >> 8) & 1);
36331 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36332 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36333 flag_N = res >> 24;
36334 WRITE_LONG_F(adr, res)
36348 READ_BYTE_F(adr, src)
36349 adr = AREG((Opcode >> 9) & 7) - 1;
36350 AREG((Opcode >> 9) & 7) = adr;
36351 READ_BYTE_F(adr, dst)
36352 res = dst + src + ((flag_X >> 8) & 1);
36353 flag_N = flag_X = flag_C = res;
36354 flag_V = (src ^ res) & (dst ^ res);
36355 flag_NotZ |= res & 0xFF;
36356 WRITE_BYTE_F(adr, res)
36370 READ_WORD_F(adr, src)
36371 adr = AREG((Opcode >> 9) & 7) - 2;
36372 AREG((Opcode >> 9) & 7) = adr;
36373 READ_WORD_F(adr, dst)
36374 res = dst + src + ((flag_X >> 8) & 1);
36375 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36376 flag_N = flag_X = flag_C = res >> 8;
36377 flag_NotZ |= res & 0xFFFF;
36378 WRITE_WORD_F(adr, res)
36392 READ_LONG_F(adr, src)
36393 adr = AREG((Opcode >> 9) & 7) - 4;
36394 AREG((Opcode >> 9) & 7) = adr;
36395 READ_LONG_F(adr, dst)
36396 res = dst + src + ((flag_X >> 8) & 1);
36398 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36399 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36400 flag_N = res >> 24;
36401 WRITE_LONG_F(adr, res)
36412 adr = AREG((Opcode >> 0) & 7) - 1;
36413 AREG((Opcode >> 0) & 7) = adr;
36415 READ_BYTE_F(adr, src)
36418 READ_BYTE_F(adr, dst)
36419 res = dst + src + ((flag_X >> 8) & 1);
36420 flag_N = flag_X = flag_C = res;
36421 flag_V = (src ^ res) & (dst ^ res);
36422 flag_NotZ |= res & 0xFF;
36423 WRITE_BYTE_F(adr, res)
36434 adr = AREG((Opcode >> 0) & 7) - 2;
36435 AREG((Opcode >> 0) & 7) = adr;
36437 READ_WORD_F(adr, src)
36440 READ_WORD_F(adr, dst)
36441 res = dst + src + ((flag_X >> 8) & 1);
36442 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36443 flag_N = flag_X = flag_C = res >> 8;
36444 flag_NotZ |= res & 0xFFFF;
36445 WRITE_WORD_F(adr, res)
36456 adr = AREG((Opcode >> 0) & 7) - 4;
36457 AREG((Opcode >> 0) & 7) = adr;
36459 READ_LONG_F(adr, src)
36462 READ_LONG_F(adr, dst)
36463 res = dst + src + ((flag_X >> 8) & 1);
36465 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36466 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36467 flag_N = res >> 24;
36468 WRITE_LONG_F(adr, res)
36482 READ_BYTE_F(adr, src)
36485 READ_BYTE_F(adr, dst)
36486 res = dst + src + ((flag_X >> 8) & 1);
36487 flag_N = flag_X = flag_C = res;
36488 flag_V = (src ^ res) & (dst ^ res);
36489 flag_NotZ |= res & 0xFF;
36490 WRITE_BYTE_F(adr, res)
36504 READ_WORD_F(adr, src)
36507 READ_WORD_F(adr, dst)
36508 res = dst + src + ((flag_X >> 8) & 1);
36509 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36510 flag_N = flag_X = flag_C = res >> 8;
36511 flag_NotZ |= res & 0xFFFF;
36512 WRITE_WORD_F(adr, res)
36526 READ_LONG_F(adr, src)
36529 READ_LONG_F(adr, dst)
36530 res = dst + src + ((flag_X >> 8) & 1);
36532 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36533 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36534 flag_N = res >> 24;
36535 WRITE_LONG_F(adr, res)
36546 src = (s32)DREGs16((Opcode >> 0) & 7);
36547 dst = AREGu32((Opcode >> 9) & 7);
36549 AREG((Opcode >> 9) & 7) = res;
36559 src = (s32)AREGs16((Opcode >> 0) & 7);
36560 dst = AREGu32((Opcode >> 9) & 7);
36562 AREG((Opcode >> 9) & 7) = res;
36572 adr = AREG((Opcode >> 0) & 7);
36574 READSX_WORD_F(adr, src)
36575 dst = AREGu32((Opcode >> 9) & 7);
36577 AREG((Opcode >> 9) & 7) = res;
36579 #ifdef USE_CYCLONE_TIMING
36592 adr = AREG((Opcode >> 0) & 7);
36593 AREG((Opcode >> 0) & 7) += 2;
36595 READSX_WORD_F(adr, src)
36596 dst = AREGu32((Opcode >> 9) & 7);
36598 AREG((Opcode >> 9) & 7) = res;
36600 #ifdef USE_CYCLONE_TIMING
36613 adr = AREG((Opcode >> 0) & 7) - 2;
36614 AREG((Opcode >> 0) & 7) = adr;
36616 READSX_WORD_F(adr, src)
36617 dst = AREGu32((Opcode >> 9) & 7);
36619 AREG((Opcode >> 9) & 7) = res;
36621 #ifdef USE_CYCLONE_TIMING
36635 adr += AREG((Opcode >> 0) & 7);
36637 READSX_WORD_F(adr, src)
36638 dst = AREGu32((Opcode >> 9) & 7);
36640 AREG((Opcode >> 9) & 7) = res;
36642 #ifdef USE_CYCLONE_TIMING
36655 adr = AREG((Opcode >> 0) & 7);
36658 READSX_WORD_F(adr, src)
36659 dst = AREGu32((Opcode >> 9) & 7);
36661 AREG((Opcode >> 9) & 7) = res;
36663 #ifdef USE_CYCLONE_TIMING
36678 READSX_WORD_F(adr, src)
36679 dst = AREGu32((Opcode >> 9) & 7);
36681 AREG((Opcode >> 9) & 7) = res;
36683 #ifdef USE_CYCLONE_TIMING
36698 READSX_WORD_F(adr, src)
36699 dst = AREGu32((Opcode >> 9) & 7);
36701 AREG((Opcode >> 9) & 7) = res;
36703 #ifdef USE_CYCLONE_TIMING
36716 adr = GET_SWORD + ((u32)(PC) - BasePC);
36719 READSX_WORD_F(adr, src)
36720 dst = AREGu32((Opcode >> 9) & 7);
36722 AREG((Opcode >> 9) & 7) = res;
36724 #ifdef USE_CYCLONE_TIMING
36737 adr = (u32)(PC) - BasePC;
36740 READSX_WORD_F(adr, src)
36741 dst = AREGu32((Opcode >> 9) & 7);
36743 AREG((Opcode >> 9) & 7) = res;
36745 #ifdef USE_CYCLONE_TIMING
36759 dst = AREGu32((Opcode >> 9) & 7);
36761 AREG((Opcode >> 9) & 7) = res;
36774 READSX_WORD_F(adr, src)
36775 dst = AREGu32((Opcode >> 9) & 7);
36777 AREG((Opcode >> 9) & 7) = res;
36779 #ifdef USE_CYCLONE_TIMING
36795 READSX_WORD_F(adr, src)
36796 dst = AREGu32((Opcode >> 9) & 7);
36798 AREG((Opcode >> 9) & 7) = res;
36800 #ifdef USE_CYCLONE_TIMING
36813 src = (s32)DREGs32((Opcode >> 0) & 7);
36814 dst = AREGu32((Opcode >> 9) & 7);
36816 AREG((Opcode >> 9) & 7) = res;
36817 #ifdef USE_CYCLONE_TIMING
36830 src = (s32)AREGs32((Opcode >> 0) & 7);
36831 dst = AREGu32((Opcode >> 9) & 7);
36833 AREG((Opcode >> 9) & 7) = res;
36834 #ifdef USE_CYCLONE_TIMING
36847 adr = AREG((Opcode >> 0) & 7);
36849 READSX_LONG_F(adr, src)
36850 dst = AREGu32((Opcode >> 9) & 7);
36852 AREG((Opcode >> 9) & 7) = res;
36863 adr = AREG((Opcode >> 0) & 7);
36864 AREG((Opcode >> 0) & 7) += 4;
36866 READSX_LONG_F(adr, src)
36867 dst = AREGu32((Opcode >> 9) & 7);
36869 AREG((Opcode >> 9) & 7) = res;
36880 adr = AREG((Opcode >> 0) & 7) - 4;
36881 AREG((Opcode >> 0) & 7) = adr;
36883 READSX_LONG_F(adr, src)
36884 dst = AREGu32((Opcode >> 9) & 7);
36886 AREG((Opcode >> 9) & 7) = res;
36898 adr += AREG((Opcode >> 0) & 7);
36900 READSX_LONG_F(adr, src)
36901 dst = AREGu32((Opcode >> 9) & 7);
36903 AREG((Opcode >> 9) & 7) = res;
36914 adr = AREG((Opcode >> 0) & 7);
36917 READSX_LONG_F(adr, src)
36918 dst = AREGu32((Opcode >> 9) & 7);
36920 AREG((Opcode >> 9) & 7) = res;
36933 READSX_LONG_F(adr, src)
36934 dst = AREGu32((Opcode >> 9) & 7);
36936 AREG((Opcode >> 9) & 7) = res;
36949 READSX_LONG_F(adr, src)
36950 dst = AREGu32((Opcode >> 9) & 7);
36952 AREG((Opcode >> 9) & 7) = res;
36963 adr = GET_SWORD + ((u32)(PC) - BasePC);
36966 READSX_LONG_F(adr, src)
36967 dst = AREGu32((Opcode >> 9) & 7);
36969 AREG((Opcode >> 9) & 7) = res;
36980 adr = (u32)(PC) - BasePC;
36983 READSX_LONG_F(adr, src)
36984 dst = AREGu32((Opcode >> 9) & 7);
36986 AREG((Opcode >> 9) & 7) = res;
36998 dst = AREGu32((Opcode >> 9) & 7);
37000 AREG((Opcode >> 9) & 7) = res;
37001 #ifdef USE_CYCLONE_TIMING
37017 READSX_LONG_F(adr, src)
37018 dst = AREGu32((Opcode >> 9) & 7);
37020 AREG((Opcode >> 9) & 7) = res;
37034 READSX_LONG_F(adr, src)
37035 dst = AREGu32((Opcode >> 9) & 7);
37037 AREG((Opcode >> 9) & 7) = res;
37050 sft = (((Opcode >> 9) - 1) & 7) + 1;
37051 m68kcontext.io_cycle_counter -= sft * 2;
37052 src = (s32)DREGs8((Opcode >> 0) & 7);
37054 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37055 res = ((s32)src) >> sft;
37058 DREGu8((Opcode >> 0) & 7) = res;
37070 sft = (((Opcode >> 9) - 1) & 7) + 1;
37071 m68kcontext.io_cycle_counter -= sft * 2;
37072 src = (s32)DREGs16((Opcode >> 0) & 7);
37074 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37075 res = ((s32)src) >> sft;
37078 DREGu16((Opcode >> 0) & 7) = res;
37090 sft = (((Opcode >> 9) - 1) & 7) + 1;
37091 m68kcontext.io_cycle_counter -= sft * 2;
37092 src = (s32)DREGs32((Opcode >> 0) & 7);
37094 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37095 res = ((s32)src) >> sft;
37096 flag_N = res >> 24;
37098 DREGu32((Opcode >> 0) & 7) = res;
37110 sft = (((Opcode >> 9) - 1) & 7) + 1;
37111 m68kcontext.io_cycle_counter -= sft * 2;
37112 src = DREGu8((Opcode >> 0) & 7);
37113 flag_N = flag_V = 0;
37114 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37117 DREGu8((Opcode >> 0) & 7) = res;
37129 sft = (((Opcode >> 9) - 1) & 7) + 1;
37130 m68kcontext.io_cycle_counter -= sft * 2;
37131 src = DREGu16((Opcode >> 0) & 7);
37132 flag_N = flag_V = 0;
37133 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37136 DREGu16((Opcode >> 0) & 7) = res;
37148 sft = (((Opcode >> 9) - 1) & 7) + 1;
37149 m68kcontext.io_cycle_counter -= sft * 2;
37150 src = DREGu32((Opcode >> 0) & 7);
37151 flag_N = flag_V = 0;
37152 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37155 DREGu32((Opcode >> 0) & 7) = res;
37167 sft = (((Opcode >> 9) - 1) & 7) + 1;
37168 m68kcontext.io_cycle_counter -= sft * 2;
37169 src = DREGu8((Opcode >> 0) & 7);
37170 src |= (flag_X & M68K_SR_X) << 0;
37171 res = (src >> sft) | (src << (9 - sft));
37172 flag_X = flag_C = res >> 0;
37175 flag_NotZ = res & 0x000000FF;
37176 DREGu8((Opcode >> 0) & 7) = res;
37188 sft = (((Opcode >> 9) - 1) & 7) + 1;
37189 m68kcontext.io_cycle_counter -= sft * 2;
37190 src = DREGu16((Opcode >> 0) & 7);
37191 src |= (flag_X & M68K_SR_X) << 8;
37192 res = (src >> sft) | (src << (17 - sft));
37193 flag_X = flag_C = res >> 8;
37196 flag_NotZ = res & 0x0000FFFF;
37197 DREGu16((Opcode >> 0) & 7) = res;
37209 sft = (((Opcode >> 9) - 1) & 7) + 1;
37210 m68kcontext.io_cycle_counter -= sft * 2;
37211 src = DREGu32((Opcode >> 0) & 7);
37212 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37213 if (sft == 1) res = (src >> 1) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1)));
37214 else res = (src >> sft) | (src << (33 - sft)) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + sft)));
37217 flag_N = res >> 24;
37219 DREGu32((Opcode >> 0) & 7) = res;
37231 sft = (((Opcode >> 9) - 1) & 7) + 1;
37232 m68kcontext.io_cycle_counter -= sft * 2;
37233 src = DREGu8((Opcode >> 0) & 7);
37235 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37236 res = (src >> sft) | (src << (8 - sft));
37238 flag_NotZ = res & 0x000000FF;
37239 DREGu8((Opcode >> 0) & 7) = res;
37251 sft = (((Opcode >> 9) - 1) & 7) + 1;
37252 m68kcontext.io_cycle_counter -= sft * 2;
37253 src = DREGu16((Opcode >> 0) & 7);
37255 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37256 res = (src >> sft) | (src << (16 - sft));
37258 flag_NotZ = res & 0x0000FFFF;
37259 DREGu16((Opcode >> 0) & 7) = res;
37271 sft = (((Opcode >> 9) - 1) & 7) + 1;
37272 m68kcontext.io_cycle_counter -= sft * 2;
37273 src = DREGu32((Opcode >> 0) & 7);
37275 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37276 res = (src >> sft) | (src << (32 - sft));
37277 flag_N = res >> 24;
37279 DREGu32((Opcode >> 0) & 7) = res;
37291 sft = (((Opcode >> 9) - 1) & 7) + 1;
37292 m68kcontext.io_cycle_counter -= sft * 2;
37293 src = DREGu8((Opcode >> 0) & 7);
37296 flag_X = flag_C = src << (0 + sft);
37299 flag_NotZ = res & 0x000000FF;
37300 DREGu8((Opcode >> 0) & 7) = res;
37302 if ((sft > 7) && (src)) flag_V = M68K_SR_V;
37305 u32 msk = (((s32)0x80000000) >> (sft + 24)) & 0x000000FF;
37307 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37312 if (src) flag_V = M68K_SR_V;
37314 flag_X = flag_C = src << M68K_SR_C_SFT;
37316 DREGu8((Opcode >> 0) & 7) = res;
37330 sft = (((Opcode >> 9) - 1) & 7) + 1;
37331 m68kcontext.io_cycle_counter -= sft * 2;
37332 src = DREGu16((Opcode >> 0) & 7);
37333 flag_X = flag_C = src >> (8 - sft);
37336 flag_NotZ = res & 0x0000FFFF;
37337 DREGu16((Opcode >> 0) & 7) = res;
37340 u32 msk = (((s32)0x80000000) >> (sft + 16)) & 0x0000FFFF;
37342 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37355 sft = (((Opcode >> 9) - 1) & 7) + 1;
37356 m68kcontext.io_cycle_counter -= sft * 2;
37357 src = DREGu32((Opcode >> 0) & 7);
37358 flag_X = flag_C = src >> (24 - sft);
37360 flag_N = res >> 24;
37361 flag_NotZ = res & 0xFFFFFFFF;
37362 DREGu32((Opcode >> 0) & 7) = res;
37365 u32 msk = (((s32)0x80000000) >> (sft + 0)) & 0xFFFFFFFF;
37367 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37380 sft = (((Opcode >> 9) - 1) & 7) + 1;
37381 m68kcontext.io_cycle_counter -= sft * 2;
37382 src = DREGu8((Opcode >> 0) & 7);
37384 flag_X = flag_C = src << (0 + sft);
37387 flag_NotZ = res & 0x000000FF;
37388 DREGu8((Opcode >> 0) & 7) = res;
37400 sft = (((Opcode >> 9) - 1) & 7) + 1;
37401 m68kcontext.io_cycle_counter -= sft * 2;
37402 src = DREGu16((Opcode >> 0) & 7);
37404 flag_X = flag_C = src >> (8 - sft);
37407 flag_NotZ = res & 0x0000FFFF;
37408 DREGu16((Opcode >> 0) & 7) = res;
37420 sft = (((Opcode >> 9) - 1) & 7) + 1;
37421 m68kcontext.io_cycle_counter -= sft * 2;
37422 src = DREGu32((Opcode >> 0) & 7);
37424 flag_X = flag_C = src >> (24 - sft);
37426 flag_N = res >> 24;
37427 flag_NotZ = res & 0xFFFFFFFF;
37428 DREGu32((Opcode >> 0) & 7) = res;
37440 sft = (((Opcode >> 9) - 1) & 7) + 1;
37441 m68kcontext.io_cycle_counter -= sft * 2;
37442 src = DREGu8((Opcode >> 0) & 7);
37443 src |= (flag_X & M68K_SR_X) << 0;
37444 res = (src << sft) | (src >> (9 - sft));
37445 flag_X = flag_C = res >> 0;
37448 flag_NotZ = res & 0x000000FF;
37449 DREGu8((Opcode >> 0) & 7) = res;
37461 sft = (((Opcode >> 9) - 1) & 7) + 1;
37462 m68kcontext.io_cycle_counter -= sft * 2;
37463 src = DREGu16((Opcode >> 0) & 7);
37464 src |= (flag_X & M68K_SR_X) << 8;
37465 res = (src << sft) | (src >> (17 - sft));
37466 flag_X = flag_C = res >> 8;
37469 flag_NotZ = res & 0x0000FFFF;
37470 DREGu16((Opcode >> 0) & 7) = res;
37482 sft = (((Opcode >> 9) - 1) & 7) + 1;
37483 m68kcontext.io_cycle_counter -= sft * 2;
37484 src = DREGu32((Opcode >> 0) & 7);
37485 flag_C = src >> ((32 - M68K_SR_C_SFT) - sft);
37486 if (sft == 1) res = (src << 1) | ((flag_X & M68K_SR_X) >> ((M68K_SR_X_SFT + 1) - 1));
37487 else res = (src << sft) | (src >> (33 - sft)) | ((flag_X & M68K_SR_X) >> ((M68K_SR_X_SFT + 1) - sft));
37490 flag_N = res >> 24;
37492 DREGu32((Opcode >> 0) & 7) = res;
37504 sft = (((Opcode >> 9) - 1) & 7) + 1;
37505 m68kcontext.io_cycle_counter -= sft * 2;
37506 src = DREGu8((Opcode >> 0) & 7);
37508 flag_C = src << (0 + sft);
37509 res = (src << sft) | (src >> (8 - sft));
37511 flag_NotZ = res & 0x000000FF;
37512 DREGu8((Opcode >> 0) & 7) = res;
37524 sft = (((Opcode >> 9) - 1) & 7) + 1;
37525 m68kcontext.io_cycle_counter -= sft * 2;
37526 src = DREGu16((Opcode >> 0) & 7);
37528 flag_C = src >> (8 - sft);
37529 res = (src << sft) | (src >> (16 - sft));
37531 flag_NotZ = res & 0x0000FFFF;
37532 DREGu16((Opcode >> 0) & 7) = res;
37544 sft = (((Opcode >> 9) - 1) & 7) + 1;
37545 m68kcontext.io_cycle_counter -= sft * 2;
37546 src = DREGu32((Opcode >> 0) & 7);
37548 flag_C = src >> (24 - sft);
37549 res = (src << sft) | (src >> (32 - sft));
37550 flag_N = res >> 24;
37552 DREGu32((Opcode >> 0) & 7) = res;
37564 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37565 src = (s32)DREGs8((Opcode >> 0) & 7);
37568 m68kcontext.io_cycle_counter -= sft * 2;
37572 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37573 res = ((s32)src) >> sft;
37576 DREGu8((Opcode >> 0) & 7) = res;
37580 if (src & (1 << 7))
37582 flag_N = M68K_SR_N;
37585 flag_C = M68K_SR_C;
37586 flag_X = M68K_SR_X;
37588 DREGu8((Opcode >> 0) & 7) = res;
37598 DREGu8((Opcode >> 0) & 7) = res;
37617 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37618 src = (s32)DREGs16((Opcode >> 0) & 7);
37621 m68kcontext.io_cycle_counter -= sft * 2;
37625 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37626 res = ((s32)src) >> sft;
37629 DREGu16((Opcode >> 0) & 7) = res;
37633 if (src & (1 << 15))
37635 flag_N = M68K_SR_N;
37638 flag_C = M68K_SR_C;
37639 flag_X = M68K_SR_X;
37641 DREGu16((Opcode >> 0) & 7) = res;
37651 DREGu16((Opcode >> 0) & 7) = res;
37665 #ifdef USE_CYCLONE_TIMING
37675 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37676 src = (s32)DREGs32((Opcode >> 0) & 7);
37679 m68kcontext.io_cycle_counter -= sft * 2;
37683 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37684 res = ((s32)src) >> sft;
37685 flag_N = res >> 24;
37687 DREGu32((Opcode >> 0) & 7) = res;
37691 if (src & (1 << 31))
37693 flag_N = M68K_SR_N;
37696 flag_C = M68K_SR_C;
37697 flag_X = M68K_SR_X;
37699 DREGu32((Opcode >> 0) & 7) = res;
37709 DREGu32((Opcode >> 0) & 7) = res;
37715 flag_N = src >> 24;
37729 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37730 src = DREGu8((Opcode >> 0) & 7);
37733 m68kcontext.io_cycle_counter -= sft * 2;
37736 flag_N = flag_V = 0;
37737 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37740 DREGu8((Opcode >> 0) & 7) = res;
37744 flag_X = flag_C = 0;
37749 DREGu8((Opcode >> 0) & 7) = res;
37768 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37769 src = DREGu16((Opcode >> 0) & 7);
37772 m68kcontext.io_cycle_counter -= sft * 2;
37775 flag_N = flag_V = 0;
37776 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37779 DREGu16((Opcode >> 0) & 7) = res;
37783 flag_X = flag_C = 0;
37788 DREGu16((Opcode >> 0) & 7) = res;
37802 #ifdef USE_CYCLONE_TIMING
37812 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37813 src = DREGu32((Opcode >> 0) & 7);
37816 m68kcontext.io_cycle_counter -= sft * 2;
37819 flag_N = flag_V = 0;
37820 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37823 DREGu32((Opcode >> 0) & 7) = res;
37827 if (sft == 32) flag_C = src >> (31 - M68K_SR_C_SFT);
37834 DREGu32((Opcode >> 0) & 7) = res;
37840 flag_N = src >> 24;
37854 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37855 src = DREGu8((Opcode >> 0) & 7);
37858 m68kcontext.io_cycle_counter -= sft * 2;
37861 src |= (flag_X & M68K_SR_X) << 0;
37862 res = (src >> sft) | (src << (9 - sft));
37863 flag_X = flag_C = res >> 0;
37866 flag_NotZ = res & 0x000000FF;
37867 DREGu8((Opcode >> 0) & 7) = res;
37886 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37887 src = DREGu16((Opcode >> 0) & 7);
37890 m68kcontext.io_cycle_counter -= sft * 2;
37893 src |= (flag_X & M68K_SR_X) << 8;
37894 res = (src >> sft) | (src << (17 - sft));
37895 flag_X = flag_C = res >> 8;
37898 flag_NotZ = res & 0x0000FFFF;
37899 DREGu16((Opcode >> 0) & 7) = res;
37913 #ifdef USE_CYCLONE_TIMING
37923 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37924 src = DREGu32((Opcode >> 0) & 7);
37927 m68kcontext.io_cycle_counter -= sft * 2;
37932 if (sft == 1) res = (src >> 1) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1)));
37933 else res = (src >> sft) | (src << (33 - sft)) | (((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1))) >> (sft - 1));
37934 flag_X = (src >> (32 - sft)) << M68K_SR_X_SFT;
37939 flag_N = res >> 24;
37941 DREGu32((Opcode >> 0) & 7) = res;
37947 flag_N = src >> 24;
37961 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37962 src = DREGu8((Opcode >> 0) & 7);
37965 m68kcontext.io_cycle_counter -= sft * 2;
37968 flag_C = src << (M68K_SR_C_SFT - ((sft - 1) & 7));
37969 res = (src >> sft) | (src << (8 - sft));
37972 flag_NotZ = res & 0x000000FF;
37973 DREGu8((Opcode >> 0) & 7) = res;
37992 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37993 src = DREGu16((Opcode >> 0) & 7);
37996 m68kcontext.io_cycle_counter -= sft * 2;
37999 flag_C = (src >> ((sft - 1) & 15)) << M68K_SR_C_SFT;
38000 res = (src >> sft) | (src << (16 - sft));
38003 flag_NotZ = res & 0x0000FFFF;
38004 DREGu16((Opcode >> 0) & 7) = res;
38018 #ifdef USE_CYCLONE_TIMING
38028 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38029 src = DREGu32((Opcode >> 0) & 7);
38032 m68kcontext.io_cycle_counter -= sft * 2;
38035 flag_C = (src >> ((sft - 1) & 31)) << M68K_SR_C_SFT;
38036 res = (src >> sft) | (src << (32 - sft));
38038 flag_N = res >> 24;
38040 DREGu32((Opcode >> 0) & 7) = res;
38046 flag_N = src >> 24;
38060 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38061 src = DREGu8((Opcode >> 0) & 7);
38064 m68kcontext.io_cycle_counter -= sft * 2;
38067 flag_X = flag_C = (src << sft) >> 0;
38068 res = (src << sft) & 0x000000FF;
38071 DREGu8((Opcode >> 0) & 7) = res;
38074 u32 msk = (((s32)0x80000000) >> (sft + 24)) & 0x000000FF;
38076 if ((src) && (src != msk)) flag_V = M68K_SR_V;
38081 if (sft == 256) flag_C = src << M68K_SR_C_SFT;
38084 if (src) flag_V = M68K_SR_V;
38087 DREGu8((Opcode >> 0) & 7) = res;
38108 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38109 src = DREGu16((Opcode >> 0) & 7);
38112 m68kcontext.io_cycle_counter -= sft * 2;
38115 flag_X = flag_C = (src << sft) >> 8;
38116 res = (src << sft) & 0x0000FFFF;
38119 DREGu16((Opcode >> 0) & 7) = res;
38122 u32 msk = (((s32)0x80000000) >> (sft + 16)) & 0x0000FFFF;
38124 if ((src) && (src != msk)) flag_V = M68K_SR_V;
38129 if (sft == 65536) flag_C = src << M68K_SR_C_SFT;
38132 if (src) flag_V = M68K_SR_V;
38135 DREGu16((Opcode >> 0) & 7) = res;
38151 #ifdef USE_CYCLONE_TIMING
38161 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38162 src = DREGu32((Opcode >> 0) & 7);
38165 m68kcontext.io_cycle_counter -= sft * 2;
38168 flag_X = flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38170 flag_N = res >> 24;
38172 DREGu32((Opcode >> 0) & 7) = res;
38175 u32 msk = (((s32)0x80000000) >> (sft + 0)) & 0xFFFFFFFF;
38177 if ((src) && (src != msk)) flag_V = M68K_SR_V;
38182 if (sft == 0) flag_C = src << M68K_SR_C_SFT;
38185 if (src) flag_V = M68K_SR_V;
38188 DREGu32((Opcode >> 0) & 7) = res;
38196 flag_N = src >> 24;
38210 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38211 src = DREGu8((Opcode >> 0) & 7);
38214 m68kcontext.io_cycle_counter -= sft * 2;
38217 flag_X = flag_C = (src << sft) >> 0;
38218 res = (src << sft) & 0x000000FF;
38222 DREGu8((Opcode >> 0) & 7) = res;
38226 flag_X = flag_C = 0;
38231 DREGu8((Opcode >> 0) & 7) = res;
38250 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38251 src = DREGu16((Opcode >> 0) & 7);
38254 m68kcontext.io_cycle_counter -= sft * 2;
38257 flag_X = flag_C = (src << sft) >> 8;
38258 res = (src << sft) & 0x0000FFFF;
38262 DREGu16((Opcode >> 0) & 7) = res;
38266 flag_X = flag_C = 0;
38271 DREGu16((Opcode >> 0) & 7) = res;
38285 #ifdef USE_CYCLONE_TIMING
38295 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38296 src = DREGu32((Opcode >> 0) & 7);
38299 m68kcontext.io_cycle_counter -= sft * 2;
38302 flag_X = flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38305 flag_N = res >> 24;
38307 DREGu32((Opcode >> 0) & 7) = res;
38311 if (sft == 32) flag_C = src << M68K_SR_C_SFT;
38318 DREGu32((Opcode >> 0) & 7) = res;
38324 flag_N = src >> 24;
38338 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38339 src = DREGu8((Opcode >> 0) & 7);
38342 m68kcontext.io_cycle_counter -= sft * 2;
38345 src |= (flag_X & M68K_SR_X) << 0;
38346 res = (src << sft) | (src >> (9 - sft));
38347 flag_X = flag_C = res >> 0;
38350 flag_NotZ = res & 0x000000FF;
38351 DREGu8((Opcode >> 0) & 7) = res;
38370 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38371 src = DREGu16((Opcode >> 0) & 7);
38374 m68kcontext.io_cycle_counter -= sft * 2;
38377 src |= (flag_X & M68K_SR_X) << 8;
38378 res = (src << sft) | (src >> (17 - sft));
38379 flag_X = flag_C = res >> 8;
38382 flag_NotZ = res & 0x0000FFFF;
38383 DREGu16((Opcode >> 0) & 7) = res;
38397 #ifdef USE_CYCLONE_TIMING
38407 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38408 src = DREGu32((Opcode >> 0) & 7);
38411 m68kcontext.io_cycle_counter -= sft * 2;
38416 if (sft == 1) res = (src << 1) | ((flag_X >> ((M68K_SR_X_SFT + 1) - 1)) & 1);
38417 else res = (src << sft) | (src >> (33 - sft)) | (((flag_X >> ((M68K_SR_X_SFT + 1) - 1)) & 1) << (sft - 1));
38418 flag_X = (src >> (32 - sft)) << M68K_SR_X_SFT;
38423 flag_N = res >> 24;
38425 DREGu32((Opcode >> 0) & 7) = res;
38431 flag_N = src >> 24;
38445 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38446 src = DREGu8((Opcode >> 0) & 7);
38449 m68kcontext.io_cycle_counter -= sft * 2;
38452 flag_C = (src << sft) >> 0;
38453 res = ((src << sft) | (src >> (8 - sft))) & 0x000000FF;
38457 DREGu8((Opcode >> 0) & 7) = res;
38462 flag_C = src << M68K_SR_C_SFT;
38483 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38484 src = DREGu16((Opcode >> 0) & 7);
38487 m68kcontext.io_cycle_counter -= sft * 2;
38490 flag_C = (src << sft) >> 8;
38491 res = ((src << sft) | (src >> (16 - sft))) & 0x0000FFFF;
38495 DREGu16((Opcode >> 0) & 7) = res;
38500 flag_C = src << M68K_SR_C_SFT;
38516 #ifdef USE_CYCLONE_TIMING
38526 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38527 src = DREGu32((Opcode >> 0) & 7);
38530 m68kcontext.io_cycle_counter -= sft * 2;
38533 flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38534 res = (src << sft) | (src >> (32 - sft));
38536 flag_N = res >> 24;
38538 DREGu32((Opcode >> 0) & 7) = res;
38543 flag_C = src << M68K_SR_C_SFT;
38544 flag_N = src >> 24;
38551 flag_N = src >> 24;
38563 adr = AREG((Opcode >> 0) & 7);
38565 READ_WORD_F(adr, src)
38567 flag_X = flag_C = src << M68K_SR_C_SFT;
38568 res = (src >> 1) | (src & (1 << 15));
38571 WRITE_WORD_F(adr, res)
38582 adr = AREG((Opcode >> 0) & 7);
38583 AREG((Opcode >> 0) & 7) += 2;
38585 READ_WORD_F(adr, src)
38587 flag_X = flag_C = src << M68K_SR_C_SFT;
38588 res = (src >> 1) | (src & (1 << 15));
38591 WRITE_WORD_F(adr, res)
38602 adr = AREG((Opcode >> 0) & 7) - 2;
38603 AREG((Opcode >> 0) & 7) = adr;
38605 READ_WORD_F(adr, src)
38607 flag_X = flag_C = src << M68K_SR_C_SFT;
38608 res = (src >> 1) | (src & (1 << 15));
38611 WRITE_WORD_F(adr, res)
38623 adr += AREG((Opcode >> 0) & 7);
38625 READ_WORD_F(adr, src)
38627 flag_X = flag_C = src << M68K_SR_C_SFT;
38628 res = (src >> 1) | (src & (1 << 15));
38631 WRITE_WORD_F(adr, res)
38642 adr = AREG((Opcode >> 0) & 7);
38645 READ_WORD_F(adr, src)
38647 flag_X = flag_C = src << M68K_SR_C_SFT;
38648 res = (src >> 1) | (src & (1 << 15));
38651 WRITE_WORD_F(adr, res)
38664 READ_WORD_F(adr, src)
38666 flag_X = flag_C = src << M68K_SR_C_SFT;
38667 res = (src >> 1) | (src & (1 << 15));
38670 WRITE_WORD_F(adr, res)
38683 READ_WORD_F(adr, src)
38685 flag_X = flag_C = src << M68K_SR_C_SFT;
38686 res = (src >> 1) | (src & (1 << 15));
38689 WRITE_WORD_F(adr, res)
38703 READ_WORD_F(adr, src)
38705 flag_X = flag_C = src << M68K_SR_C_SFT;
38706 res = (src >> 1) | (src & (1 << 15));
38709 WRITE_WORD_F(adr, res)
38723 READ_WORD_F(adr, src)
38725 flag_X = flag_C = src << M68K_SR_C_SFT;
38726 res = (src >> 1) | (src & (1 << 15));
38729 WRITE_WORD_F(adr, res)
38740 adr = AREG((Opcode >> 0) & 7);
38742 READ_WORD_F(adr, src)
38743 flag_N = flag_V = 0;
38744 flag_X = flag_C = src << M68K_SR_C_SFT;
38747 WRITE_WORD_F(adr, res)
38758 adr = AREG((Opcode >> 0) & 7);
38759 AREG((Opcode >> 0) & 7) += 2;
38761 READ_WORD_F(adr, src)
38762 flag_N = flag_V = 0;
38763 flag_X = flag_C = src << M68K_SR_C_SFT;
38766 WRITE_WORD_F(adr, res)
38777 adr = AREG((Opcode >> 0) & 7) - 2;
38778 AREG((Opcode >> 0) & 7) = adr;
38780 READ_WORD_F(adr, src)
38781 flag_N = flag_V = 0;
38782 flag_X = flag_C = src << M68K_SR_C_SFT;
38785 WRITE_WORD_F(adr, res)
38797 adr += AREG((Opcode >> 0) & 7);
38799 READ_WORD_F(adr, src)
38800 flag_N = flag_V = 0;
38801 flag_X = flag_C = src << M68K_SR_C_SFT;
38804 WRITE_WORD_F(adr, res)
38815 adr = AREG((Opcode >> 0) & 7);
38818 READ_WORD_F(adr, src)
38819 flag_N = flag_V = 0;
38820 flag_X = flag_C = src << M68K_SR_C_SFT;
38823 WRITE_WORD_F(adr, res)
38836 READ_WORD_F(adr, src)
38837 flag_N = flag_V = 0;
38838 flag_X = flag_C = src << M68K_SR_C_SFT;
38841 WRITE_WORD_F(adr, res)
38854 READ_WORD_F(adr, src)
38855 flag_N = flag_V = 0;
38856 flag_X = flag_C = src << M68K_SR_C_SFT;
38859 WRITE_WORD_F(adr, res)
38873 READ_WORD_F(adr, src)
38874 flag_N = flag_V = 0;
38875 flag_X = flag_C = src << M68K_SR_C_SFT;
38878 WRITE_WORD_F(adr, res)
38892 READ_WORD_F(adr, src)
38893 flag_N = flag_V = 0;
38894 flag_X = flag_C = src << M68K_SR_C_SFT;
38897 WRITE_WORD_F(adr, res)
38908 adr = AREG((Opcode >> 0) & 7);
38910 READ_WORD_F(adr, src)
38912 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38913 flag_C = flag_X = src << M68K_SR_C_SFT;
38916 WRITE_WORD_F(adr, res)
38927 adr = AREG((Opcode >> 0) & 7);
38928 AREG((Opcode >> 0) & 7) += 2;
38930 READ_WORD_F(adr, src)
38932 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38933 flag_C = flag_X = src << M68K_SR_C_SFT;
38936 WRITE_WORD_F(adr, res)
38947 adr = AREG((Opcode >> 0) & 7) - 2;
38948 AREG((Opcode >> 0) & 7) = adr;
38950 READ_WORD_F(adr, src)
38952 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38953 flag_C = flag_X = src << M68K_SR_C_SFT;
38956 WRITE_WORD_F(adr, res)
38968 adr += AREG((Opcode >> 0) & 7);
38970 READ_WORD_F(adr, src)
38972 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38973 flag_C = flag_X = src << M68K_SR_C_SFT;
38976 WRITE_WORD_F(adr, res)
38987 adr = AREG((Opcode >> 0) & 7);
38990 READ_WORD_F(adr, src)
38992 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38993 flag_C = flag_X = src << M68K_SR_C_SFT;
38996 WRITE_WORD_F(adr, res)
39009 READ_WORD_F(adr, src)
39011 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39012 flag_C = flag_X = src << M68K_SR_C_SFT;
39015 WRITE_WORD_F(adr, res)
39028 READ_WORD_F(adr, src)
39030 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39031 flag_C = flag_X = src << M68K_SR_C_SFT;
39034 WRITE_WORD_F(adr, res)
39048 READ_WORD_F(adr, src)
39050 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39051 flag_C = flag_X = src << M68K_SR_C_SFT;
39054 WRITE_WORD_F(adr, res)
39068 READ_WORD_F(adr, src)
39070 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39071 flag_C = flag_X = src << M68K_SR_C_SFT;
39074 WRITE_WORD_F(adr, res)
39085 adr = AREG((Opcode >> 0) & 7);
39087 READ_WORD_F(adr, src)
39089 flag_C = src << M68K_SR_C_SFT;
39090 res = (src >> 1) | (src << 15);
39092 flag_NotZ = res & 0x0000FFFF;
39093 WRITE_WORD_F(adr, res)
39104 adr = AREG((Opcode >> 0) & 7);
39105 AREG((Opcode >> 0) & 7) += 2;
39107 READ_WORD_F(adr, src)
39109 flag_C = src << M68K_SR_C_SFT;
39110 res = (src >> 1) | (src << 15);
39112 flag_NotZ = res & 0x0000FFFF;
39113 WRITE_WORD_F(adr, res)
39124 adr = AREG((Opcode >> 0) & 7) - 2;
39125 AREG((Opcode >> 0) & 7) = adr;
39127 READ_WORD_F(adr, src)
39129 flag_C = src << M68K_SR_C_SFT;
39130 res = (src >> 1) | (src << 15);
39132 flag_NotZ = res & 0x0000FFFF;
39133 WRITE_WORD_F(adr, res)
39145 adr += AREG((Opcode >> 0) & 7);
39147 READ_WORD_F(adr, src)
39149 flag_C = src << M68K_SR_C_SFT;
39150 res = (src >> 1) | (src << 15);
39152 flag_NotZ = res & 0x0000FFFF;
39153 WRITE_WORD_F(adr, res)
39164 adr = AREG((Opcode >> 0) & 7);
39167 READ_WORD_F(adr, src)
39169 flag_C = src << M68K_SR_C_SFT;
39170 res = (src >> 1) | (src << 15);
39172 flag_NotZ = res & 0x0000FFFF;
39173 WRITE_WORD_F(adr, res)
39186 READ_WORD_F(adr, src)
39188 flag_C = src << M68K_SR_C_SFT;
39189 res = (src >> 1) | (src << 15);
39191 flag_NotZ = res & 0x0000FFFF;
39192 WRITE_WORD_F(adr, res)
39205 READ_WORD_F(adr, src)
39207 flag_C = src << M68K_SR_C_SFT;
39208 res = (src >> 1) | (src << 15);
39210 flag_NotZ = res & 0x0000FFFF;
39211 WRITE_WORD_F(adr, res)
39225 READ_WORD_F(adr, src)
39227 flag_C = src << M68K_SR_C_SFT;
39228 res = (src >> 1) | (src << 15);
39230 flag_NotZ = res & 0x0000FFFF;
39231 WRITE_WORD_F(adr, res)
39245 READ_WORD_F(adr, src)
39247 flag_C = src << M68K_SR_C_SFT;
39248 res = (src >> 1) | (src << 15);
39250 flag_NotZ = res & 0x0000FFFF;
39251 WRITE_WORD_F(adr, res)
39262 adr = AREG((Opcode >> 0) & 7);
39264 READ_WORD_F(adr, src)
39265 flag_X = flag_C = src >> 7;
39267 flag_V = (src ^ res) >> 8;
39269 flag_NotZ = res & 0x0000FFFF;
39270 WRITE_WORD_F(adr, res)
39281 adr = AREG((Opcode >> 0) & 7);
39282 AREG((Opcode >> 0) & 7) += 2;
39284 READ_WORD_F(adr, src)
39285 flag_X = flag_C = src >> 7;
39287 flag_V = (src ^ res) >> 8;
39289 flag_NotZ = res & 0x0000FFFF;
39290 WRITE_WORD_F(adr, res)
39301 adr = AREG((Opcode >> 0) & 7) - 2;
39302 AREG((Opcode >> 0) & 7) = adr;
39304 READ_WORD_F(adr, src)
39305 flag_X = flag_C = src >> 7;
39307 flag_V = (src ^ res) >> 8;
39309 flag_NotZ = res & 0x0000FFFF;
39310 WRITE_WORD_F(adr, res)
39322 adr += AREG((Opcode >> 0) & 7);
39324 READ_WORD_F(adr, src)
39325 flag_X = flag_C = src >> 7;
39327 flag_V = (src ^ res) >> 8;
39329 flag_NotZ = res & 0x0000FFFF;
39330 WRITE_WORD_F(adr, res)
39341 adr = AREG((Opcode >> 0) & 7);
39344 READ_WORD_F(adr, src)
39345 flag_X = flag_C = src >> 7;
39347 flag_V = (src ^ res) >> 8;
39349 flag_NotZ = res & 0x0000FFFF;
39350 WRITE_WORD_F(adr, res)
39363 READ_WORD_F(adr, src)
39364 flag_X = flag_C = src >> 7;
39366 flag_V = (src ^ res) >> 8;
39368 flag_NotZ = res & 0x0000FFFF;
39369 WRITE_WORD_F(adr, res)
39382 READ_WORD_F(adr, src)
39383 flag_X = flag_C = src >> 7;
39385 flag_V = (src ^ res) >> 8;
39387 flag_NotZ = res & 0x0000FFFF;
39388 WRITE_WORD_F(adr, res)
39402 READ_WORD_F(adr, src)
39403 flag_X = flag_C = src >> 7;
39405 flag_V = (src ^ res) >> 8;
39407 flag_NotZ = res & 0x0000FFFF;
39408 WRITE_WORD_F(adr, res)
39422 READ_WORD_F(adr, src)
39423 flag_X = flag_C = src >> 7;
39425 flag_V = (src ^ res) >> 8;
39427 flag_NotZ = res & 0x0000FFFF;
39428 WRITE_WORD_F(adr, res)
39439 adr = AREG((Opcode >> 0) & 7);
39441 READ_WORD_F(adr, src)
39443 flag_X = flag_C = src >> 7;
39446 flag_NotZ = res & 0x0000FFFF;
39447 WRITE_WORD_F(adr, res)
39458 adr = AREG((Opcode >> 0) & 7);
39459 AREG((Opcode >> 0) & 7) += 2;
39461 READ_WORD_F(adr, src)
39463 flag_X = flag_C = src >> 7;
39466 flag_NotZ = res & 0x0000FFFF;
39467 WRITE_WORD_F(adr, res)
39478 adr = AREG((Opcode >> 0) & 7) - 2;
39479 AREG((Opcode >> 0) & 7) = adr;
39481 READ_WORD_F(adr, src)
39483 flag_X = flag_C = src >> 7;
39486 flag_NotZ = res & 0x0000FFFF;
39487 WRITE_WORD_F(adr, res)
39499 adr += AREG((Opcode >> 0) & 7);
39501 READ_WORD_F(adr, src)
39503 flag_X = flag_C = src >> 7;
39506 flag_NotZ = res & 0x0000FFFF;
39507 WRITE_WORD_F(adr, res)
39518 adr = AREG((Opcode >> 0) & 7);
39521 READ_WORD_F(adr, src)
39523 flag_X = flag_C = src >> 7;
39526 flag_NotZ = res & 0x0000FFFF;
39527 WRITE_WORD_F(adr, res)
39540 READ_WORD_F(adr, src)
39542 flag_X = flag_C = src >> 7;
39545 flag_NotZ = res & 0x0000FFFF;
39546 WRITE_WORD_F(adr, res)
39559 READ_WORD_F(adr, src)
39561 flag_X = flag_C = src >> 7;
39564 flag_NotZ = res & 0x0000FFFF;
39565 WRITE_WORD_F(adr, res)
39579 READ_WORD_F(adr, src)
39581 flag_X = flag_C = src >> 7;
39584 flag_NotZ = res & 0x0000FFFF;
39585 WRITE_WORD_F(adr, res)
39599 READ_WORD_F(adr, src)
39601 flag_X = flag_C = src >> 7;
39604 flag_NotZ = res & 0x0000FFFF;
39605 WRITE_WORD_F(adr, res)
39616 adr = AREG((Opcode >> 0) & 7);
39618 READ_WORD_F(adr, src)
39620 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39621 flag_X = flag_C = src >> 7;
39623 flag_NotZ = res & 0x0000FFFF;
39624 WRITE_WORD_F(adr, res)
39635 adr = AREG((Opcode >> 0) & 7);
39636 AREG((Opcode >> 0) & 7) += 2;
39638 READ_WORD_F(adr, src)
39640 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39641 flag_X = flag_C = src >> 7;
39643 flag_NotZ = res & 0x0000FFFF;
39644 WRITE_WORD_F(adr, res)
39655 adr = AREG((Opcode >> 0) & 7) - 2;
39656 AREG((Opcode >> 0) & 7) = adr;
39658 READ_WORD_F(adr, src)
39660 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39661 flag_X = flag_C = src >> 7;
39663 flag_NotZ = res & 0x0000FFFF;
39664 WRITE_WORD_F(adr, res)
39676 adr += AREG((Opcode >> 0) & 7);
39678 READ_WORD_F(adr, src)
39680 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39681 flag_X = flag_C = src >> 7;
39683 flag_NotZ = res & 0x0000FFFF;
39684 WRITE_WORD_F(adr, res)
39695 adr = AREG((Opcode >> 0) & 7);
39698 READ_WORD_F(adr, src)
39700 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39701 flag_X = flag_C = src >> 7;
39703 flag_NotZ = res & 0x0000FFFF;
39704 WRITE_WORD_F(adr, res)
39717 READ_WORD_F(adr, src)
39719 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39720 flag_X = flag_C = src >> 7;
39722 flag_NotZ = res & 0x0000FFFF;
39723 WRITE_WORD_F(adr, res)
39736 READ_WORD_F(adr, src)
39738 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39739 flag_X = flag_C = src >> 7;
39741 flag_NotZ = res & 0x0000FFFF;
39742 WRITE_WORD_F(adr, res)
39756 READ_WORD_F(adr, src)
39758 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39759 flag_X = flag_C = src >> 7;
39761 flag_NotZ = res & 0x0000FFFF;
39762 WRITE_WORD_F(adr, res)
39776 READ_WORD_F(adr, src)
39778 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39779 flag_X = flag_C = src >> 7;
39781 flag_NotZ = res & 0x0000FFFF;
39782 WRITE_WORD_F(adr, res)
39793 adr = AREG((Opcode >> 0) & 7);
39795 READ_WORD_F(adr, src)
39798 res = (src << 1) | (src >> 15);
39800 flag_NotZ = res & 0x0000FFFF;
39801 WRITE_WORD_F(adr, res)
39812 adr = AREG((Opcode >> 0) & 7);
39813 AREG((Opcode >> 0) & 7) += 2;
39815 READ_WORD_F(adr, src)
39818 res = (src << 1) | (src >> 15);
39820 flag_NotZ = res & 0x0000FFFF;
39821 WRITE_WORD_F(adr, res)
39832 adr = AREG((Opcode >> 0) & 7) - 2;
39833 AREG((Opcode >> 0) & 7) = adr;
39835 READ_WORD_F(adr, src)
39838 res = (src << 1) | (src >> 15);
39840 flag_NotZ = res & 0x0000FFFF;
39841 WRITE_WORD_F(adr, res)
39853 adr += AREG((Opcode >> 0) & 7);
39855 READ_WORD_F(adr, src)
39858 res = (src << 1) | (src >> 15);
39860 flag_NotZ = res & 0x0000FFFF;
39861 WRITE_WORD_F(adr, res)
39872 adr = AREG((Opcode >> 0) & 7);
39875 READ_WORD_F(adr, src)
39878 res = (src << 1) | (src >> 15);
39880 flag_NotZ = res & 0x0000FFFF;
39881 WRITE_WORD_F(adr, res)
39894 READ_WORD_F(adr, src)
39897 res = (src << 1) | (src >> 15);
39899 flag_NotZ = res & 0x0000FFFF;
39900 WRITE_WORD_F(adr, res)
39913 READ_WORD_F(adr, src)
39916 res = (src << 1) | (src >> 15);
39918 flag_NotZ = res & 0x0000FFFF;
39919 WRITE_WORD_F(adr, res)
39933 READ_WORD_F(adr, src)
39936 res = (src << 1) | (src >> 15);
39938 flag_NotZ = res & 0x0000FFFF;
39939 WRITE_WORD_F(adr, res)
39953 READ_WORD_F(adr, src)
39956 res = (src << 1) | (src >> 15);
39958 flag_NotZ = res & 0x0000FFFF;
39959 WRITE_WORD_F(adr, res)
39964 #ifdef PICODRIVE_HACK
39966 #define UPDATE_IDLE_COUNT { \
39967 extern int idle_hit_counter; \
39968 idle_hit_counter++; \
39971 #define UPDATE_IDLE_COUNT
39975 OPCODE(0x6001_idle)
39977 #ifdef FAMEC_CHECK_BRANCHES
39978 u32 newPC = (u32)(PC) - BasePC;
39982 CHECK_BRANCH_EXCEPTION(offs)
39984 PC += ((s8)(Opcode & 0xFE)) >> 1;
39987 m68kcontext.io_cycle_counter = 10;
39992 OPCODE(0x6601_idle)
39997 PC += ((s8)(Opcode & 0xFE)) >> 1;
39998 m68kcontext.io_cycle_counter = 8;
40003 OPCODE(0x6701_idle)
40008 PC += ((s8)(Opcode & 0xFE)) >> 1;
40009 m68kcontext.io_cycle_counter = 8;
40015 extern int SekIsIdleCode(unsigned short *dst, int bytes);
40016 extern int SekRegisterIdlePatch(unsigned int pc, int oldop, int newop, void *ctx);
40018 OPCODE(idle_detector_bcc8)
40020 extern int idledet_start_frame;
40021 extern char Pico[];
40022 int frame_count, cond_true, bytes, ret, newop;
40025 dest_pc = PC + (((s8)(Opcode & 0xFE)) >> 1);
40027 frame_count = *(int *)(Pico+0x22208+0x1c); // Pico.m.frame_count
40028 if (frame_count < idledet_start_frame)
40031 bytes = 0 - (s8)(Opcode & 0xFE) - 2;
40032 ret = SekIsIdleCode(dest_pc, bytes);
40033 newop = (Opcode & 0xfe) | 0x7100;
40034 if (!ret) newop |= 0x200;
40035 if ( Opcode & 0x0100) newop |= 0x400; // beq
40036 if (!(Opcode & 0x0f00)) newop |= 0xc00; // bra
40038 ret = SekRegisterIdlePatch(GET_PC - 2, Opcode, newop, &m68kcontext);
40041 case 0: PC[-1] = newop; break;
40043 case 2: JumpTable[Opcode] = (Opcode & 0x0f00) ?
40044 ((Opcode & 0x0100) ? CAST_OP(0x6701) : CAST_OP(0x6601)) :
40045 CAST_OP(0x6001); break;
40049 if ((Opcode & 0xff00) == 0x6000) cond_true = 1;
40050 else cond_true = (Opcode & 0x0100) ? !flag_NotZ : flag_NotZ; // beq?
40054 m68kcontext.io_cycle_counter -= 2;
40059 #endif // PICODRIVE_HACK