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 u32 newPC = (u32)(PC) - BasePC;
643 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
644 #ifdef USE_CYCLONE_TIMING
660 res = DREGu8((Opcode >> 0) & 7);
666 DREGu8((Opcode >> 0) & 7) = res;
677 adr = AREG((Opcode >> 0) & 7);
679 READ_BYTE_F(adr, res)
685 WRITE_BYTE_F(adr, res)
697 adr = AREG((Opcode >> 0) & 7);
698 AREG((Opcode >> 0) & 7) += 1;
700 READ_BYTE_F(adr, res)
706 WRITE_BYTE_F(adr, res)
718 adr = AREG((Opcode >> 0) & 7) - 1;
719 AREG((Opcode >> 0) & 7) = adr;
721 READ_BYTE_F(adr, res)
727 WRITE_BYTE_F(adr, res)
740 adr += AREG((Opcode >> 0) & 7);
742 READ_BYTE_F(adr, res)
748 WRITE_BYTE_F(adr, res)
760 adr = AREG((Opcode >> 0) & 7);
763 READ_BYTE_F(adr, res)
769 WRITE_BYTE_F(adr, res)
783 READ_BYTE_F(adr, res)
789 WRITE_BYTE_F(adr, res)
803 READ_BYTE_F(adr, res)
809 WRITE_BYTE_F(adr, res)
824 READ_BYTE_F(adr, res)
830 WRITE_BYTE_F(adr, res)
845 READ_BYTE_F(adr, res)
851 WRITE_BYTE_F(adr, res)
863 res = DREGu16((Opcode >> 0) & 7);
869 DREGu16((Opcode >> 0) & 7) = res;
880 adr = AREG((Opcode >> 0) & 7);
882 READ_WORD_F(adr, res)
888 WRITE_WORD_F(adr, res)
900 adr = AREG((Opcode >> 0) & 7);
901 AREG((Opcode >> 0) & 7) += 2;
903 READ_WORD_F(adr, res)
909 WRITE_WORD_F(adr, res)
921 adr = AREG((Opcode >> 0) & 7) - 2;
922 AREG((Opcode >> 0) & 7) = adr;
924 READ_WORD_F(adr, res)
930 WRITE_WORD_F(adr, res)
943 adr += AREG((Opcode >> 0) & 7);
945 READ_WORD_F(adr, res)
951 WRITE_WORD_F(adr, res)
963 adr = AREG((Opcode >> 0) & 7);
966 READ_WORD_F(adr, res)
972 WRITE_WORD_F(adr, res)
986 READ_WORD_F(adr, res)
992 WRITE_WORD_F(adr, res)
1006 READ_WORD_F(adr, res)
1012 WRITE_WORD_F(adr, res)
1027 READ_WORD_F(adr, res)
1033 WRITE_WORD_F(adr, res)
1048 READ_WORD_F(adr, res)
1054 WRITE_WORD_F(adr, res)
1066 res = DREGu32((Opcode >> 0) & 7);
1072 DREGu32((Opcode >> 0) & 7) = res;
1073 #ifdef USE_CYCLONE_TIMING
1087 adr = AREG((Opcode >> 0) & 7);
1089 READ_LONG_F(adr, res)
1095 WRITE_LONG_F(adr, res)
1107 adr = AREG((Opcode >> 0) & 7);
1108 AREG((Opcode >> 0) & 7) += 4;
1110 READ_LONG_F(adr, res)
1116 WRITE_LONG_F(adr, res)
1128 adr = AREG((Opcode >> 0) & 7) - 4;
1129 AREG((Opcode >> 0) & 7) = adr;
1131 READ_LONG_F(adr, res)
1137 WRITE_LONG_F(adr, res)
1150 adr += AREG((Opcode >> 0) & 7);
1152 READ_LONG_F(adr, res)
1158 WRITE_LONG_F(adr, res)
1170 adr = AREG((Opcode >> 0) & 7);
1173 READ_LONG_F(adr, res)
1179 WRITE_LONG_F(adr, res)
1193 READ_LONG_F(adr, res)
1199 WRITE_LONG_F(adr, res)
1213 READ_LONG_F(adr, res)
1219 WRITE_LONG_F(adr, res)
1234 READ_LONG_F(adr, res)
1240 WRITE_LONG_F(adr, res)
1255 READ_LONG_F(adr, res)
1261 WRITE_LONG_F(adr, res)
1273 res &= M68K_CCR_MASK;
1288 res &= M68K_SR_MASK;
1297 CHECK_INT_TO_JUMP(20)
1301 u32 newPC = (u32)(PC) - BasePC;
1303 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
1316 res = DREGu8((Opcode >> 0) & 7);
1322 DREGu8((Opcode >> 0) & 7) = res;
1333 adr = AREG((Opcode >> 0) & 7);
1335 READ_BYTE_F(adr, res)
1341 WRITE_BYTE_F(adr, res)
1353 adr = AREG((Opcode >> 0) & 7);
1354 AREG((Opcode >> 0) & 7) += 1;
1356 READ_BYTE_F(adr, res)
1362 WRITE_BYTE_F(adr, res)
1374 adr = AREG((Opcode >> 0) & 7) - 1;
1375 AREG((Opcode >> 0) & 7) = adr;
1377 READ_BYTE_F(adr, res)
1383 WRITE_BYTE_F(adr, res)
1396 adr += AREG((Opcode >> 0) & 7);
1398 READ_BYTE_F(adr, res)
1404 WRITE_BYTE_F(adr, res)
1416 adr = AREG((Opcode >> 0) & 7);
1419 READ_BYTE_F(adr, res)
1425 WRITE_BYTE_F(adr, res)
1439 READ_BYTE_F(adr, res)
1445 WRITE_BYTE_F(adr, res)
1459 READ_BYTE_F(adr, res)
1465 WRITE_BYTE_F(adr, res)
1480 READ_BYTE_F(adr, res)
1486 WRITE_BYTE_F(adr, res)
1501 READ_BYTE_F(adr, res)
1507 WRITE_BYTE_F(adr, res)
1519 res = DREGu16((Opcode >> 0) & 7);
1525 DREGu16((Opcode >> 0) & 7) = res;
1536 adr = AREG((Opcode >> 0) & 7);
1538 READ_WORD_F(adr, res)
1544 WRITE_WORD_F(adr, res)
1556 adr = AREG((Opcode >> 0) & 7);
1557 AREG((Opcode >> 0) & 7) += 2;
1559 READ_WORD_F(adr, res)
1565 WRITE_WORD_F(adr, res)
1577 adr = AREG((Opcode >> 0) & 7) - 2;
1578 AREG((Opcode >> 0) & 7) = adr;
1580 READ_WORD_F(adr, res)
1586 WRITE_WORD_F(adr, res)
1599 adr += AREG((Opcode >> 0) & 7);
1601 READ_WORD_F(adr, res)
1607 WRITE_WORD_F(adr, res)
1619 adr = AREG((Opcode >> 0) & 7);
1622 READ_WORD_F(adr, res)
1628 WRITE_WORD_F(adr, res)
1642 READ_WORD_F(adr, res)
1648 WRITE_WORD_F(adr, res)
1662 READ_WORD_F(adr, res)
1668 WRITE_WORD_F(adr, res)
1683 READ_WORD_F(adr, res)
1689 WRITE_WORD_F(adr, res)
1704 READ_WORD_F(adr, res)
1710 WRITE_WORD_F(adr, res)
1722 res = DREGu32((Opcode >> 0) & 7);
1728 DREGu32((Opcode >> 0) & 7) = res;
1739 adr = AREG((Opcode >> 0) & 7);
1741 READ_LONG_F(adr, res)
1747 WRITE_LONG_F(adr, res)
1759 adr = AREG((Opcode >> 0) & 7);
1760 AREG((Opcode >> 0) & 7) += 4;
1762 READ_LONG_F(adr, res)
1768 WRITE_LONG_F(adr, res)
1780 adr = AREG((Opcode >> 0) & 7) - 4;
1781 AREG((Opcode >> 0) & 7) = adr;
1783 READ_LONG_F(adr, res)
1789 WRITE_LONG_F(adr, res)
1802 adr += AREG((Opcode >> 0) & 7);
1804 READ_LONG_F(adr, res)
1810 WRITE_LONG_F(adr, res)
1822 adr = AREG((Opcode >> 0) & 7);
1825 READ_LONG_F(adr, res)
1831 WRITE_LONG_F(adr, res)
1845 READ_LONG_F(adr, res)
1851 WRITE_LONG_F(adr, res)
1865 READ_LONG_F(adr, res)
1871 WRITE_LONG_F(adr, res)
1886 READ_LONG_F(adr, res)
1892 WRITE_LONG_F(adr, res)
1907 READ_LONG_F(adr, res)
1913 WRITE_LONG_F(adr, res)
1925 res &= M68K_CCR_MASK;
1940 res &= M68K_SR_MASK;
1949 CHECK_INT_TO_JUMP(20)
1953 u32 newPC = (u32)(PC) - BasePC;
1955 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
1968 dst = DREGu8((Opcode >> 0) & 7);
1970 flag_N = flag_X = flag_C = res;
1971 flag_V = (src ^ dst) & (res ^ dst);
1972 flag_NotZ = res & 0xFF;
1973 DREGu8((Opcode >> 0) & 7) = res;
1984 adr = AREG((Opcode >> 0) & 7);
1986 READ_BYTE_F(adr, dst)
1988 flag_N = flag_X = flag_C = res;
1989 flag_V = (src ^ dst) & (res ^ dst);
1990 flag_NotZ = res & 0xFF;
1991 WRITE_BYTE_F(adr, res)
2003 adr = AREG((Opcode >> 0) & 7);
2004 AREG((Opcode >> 0) & 7) += 1;
2006 READ_BYTE_F(adr, dst)
2008 flag_N = flag_X = flag_C = res;
2009 flag_V = (src ^ dst) & (res ^ dst);
2010 flag_NotZ = res & 0xFF;
2011 WRITE_BYTE_F(adr, res)
2023 adr = AREG((Opcode >> 0) & 7) - 1;
2024 AREG((Opcode >> 0) & 7) = adr;
2026 READ_BYTE_F(adr, dst)
2028 flag_N = flag_X = flag_C = res;
2029 flag_V = (src ^ dst) & (res ^ dst);
2030 flag_NotZ = res & 0xFF;
2031 WRITE_BYTE_F(adr, res)
2044 adr += AREG((Opcode >> 0) & 7);
2046 READ_BYTE_F(adr, dst)
2048 flag_N = flag_X = flag_C = res;
2049 flag_V = (src ^ dst) & (res ^ dst);
2050 flag_NotZ = res & 0xFF;
2051 WRITE_BYTE_F(adr, res)
2063 adr = AREG((Opcode >> 0) & 7);
2066 READ_BYTE_F(adr, dst)
2068 flag_N = flag_X = flag_C = res;
2069 flag_V = (src ^ dst) & (res ^ dst);
2070 flag_NotZ = res & 0xFF;
2071 WRITE_BYTE_F(adr, res)
2085 READ_BYTE_F(adr, dst)
2087 flag_N = flag_X = flag_C = res;
2088 flag_V = (src ^ dst) & (res ^ dst);
2089 flag_NotZ = res & 0xFF;
2090 WRITE_BYTE_F(adr, res)
2104 READ_BYTE_F(adr, dst)
2106 flag_N = flag_X = flag_C = res;
2107 flag_V = (src ^ dst) & (res ^ dst);
2108 flag_NotZ = res & 0xFF;
2109 WRITE_BYTE_F(adr, res)
2124 READ_BYTE_F(adr, dst)
2126 flag_N = flag_X = flag_C = res;
2127 flag_V = (src ^ dst) & (res ^ dst);
2128 flag_NotZ = res & 0xFF;
2129 WRITE_BYTE_F(adr, res)
2144 READ_BYTE_F(adr, dst)
2146 flag_N = flag_X = flag_C = res;
2147 flag_V = (src ^ dst) & (res ^ dst);
2148 flag_NotZ = res & 0xFF;
2149 WRITE_BYTE_F(adr, res)
2161 dst = DREGu16((Opcode >> 0) & 7);
2163 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2164 flag_N = flag_X = flag_C = res >> 8;
2165 flag_NotZ = res & 0xFFFF;
2166 DREGu16((Opcode >> 0) & 7) = res;
2177 adr = AREG((Opcode >> 0) & 7);
2179 READ_WORD_F(adr, dst)
2181 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2182 flag_N = flag_X = flag_C = res >> 8;
2183 flag_NotZ = res & 0xFFFF;
2184 WRITE_WORD_F(adr, res)
2196 adr = AREG((Opcode >> 0) & 7);
2197 AREG((Opcode >> 0) & 7) += 2;
2199 READ_WORD_F(adr, dst)
2201 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2202 flag_N = flag_X = flag_C = res >> 8;
2203 flag_NotZ = res & 0xFFFF;
2204 WRITE_WORD_F(adr, res)
2216 adr = AREG((Opcode >> 0) & 7) - 2;
2217 AREG((Opcode >> 0) & 7) = adr;
2219 READ_WORD_F(adr, dst)
2221 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2222 flag_N = flag_X = flag_C = res >> 8;
2223 flag_NotZ = res & 0xFFFF;
2224 WRITE_WORD_F(adr, res)
2237 adr += AREG((Opcode >> 0) & 7);
2239 READ_WORD_F(adr, dst)
2241 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2242 flag_N = flag_X = flag_C = res >> 8;
2243 flag_NotZ = res & 0xFFFF;
2244 WRITE_WORD_F(adr, res)
2256 adr = AREG((Opcode >> 0) & 7);
2259 READ_WORD_F(adr, dst)
2261 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2262 flag_N = flag_X = flag_C = res >> 8;
2263 flag_NotZ = res & 0xFFFF;
2264 WRITE_WORD_F(adr, res)
2278 READ_WORD_F(adr, dst)
2280 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2281 flag_N = flag_X = flag_C = res >> 8;
2282 flag_NotZ = res & 0xFFFF;
2283 WRITE_WORD_F(adr, res)
2297 READ_WORD_F(adr, dst)
2299 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2300 flag_N = flag_X = flag_C = res >> 8;
2301 flag_NotZ = res & 0xFFFF;
2302 WRITE_WORD_F(adr, res)
2317 READ_WORD_F(adr, dst)
2319 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2320 flag_N = flag_X = flag_C = res >> 8;
2321 flag_NotZ = res & 0xFFFF;
2322 WRITE_WORD_F(adr, res)
2337 READ_WORD_F(adr, dst)
2339 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2340 flag_N = flag_X = flag_C = res >> 8;
2341 flag_NotZ = res & 0xFFFF;
2342 WRITE_WORD_F(adr, res)
2354 dst = DREGu32((Opcode >> 0) & 7);
2357 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2358 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2360 DREGu32((Opcode >> 0) & 7) = res;
2371 adr = AREG((Opcode >> 0) & 7);
2373 READ_LONG_F(adr, dst)
2376 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2377 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2379 WRITE_LONG_F(adr, res)
2391 adr = AREG((Opcode >> 0) & 7);
2392 AREG((Opcode >> 0) & 7) += 4;
2394 READ_LONG_F(adr, dst)
2397 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2398 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2400 WRITE_LONG_F(adr, res)
2412 adr = AREG((Opcode >> 0) & 7) - 4;
2413 AREG((Opcode >> 0) & 7) = adr;
2415 READ_LONG_F(adr, dst)
2418 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2419 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2421 WRITE_LONG_F(adr, res)
2434 adr += AREG((Opcode >> 0) & 7);
2436 READ_LONG_F(adr, dst)
2439 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2440 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2442 WRITE_LONG_F(adr, res)
2454 adr = AREG((Opcode >> 0) & 7);
2457 READ_LONG_F(adr, dst)
2460 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2461 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2463 WRITE_LONG_F(adr, res)
2477 READ_LONG_F(adr, dst)
2480 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2481 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2483 WRITE_LONG_F(adr, res)
2497 READ_LONG_F(adr, dst)
2500 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2501 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2503 WRITE_LONG_F(adr, res)
2518 READ_LONG_F(adr, dst)
2521 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2522 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2524 WRITE_LONG_F(adr, res)
2539 READ_LONG_F(adr, dst)
2542 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2543 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2545 WRITE_LONG_F(adr, res)
2557 dst = DREGu8((Opcode >> 0) & 7);
2559 flag_N = flag_X = flag_C = res;
2560 flag_V = (src ^ res) & (dst ^ res);
2561 flag_NotZ = res & 0xFF;
2562 DREGu8((Opcode >> 0) & 7) = res;
2573 adr = AREG((Opcode >> 0) & 7);
2575 READ_BYTE_F(adr, dst)
2577 flag_N = flag_X = flag_C = res;
2578 flag_V = (src ^ res) & (dst ^ res);
2579 flag_NotZ = res & 0xFF;
2580 WRITE_BYTE_F(adr, res)
2592 adr = AREG((Opcode >> 0) & 7);
2593 AREG((Opcode >> 0) & 7) += 1;
2595 READ_BYTE_F(adr, dst)
2597 flag_N = flag_X = flag_C = res;
2598 flag_V = (src ^ res) & (dst ^ res);
2599 flag_NotZ = res & 0xFF;
2600 WRITE_BYTE_F(adr, res)
2612 adr = AREG((Opcode >> 0) & 7) - 1;
2613 AREG((Opcode >> 0) & 7) = adr;
2615 READ_BYTE_F(adr, dst)
2617 flag_N = flag_X = flag_C = res;
2618 flag_V = (src ^ res) & (dst ^ res);
2619 flag_NotZ = res & 0xFF;
2620 WRITE_BYTE_F(adr, res)
2633 adr += AREG((Opcode >> 0) & 7);
2635 READ_BYTE_F(adr, dst)
2637 flag_N = flag_X = flag_C = res;
2638 flag_V = (src ^ res) & (dst ^ res);
2639 flag_NotZ = res & 0xFF;
2640 WRITE_BYTE_F(adr, res)
2652 adr = AREG((Opcode >> 0) & 7);
2655 READ_BYTE_F(adr, dst)
2657 flag_N = flag_X = flag_C = res;
2658 flag_V = (src ^ res) & (dst ^ res);
2659 flag_NotZ = res & 0xFF;
2660 WRITE_BYTE_F(adr, res)
2674 READ_BYTE_F(adr, dst)
2676 flag_N = flag_X = flag_C = res;
2677 flag_V = (src ^ res) & (dst ^ res);
2678 flag_NotZ = res & 0xFF;
2679 WRITE_BYTE_F(adr, res)
2693 READ_BYTE_F(adr, dst)
2695 flag_N = flag_X = flag_C = res;
2696 flag_V = (src ^ res) & (dst ^ res);
2697 flag_NotZ = res & 0xFF;
2698 WRITE_BYTE_F(adr, res)
2713 READ_BYTE_F(adr, dst)
2715 flag_N = flag_X = flag_C = res;
2716 flag_V = (src ^ res) & (dst ^ res);
2717 flag_NotZ = res & 0xFF;
2718 WRITE_BYTE_F(adr, res)
2733 READ_BYTE_F(adr, dst)
2735 flag_N = flag_X = flag_C = res;
2736 flag_V = (src ^ res) & (dst ^ res);
2737 flag_NotZ = res & 0xFF;
2738 WRITE_BYTE_F(adr, res)
2750 dst = DREGu16((Opcode >> 0) & 7);
2752 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2753 flag_N = flag_X = flag_C = res >> 8;
2754 flag_NotZ = res & 0xFFFF;
2755 DREGu16((Opcode >> 0) & 7) = res;
2766 adr = AREG((Opcode >> 0) & 7);
2768 READ_WORD_F(adr, dst)
2770 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2771 flag_N = flag_X = flag_C = res >> 8;
2772 flag_NotZ = res & 0xFFFF;
2773 WRITE_WORD_F(adr, res)
2785 adr = AREG((Opcode >> 0) & 7);
2786 AREG((Opcode >> 0) & 7) += 2;
2788 READ_WORD_F(adr, dst)
2790 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2791 flag_N = flag_X = flag_C = res >> 8;
2792 flag_NotZ = res & 0xFFFF;
2793 WRITE_WORD_F(adr, res)
2805 adr = AREG((Opcode >> 0) & 7) - 2;
2806 AREG((Opcode >> 0) & 7) = adr;
2808 READ_WORD_F(adr, dst)
2810 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2811 flag_N = flag_X = flag_C = res >> 8;
2812 flag_NotZ = res & 0xFFFF;
2813 WRITE_WORD_F(adr, res)
2826 adr += AREG((Opcode >> 0) & 7);
2828 READ_WORD_F(adr, dst)
2830 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2831 flag_N = flag_X = flag_C = res >> 8;
2832 flag_NotZ = res & 0xFFFF;
2833 WRITE_WORD_F(adr, res)
2845 adr = AREG((Opcode >> 0) & 7);
2848 READ_WORD_F(adr, dst)
2850 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2851 flag_N = flag_X = flag_C = res >> 8;
2852 flag_NotZ = res & 0xFFFF;
2853 WRITE_WORD_F(adr, res)
2867 READ_WORD_F(adr, dst)
2869 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2870 flag_N = flag_X = flag_C = res >> 8;
2871 flag_NotZ = res & 0xFFFF;
2872 WRITE_WORD_F(adr, res)
2886 READ_WORD_F(adr, dst)
2888 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2889 flag_N = flag_X = flag_C = res >> 8;
2890 flag_NotZ = res & 0xFFFF;
2891 WRITE_WORD_F(adr, res)
2906 READ_WORD_F(adr, dst)
2908 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2909 flag_N = flag_X = flag_C = res >> 8;
2910 flag_NotZ = res & 0xFFFF;
2911 WRITE_WORD_F(adr, res)
2926 READ_WORD_F(adr, dst)
2928 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2929 flag_N = flag_X = flag_C = res >> 8;
2930 flag_NotZ = res & 0xFFFF;
2931 WRITE_WORD_F(adr, res)
2943 dst = DREGu32((Opcode >> 0) & 7);
2946 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
2947 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
2949 DREGu32((Opcode >> 0) & 7) = res;
2960 adr = AREG((Opcode >> 0) & 7);
2962 READ_LONG_F(adr, dst)
2965 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
2966 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
2968 WRITE_LONG_F(adr, res)
2980 adr = AREG((Opcode >> 0) & 7);
2981 AREG((Opcode >> 0) & 7) += 4;
2983 READ_LONG_F(adr, dst)
2986 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
2987 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
2989 WRITE_LONG_F(adr, res)
3001 adr = AREG((Opcode >> 0) & 7) - 4;
3002 AREG((Opcode >> 0) & 7) = adr;
3004 READ_LONG_F(adr, dst)
3007 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3008 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3010 WRITE_LONG_F(adr, res)
3023 adr += AREG((Opcode >> 0) & 7);
3025 READ_LONG_F(adr, dst)
3028 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3029 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3031 WRITE_LONG_F(adr, res)
3043 adr = AREG((Opcode >> 0) & 7);
3046 READ_LONG_F(adr, dst)
3049 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3050 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3052 WRITE_LONG_F(adr, res)
3066 READ_LONG_F(adr, dst)
3069 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3070 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3072 WRITE_LONG_F(adr, res)
3086 READ_LONG_F(adr, dst)
3089 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3090 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3092 WRITE_LONG_F(adr, res)
3107 READ_LONG_F(adr, dst)
3110 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3111 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3113 WRITE_LONG_F(adr, res)
3128 READ_LONG_F(adr, dst)
3131 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3132 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3134 WRITE_LONG_F(adr, res)
3146 dst = DREGu8((Opcode >> 0) & 7);
3148 flag_N = flag_C = res;
3149 flag_V = (src ^ dst) & (res ^ dst);
3150 flag_NotZ = res & 0xFF;
3161 adr = AREG((Opcode >> 0) & 7);
3163 READ_BYTE_F(adr, dst)
3165 flag_N = flag_C = res;
3166 flag_V = (src ^ dst) & (res ^ dst);
3167 flag_NotZ = res & 0xFF;
3179 adr = AREG((Opcode >> 0) & 7);
3180 AREG((Opcode >> 0) & 7) += 1;
3182 READ_BYTE_F(adr, dst)
3184 flag_N = flag_C = res;
3185 flag_V = (src ^ dst) & (res ^ dst);
3186 flag_NotZ = res & 0xFF;
3198 adr = AREG((Opcode >> 0) & 7) - 1;
3199 AREG((Opcode >> 0) & 7) = adr;
3201 READ_BYTE_F(adr, dst)
3203 flag_N = flag_C = res;
3204 flag_V = (src ^ dst) & (res ^ dst);
3205 flag_NotZ = res & 0xFF;
3218 adr += AREG((Opcode >> 0) & 7);
3220 READ_BYTE_F(adr, dst)
3222 flag_N = flag_C = res;
3223 flag_V = (src ^ dst) & (res ^ dst);
3224 flag_NotZ = res & 0xFF;
3236 adr = AREG((Opcode >> 0) & 7);
3239 READ_BYTE_F(adr, dst)
3241 flag_N = flag_C = res;
3242 flag_V = (src ^ dst) & (res ^ dst);
3243 flag_NotZ = res & 0xFF;
3257 READ_BYTE_F(adr, dst)
3259 flag_N = flag_C = res;
3260 flag_V = (src ^ dst) & (res ^ dst);
3261 flag_NotZ = res & 0xFF;
3275 READ_BYTE_F(adr, dst)
3277 flag_N = flag_C = res;
3278 flag_V = (src ^ dst) & (res ^ dst);
3279 flag_NotZ = res & 0xFF;
3294 READ_BYTE_F(adr, dst)
3296 flag_N = flag_C = res;
3297 flag_V = (src ^ dst) & (res ^ dst);
3298 flag_NotZ = res & 0xFF;
3313 READ_BYTE_F(adr, dst)
3315 flag_N = flag_C = res;
3316 flag_V = (src ^ dst) & (res ^ dst);
3317 flag_NotZ = res & 0xFF;
3329 dst = DREGu16((Opcode >> 0) & 7);
3331 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3332 flag_N = flag_C = res >> 8;
3333 flag_NotZ = res & 0xFFFF;
3344 adr = AREG((Opcode >> 0) & 7);
3346 READ_WORD_F(adr, dst)
3348 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3349 flag_N = flag_C = res >> 8;
3350 flag_NotZ = res & 0xFFFF;
3362 adr = AREG((Opcode >> 0) & 7);
3363 AREG((Opcode >> 0) & 7) += 2;
3365 READ_WORD_F(adr, dst)
3367 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3368 flag_N = flag_C = res >> 8;
3369 flag_NotZ = res & 0xFFFF;
3381 adr = AREG((Opcode >> 0) & 7) - 2;
3382 AREG((Opcode >> 0) & 7) = adr;
3384 READ_WORD_F(adr, dst)
3386 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3387 flag_N = flag_C = res >> 8;
3388 flag_NotZ = res & 0xFFFF;
3401 adr += AREG((Opcode >> 0) & 7);
3403 READ_WORD_F(adr, dst)
3405 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3406 flag_N = flag_C = res >> 8;
3407 flag_NotZ = res & 0xFFFF;
3419 adr = AREG((Opcode >> 0) & 7);
3422 READ_WORD_F(adr, dst)
3424 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3425 flag_N = flag_C = res >> 8;
3426 flag_NotZ = res & 0xFFFF;
3440 READ_WORD_F(adr, dst)
3442 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3443 flag_N = flag_C = res >> 8;
3444 flag_NotZ = res & 0xFFFF;
3458 READ_WORD_F(adr, dst)
3460 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3461 flag_N = flag_C = res >> 8;
3462 flag_NotZ = res & 0xFFFF;
3477 READ_WORD_F(adr, dst)
3479 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3480 flag_N = flag_C = res >> 8;
3481 flag_NotZ = res & 0xFFFF;
3496 READ_WORD_F(adr, dst)
3498 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3499 flag_N = flag_C = res >> 8;
3500 flag_NotZ = res & 0xFFFF;
3512 dst = DREGu32((Opcode >> 0) & 7);
3515 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3516 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3528 adr = AREG((Opcode >> 0) & 7);
3530 READ_LONG_F(adr, dst)
3533 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3534 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3547 adr = AREG((Opcode >> 0) & 7);
3548 AREG((Opcode >> 0) & 7) += 4;
3550 READ_LONG_F(adr, dst)
3553 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3554 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3567 adr = AREG((Opcode >> 0) & 7) - 4;
3568 AREG((Opcode >> 0) & 7) = adr;
3570 READ_LONG_F(adr, dst)
3573 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3574 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3588 adr += AREG((Opcode >> 0) & 7);
3590 READ_LONG_F(adr, dst)
3593 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3594 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3607 adr = AREG((Opcode >> 0) & 7);
3610 READ_LONG_F(adr, dst)
3613 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3614 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3629 READ_LONG_F(adr, dst)
3632 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3633 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3648 READ_LONG_F(adr, dst)
3651 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3652 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3668 READ_LONG_F(adr, dst)
3671 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3672 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3688 READ_LONG_F(adr, dst)
3691 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3692 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3705 src = 1 << (src & 31);
3706 res = DREGu32((Opcode >> 0) & 7);
3707 flag_NotZ = res & src;
3718 src = 1 << (src & 7);
3719 adr = AREG((Opcode >> 0) & 7);
3721 READ_BYTE_F(adr, res)
3722 flag_NotZ = res & src;
3734 src = 1 << (src & 7);
3735 adr = AREG((Opcode >> 0) & 7);
3736 AREG((Opcode >> 0) & 7) += 1;
3738 READ_BYTE_F(adr, res)
3739 flag_NotZ = res & src;
3751 src = 1 << (src & 7);
3752 adr = AREG((Opcode >> 0) & 7) - 1;
3753 AREG((Opcode >> 0) & 7) = adr;
3755 READ_BYTE_F(adr, res)
3756 flag_NotZ = res & src;
3768 src = 1 << (src & 7);
3770 adr += AREG((Opcode >> 0) & 7);
3772 READ_BYTE_F(adr, res)
3773 flag_NotZ = res & src;
3785 src = 1 << (src & 7);
3786 adr = AREG((Opcode >> 0) & 7);
3789 READ_BYTE_F(adr, res)
3790 flag_NotZ = res & src;
3802 src = 1 << (src & 7);
3805 READ_BYTE_F(adr, res)
3806 flag_NotZ = res & src;
3818 src = 1 << (src & 7);
3821 READ_BYTE_F(adr, res)
3822 flag_NotZ = res & src;
3834 src = 1 << (src & 7);
3835 adr = GET_SWORD + ((u32)(PC) - BasePC);
3838 READ_BYTE_F(adr, res)
3839 flag_NotZ = res & src;
3851 src = 1 << (src & 7);
3852 adr = (u32)(PC) - BasePC;
3855 READ_BYTE_F(adr, res)
3856 flag_NotZ = res & src;
3868 src = 1 << (src & 7);
3872 READ_BYTE_F(adr, res)
3873 flag_NotZ = res & src;
3885 src = 1 << (src & 7);
3889 READ_BYTE_F(adr, res)
3890 flag_NotZ = res & src;
3902 src = 1 << (src & 31);
3903 res = DREGu32((Opcode >> 0) & 7);
3904 flag_NotZ = res & src;
3906 DREGu32((Opcode >> 0) & 7) = res;
3917 src = 1 << (src & 7);
3918 adr = AREG((Opcode >> 0) & 7);
3920 READ_BYTE_F(adr, res)
3921 flag_NotZ = res & src;
3923 WRITE_BYTE_F(adr, res)
3935 src = 1 << (src & 7);
3936 adr = AREG((Opcode >> 0) & 7);
3937 AREG((Opcode >> 0) & 7) += 1;
3939 READ_BYTE_F(adr, res)
3940 flag_NotZ = res & src;
3942 WRITE_BYTE_F(adr, res)
3954 src = 1 << (src & 7);
3955 adr = AREG((Opcode >> 0) & 7) - 1;
3956 AREG((Opcode >> 0) & 7) = adr;
3958 READ_BYTE_F(adr, res)
3959 flag_NotZ = res & src;
3961 WRITE_BYTE_F(adr, res)
3973 src = 1 << (src & 7);
3975 adr += AREG((Opcode >> 0) & 7);
3977 READ_BYTE_F(adr, res)
3978 flag_NotZ = res & src;
3980 WRITE_BYTE_F(adr, res)
3992 src = 1 << (src & 7);
3993 adr = AREG((Opcode >> 0) & 7);
3996 READ_BYTE_F(adr, res)
3997 flag_NotZ = res & src;
3999 WRITE_BYTE_F(adr, res)
4011 src = 1 << (src & 7);
4014 READ_BYTE_F(adr, res)
4015 flag_NotZ = res & src;
4017 WRITE_BYTE_F(adr, res)
4029 src = 1 << (src & 7);
4032 READ_BYTE_F(adr, res)
4033 flag_NotZ = res & src;
4035 WRITE_BYTE_F(adr, res)
4047 src = 1 << (src & 7);
4051 READ_BYTE_F(adr, res)
4052 flag_NotZ = res & src;
4054 WRITE_BYTE_F(adr, res)
4066 src = 1 << (src & 7);
4070 READ_BYTE_F(adr, res)
4071 flag_NotZ = res & src;
4073 WRITE_BYTE_F(adr, res)
4085 src = 1 << (src & 31);
4086 res = DREGu32((Opcode >> 0) & 7);
4087 flag_NotZ = res & src;
4089 DREGu32((Opcode >> 0) & 7) = res;
4100 src = 1 << (src & 7);
4101 adr = AREG((Opcode >> 0) & 7);
4103 READ_BYTE_F(adr, res)
4104 flag_NotZ = res & src;
4106 WRITE_BYTE_F(adr, res)
4118 src = 1 << (src & 7);
4119 adr = AREG((Opcode >> 0) & 7);
4120 AREG((Opcode >> 0) & 7) += 1;
4122 READ_BYTE_F(adr, res)
4123 flag_NotZ = res & src;
4125 WRITE_BYTE_F(adr, res)
4137 src = 1 << (src & 7);
4138 adr = AREG((Opcode >> 0) & 7) - 1;
4139 AREG((Opcode >> 0) & 7) = adr;
4141 READ_BYTE_F(adr, res)
4142 flag_NotZ = res & src;
4144 WRITE_BYTE_F(adr, res)
4156 src = 1 << (src & 7);
4158 adr += AREG((Opcode >> 0) & 7);
4160 READ_BYTE_F(adr, res)
4161 flag_NotZ = res & src;
4163 WRITE_BYTE_F(adr, res)
4175 src = 1 << (src & 7);
4176 adr = AREG((Opcode >> 0) & 7);
4179 READ_BYTE_F(adr, res)
4180 flag_NotZ = res & src;
4182 WRITE_BYTE_F(adr, res)
4194 src = 1 << (src & 7);
4197 READ_BYTE_F(adr, res)
4198 flag_NotZ = res & src;
4200 WRITE_BYTE_F(adr, res)
4212 src = 1 << (src & 7);
4215 READ_BYTE_F(adr, res)
4216 flag_NotZ = res & src;
4218 WRITE_BYTE_F(adr, res)
4230 src = 1 << (src & 7);
4234 READ_BYTE_F(adr, res)
4235 flag_NotZ = res & src;
4237 WRITE_BYTE_F(adr, res)
4249 src = 1 << (src & 7);
4253 READ_BYTE_F(adr, res)
4254 flag_NotZ = res & src;
4256 WRITE_BYTE_F(adr, res)
4268 src = 1 << (src & 31);
4269 res = DREGu32((Opcode >> 0) & 7);
4270 flag_NotZ = res & src;
4272 DREGu32((Opcode >> 0) & 7) = res;
4283 src = 1 << (src & 7);
4284 adr = AREG((Opcode >> 0) & 7);
4286 READ_BYTE_F(adr, res)
4287 flag_NotZ = res & src;
4289 WRITE_BYTE_F(adr, res)
4301 src = 1 << (src & 7);
4302 adr = AREG((Opcode >> 0) & 7);
4303 AREG((Opcode >> 0) & 7) += 1;
4305 READ_BYTE_F(adr, res)
4306 flag_NotZ = res & src;
4308 WRITE_BYTE_F(adr, res)
4320 src = 1 << (src & 7);
4321 adr = AREG((Opcode >> 0) & 7) - 1;
4322 AREG((Opcode >> 0) & 7) = adr;
4324 READ_BYTE_F(adr, res)
4325 flag_NotZ = res & src;
4327 WRITE_BYTE_F(adr, res)
4339 src = 1 << (src & 7);
4341 adr += AREG((Opcode >> 0) & 7);
4343 READ_BYTE_F(adr, res)
4344 flag_NotZ = res & src;
4346 WRITE_BYTE_F(adr, res)
4358 src = 1 << (src & 7);
4359 adr = AREG((Opcode >> 0) & 7);
4362 READ_BYTE_F(adr, res)
4363 flag_NotZ = res & src;
4365 WRITE_BYTE_F(adr, res)
4377 src = 1 << (src & 7);
4380 READ_BYTE_F(adr, res)
4381 flag_NotZ = res & src;
4383 WRITE_BYTE_F(adr, res)
4395 src = 1 << (src & 7);
4398 READ_BYTE_F(adr, res)
4399 flag_NotZ = res & src;
4401 WRITE_BYTE_F(adr, res)
4413 src = 1 << (src & 7);
4417 READ_BYTE_F(adr, res)
4418 flag_NotZ = res & src;
4420 WRITE_BYTE_F(adr, res)
4432 src = 1 << (src & 7);
4436 READ_BYTE_F(adr, res)
4437 flag_NotZ = res & src;
4439 WRITE_BYTE_F(adr, res)
4450 src = DREGu32((Opcode >> 9) & 7);
4451 src = 1 << (src & 31);
4452 res = DREGu32((Opcode >> 0) & 7);
4453 flag_NotZ = res & src;
4463 src = DREGu8((Opcode >> 9) & 7);
4464 src = 1 << (src & 7);
4465 adr = AREG((Opcode >> 0) & 7);
4467 READ_BYTE_F(adr, res)
4468 flag_NotZ = res & src;
4479 src = DREGu8((Opcode >> 9) & 7);
4480 src = 1 << (src & 7);
4481 adr = AREG((Opcode >> 0) & 7);
4482 AREG((Opcode >> 0) & 7) += 1;
4484 READ_BYTE_F(adr, res)
4485 flag_NotZ = res & src;
4496 src = DREGu8((Opcode >> 9) & 7);
4497 src = 1 << (src & 7);
4498 adr = AREG((Opcode >> 0) & 7) - 1;
4499 AREG((Opcode >> 0) & 7) = adr;
4501 READ_BYTE_F(adr, res)
4502 flag_NotZ = res & src;
4513 src = DREGu8((Opcode >> 9) & 7);
4514 src = 1 << (src & 7);
4516 adr += AREG((Opcode >> 0) & 7);
4518 READ_BYTE_F(adr, res)
4519 flag_NotZ = res & src;
4530 src = DREGu8((Opcode >> 9) & 7);
4531 src = 1 << (src & 7);
4532 adr = AREG((Opcode >> 0) & 7);
4535 READ_BYTE_F(adr, res)
4536 flag_NotZ = res & src;
4547 src = DREGu8((Opcode >> 9) & 7);
4548 src = 1 << (src & 7);
4551 READ_BYTE_F(adr, res)
4552 flag_NotZ = res & src;
4563 src = DREGu8((Opcode >> 9) & 7);
4564 src = 1 << (src & 7);
4567 READ_BYTE_F(adr, res)
4568 flag_NotZ = res & src;
4579 src = DREGu8((Opcode >> 9) & 7);
4580 src = 1 << (src & 7);
4581 adr = GET_SWORD + ((u32)(PC) - BasePC);
4584 READ_BYTE_F(adr, res)
4585 flag_NotZ = res & src;
4596 src = DREGu8((Opcode >> 9) & 7);
4597 src = 1 << (src & 7);
4598 adr = (u32)(PC) - BasePC;
4601 READ_BYTE_F(adr, res)
4602 flag_NotZ = res & src;
4613 src = DREGu8((Opcode >> 9) & 7);
4614 src = 1 << (src & 7);
4616 flag_NotZ = res & src;
4626 src = DREGu8((Opcode >> 9) & 7);
4627 src = 1 << (src & 7);
4631 READ_BYTE_F(adr, res)
4632 flag_NotZ = res & src;
4643 src = DREGu8((Opcode >> 9) & 7);
4644 src = 1 << (src & 7);
4648 READ_BYTE_F(adr, res)
4649 flag_NotZ = res & src;
4660 src = DREGu32((Opcode >> 9) & 7);
4661 src = 1 << (src & 31);
4662 res = DREGu32((Opcode >> 0) & 7);
4663 flag_NotZ = res & src;
4665 DREGu32((Opcode >> 0) & 7) = res;
4675 src = DREGu8((Opcode >> 9) & 7);
4676 src = 1 << (src & 7);
4677 adr = AREG((Opcode >> 0) & 7);
4679 READ_BYTE_F(adr, res)
4680 flag_NotZ = res & src;
4682 WRITE_BYTE_F(adr, res)
4693 src = DREGu8((Opcode >> 9) & 7);
4694 src = 1 << (src & 7);
4695 adr = AREG((Opcode >> 0) & 7);
4696 AREG((Opcode >> 0) & 7) += 1;
4698 READ_BYTE_F(adr, res)
4699 flag_NotZ = res & src;
4701 WRITE_BYTE_F(adr, res)
4712 src = DREGu8((Opcode >> 9) & 7);
4713 src = 1 << (src & 7);
4714 adr = AREG((Opcode >> 0) & 7) - 1;
4715 AREG((Opcode >> 0) & 7) = adr;
4717 READ_BYTE_F(adr, res)
4718 flag_NotZ = res & src;
4720 WRITE_BYTE_F(adr, res)
4731 src = DREGu8((Opcode >> 9) & 7);
4732 src = 1 << (src & 7);
4734 adr += AREG((Opcode >> 0) & 7);
4736 READ_BYTE_F(adr, res)
4737 flag_NotZ = res & src;
4739 WRITE_BYTE_F(adr, res)
4750 src = DREGu8((Opcode >> 9) & 7);
4751 src = 1 << (src & 7);
4752 adr = AREG((Opcode >> 0) & 7);
4755 READ_BYTE_F(adr, res)
4756 flag_NotZ = res & src;
4758 WRITE_BYTE_F(adr, res)
4769 src = DREGu8((Opcode >> 9) & 7);
4770 src = 1 << (src & 7);
4773 READ_BYTE_F(adr, res)
4774 flag_NotZ = res & src;
4776 WRITE_BYTE_F(adr, res)
4787 src = DREGu8((Opcode >> 9) & 7);
4788 src = 1 << (src & 7);
4791 READ_BYTE_F(adr, res)
4792 flag_NotZ = res & src;
4794 WRITE_BYTE_F(adr, res)
4805 src = DREGu8((Opcode >> 9) & 7);
4806 src = 1 << (src & 7);
4810 READ_BYTE_F(adr, res)
4811 flag_NotZ = res & src;
4813 WRITE_BYTE_F(adr, res)
4824 src = DREGu8((Opcode >> 9) & 7);
4825 src = 1 << (src & 7);
4829 READ_BYTE_F(adr, res)
4830 flag_NotZ = res & src;
4832 WRITE_BYTE_F(adr, res)
4843 src = DREGu32((Opcode >> 9) & 7);
4844 src = 1 << (src & 31);
4845 res = DREGu32((Opcode >> 0) & 7);
4846 flag_NotZ = res & src;
4848 DREGu32((Opcode >> 0) & 7) = res;
4858 src = DREGu8((Opcode >> 9) & 7);
4859 src = 1 << (src & 7);
4860 adr = AREG((Opcode >> 0) & 7);
4862 READ_BYTE_F(adr, res)
4863 flag_NotZ = res & src;
4865 WRITE_BYTE_F(adr, res)
4876 src = DREGu8((Opcode >> 9) & 7);
4877 src = 1 << (src & 7);
4878 adr = AREG((Opcode >> 0) & 7);
4879 AREG((Opcode >> 0) & 7) += 1;
4881 READ_BYTE_F(adr, res)
4882 flag_NotZ = res & src;
4884 WRITE_BYTE_F(adr, res)
4895 src = DREGu8((Opcode >> 9) & 7);
4896 src = 1 << (src & 7);
4897 adr = AREG((Opcode >> 0) & 7) - 1;
4898 AREG((Opcode >> 0) & 7) = adr;
4900 READ_BYTE_F(adr, res)
4901 flag_NotZ = res & src;
4903 WRITE_BYTE_F(adr, res)
4914 src = DREGu8((Opcode >> 9) & 7);
4915 src = 1 << (src & 7);
4917 adr += AREG((Opcode >> 0) & 7);
4919 READ_BYTE_F(adr, res)
4920 flag_NotZ = res & src;
4922 WRITE_BYTE_F(adr, res)
4933 src = DREGu8((Opcode >> 9) & 7);
4934 src = 1 << (src & 7);
4935 adr = AREG((Opcode >> 0) & 7);
4938 READ_BYTE_F(adr, res)
4939 flag_NotZ = res & src;
4941 WRITE_BYTE_F(adr, res)
4952 src = DREGu8((Opcode >> 9) & 7);
4953 src = 1 << (src & 7);
4956 READ_BYTE_F(adr, res)
4957 flag_NotZ = res & src;
4959 WRITE_BYTE_F(adr, res)
4970 src = DREGu8((Opcode >> 9) & 7);
4971 src = 1 << (src & 7);
4974 READ_BYTE_F(adr, res)
4975 flag_NotZ = res & src;
4977 WRITE_BYTE_F(adr, res)
4988 src = DREGu8((Opcode >> 9) & 7);
4989 src = 1 << (src & 7);
4993 READ_BYTE_F(adr, res)
4994 flag_NotZ = res & src;
4996 WRITE_BYTE_F(adr, res)
5007 src = DREGu8((Opcode >> 9) & 7);
5008 src = 1 << (src & 7);
5012 READ_BYTE_F(adr, res)
5013 flag_NotZ = res & src;
5015 WRITE_BYTE_F(adr, res)
5026 src = DREGu32((Opcode >> 9) & 7);
5027 src = 1 << (src & 31);
5028 res = DREGu32((Opcode >> 0) & 7);
5029 flag_NotZ = res & src;
5031 DREGu32((Opcode >> 0) & 7) = res;
5041 src = DREGu8((Opcode >> 9) & 7);
5042 src = 1 << (src & 7);
5043 adr = AREG((Opcode >> 0) & 7);
5045 READ_BYTE_F(adr, res)
5046 flag_NotZ = res & src;
5048 WRITE_BYTE_F(adr, res)
5059 src = DREGu8((Opcode >> 9) & 7);
5060 src = 1 << (src & 7);
5061 adr = AREG((Opcode >> 0) & 7);
5062 AREG((Opcode >> 0) & 7) += 1;
5064 READ_BYTE_F(adr, res)
5065 flag_NotZ = res & src;
5067 WRITE_BYTE_F(adr, res)
5078 src = DREGu8((Opcode >> 9) & 7);
5079 src = 1 << (src & 7);
5080 adr = AREG((Opcode >> 0) & 7) - 1;
5081 AREG((Opcode >> 0) & 7) = adr;
5083 READ_BYTE_F(adr, res)
5084 flag_NotZ = res & src;
5086 WRITE_BYTE_F(adr, res)
5097 src = DREGu8((Opcode >> 9) & 7);
5098 src = 1 << (src & 7);
5100 adr += AREG((Opcode >> 0) & 7);
5102 READ_BYTE_F(adr, res)
5103 flag_NotZ = res & src;
5105 WRITE_BYTE_F(adr, res)
5116 src = DREGu8((Opcode >> 9) & 7);
5117 src = 1 << (src & 7);
5118 adr = AREG((Opcode >> 0) & 7);
5121 READ_BYTE_F(adr, res)
5122 flag_NotZ = res & src;
5124 WRITE_BYTE_F(adr, res)
5135 src = DREGu8((Opcode >> 9) & 7);
5136 src = 1 << (src & 7);
5139 READ_BYTE_F(adr, res)
5140 flag_NotZ = res & src;
5142 WRITE_BYTE_F(adr, res)
5153 src = DREGu8((Opcode >> 9) & 7);
5154 src = 1 << (src & 7);
5157 READ_BYTE_F(adr, res)
5158 flag_NotZ = res & src;
5160 WRITE_BYTE_F(adr, res)
5171 src = DREGu8((Opcode >> 9) & 7);
5172 src = 1 << (src & 7);
5176 READ_BYTE_F(adr, res)
5177 flag_NotZ = res & src;
5179 WRITE_BYTE_F(adr, res)
5190 src = DREGu8((Opcode >> 9) & 7);
5191 src = 1 << (src & 7);
5195 READ_BYTE_F(adr, res)
5196 flag_NotZ = res & src;
5198 WRITE_BYTE_F(adr, res)
5210 adr += AREG((Opcode >> 0) & 7);
5212 READ_BYTE_F(adr + 0, res)
5213 READ_BYTE_F(adr + 2, src)
5214 DREGu16((Opcode >> 9) & 7) = (res << 8) | src;
5226 adr += AREG((Opcode >> 0) & 7);
5228 READ_BYTE_F(adr, res)
5231 READ_BYTE_F(adr, src)
5234 READ_BYTE_F(adr, src)
5237 READ_BYTE_F(adr, src)
5238 DREG((Opcode >> 9) & 7) = res | src;
5249 res = DREGu32((Opcode >> 9) & 7);
5251 adr += AREG((Opcode >> 0) & 7);
5253 WRITE_BYTE_F(adr + 0, res >> 8)
5254 WRITE_BYTE_F(adr + 2, res >> 0)
5265 res = DREGu32((Opcode >> 9) & 7);
5267 adr += AREG((Opcode >> 0) & 7);
5269 WRITE_BYTE_F(adr, res >> 24)
5271 WRITE_BYTE_F(adr, res >> 16)
5273 WRITE_BYTE_F(adr, res >> 8)
5275 WRITE_BYTE_F(adr, res >> 0)
5286 res = DREGu8((Opcode >> 0) & 7);
5291 DREGu8((Opcode >> 9) & 7) = res;
5301 res = DREGu8((Opcode >> 0) & 7);
5306 adr = AREG((Opcode >> 9) & 7);
5308 WRITE_BYTE_F(adr, res)
5319 res = DREGu8((Opcode >> 0) & 7);
5324 adr = AREG((Opcode >> 9) & 7);
5325 AREG((Opcode >> 9) & 7) += 1;
5327 WRITE_BYTE_F(adr, res)
5338 res = DREGu8((Opcode >> 0) & 7);
5343 adr = AREG((Opcode >> 9) & 7) - 1;
5344 AREG((Opcode >> 9) & 7) = adr;
5346 WRITE_BYTE_F(adr, res)
5357 res = DREGu8((Opcode >> 0) & 7);
5363 adr += AREG((Opcode >> 9) & 7);
5365 WRITE_BYTE_F(adr, res)
5376 res = DREGu8((Opcode >> 0) & 7);
5381 adr = AREG((Opcode >> 9) & 7);
5384 WRITE_BYTE_F(adr, res)
5395 res = DREGu8((Opcode >> 0) & 7);
5402 WRITE_BYTE_F(adr, res)
5413 res = DREGu8((Opcode >> 0) & 7);
5420 WRITE_BYTE_F(adr, res)
5431 res = DREGu8((Opcode >> 0) & 7);
5439 WRITE_BYTE_F(adr, res)
5450 res = DREGu8((Opcode >> 0) & 7);
5458 WRITE_BYTE_F(adr, res)
5469 // can't read byte from Ax registers !
5470 m68kcontext.execinfo |= M68K_FAULTED;
5471 m68kcontext.io_cycle_counter = 0;
5473 goto famec_Exec_End;
5478 DREGu8((Opcode >> 9) & 7) = res;
5489 // can't read byte from Ax registers !
5490 m68kcontext.execinfo |= M68K_FAULTED;
5491 m68kcontext.io_cycle_counter = 0;
5493 goto famec_Exec_End;
5498 adr = AREG((Opcode >> 9) & 7);
5500 WRITE_BYTE_F(adr, res)
5512 // can't read byte from Ax registers !
5513 m68kcontext.execinfo |= M68K_FAULTED;
5514 m68kcontext.io_cycle_counter = 0;
5516 goto famec_Exec_End;
5521 adr = AREG((Opcode >> 9) & 7);
5522 AREG((Opcode >> 9) & 7) += 1;
5524 WRITE_BYTE_F(adr, res)
5536 // can't read byte from Ax registers !
5537 m68kcontext.execinfo |= M68K_FAULTED;
5538 m68kcontext.io_cycle_counter = 0;
5540 goto famec_Exec_End;
5545 adr = AREG((Opcode >> 9) & 7) - 1;
5546 AREG((Opcode >> 9) & 7) = adr;
5548 WRITE_BYTE_F(adr, res)
5560 // can't read byte from Ax registers !
5561 m68kcontext.execinfo |= M68K_FAULTED;
5562 m68kcontext.io_cycle_counter = 0;
5564 goto famec_Exec_End;
5570 adr += AREG((Opcode >> 9) & 7);
5572 WRITE_BYTE_F(adr, res)
5584 // can't read byte from Ax registers !
5585 m68kcontext.execinfo |= M68K_FAULTED;
5586 m68kcontext.io_cycle_counter = 0;
5588 goto famec_Exec_End;
5593 adr = AREG((Opcode >> 9) & 7);
5596 WRITE_BYTE_F(adr, res)
5608 // can't read byte from Ax registers !
5609 m68kcontext.execinfo |= M68K_FAULTED;
5610 m68kcontext.io_cycle_counter = 0;
5612 goto famec_Exec_End;
5619 WRITE_BYTE_F(adr, res)
5631 // can't read byte from Ax registers !
5632 m68kcontext.execinfo |= M68K_FAULTED;
5633 m68kcontext.io_cycle_counter = 0;
5635 goto famec_Exec_End;
5642 WRITE_BYTE_F(adr, res)
5654 // can't read byte from Ax registers !
5655 m68kcontext.execinfo |= M68K_FAULTED;
5656 m68kcontext.io_cycle_counter = 0;
5658 goto famec_Exec_End;
5666 WRITE_BYTE_F(adr, res)
5678 // can't read byte from Ax registers !
5679 m68kcontext.execinfo |= M68K_FAULTED;
5680 m68kcontext.io_cycle_counter = 0;
5682 goto famec_Exec_End;
5690 WRITE_BYTE_F(adr, res)
5702 adr = AREG((Opcode >> 0) & 7);
5704 READ_BYTE_F(adr, res)
5709 DREGu8((Opcode >> 9) & 7) = res;
5720 adr = AREG((Opcode >> 0) & 7);
5722 READ_BYTE_F(adr, res)
5727 adr = AREG((Opcode >> 9) & 7);
5728 WRITE_BYTE_F(adr, res)
5739 adr = AREG((Opcode >> 0) & 7);
5741 READ_BYTE_F(adr, res)
5746 adr = AREG((Opcode >> 9) & 7);
5747 AREG((Opcode >> 9) & 7) += 1;
5748 WRITE_BYTE_F(adr, res)
5759 adr = AREG((Opcode >> 0) & 7);
5761 READ_BYTE_F(adr, res)
5766 adr = AREG((Opcode >> 9) & 7) - 1;
5767 AREG((Opcode >> 9) & 7) = adr;
5768 WRITE_BYTE_F(adr, res)
5779 adr = AREG((Opcode >> 0) & 7);
5781 READ_BYTE_F(adr, res)
5787 adr += AREG((Opcode >> 9) & 7);
5788 WRITE_BYTE_F(adr, res)
5799 adr = AREG((Opcode >> 0) & 7);
5801 READ_BYTE_F(adr, res)
5806 adr = AREG((Opcode >> 9) & 7);
5808 WRITE_BYTE_F(adr, res)
5819 adr = AREG((Opcode >> 0) & 7);
5821 READ_BYTE_F(adr, res)
5827 WRITE_BYTE_F(adr, res)
5838 adr = AREG((Opcode >> 0) & 7);
5840 READ_BYTE_F(adr, res)
5846 WRITE_BYTE_F(adr, res)
5857 adr = AREG((Opcode >> 0) & 7);
5859 READ_BYTE_F(adr, res)
5866 WRITE_BYTE_F(adr, res)
5877 adr = AREG((Opcode >> 0) & 7);
5879 READ_BYTE_F(adr, res)
5886 WRITE_BYTE_F(adr, res)
5897 adr = AREG((Opcode >> 0) & 7);
5898 AREG((Opcode >> 0) & 7) += 1;
5900 READ_BYTE_F(adr, res)
5905 DREGu8((Opcode >> 9) & 7) = res;
5916 adr = AREG((Opcode >> 0) & 7);
5917 AREG((Opcode >> 0) & 7) += 1;
5919 READ_BYTE_F(adr, res)
5924 adr = AREG((Opcode >> 9) & 7);
5925 WRITE_BYTE_F(adr, res)
5936 adr = AREG((Opcode >> 0) & 7);
5937 AREG((Opcode >> 0) & 7) += 1;
5939 READ_BYTE_F(adr, res)
5944 adr = AREG((Opcode >> 9) & 7);
5945 AREG((Opcode >> 9) & 7) += 1;
5946 WRITE_BYTE_F(adr, res)
5957 adr = AREG((Opcode >> 0) & 7);
5958 AREG((Opcode >> 0) & 7) += 1;
5960 READ_BYTE_F(adr, res)
5965 adr = AREG((Opcode >> 9) & 7) - 1;
5966 AREG((Opcode >> 9) & 7) = adr;
5967 WRITE_BYTE_F(adr, res)
5978 adr = AREG((Opcode >> 0) & 7);
5979 AREG((Opcode >> 0) & 7) += 1;
5981 READ_BYTE_F(adr, res)
5987 adr += AREG((Opcode >> 9) & 7);
5988 WRITE_BYTE_F(adr, res)
5999 adr = AREG((Opcode >> 0) & 7);
6000 AREG((Opcode >> 0) & 7) += 1;
6002 READ_BYTE_F(adr, res)
6007 adr = AREG((Opcode >> 9) & 7);
6009 WRITE_BYTE_F(adr, res)
6020 adr = AREG((Opcode >> 0) & 7);
6021 AREG((Opcode >> 0) & 7) += 1;
6023 READ_BYTE_F(adr, res)
6029 WRITE_BYTE_F(adr, res)
6040 adr = AREG((Opcode >> 0) & 7);
6041 AREG((Opcode >> 0) & 7) += 1;
6043 READ_BYTE_F(adr, res)
6049 WRITE_BYTE_F(adr, res)
6060 adr = AREG((Opcode >> 0) & 7);
6061 AREG((Opcode >> 0) & 7) += 1;
6063 READ_BYTE_F(adr, res)
6070 WRITE_BYTE_F(adr, res)
6081 adr = AREG((Opcode >> 0) & 7);
6082 AREG((Opcode >> 0) & 7) += 1;
6084 READ_BYTE_F(adr, res)
6091 WRITE_BYTE_F(adr, res)
6102 adr = AREG((Opcode >> 0) & 7) - 1;
6103 AREG((Opcode >> 0) & 7) = adr;
6105 READ_BYTE_F(adr, res)
6110 DREGu8((Opcode >> 9) & 7) = res;
6121 adr = AREG((Opcode >> 0) & 7) - 1;
6122 AREG((Opcode >> 0) & 7) = adr;
6124 READ_BYTE_F(adr, res)
6129 adr = AREG((Opcode >> 9) & 7);
6130 WRITE_BYTE_F(adr, res)
6141 adr = AREG((Opcode >> 0) & 7) - 1;
6142 AREG((Opcode >> 0) & 7) = adr;
6144 READ_BYTE_F(adr, res)
6149 adr = AREG((Opcode >> 9) & 7);
6150 AREG((Opcode >> 9) & 7) += 1;
6151 WRITE_BYTE_F(adr, res)
6162 adr = AREG((Opcode >> 0) & 7) - 1;
6163 AREG((Opcode >> 0) & 7) = adr;
6165 READ_BYTE_F(adr, res)
6170 adr = AREG((Opcode >> 9) & 7) - 1;
6171 AREG((Opcode >> 9) & 7) = adr;
6172 WRITE_BYTE_F(adr, res)
6183 adr = AREG((Opcode >> 0) & 7) - 1;
6184 AREG((Opcode >> 0) & 7) = adr;
6186 READ_BYTE_F(adr, res)
6192 adr += AREG((Opcode >> 9) & 7);
6193 WRITE_BYTE_F(adr, res)
6204 adr = AREG((Opcode >> 0) & 7) - 1;
6205 AREG((Opcode >> 0) & 7) = adr;
6207 READ_BYTE_F(adr, res)
6212 adr = AREG((Opcode >> 9) & 7);
6214 WRITE_BYTE_F(adr, res)
6225 adr = AREG((Opcode >> 0) & 7) - 1;
6226 AREG((Opcode >> 0) & 7) = adr;
6228 READ_BYTE_F(adr, res)
6234 WRITE_BYTE_F(adr, res)
6245 adr = AREG((Opcode >> 0) & 7) - 1;
6246 AREG((Opcode >> 0) & 7) = adr;
6248 READ_BYTE_F(adr, res)
6254 WRITE_BYTE_F(adr, res)
6265 adr = AREG((Opcode >> 0) & 7) - 1;
6266 AREG((Opcode >> 0) & 7) = adr;
6268 READ_BYTE_F(adr, res)
6275 WRITE_BYTE_F(adr, res)
6286 adr = AREG((Opcode >> 0) & 7) - 1;
6287 AREG((Opcode >> 0) & 7) = adr;
6289 READ_BYTE_F(adr, res)
6296 WRITE_BYTE_F(adr, res)
6308 adr += AREG((Opcode >> 0) & 7);
6310 READ_BYTE_F(adr, res)
6315 DREGu8((Opcode >> 9) & 7) = res;
6327 adr += AREG((Opcode >> 0) & 7);
6329 READ_BYTE_F(adr, res)
6334 adr = AREG((Opcode >> 9) & 7);
6335 WRITE_BYTE_F(adr, res)
6347 adr += AREG((Opcode >> 0) & 7);
6349 READ_BYTE_F(adr, res)
6354 adr = AREG((Opcode >> 9) & 7);
6355 AREG((Opcode >> 9) & 7) += 1;
6356 WRITE_BYTE_F(adr, res)
6368 adr += AREG((Opcode >> 0) & 7);
6370 READ_BYTE_F(adr, res)
6375 adr = AREG((Opcode >> 9) & 7) - 1;
6376 AREG((Opcode >> 9) & 7) = adr;
6377 WRITE_BYTE_F(adr, res)
6389 adr += AREG((Opcode >> 0) & 7);
6391 READ_BYTE_F(adr, res)
6397 adr += AREG((Opcode >> 9) & 7);
6398 WRITE_BYTE_F(adr, res)
6410 adr += AREG((Opcode >> 0) & 7);
6412 READ_BYTE_F(adr, res)
6417 adr = AREG((Opcode >> 9) & 7);
6419 WRITE_BYTE_F(adr, res)
6431 adr += AREG((Opcode >> 0) & 7);
6433 READ_BYTE_F(adr, res)
6439 WRITE_BYTE_F(adr, res)
6451 adr += AREG((Opcode >> 0) & 7);
6453 READ_BYTE_F(adr, res)
6459 WRITE_BYTE_F(adr, res)
6471 adr += AREG((Opcode >> 0) & 7);
6473 READ_BYTE_F(adr, res)
6480 WRITE_BYTE_F(adr, res)
6492 adr += AREG((Opcode >> 0) & 7);
6494 READ_BYTE_F(adr, res)
6501 WRITE_BYTE_F(adr, res)
6512 adr = AREG((Opcode >> 0) & 7);
6515 READ_BYTE_F(adr, res)
6520 DREGu8((Opcode >> 9) & 7) = res;
6531 adr = AREG((Opcode >> 0) & 7);
6534 READ_BYTE_F(adr, res)
6539 adr = AREG((Opcode >> 9) & 7);
6540 WRITE_BYTE_F(adr, res)
6551 adr = AREG((Opcode >> 0) & 7);
6554 READ_BYTE_F(adr, res)
6559 adr = AREG((Opcode >> 9) & 7);
6560 AREG((Opcode >> 9) & 7) += 1;
6561 WRITE_BYTE_F(adr, res)
6572 adr = AREG((Opcode >> 0) & 7);
6575 READ_BYTE_F(adr, res)
6580 adr = AREG((Opcode >> 9) & 7) - 1;
6581 AREG((Opcode >> 9) & 7) = adr;
6582 WRITE_BYTE_F(adr, res)
6593 adr = AREG((Opcode >> 0) & 7);
6596 READ_BYTE_F(adr, res)
6602 adr += AREG((Opcode >> 9) & 7);
6603 WRITE_BYTE_F(adr, res)
6614 adr = AREG((Opcode >> 0) & 7);
6617 READ_BYTE_F(adr, res)
6622 adr = AREG((Opcode >> 9) & 7);
6624 WRITE_BYTE_F(adr, res)
6635 adr = AREG((Opcode >> 0) & 7);
6638 READ_BYTE_F(adr, res)
6644 WRITE_BYTE_F(adr, res)
6655 adr = AREG((Opcode >> 0) & 7);
6658 READ_BYTE_F(adr, res)
6664 WRITE_BYTE_F(adr, res)
6675 adr = AREG((Opcode >> 0) & 7);
6678 READ_BYTE_F(adr, res)
6685 WRITE_BYTE_F(adr, res)
6696 adr = AREG((Opcode >> 0) & 7);
6699 READ_BYTE_F(adr, res)
6706 WRITE_BYTE_F(adr, res)
6719 READ_BYTE_F(adr, res)
6724 DREGu8((Opcode >> 9) & 7) = res;
6737 READ_BYTE_F(adr, res)
6742 adr = AREG((Opcode >> 9) & 7);
6743 WRITE_BYTE_F(adr, res)
6756 READ_BYTE_F(adr, res)
6761 adr = AREG((Opcode >> 9) & 7);
6762 AREG((Opcode >> 9) & 7) += 1;
6763 WRITE_BYTE_F(adr, res)
6776 READ_BYTE_F(adr, res)
6781 adr = AREG((Opcode >> 9) & 7) - 1;
6782 AREG((Opcode >> 9) & 7) = adr;
6783 WRITE_BYTE_F(adr, res)
6796 READ_BYTE_F(adr, res)
6802 adr += AREG((Opcode >> 9) & 7);
6803 WRITE_BYTE_F(adr, res)
6816 READ_BYTE_F(adr, res)
6821 adr = AREG((Opcode >> 9) & 7);
6823 WRITE_BYTE_F(adr, res)
6836 READ_BYTE_F(adr, res)
6842 WRITE_BYTE_F(adr, res)
6855 READ_BYTE_F(adr, res)
6861 WRITE_BYTE_F(adr, res)
6874 READ_BYTE_F(adr, res)
6881 WRITE_BYTE_F(adr, res)
6894 READ_BYTE_F(adr, res)
6901 WRITE_BYTE_F(adr, res)
6914 READ_BYTE_F(adr, res)
6919 DREGu8((Opcode >> 9) & 7) = res;
6932 READ_BYTE_F(adr, res)
6937 adr = AREG((Opcode >> 9) & 7);
6938 WRITE_BYTE_F(adr, res)
6951 READ_BYTE_F(adr, res)
6956 adr = AREG((Opcode >> 9) & 7);
6957 AREG((Opcode >> 9) & 7) += 1;
6958 WRITE_BYTE_F(adr, res)
6971 READ_BYTE_F(adr, res)
6976 adr = AREG((Opcode >> 9) & 7) - 1;
6977 AREG((Opcode >> 9) & 7) = adr;
6978 WRITE_BYTE_F(adr, res)
6991 READ_BYTE_F(adr, res)
6997 adr += AREG((Opcode >> 9) & 7);
6998 WRITE_BYTE_F(adr, res)
7011 READ_BYTE_F(adr, res)
7016 adr = AREG((Opcode >> 9) & 7);
7018 WRITE_BYTE_F(adr, res)
7031 READ_BYTE_F(adr, res)
7037 WRITE_BYTE_F(adr, res)
7050 READ_BYTE_F(adr, res)
7056 WRITE_BYTE_F(adr, res)
7069 READ_BYTE_F(adr, res)
7076 WRITE_BYTE_F(adr, res)
7089 READ_BYTE_F(adr, res)
7096 WRITE_BYTE_F(adr, res)
7107 adr = GET_SWORD + ((u32)(PC) - BasePC);
7110 READ_BYTE_F(adr, res)
7115 DREGu8((Opcode >> 9) & 7) = res;
7126 adr = GET_SWORD + ((u32)(PC) - BasePC);
7129 READ_BYTE_F(adr, res)
7134 adr = AREG((Opcode >> 9) & 7);
7135 WRITE_BYTE_F(adr, res)
7146 adr = GET_SWORD + ((u32)(PC) - BasePC);
7149 READ_BYTE_F(adr, res)
7154 adr = AREG((Opcode >> 9) & 7);
7155 AREG((Opcode >> 9) & 7) += 1;
7156 WRITE_BYTE_F(adr, res)
7167 adr = GET_SWORD + ((u32)(PC) - BasePC);
7170 READ_BYTE_F(adr, res)
7175 adr = AREG((Opcode >> 9) & 7) - 1;
7176 AREG((Opcode >> 9) & 7) = adr;
7177 WRITE_BYTE_F(adr, res)
7188 adr = GET_SWORD + ((u32)(PC) - BasePC);
7191 READ_BYTE_F(adr, res)
7197 adr += AREG((Opcode >> 9) & 7);
7198 WRITE_BYTE_F(adr, res)
7209 adr = GET_SWORD + ((u32)(PC) - BasePC);
7212 READ_BYTE_F(adr, res)
7217 adr = AREG((Opcode >> 9) & 7);
7219 WRITE_BYTE_F(adr, res)
7230 adr = GET_SWORD + ((u32)(PC) - BasePC);
7233 READ_BYTE_F(adr, res)
7239 WRITE_BYTE_F(adr, res)
7250 adr = GET_SWORD + ((u32)(PC) - BasePC);
7253 READ_BYTE_F(adr, res)
7259 WRITE_BYTE_F(adr, res)
7270 adr = GET_SWORD + ((u32)(PC) - BasePC);
7273 READ_BYTE_F(adr, res)
7280 WRITE_BYTE_F(adr, res)
7291 adr = GET_SWORD + ((u32)(PC) - BasePC);
7294 READ_BYTE_F(adr, res)
7301 WRITE_BYTE_F(adr, res)
7312 adr = (u32)(PC) - BasePC;
7315 READ_BYTE_F(adr, res)
7320 DREGu8((Opcode >> 9) & 7) = res;
7331 adr = (u32)(PC) - BasePC;
7334 READ_BYTE_F(adr, res)
7339 adr = AREG((Opcode >> 9) & 7);
7340 WRITE_BYTE_F(adr, res)
7351 adr = (u32)(PC) - BasePC;
7354 READ_BYTE_F(adr, res)
7359 adr = AREG((Opcode >> 9) & 7);
7360 AREG((Opcode >> 9) & 7) += 1;
7361 WRITE_BYTE_F(adr, res)
7372 adr = (u32)(PC) - BasePC;
7375 READ_BYTE_F(adr, res)
7380 adr = AREG((Opcode >> 9) & 7) - 1;
7381 AREG((Opcode >> 9) & 7) = adr;
7382 WRITE_BYTE_F(adr, res)
7393 adr = (u32)(PC) - BasePC;
7396 READ_BYTE_F(adr, res)
7402 adr += AREG((Opcode >> 9) & 7);
7403 WRITE_BYTE_F(adr, res)
7414 adr = (u32)(PC) - BasePC;
7417 READ_BYTE_F(adr, res)
7422 adr = AREG((Opcode >> 9) & 7);
7424 WRITE_BYTE_F(adr, res)
7435 adr = (u32)(PC) - BasePC;
7438 READ_BYTE_F(adr, res)
7444 WRITE_BYTE_F(adr, res)
7455 adr = (u32)(PC) - BasePC;
7458 READ_BYTE_F(adr, res)
7464 WRITE_BYTE_F(adr, res)
7475 adr = (u32)(PC) - BasePC;
7478 READ_BYTE_F(adr, res)
7485 WRITE_BYTE_F(adr, res)
7496 adr = (u32)(PC) - BasePC;
7499 READ_BYTE_F(adr, res)
7506 WRITE_BYTE_F(adr, res)
7522 DREGu8((Opcode >> 9) & 7) = res;
7537 adr = AREG((Opcode >> 9) & 7);
7539 WRITE_BYTE_F(adr, res)
7555 adr = AREG((Opcode >> 9) & 7);
7556 AREG((Opcode >> 9) & 7) += 1;
7558 WRITE_BYTE_F(adr, res)
7574 adr = AREG((Opcode >> 9) & 7) - 1;
7575 AREG((Opcode >> 9) & 7) = adr;
7577 WRITE_BYTE_F(adr, res)
7594 adr += AREG((Opcode >> 9) & 7);
7596 WRITE_BYTE_F(adr, res)
7612 adr = AREG((Opcode >> 9) & 7);
7615 WRITE_BYTE_F(adr, res)
7633 WRITE_BYTE_F(adr, res)
7651 WRITE_BYTE_F(adr, res)
7670 WRITE_BYTE_F(adr, res)
7689 WRITE_BYTE_F(adr, res)
7703 READ_BYTE_F(adr, res)
7708 DREGu8((Opcode >> 9) & 7) = res;
7722 READ_BYTE_F(adr, res)
7727 adr = AREG((Opcode >> 9) & 7);
7728 WRITE_BYTE_F(adr, res)
7742 READ_BYTE_F(adr, res)
7747 adr = AREG((Opcode >> 9) & 7);
7748 AREG((Opcode >> 9) & 7) += 1;
7749 WRITE_BYTE_F(adr, res)
7763 READ_BYTE_F(adr, res)
7768 adr = AREG((Opcode >> 9) & 7) - 1;
7769 AREG((Opcode >> 9) & 7) = adr;
7770 WRITE_BYTE_F(adr, res)
7784 READ_BYTE_F(adr, res)
7790 adr += AREG((Opcode >> 9) & 7);
7791 WRITE_BYTE_F(adr, res)
7805 READ_BYTE_F(adr, res)
7810 adr = AREG((Opcode >> 9) & 7);
7812 WRITE_BYTE_F(adr, res)
7826 READ_BYTE_F(adr, res)
7832 WRITE_BYTE_F(adr, res)
7846 READ_BYTE_F(adr, res)
7852 WRITE_BYTE_F(adr, res)
7866 READ_BYTE_F(adr, res)
7873 WRITE_BYTE_F(adr, res)
7887 READ_BYTE_F(adr, res)
7894 WRITE_BYTE_F(adr, res)
7908 READ_BYTE_F(adr, res)
7913 DREGu8((Opcode >> 9) & 7) = res;
7927 READ_BYTE_F(adr, res)
7932 adr = AREG((Opcode >> 9) & 7);
7933 WRITE_BYTE_F(adr, res)
7947 READ_BYTE_F(adr, res)
7952 adr = AREG((Opcode >> 9) & 7);
7953 AREG((Opcode >> 9) & 7) += 1;
7954 WRITE_BYTE_F(adr, res)
7968 READ_BYTE_F(adr, res)
7973 adr = AREG((Opcode >> 9) & 7) - 1;
7974 AREG((Opcode >> 9) & 7) = adr;
7975 WRITE_BYTE_F(adr, res)
7989 READ_BYTE_F(adr, res)
7995 adr += AREG((Opcode >> 9) & 7);
7996 WRITE_BYTE_F(adr, res)
8010 READ_BYTE_F(adr, res)
8015 adr = AREG((Opcode >> 9) & 7);
8017 WRITE_BYTE_F(adr, res)
8031 READ_BYTE_F(adr, res)
8037 WRITE_BYTE_F(adr, res)
8051 READ_BYTE_F(adr, res)
8057 WRITE_BYTE_F(adr, res)
8071 READ_BYTE_F(adr, res)
8078 WRITE_BYTE_F(adr, res)
8092 READ_BYTE_F(adr, res)
8099 WRITE_BYTE_F(adr, res)
8110 res = DREGu32((Opcode >> 0) & 7);
8115 DREGu32((Opcode >> 9) & 7) = res;
8125 res = DREGu32((Opcode >> 0) & 7);
8130 adr = AREG((Opcode >> 9) & 7);
8132 WRITE_LONG_F(adr, res)
8143 res = DREGu32((Opcode >> 0) & 7);
8148 adr = AREG((Opcode >> 9) & 7);
8149 AREG((Opcode >> 9) & 7) += 4;
8151 WRITE_LONG_F(adr, res)
8162 res = DREGu32((Opcode >> 0) & 7);
8167 adr = AREG((Opcode >> 9) & 7) - 4;
8168 AREG((Opcode >> 9) & 7) = adr;
8170 WRITE_LONG_F(adr, res)
8181 res = DREGu32((Opcode >> 0) & 7);
8187 adr += AREG((Opcode >> 9) & 7);
8189 WRITE_LONG_F(adr, res)
8200 res = DREGu32((Opcode >> 0) & 7);
8205 adr = AREG((Opcode >> 9) & 7);
8208 WRITE_LONG_F(adr, res)
8219 res = DREGu32((Opcode >> 0) & 7);
8226 WRITE_LONG_F(adr, res)
8237 res = DREGu32((Opcode >> 0) & 7);
8244 WRITE_LONG_F(adr, res)
8255 res = DREGu32((Opcode >> 0) & 7);
8263 WRITE_LONG_F(adr, res)
8274 res = DREGu32((Opcode >> 0) & 7);
8282 WRITE_LONG_F(adr, res)
8293 res = AREGu32((Opcode >> 0) & 7);
8298 DREGu32((Opcode >> 9) & 7) = res;
8308 res = AREGu32((Opcode >> 0) & 7);
8313 adr = AREG((Opcode >> 9) & 7);
8315 WRITE_LONG_F(adr, res)
8326 res = AREGu32((Opcode >> 0) & 7);
8331 adr = AREG((Opcode >> 9) & 7);
8332 AREG((Opcode >> 9) & 7) += 4;
8334 WRITE_LONG_F(adr, res)
8345 res = AREGu32((Opcode >> 0) & 7);
8350 adr = AREG((Opcode >> 9) & 7) - 4;
8351 AREG((Opcode >> 9) & 7) = adr;
8353 WRITE_LONG_F(adr, res)
8364 res = AREGu32((Opcode >> 0) & 7);
8370 adr += AREG((Opcode >> 9) & 7);
8372 WRITE_LONG_F(adr, res)
8383 res = AREGu32((Opcode >> 0) & 7);
8388 adr = AREG((Opcode >> 9) & 7);
8391 WRITE_LONG_F(adr, res)
8402 res = AREGu32((Opcode >> 0) & 7);
8409 WRITE_LONG_F(adr, res)
8420 res = AREGu32((Opcode >> 0) & 7);
8427 WRITE_LONG_F(adr, res)
8438 res = AREGu32((Opcode >> 0) & 7);
8446 WRITE_LONG_F(adr, res)
8457 res = AREGu32((Opcode >> 0) & 7);
8465 WRITE_LONG_F(adr, res)
8476 adr = AREG((Opcode >> 0) & 7);
8478 READ_LONG_F(adr, res)
8483 DREGu32((Opcode >> 9) & 7) = res;
8494 adr = AREG((Opcode >> 0) & 7);
8496 READ_LONG_F(adr, res)
8501 adr = AREG((Opcode >> 9) & 7);
8502 WRITE_LONG_F(adr, res)
8513 adr = AREG((Opcode >> 0) & 7);
8515 READ_LONG_F(adr, res)
8520 adr = AREG((Opcode >> 9) & 7);
8521 AREG((Opcode >> 9) & 7) += 4;
8522 WRITE_LONG_F(adr, res)
8533 adr = AREG((Opcode >> 0) & 7);
8535 READ_LONG_F(adr, res)
8540 adr = AREG((Opcode >> 9) & 7) - 4;
8541 AREG((Opcode >> 9) & 7) = adr;
8542 WRITE_LONG_F(adr, res)
8553 adr = AREG((Opcode >> 0) & 7);
8555 READ_LONG_F(adr, res)
8561 adr += AREG((Opcode >> 9) & 7);
8562 WRITE_LONG_F(adr, res)
8573 adr = AREG((Opcode >> 0) & 7);
8575 READ_LONG_F(adr, res)
8580 adr = AREG((Opcode >> 9) & 7);
8582 WRITE_LONG_F(adr, res)
8593 adr = AREG((Opcode >> 0) & 7);
8595 READ_LONG_F(adr, res)
8601 WRITE_LONG_F(adr, res)
8612 adr = AREG((Opcode >> 0) & 7);
8614 READ_LONG_F(adr, res)
8620 WRITE_LONG_F(adr, res)
8631 adr = AREG((Opcode >> 0) & 7);
8633 READ_LONG_F(adr, res)
8640 WRITE_LONG_F(adr, res)
8651 adr = AREG((Opcode >> 0) & 7);
8653 READ_LONG_F(adr, res)
8660 WRITE_LONG_F(adr, res)
8671 adr = AREG((Opcode >> 0) & 7);
8672 AREG((Opcode >> 0) & 7) += 4;
8674 READ_LONG_F(adr, res)
8679 DREGu32((Opcode >> 9) & 7) = res;
8690 adr = AREG((Opcode >> 0) & 7);
8691 AREG((Opcode >> 0) & 7) += 4;
8693 READ_LONG_F(adr, res)
8698 adr = AREG((Opcode >> 9) & 7);
8699 WRITE_LONG_F(adr, res)
8710 adr = AREG((Opcode >> 0) & 7);
8711 AREG((Opcode >> 0) & 7) += 4;
8713 READ_LONG_F(adr, res)
8718 adr = AREG((Opcode >> 9) & 7);
8719 AREG((Opcode >> 9) & 7) += 4;
8720 WRITE_LONG_F(adr, res)
8731 adr = AREG((Opcode >> 0) & 7);
8732 AREG((Opcode >> 0) & 7) += 4;
8734 READ_LONG_F(adr, res)
8739 adr = AREG((Opcode >> 9) & 7) - 4;
8740 AREG((Opcode >> 9) & 7) = adr;
8741 WRITE_LONG_F(adr, res)
8752 adr = AREG((Opcode >> 0) & 7);
8753 AREG((Opcode >> 0) & 7) += 4;
8755 READ_LONG_F(adr, res)
8761 adr += AREG((Opcode >> 9) & 7);
8762 WRITE_LONG_F(adr, res)
8773 adr = AREG((Opcode >> 0) & 7);
8774 AREG((Opcode >> 0) & 7) += 4;
8776 READ_LONG_F(adr, res)
8781 adr = AREG((Opcode >> 9) & 7);
8783 WRITE_LONG_F(adr, res)
8794 adr = AREG((Opcode >> 0) & 7);
8795 AREG((Opcode >> 0) & 7) += 4;
8797 READ_LONG_F(adr, res)
8803 WRITE_LONG_F(adr, res)
8814 adr = AREG((Opcode >> 0) & 7);
8815 AREG((Opcode >> 0) & 7) += 4;
8817 READ_LONG_F(adr, res)
8823 WRITE_LONG_F(adr, res)
8834 adr = AREG((Opcode >> 0) & 7);
8835 AREG((Opcode >> 0) & 7) += 4;
8837 READ_LONG_F(adr, res)
8844 WRITE_LONG_F(adr, res)
8855 adr = AREG((Opcode >> 0) & 7);
8856 AREG((Opcode >> 0) & 7) += 4;
8858 READ_LONG_F(adr, res)
8865 WRITE_LONG_F(adr, res)
8876 adr = AREG((Opcode >> 0) & 7) - 4;
8877 AREG((Opcode >> 0) & 7) = adr;
8879 READ_LONG_F(adr, res)
8884 DREGu32((Opcode >> 9) & 7) = res;
8895 adr = AREG((Opcode >> 0) & 7) - 4;
8896 AREG((Opcode >> 0) & 7) = adr;
8898 READ_LONG_F(adr, res)
8903 adr = AREG((Opcode >> 9) & 7);
8904 WRITE_LONG_F(adr, res)
8915 adr = AREG((Opcode >> 0) & 7) - 4;
8916 AREG((Opcode >> 0) & 7) = adr;
8918 READ_LONG_F(adr, res)
8923 adr = AREG((Opcode >> 9) & 7);
8924 AREG((Opcode >> 9) & 7) += 4;
8925 WRITE_LONG_F(adr, res)
8936 adr = AREG((Opcode >> 0) & 7) - 4;
8937 AREG((Opcode >> 0) & 7) = adr;
8939 READ_LONG_F(adr, res)
8944 adr = AREG((Opcode >> 9) & 7) - 4;
8945 AREG((Opcode >> 9) & 7) = adr;
8946 WRITE_LONG_F(adr, res)
8957 adr = AREG((Opcode >> 0) & 7) - 4;
8958 AREG((Opcode >> 0) & 7) = adr;
8960 READ_LONG_F(adr, res)
8966 adr += AREG((Opcode >> 9) & 7);
8967 WRITE_LONG_F(adr, res)
8978 adr = AREG((Opcode >> 0) & 7) - 4;
8979 AREG((Opcode >> 0) & 7) = adr;
8981 READ_LONG_F(adr, res)
8986 adr = AREG((Opcode >> 9) & 7);
8988 WRITE_LONG_F(adr, res)
8999 adr = AREG((Opcode >> 0) & 7) - 4;
9000 AREG((Opcode >> 0) & 7) = adr;
9002 READ_LONG_F(adr, res)
9008 WRITE_LONG_F(adr, res)
9019 adr = AREG((Opcode >> 0) & 7) - 4;
9020 AREG((Opcode >> 0) & 7) = adr;
9022 READ_LONG_F(adr, res)
9028 WRITE_LONG_F(adr, res)
9039 adr = AREG((Opcode >> 0) & 7) - 4;
9040 AREG((Opcode >> 0) & 7) = adr;
9042 READ_LONG_F(adr, res)
9049 WRITE_LONG_F(adr, res)
9060 adr = AREG((Opcode >> 0) & 7) - 4;
9061 AREG((Opcode >> 0) & 7) = adr;
9063 READ_LONG_F(adr, res)
9070 WRITE_LONG_F(adr, res)
9082 adr += AREG((Opcode >> 0) & 7);
9084 READ_LONG_F(adr, res)
9089 DREGu32((Opcode >> 9) & 7) = res;
9101 adr += AREG((Opcode >> 0) & 7);
9103 READ_LONG_F(adr, res)
9108 adr = AREG((Opcode >> 9) & 7);
9109 WRITE_LONG_F(adr, res)
9121 adr += AREG((Opcode >> 0) & 7);
9123 READ_LONG_F(adr, res)
9128 adr = AREG((Opcode >> 9) & 7);
9129 AREG((Opcode >> 9) & 7) += 4;
9130 WRITE_LONG_F(adr, res)
9142 adr += AREG((Opcode >> 0) & 7);
9144 READ_LONG_F(adr, res)
9149 adr = AREG((Opcode >> 9) & 7) - 4;
9150 AREG((Opcode >> 9) & 7) = adr;
9151 WRITE_LONG_F(adr, res)
9163 adr += AREG((Opcode >> 0) & 7);
9165 READ_LONG_F(adr, res)
9171 adr += AREG((Opcode >> 9) & 7);
9172 WRITE_LONG_F(adr, res)
9184 adr += AREG((Opcode >> 0) & 7);
9186 READ_LONG_F(adr, res)
9191 adr = AREG((Opcode >> 9) & 7);
9193 WRITE_LONG_F(adr, res)
9205 adr += AREG((Opcode >> 0) & 7);
9207 READ_LONG_F(adr, res)
9213 WRITE_LONG_F(adr, res)
9225 adr += AREG((Opcode >> 0) & 7);
9227 READ_LONG_F(adr, res)
9233 WRITE_LONG_F(adr, res)
9245 adr += AREG((Opcode >> 0) & 7);
9247 READ_LONG_F(adr, res)
9254 WRITE_LONG_F(adr, res)
9266 adr += AREG((Opcode >> 0) & 7);
9268 READ_LONG_F(adr, res)
9275 WRITE_LONG_F(adr, res)
9286 adr = AREG((Opcode >> 0) & 7);
9289 READ_LONG_F(adr, res)
9294 DREGu32((Opcode >> 9) & 7) = res;
9305 adr = AREG((Opcode >> 0) & 7);
9308 READ_LONG_F(adr, res)
9313 adr = AREG((Opcode >> 9) & 7);
9314 WRITE_LONG_F(adr, res)
9325 adr = AREG((Opcode >> 0) & 7);
9328 READ_LONG_F(adr, res)
9333 adr = AREG((Opcode >> 9) & 7);
9334 AREG((Opcode >> 9) & 7) += 4;
9335 WRITE_LONG_F(adr, res)
9346 adr = AREG((Opcode >> 0) & 7);
9349 READ_LONG_F(adr, res)
9354 adr = AREG((Opcode >> 9) & 7) - 4;
9355 AREG((Opcode >> 9) & 7) = adr;
9356 WRITE_LONG_F(adr, res)
9367 adr = AREG((Opcode >> 0) & 7);
9370 READ_LONG_F(adr, res)
9376 adr += AREG((Opcode >> 9) & 7);
9377 WRITE_LONG_F(adr, res)
9388 adr = AREG((Opcode >> 0) & 7);
9391 READ_LONG_F(adr, res)
9396 adr = AREG((Opcode >> 9) & 7);
9398 WRITE_LONG_F(adr, res)
9409 adr = AREG((Opcode >> 0) & 7);
9412 READ_LONG_F(adr, res)
9418 WRITE_LONG_F(adr, res)
9429 adr = AREG((Opcode >> 0) & 7);
9432 READ_LONG_F(adr, res)
9438 WRITE_LONG_F(adr, res)
9449 adr = AREG((Opcode >> 0) & 7);
9452 READ_LONG_F(adr, res)
9459 WRITE_LONG_F(adr, res)
9470 adr = AREG((Opcode >> 0) & 7);
9473 READ_LONG_F(adr, res)
9480 WRITE_LONG_F(adr, res)
9493 READ_LONG_F(adr, res)
9498 DREGu32((Opcode >> 9) & 7) = res;
9511 READ_LONG_F(adr, res)
9516 adr = AREG((Opcode >> 9) & 7);
9517 WRITE_LONG_F(adr, res)
9530 READ_LONG_F(adr, res)
9535 adr = AREG((Opcode >> 9) & 7);
9536 AREG((Opcode >> 9) & 7) += 4;
9537 WRITE_LONG_F(adr, res)
9550 READ_LONG_F(adr, res)
9555 adr = AREG((Opcode >> 9) & 7) - 4;
9556 AREG((Opcode >> 9) & 7) = adr;
9557 WRITE_LONG_F(adr, res)
9570 READ_LONG_F(adr, res)
9576 adr += AREG((Opcode >> 9) & 7);
9577 WRITE_LONG_F(adr, res)
9590 READ_LONG_F(adr, res)
9595 adr = AREG((Opcode >> 9) & 7);
9597 WRITE_LONG_F(adr, res)
9610 READ_LONG_F(adr, res)
9616 WRITE_LONG_F(adr, res)
9629 READ_LONG_F(adr, res)
9635 WRITE_LONG_F(adr, res)
9648 READ_LONG_F(adr, res)
9655 WRITE_LONG_F(adr, res)
9668 READ_LONG_F(adr, res)
9675 WRITE_LONG_F(adr, res)
9688 READ_LONG_F(adr, res)
9693 DREGu32((Opcode >> 9) & 7) = res;
9706 READ_LONG_F(adr, res)
9711 adr = AREG((Opcode >> 9) & 7);
9712 WRITE_LONG_F(adr, res)
9725 READ_LONG_F(adr, res)
9730 adr = AREG((Opcode >> 9) & 7);
9731 AREG((Opcode >> 9) & 7) += 4;
9732 WRITE_LONG_F(adr, res)
9745 READ_LONG_F(adr, res)
9750 adr = AREG((Opcode >> 9) & 7) - 4;
9751 AREG((Opcode >> 9) & 7) = adr;
9752 WRITE_LONG_F(adr, res)
9765 READ_LONG_F(adr, res)
9771 adr += AREG((Opcode >> 9) & 7);
9772 WRITE_LONG_F(adr, res)
9785 READ_LONG_F(adr, res)
9790 adr = AREG((Opcode >> 9) & 7);
9792 WRITE_LONG_F(adr, res)
9805 READ_LONG_F(adr, res)
9811 WRITE_LONG_F(adr, res)
9824 READ_LONG_F(adr, res)
9830 WRITE_LONG_F(adr, res)
9843 READ_LONG_F(adr, res)
9850 WRITE_LONG_F(adr, res)
9863 READ_LONG_F(adr, res)
9870 WRITE_LONG_F(adr, res)
9881 adr = GET_SWORD + ((u32)(PC) - BasePC);
9884 READ_LONG_F(adr, res)
9889 DREGu32((Opcode >> 9) & 7) = res;
9900 adr = GET_SWORD + ((u32)(PC) - BasePC);
9903 READ_LONG_F(adr, res)
9908 adr = AREG((Opcode >> 9) & 7);
9909 WRITE_LONG_F(adr, res)
9920 adr = GET_SWORD + ((u32)(PC) - BasePC);
9923 READ_LONG_F(adr, res)
9928 adr = AREG((Opcode >> 9) & 7);
9929 AREG((Opcode >> 9) & 7) += 4;
9930 WRITE_LONG_F(adr, res)
9941 adr = GET_SWORD + ((u32)(PC) - BasePC);
9944 READ_LONG_F(adr, res)
9949 adr = AREG((Opcode >> 9) & 7) - 4;
9950 AREG((Opcode >> 9) & 7) = adr;
9951 WRITE_LONG_F(adr, res)
9962 adr = GET_SWORD + ((u32)(PC) - BasePC);
9965 READ_LONG_F(adr, res)
9971 adr += AREG((Opcode >> 9) & 7);
9972 WRITE_LONG_F(adr, res)
9983 adr = GET_SWORD + ((u32)(PC) - BasePC);
9986 READ_LONG_F(adr, res)
9991 adr = AREG((Opcode >> 9) & 7);
9993 WRITE_LONG_F(adr, res)
10004 adr = GET_SWORD + ((u32)(PC) - BasePC);
10007 READ_LONG_F(adr, res)
10011 flag_N = res >> 24;
10013 WRITE_LONG_F(adr, res)
10024 adr = GET_SWORD + ((u32)(PC) - BasePC);
10027 READ_LONG_F(adr, res)
10031 flag_N = res >> 24;
10033 WRITE_LONG_F(adr, res)
10044 adr = GET_SWORD + ((u32)(PC) - BasePC);
10047 READ_LONG_F(adr, res)
10051 flag_N = res >> 24;
10054 WRITE_LONG_F(adr, res)
10065 adr = GET_SWORD + ((u32)(PC) - BasePC);
10068 READ_LONG_F(adr, res)
10072 flag_N = res >> 24;
10075 WRITE_LONG_F(adr, res)
10086 adr = (u32)(PC) - BasePC;
10089 READ_LONG_F(adr, res)
10093 flag_N = res >> 24;
10094 DREGu32((Opcode >> 9) & 7) = res;
10105 adr = (u32)(PC) - BasePC;
10108 READ_LONG_F(adr, res)
10112 flag_N = res >> 24;
10113 adr = AREG((Opcode >> 9) & 7);
10114 WRITE_LONG_F(adr, res)
10125 adr = (u32)(PC) - BasePC;
10128 READ_LONG_F(adr, res)
10132 flag_N = res >> 24;
10133 adr = AREG((Opcode >> 9) & 7);
10134 AREG((Opcode >> 9) & 7) += 4;
10135 WRITE_LONG_F(adr, res)
10146 adr = (u32)(PC) - BasePC;
10149 READ_LONG_F(adr, res)
10153 flag_N = res >> 24;
10154 adr = AREG((Opcode >> 9) & 7) - 4;
10155 AREG((Opcode >> 9) & 7) = adr;
10156 WRITE_LONG_F(adr, res)
10167 adr = (u32)(PC) - BasePC;
10170 READ_LONG_F(adr, res)
10174 flag_N = res >> 24;
10176 adr += AREG((Opcode >> 9) & 7);
10177 WRITE_LONG_F(adr, res)
10188 adr = (u32)(PC) - BasePC;
10191 READ_LONG_F(adr, res)
10195 flag_N = res >> 24;
10196 adr = AREG((Opcode >> 9) & 7);
10198 WRITE_LONG_F(adr, res)
10209 adr = (u32)(PC) - BasePC;
10212 READ_LONG_F(adr, res)
10216 flag_N = res >> 24;
10218 WRITE_LONG_F(adr, res)
10229 adr = (u32)(PC) - BasePC;
10232 READ_LONG_F(adr, res)
10236 flag_N = res >> 24;
10238 WRITE_LONG_F(adr, res)
10249 adr = (u32)(PC) - BasePC;
10252 READ_LONG_F(adr, res)
10256 flag_N = res >> 24;
10259 WRITE_LONG_F(adr, res)
10270 adr = (u32)(PC) - BasePC;
10273 READ_LONG_F(adr, res)
10277 flag_N = res >> 24;
10280 WRITE_LONG_F(adr, res)
10295 flag_N = res >> 24;
10296 DREGu32((Opcode >> 9) & 7) = res;
10310 flag_N = res >> 24;
10311 adr = AREG((Opcode >> 9) & 7);
10313 WRITE_LONG_F(adr, res)
10328 flag_N = res >> 24;
10329 adr = AREG((Opcode >> 9) & 7);
10330 AREG((Opcode >> 9) & 7) += 4;
10332 WRITE_LONG_F(adr, res)
10347 flag_N = res >> 24;
10348 adr = AREG((Opcode >> 9) & 7) - 4;
10349 AREG((Opcode >> 9) & 7) = adr;
10351 WRITE_LONG_F(adr, res)
10366 flag_N = res >> 24;
10368 adr += AREG((Opcode >> 9) & 7);
10370 WRITE_LONG_F(adr, res)
10385 flag_N = res >> 24;
10386 adr = AREG((Opcode >> 9) & 7);
10389 WRITE_LONG_F(adr, res)
10404 flag_N = res >> 24;
10407 WRITE_LONG_F(adr, res)
10422 flag_N = res >> 24;
10425 WRITE_LONG_F(adr, res)
10440 flag_N = res >> 24;
10444 WRITE_LONG_F(adr, res)
10459 flag_N = res >> 24;
10463 WRITE_LONG_F(adr, res)
10477 READ_LONG_F(adr, res)
10481 flag_N = res >> 24;
10482 DREGu32((Opcode >> 9) & 7) = res;
10496 READ_LONG_F(adr, res)
10500 flag_N = res >> 24;
10501 adr = AREG((Opcode >> 9) & 7);
10502 WRITE_LONG_F(adr, res)
10516 READ_LONG_F(adr, res)
10520 flag_N = res >> 24;
10521 adr = AREG((Opcode >> 9) & 7);
10522 AREG((Opcode >> 9) & 7) += 4;
10523 WRITE_LONG_F(adr, res)
10537 READ_LONG_F(adr, res)
10541 flag_N = res >> 24;
10542 adr = AREG((Opcode >> 9) & 7) - 4;
10543 AREG((Opcode >> 9) & 7) = adr;
10544 WRITE_LONG_F(adr, res)
10558 READ_LONG_F(adr, res)
10562 flag_N = res >> 24;
10564 adr += AREG((Opcode >> 9) & 7);
10565 WRITE_LONG_F(adr, res)
10579 READ_LONG_F(adr, res)
10583 flag_N = res >> 24;
10584 adr = AREG((Opcode >> 9) & 7);
10586 WRITE_LONG_F(adr, res)
10600 READ_LONG_F(adr, res)
10604 flag_N = res >> 24;
10606 WRITE_LONG_F(adr, res)
10620 READ_LONG_F(adr, res)
10624 flag_N = res >> 24;
10626 WRITE_LONG_F(adr, res)
10640 READ_LONG_F(adr, res)
10644 flag_N = res >> 24;
10647 WRITE_LONG_F(adr, res)
10661 READ_LONG_F(adr, res)
10665 flag_N = res >> 24;
10668 WRITE_LONG_F(adr, res)
10682 READ_LONG_F(adr, res)
10686 flag_N = res >> 24;
10687 DREGu32((Opcode >> 9) & 7) = res;
10701 READ_LONG_F(adr, res)
10705 flag_N = res >> 24;
10706 adr = AREG((Opcode >> 9) & 7);
10707 WRITE_LONG_F(adr, res)
10721 READ_LONG_F(adr, res)
10725 flag_N = res >> 24;
10726 adr = AREG((Opcode >> 9) & 7);
10727 AREG((Opcode >> 9) & 7) += 4;
10728 WRITE_LONG_F(adr, res)
10742 READ_LONG_F(adr, res)
10746 flag_N = res >> 24;
10747 adr = AREG((Opcode >> 9) & 7) - 4;
10748 AREG((Opcode >> 9) & 7) = adr;
10749 WRITE_LONG_F(adr, res)
10763 READ_LONG_F(adr, res)
10767 flag_N = res >> 24;
10769 adr += AREG((Opcode >> 9) & 7);
10770 WRITE_LONG_F(adr, res)
10784 READ_LONG_F(adr, res)
10788 flag_N = res >> 24;
10789 adr = AREG((Opcode >> 9) & 7);
10791 WRITE_LONG_F(adr, res)
10805 READ_LONG_F(adr, res)
10809 flag_N = res >> 24;
10811 WRITE_LONG_F(adr, res)
10825 READ_LONG_F(adr, res)
10829 flag_N = res >> 24;
10831 WRITE_LONG_F(adr, res)
10845 READ_LONG_F(adr, res)
10849 flag_N = res >> 24;
10852 WRITE_LONG_F(adr, res)
10866 READ_LONG_F(adr, res)
10870 flag_N = res >> 24;
10873 WRITE_LONG_F(adr, res)
10884 res = (s32)DREGs32((Opcode >> 0) & 7);
10885 AREG((Opcode >> 9) & 7) = res;
10895 res = (s32)AREGs32((Opcode >> 0) & 7);
10896 AREG((Opcode >> 9) & 7) = res;
10906 adr = AREG((Opcode >> 0) & 7);
10908 READSX_LONG_F(adr, res)
10909 AREG((Opcode >> 9) & 7) = res;
10920 adr = AREG((Opcode >> 0) & 7);
10921 AREG((Opcode >> 0) & 7) += 4;
10923 READSX_LONG_F(adr, res)
10924 AREG((Opcode >> 9) & 7) = res;
10935 adr = AREG((Opcode >> 0) & 7) - 4;
10936 AREG((Opcode >> 0) & 7) = adr;
10938 READSX_LONG_F(adr, res)
10939 AREG((Opcode >> 9) & 7) = res;
10951 adr += AREG((Opcode >> 0) & 7);
10953 READSX_LONG_F(adr, res)
10954 AREG((Opcode >> 9) & 7) = res;
10965 adr = AREG((Opcode >> 0) & 7);
10968 READSX_LONG_F(adr, res)
10969 AREG((Opcode >> 9) & 7) = res;
10982 READSX_LONG_F(adr, res)
10983 AREG((Opcode >> 9) & 7) = res;
10996 READSX_LONG_F(adr, res)
10997 AREG((Opcode >> 9) & 7) = res;
11008 adr = GET_SWORD + ((u32)(PC) - BasePC);
11011 READSX_LONG_F(adr, res)
11012 AREG((Opcode >> 9) & 7) = res;
11023 adr = (u32)(PC) - BasePC;
11026 READSX_LONG_F(adr, res)
11027 AREG((Opcode >> 9) & 7) = res;
11039 AREG((Opcode >> 9) & 7) = res;
11052 READSX_LONG_F(adr, res)
11053 AREG((Opcode >> 9) & 7) = res;
11067 READSX_LONG_F(adr, res)
11068 AREG((Opcode >> 9) & 7) = res;
11079 res = DREGu16((Opcode >> 0) & 7);
11084 DREGu16((Opcode >> 9) & 7) = res;
11094 res = DREGu16((Opcode >> 0) & 7);
11099 adr = AREG((Opcode >> 9) & 7);
11101 WRITE_WORD_F(adr, res)
11112 res = DREGu16((Opcode >> 0) & 7);
11117 adr = AREG((Opcode >> 9) & 7);
11118 AREG((Opcode >> 9) & 7) += 2;
11120 WRITE_WORD_F(adr, res)
11131 res = DREGu16((Opcode >> 0) & 7);
11136 adr = AREG((Opcode >> 9) & 7) - 2;
11137 AREG((Opcode >> 9) & 7) = adr;
11139 WRITE_WORD_F(adr, res)
11150 res = DREGu16((Opcode >> 0) & 7);
11156 adr += AREG((Opcode >> 9) & 7);
11158 WRITE_WORD_F(adr, res)
11169 res = DREGu16((Opcode >> 0) & 7);
11174 adr = AREG((Opcode >> 9) & 7);
11177 WRITE_WORD_F(adr, res)
11188 res = DREGu16((Opcode >> 0) & 7);
11195 WRITE_WORD_F(adr, res)
11206 res = DREGu16((Opcode >> 0) & 7);
11213 WRITE_WORD_F(adr, res)
11224 res = DREGu16((Opcode >> 0) & 7);
11232 WRITE_WORD_F(adr, res)
11243 res = DREGu16((Opcode >> 0) & 7);
11251 WRITE_WORD_F(adr, res)
11262 res = AREGu16((Opcode >> 0) & 7);
11267 DREGu16((Opcode >> 9) & 7) = res;
11277 res = AREGu16((Opcode >> 0) & 7);
11282 adr = AREG((Opcode >> 9) & 7);
11284 WRITE_WORD_F(adr, res)
11295 res = AREGu16((Opcode >> 0) & 7);
11300 adr = AREG((Opcode >> 9) & 7);
11301 AREG((Opcode >> 9) & 7) += 2;
11303 WRITE_WORD_F(adr, res)
11314 res = AREGu16((Opcode >> 0) & 7);
11319 adr = AREG((Opcode >> 9) & 7) - 2;
11320 AREG((Opcode >> 9) & 7) = adr;
11322 WRITE_WORD_F(adr, res)
11333 res = AREGu16((Opcode >> 0) & 7);
11339 adr += AREG((Opcode >> 9) & 7);
11341 WRITE_WORD_F(adr, res)
11352 res = AREGu16((Opcode >> 0) & 7);
11357 adr = AREG((Opcode >> 9) & 7);
11360 WRITE_WORD_F(adr, res)
11371 res = AREGu16((Opcode >> 0) & 7);
11378 WRITE_WORD_F(adr, res)
11389 res = AREGu16((Opcode >> 0) & 7);
11396 WRITE_WORD_F(adr, res)
11407 res = AREGu16((Opcode >> 0) & 7);
11415 WRITE_WORD_F(adr, res)
11426 res = AREGu16((Opcode >> 0) & 7);
11434 WRITE_WORD_F(adr, res)
11445 adr = AREG((Opcode >> 0) & 7);
11447 READ_WORD_F(adr, res)
11452 DREGu16((Opcode >> 9) & 7) = res;
11463 adr = AREG((Opcode >> 0) & 7);
11465 READ_WORD_F(adr, res)
11470 adr = AREG((Opcode >> 9) & 7);
11471 WRITE_WORD_F(adr, res)
11482 adr = AREG((Opcode >> 0) & 7);
11484 READ_WORD_F(adr, res)
11489 adr = AREG((Opcode >> 9) & 7);
11490 AREG((Opcode >> 9) & 7) += 2;
11491 WRITE_WORD_F(adr, res)
11502 adr = AREG((Opcode >> 0) & 7);
11504 READ_WORD_F(adr, res)
11509 adr = AREG((Opcode >> 9) & 7) - 2;
11510 AREG((Opcode >> 9) & 7) = adr;
11511 WRITE_WORD_F(adr, res)
11522 adr = AREG((Opcode >> 0) & 7);
11524 READ_WORD_F(adr, res)
11530 adr += AREG((Opcode >> 9) & 7);
11531 WRITE_WORD_F(adr, res)
11542 adr = AREG((Opcode >> 0) & 7);
11544 READ_WORD_F(adr, res)
11549 adr = AREG((Opcode >> 9) & 7);
11551 WRITE_WORD_F(adr, res)
11562 adr = AREG((Opcode >> 0) & 7);
11564 READ_WORD_F(adr, res)
11570 WRITE_WORD_F(adr, res)
11581 adr = AREG((Opcode >> 0) & 7);
11583 READ_WORD_F(adr, res)
11589 WRITE_WORD_F(adr, res)
11600 adr = AREG((Opcode >> 0) & 7);
11602 READ_WORD_F(adr, res)
11609 WRITE_WORD_F(adr, res)
11620 adr = AREG((Opcode >> 0) & 7);
11622 READ_WORD_F(adr, res)
11629 WRITE_WORD_F(adr, res)
11640 adr = AREG((Opcode >> 0) & 7);
11641 AREG((Opcode >> 0) & 7) += 2;
11643 READ_WORD_F(adr, res)
11648 DREGu16((Opcode >> 9) & 7) = res;
11659 adr = AREG((Opcode >> 0) & 7);
11660 AREG((Opcode >> 0) & 7) += 2;
11662 READ_WORD_F(adr, res)
11667 adr = AREG((Opcode >> 9) & 7);
11668 WRITE_WORD_F(adr, res)
11679 adr = AREG((Opcode >> 0) & 7);
11680 AREG((Opcode >> 0) & 7) += 2;
11682 READ_WORD_F(adr, res)
11687 adr = AREG((Opcode >> 9) & 7);
11688 AREG((Opcode >> 9) & 7) += 2;
11689 WRITE_WORD_F(adr, res)
11700 adr = AREG((Opcode >> 0) & 7);
11701 AREG((Opcode >> 0) & 7) += 2;
11703 READ_WORD_F(adr, res)
11708 adr = AREG((Opcode >> 9) & 7) - 2;
11709 AREG((Opcode >> 9) & 7) = adr;
11710 WRITE_WORD_F(adr, res)
11721 adr = AREG((Opcode >> 0) & 7);
11722 AREG((Opcode >> 0) & 7) += 2;
11724 READ_WORD_F(adr, res)
11730 adr += AREG((Opcode >> 9) & 7);
11731 WRITE_WORD_F(adr, res)
11742 adr = AREG((Opcode >> 0) & 7);
11743 AREG((Opcode >> 0) & 7) += 2;
11745 READ_WORD_F(adr, res)
11750 adr = AREG((Opcode >> 9) & 7);
11752 WRITE_WORD_F(adr, res)
11763 adr = AREG((Opcode >> 0) & 7);
11764 AREG((Opcode >> 0) & 7) += 2;
11766 READ_WORD_F(adr, res)
11772 WRITE_WORD_F(adr, res)
11783 adr = AREG((Opcode >> 0) & 7);
11784 AREG((Opcode >> 0) & 7) += 2;
11786 READ_WORD_F(adr, res)
11792 WRITE_WORD_F(adr, res)
11803 adr = AREG((Opcode >> 0) & 7);
11804 AREG((Opcode >> 0) & 7) += 2;
11806 READ_WORD_F(adr, res)
11813 WRITE_WORD_F(adr, res)
11824 adr = AREG((Opcode >> 0) & 7);
11825 AREG((Opcode >> 0) & 7) += 2;
11827 READ_WORD_F(adr, res)
11834 WRITE_WORD_F(adr, res)
11845 adr = AREG((Opcode >> 0) & 7) - 2;
11846 AREG((Opcode >> 0) & 7) = adr;
11848 READ_WORD_F(adr, res)
11853 DREGu16((Opcode >> 9) & 7) = res;
11864 adr = AREG((Opcode >> 0) & 7) - 2;
11865 AREG((Opcode >> 0) & 7) = adr;
11867 READ_WORD_F(adr, res)
11872 adr = AREG((Opcode >> 9) & 7);
11873 WRITE_WORD_F(adr, res)
11884 adr = AREG((Opcode >> 0) & 7) - 2;
11885 AREG((Opcode >> 0) & 7) = adr;
11887 READ_WORD_F(adr, res)
11892 adr = AREG((Opcode >> 9) & 7);
11893 AREG((Opcode >> 9) & 7) += 2;
11894 WRITE_WORD_F(adr, res)
11905 adr = AREG((Opcode >> 0) & 7) - 2;
11906 AREG((Opcode >> 0) & 7) = adr;
11908 READ_WORD_F(adr, res)
11913 adr = AREG((Opcode >> 9) & 7) - 2;
11914 AREG((Opcode >> 9) & 7) = adr;
11915 WRITE_WORD_F(adr, res)
11926 adr = AREG((Opcode >> 0) & 7) - 2;
11927 AREG((Opcode >> 0) & 7) = adr;
11929 READ_WORD_F(adr, res)
11935 adr += AREG((Opcode >> 9) & 7);
11936 WRITE_WORD_F(adr, res)
11947 adr = AREG((Opcode >> 0) & 7) - 2;
11948 AREG((Opcode >> 0) & 7) = adr;
11950 READ_WORD_F(adr, res)
11955 adr = AREG((Opcode >> 9) & 7);
11957 WRITE_WORD_F(adr, res)
11968 adr = AREG((Opcode >> 0) & 7) - 2;
11969 AREG((Opcode >> 0) & 7) = adr;
11971 READ_WORD_F(adr, res)
11977 WRITE_WORD_F(adr, res)
11988 adr = AREG((Opcode >> 0) & 7) - 2;
11989 AREG((Opcode >> 0) & 7) = adr;
11991 READ_WORD_F(adr, res)
11997 WRITE_WORD_F(adr, res)
12008 adr = AREG((Opcode >> 0) & 7) - 2;
12009 AREG((Opcode >> 0) & 7) = adr;
12011 READ_WORD_F(adr, res)
12018 WRITE_WORD_F(adr, res)
12029 adr = AREG((Opcode >> 0) & 7) - 2;
12030 AREG((Opcode >> 0) & 7) = adr;
12032 READ_WORD_F(adr, res)
12039 WRITE_WORD_F(adr, res)
12051 adr += AREG((Opcode >> 0) & 7);
12053 READ_WORD_F(adr, res)
12058 DREGu16((Opcode >> 9) & 7) = res;
12070 adr += AREG((Opcode >> 0) & 7);
12072 READ_WORD_F(adr, res)
12077 adr = AREG((Opcode >> 9) & 7);
12078 WRITE_WORD_F(adr, res)
12090 adr += AREG((Opcode >> 0) & 7);
12092 READ_WORD_F(adr, res)
12097 adr = AREG((Opcode >> 9) & 7);
12098 AREG((Opcode >> 9) & 7) += 2;
12099 WRITE_WORD_F(adr, res)
12111 adr += AREG((Opcode >> 0) & 7);
12113 READ_WORD_F(adr, res)
12118 adr = AREG((Opcode >> 9) & 7) - 2;
12119 AREG((Opcode >> 9) & 7) = adr;
12120 WRITE_WORD_F(adr, res)
12132 adr += AREG((Opcode >> 0) & 7);
12134 READ_WORD_F(adr, res)
12140 adr += AREG((Opcode >> 9) & 7);
12141 WRITE_WORD_F(adr, res)
12153 adr += AREG((Opcode >> 0) & 7);
12155 READ_WORD_F(adr, res)
12160 adr = AREG((Opcode >> 9) & 7);
12162 WRITE_WORD_F(adr, res)
12174 adr += AREG((Opcode >> 0) & 7);
12176 READ_WORD_F(adr, res)
12182 WRITE_WORD_F(adr, res)
12194 adr += AREG((Opcode >> 0) & 7);
12196 READ_WORD_F(adr, res)
12202 WRITE_WORD_F(adr, res)
12214 adr += AREG((Opcode >> 0) & 7);
12216 READ_WORD_F(adr, res)
12223 WRITE_WORD_F(adr, res)
12235 adr += AREG((Opcode >> 0) & 7);
12237 READ_WORD_F(adr, res)
12244 WRITE_WORD_F(adr, res)
12255 adr = AREG((Opcode >> 0) & 7);
12258 READ_WORD_F(adr, res)
12263 DREGu16((Opcode >> 9) & 7) = res;
12274 adr = AREG((Opcode >> 0) & 7);
12277 READ_WORD_F(adr, res)
12282 adr = AREG((Opcode >> 9) & 7);
12283 WRITE_WORD_F(adr, res)
12294 adr = AREG((Opcode >> 0) & 7);
12297 READ_WORD_F(adr, res)
12302 adr = AREG((Opcode >> 9) & 7);
12303 AREG((Opcode >> 9) & 7) += 2;
12304 WRITE_WORD_F(adr, res)
12315 adr = AREG((Opcode >> 0) & 7);
12318 READ_WORD_F(adr, res)
12323 adr = AREG((Opcode >> 9) & 7) - 2;
12324 AREG((Opcode >> 9) & 7) = adr;
12325 WRITE_WORD_F(adr, res)
12336 adr = AREG((Opcode >> 0) & 7);
12339 READ_WORD_F(adr, res)
12345 adr += AREG((Opcode >> 9) & 7);
12346 WRITE_WORD_F(adr, res)
12357 adr = AREG((Opcode >> 0) & 7);
12360 READ_WORD_F(adr, res)
12365 adr = AREG((Opcode >> 9) & 7);
12367 WRITE_WORD_F(adr, res)
12378 adr = AREG((Opcode >> 0) & 7);
12381 READ_WORD_F(adr, res)
12387 WRITE_WORD_F(adr, res)
12398 adr = AREG((Opcode >> 0) & 7);
12401 READ_WORD_F(adr, res)
12407 WRITE_WORD_F(adr, res)
12418 adr = AREG((Opcode >> 0) & 7);
12421 READ_WORD_F(adr, res)
12428 WRITE_WORD_F(adr, res)
12439 adr = AREG((Opcode >> 0) & 7);
12442 READ_WORD_F(adr, res)
12449 WRITE_WORD_F(adr, res)
12462 READ_WORD_F(adr, res)
12467 DREGu16((Opcode >> 9) & 7) = res;
12480 READ_WORD_F(adr, res)
12485 adr = AREG((Opcode >> 9) & 7);
12486 WRITE_WORD_F(adr, res)
12499 READ_WORD_F(adr, res)
12504 adr = AREG((Opcode >> 9) & 7);
12505 AREG((Opcode >> 9) & 7) += 2;
12506 WRITE_WORD_F(adr, res)
12519 READ_WORD_F(adr, res)
12524 adr = AREG((Opcode >> 9) & 7) - 2;
12525 AREG((Opcode >> 9) & 7) = adr;
12526 WRITE_WORD_F(adr, res)
12539 READ_WORD_F(adr, res)
12545 adr += AREG((Opcode >> 9) & 7);
12546 WRITE_WORD_F(adr, res)
12559 READ_WORD_F(adr, res)
12564 adr = AREG((Opcode >> 9) & 7);
12566 WRITE_WORD_F(adr, res)
12579 READ_WORD_F(adr, res)
12585 WRITE_WORD_F(adr, res)
12598 READ_WORD_F(adr, res)
12604 WRITE_WORD_F(adr, res)
12617 READ_WORD_F(adr, res)
12624 WRITE_WORD_F(adr, res)
12637 READ_WORD_F(adr, res)
12644 WRITE_WORD_F(adr, res)
12657 READ_WORD_F(adr, res)
12662 DREGu16((Opcode >> 9) & 7) = res;
12675 READ_WORD_F(adr, res)
12680 adr = AREG((Opcode >> 9) & 7);
12681 WRITE_WORD_F(adr, res)
12694 READ_WORD_F(adr, res)
12699 adr = AREG((Opcode >> 9) & 7);
12700 AREG((Opcode >> 9) & 7) += 2;
12701 WRITE_WORD_F(adr, res)
12714 READ_WORD_F(adr, res)
12719 adr = AREG((Opcode >> 9) & 7) - 2;
12720 AREG((Opcode >> 9) & 7) = adr;
12721 WRITE_WORD_F(adr, res)
12734 READ_WORD_F(adr, res)
12740 adr += AREG((Opcode >> 9) & 7);
12741 WRITE_WORD_F(adr, res)
12754 READ_WORD_F(adr, res)
12759 adr = AREG((Opcode >> 9) & 7);
12761 WRITE_WORD_F(adr, res)
12774 READ_WORD_F(adr, res)
12780 WRITE_WORD_F(adr, res)
12793 READ_WORD_F(adr, res)
12799 WRITE_WORD_F(adr, res)
12812 READ_WORD_F(adr, res)
12819 WRITE_WORD_F(adr, res)
12832 READ_WORD_F(adr, res)
12839 WRITE_WORD_F(adr, res)
12850 adr = GET_SWORD + ((u32)(PC) - BasePC);
12853 READ_WORD_F(adr, res)
12858 DREGu16((Opcode >> 9) & 7) = res;
12869 adr = GET_SWORD + ((u32)(PC) - BasePC);
12872 READ_WORD_F(adr, res)
12877 adr = AREG((Opcode >> 9) & 7);
12878 WRITE_WORD_F(adr, res)
12889 adr = GET_SWORD + ((u32)(PC) - BasePC);
12892 READ_WORD_F(adr, res)
12897 adr = AREG((Opcode >> 9) & 7);
12898 AREG((Opcode >> 9) & 7) += 2;
12899 WRITE_WORD_F(adr, res)
12910 adr = GET_SWORD + ((u32)(PC) - BasePC);
12913 READ_WORD_F(adr, res)
12918 adr = AREG((Opcode >> 9) & 7) - 2;
12919 AREG((Opcode >> 9) & 7) = adr;
12920 WRITE_WORD_F(adr, res)
12931 adr = GET_SWORD + ((u32)(PC) - BasePC);
12934 READ_WORD_F(adr, res)
12940 adr += AREG((Opcode >> 9) & 7);
12941 WRITE_WORD_F(adr, res)
12952 adr = GET_SWORD + ((u32)(PC) - BasePC);
12955 READ_WORD_F(adr, res)
12960 adr = AREG((Opcode >> 9) & 7);
12962 WRITE_WORD_F(adr, res)
12973 adr = GET_SWORD + ((u32)(PC) - BasePC);
12976 READ_WORD_F(adr, res)
12982 WRITE_WORD_F(adr, res)
12993 adr = GET_SWORD + ((u32)(PC) - BasePC);
12996 READ_WORD_F(adr, res)
13002 WRITE_WORD_F(adr, res)
13013 adr = GET_SWORD + ((u32)(PC) - BasePC);
13016 READ_WORD_F(adr, res)
13023 WRITE_WORD_F(adr, res)
13034 adr = GET_SWORD + ((u32)(PC) - BasePC);
13037 READ_WORD_F(adr, res)
13044 WRITE_WORD_F(adr, res)
13055 adr = (u32)(PC) - BasePC;
13058 READ_WORD_F(adr, res)
13063 DREGu16((Opcode >> 9) & 7) = res;
13074 adr = (u32)(PC) - BasePC;
13077 READ_WORD_F(adr, res)
13082 adr = AREG((Opcode >> 9) & 7);
13083 WRITE_WORD_F(adr, res)
13094 adr = (u32)(PC) - BasePC;
13097 READ_WORD_F(adr, res)
13102 adr = AREG((Opcode >> 9) & 7);
13103 AREG((Opcode >> 9) & 7) += 2;
13104 WRITE_WORD_F(adr, res)
13115 adr = (u32)(PC) - BasePC;
13118 READ_WORD_F(adr, res)
13123 adr = AREG((Opcode >> 9) & 7) - 2;
13124 AREG((Opcode >> 9) & 7) = adr;
13125 WRITE_WORD_F(adr, res)
13136 adr = (u32)(PC) - BasePC;
13139 READ_WORD_F(adr, res)
13145 adr += AREG((Opcode >> 9) & 7);
13146 WRITE_WORD_F(adr, res)
13157 adr = (u32)(PC) - BasePC;
13160 READ_WORD_F(adr, res)
13165 adr = AREG((Opcode >> 9) & 7);
13167 WRITE_WORD_F(adr, res)
13178 adr = (u32)(PC) - BasePC;
13181 READ_WORD_F(adr, res)
13187 WRITE_WORD_F(adr, res)
13198 adr = (u32)(PC) - BasePC;
13201 READ_WORD_F(adr, res)
13207 WRITE_WORD_F(adr, res)
13218 adr = (u32)(PC) - BasePC;
13221 READ_WORD_F(adr, res)
13228 WRITE_WORD_F(adr, res)
13239 adr = (u32)(PC) - BasePC;
13242 READ_WORD_F(adr, res)
13249 WRITE_WORD_F(adr, res)
13265 DREGu16((Opcode >> 9) & 7) = res;
13280 adr = AREG((Opcode >> 9) & 7);
13282 WRITE_WORD_F(adr, res)
13298 adr = AREG((Opcode >> 9) & 7);
13299 AREG((Opcode >> 9) & 7) += 2;
13301 WRITE_WORD_F(adr, res)
13317 adr = AREG((Opcode >> 9) & 7) - 2;
13318 AREG((Opcode >> 9) & 7) = adr;
13320 WRITE_WORD_F(adr, res)
13337 adr += AREG((Opcode >> 9) & 7);
13339 WRITE_WORD_F(adr, res)
13355 adr = AREG((Opcode >> 9) & 7);
13358 WRITE_WORD_F(adr, res)
13376 WRITE_WORD_F(adr, res)
13394 WRITE_WORD_F(adr, res)
13413 WRITE_WORD_F(adr, res)
13432 WRITE_WORD_F(adr, res)
13446 READ_WORD_F(adr, res)
13451 DREGu16((Opcode >> 9) & 7) = res;
13465 READ_WORD_F(adr, res)
13470 adr = AREG((Opcode >> 9) & 7);
13471 WRITE_WORD_F(adr, res)
13485 READ_WORD_F(adr, res)
13490 adr = AREG((Opcode >> 9) & 7);
13491 AREG((Opcode >> 9) & 7) += 2;
13492 WRITE_WORD_F(adr, res)
13506 READ_WORD_F(adr, res)
13511 adr = AREG((Opcode >> 9) & 7) - 2;
13512 AREG((Opcode >> 9) & 7) = adr;
13513 WRITE_WORD_F(adr, res)
13527 READ_WORD_F(adr, res)
13533 adr += AREG((Opcode >> 9) & 7);
13534 WRITE_WORD_F(adr, res)
13548 READ_WORD_F(adr, res)
13553 adr = AREG((Opcode >> 9) & 7);
13555 WRITE_WORD_F(adr, res)
13569 READ_WORD_F(adr, res)
13575 WRITE_WORD_F(adr, res)
13589 READ_WORD_F(adr, res)
13595 WRITE_WORD_F(adr, res)
13609 READ_WORD_F(adr, res)
13616 WRITE_WORD_F(adr, res)
13630 READ_WORD_F(adr, res)
13637 WRITE_WORD_F(adr, res)
13651 READ_WORD_F(adr, res)
13656 DREGu16((Opcode >> 9) & 7) = res;
13670 READ_WORD_F(adr, res)
13675 adr = AREG((Opcode >> 9) & 7);
13676 WRITE_WORD_F(adr, res)
13690 READ_WORD_F(adr, res)
13695 adr = AREG((Opcode >> 9) & 7);
13696 AREG((Opcode >> 9) & 7) += 2;
13697 WRITE_WORD_F(adr, res)
13711 READ_WORD_F(adr, res)
13716 adr = AREG((Opcode >> 9) & 7) - 2;
13717 AREG((Opcode >> 9) & 7) = adr;
13718 WRITE_WORD_F(adr, res)
13732 READ_WORD_F(adr, res)
13738 adr += AREG((Opcode >> 9) & 7);
13739 WRITE_WORD_F(adr, res)
13753 READ_WORD_F(adr, res)
13758 adr = AREG((Opcode >> 9) & 7);
13760 WRITE_WORD_F(adr, res)
13774 READ_WORD_F(adr, res)
13780 WRITE_WORD_F(adr, res)
13794 READ_WORD_F(adr, res)
13800 WRITE_WORD_F(adr, res)
13814 READ_WORD_F(adr, res)
13821 WRITE_WORD_F(adr, res)
13835 READ_WORD_F(adr, res)
13842 WRITE_WORD_F(adr, res)
13853 res = (s32)DREGs16((Opcode >> 0) & 7);
13854 AREG((Opcode >> 9) & 7) = res;
13864 res = (s32)AREGs16((Opcode >> 0) & 7);
13865 AREG((Opcode >> 9) & 7) = res;
13875 adr = AREG((Opcode >> 0) & 7);
13877 READSX_WORD_F(adr, res)
13878 AREG((Opcode >> 9) & 7) = res;
13889 adr = AREG((Opcode >> 0) & 7);
13890 AREG((Opcode >> 0) & 7) += 2;
13892 READSX_WORD_F(adr, res)
13893 AREG((Opcode >> 9) & 7) = res;
13904 adr = AREG((Opcode >> 0) & 7) - 2;
13905 AREG((Opcode >> 0) & 7) = adr;
13907 READSX_WORD_F(adr, res)
13908 AREG((Opcode >> 9) & 7) = res;
13920 adr += AREG((Opcode >> 0) & 7);
13922 READSX_WORD_F(adr, res)
13923 AREG((Opcode >> 9) & 7) = res;
13934 adr = AREG((Opcode >> 0) & 7);
13937 READSX_WORD_F(adr, res)
13938 AREG((Opcode >> 9) & 7) = res;
13951 READSX_WORD_F(adr, res)
13952 AREG((Opcode >> 9) & 7) = res;
13965 READSX_WORD_F(adr, res)
13966 AREG((Opcode >> 9) & 7) = res;
13977 adr = GET_SWORD + ((u32)(PC) - BasePC);
13980 READSX_WORD_F(adr, res)
13981 AREG((Opcode >> 9) & 7) = res;
13992 adr = (u32)(PC) - BasePC;
13995 READSX_WORD_F(adr, res)
13996 AREG((Opcode >> 9) & 7) = res;
14008 AREG((Opcode >> 9) & 7) = res;
14021 READSX_WORD_F(adr, res)
14022 AREG((Opcode >> 9) & 7) = res;
14036 READSX_WORD_F(adr, res)
14037 AREG((Opcode >> 9) & 7) = res;
14048 src = DREGu8((Opcode >> 0) & 7);
14049 res = -src - ((flag_X >> 8) & 1);
14050 flag_V = res & src;
14051 flag_N = flag_X = flag_C = res;
14052 flag_NotZ |= res & 0xFF;
14053 DREGu8((Opcode >> 0) & 7) = res;
14063 adr = AREG((Opcode >> 0) & 7);
14065 READ_BYTE_F(adr, src)
14066 res = -src - ((flag_X >> 8) & 1);
14067 flag_V = res & src;
14068 flag_N = flag_X = flag_C = res;
14069 flag_NotZ |= res & 0xFF;
14070 WRITE_BYTE_F(adr, res)
14081 adr = AREG((Opcode >> 0) & 7);
14082 AREG((Opcode >> 0) & 7) += 1;
14084 READ_BYTE_F(adr, src)
14085 res = -src - ((flag_X >> 8) & 1);
14086 flag_V = res & src;
14087 flag_N = flag_X = flag_C = res;
14088 flag_NotZ |= res & 0xFF;
14089 WRITE_BYTE_F(adr, res)
14100 adr = AREG((Opcode >> 0) & 7) - 1;
14101 AREG((Opcode >> 0) & 7) = adr;
14103 READ_BYTE_F(adr, src)
14104 res = -src - ((flag_X >> 8) & 1);
14105 flag_V = res & src;
14106 flag_N = flag_X = flag_C = res;
14107 flag_NotZ |= res & 0xFF;
14108 WRITE_BYTE_F(adr, res)
14120 adr += AREG((Opcode >> 0) & 7);
14122 READ_BYTE_F(adr, src)
14123 res = -src - ((flag_X >> 8) & 1);
14124 flag_V = res & src;
14125 flag_N = flag_X = flag_C = res;
14126 flag_NotZ |= res & 0xFF;
14127 WRITE_BYTE_F(adr, res)
14138 adr = AREG((Opcode >> 0) & 7);
14141 READ_BYTE_F(adr, src)
14142 res = -src - ((flag_X >> 8) & 1);
14143 flag_V = res & src;
14144 flag_N = flag_X = flag_C = res;
14145 flag_NotZ |= res & 0xFF;
14146 WRITE_BYTE_F(adr, res)
14159 READ_BYTE_F(adr, src)
14160 res = -src - ((flag_X >> 8) & 1);
14161 flag_V = res & src;
14162 flag_N = flag_X = flag_C = res;
14163 flag_NotZ |= res & 0xFF;
14164 WRITE_BYTE_F(adr, res)
14177 READ_BYTE_F(adr, src)
14178 res = -src - ((flag_X >> 8) & 1);
14179 flag_V = res & src;
14180 flag_N = flag_X = flag_C = res;
14181 flag_NotZ |= res & 0xFF;
14182 WRITE_BYTE_F(adr, res)
14196 READ_BYTE_F(adr, src)
14197 res = -src - ((flag_X >> 8) & 1);
14198 flag_V = res & src;
14199 flag_N = flag_X = flag_C = res;
14200 flag_NotZ |= res & 0xFF;
14201 WRITE_BYTE_F(adr, res)
14215 READ_BYTE_F(adr, src)
14216 res = -src - ((flag_X >> 8) & 1);
14217 flag_V = res & src;
14218 flag_N = flag_X = flag_C = res;
14219 flag_NotZ |= res & 0xFF;
14220 WRITE_BYTE_F(adr, res)
14231 src = DREGu16((Opcode >> 0) & 7);
14232 res = -src - ((flag_X >> 8) & 1);
14233 flag_V = (res & src) >> 8;
14234 flag_N = flag_X = flag_C = res >> 8;
14235 flag_NotZ |= res & 0xFFFF;
14236 DREGu16((Opcode >> 0) & 7) = res;
14246 adr = AREG((Opcode >> 0) & 7);
14248 READ_WORD_F(adr, src)
14249 res = -src - ((flag_X >> 8) & 1);
14250 flag_V = (res & src) >> 8;
14251 flag_N = flag_X = flag_C = res >> 8;
14252 flag_NotZ |= res & 0xFFFF;
14253 WRITE_WORD_F(adr, res)
14264 adr = AREG((Opcode >> 0) & 7);
14265 AREG((Opcode >> 0) & 7) += 2;
14267 READ_WORD_F(adr, src)
14268 res = -src - ((flag_X >> 8) & 1);
14269 flag_V = (res & src) >> 8;
14270 flag_N = flag_X = flag_C = res >> 8;
14271 flag_NotZ |= res & 0xFFFF;
14272 WRITE_WORD_F(adr, res)
14283 adr = AREG((Opcode >> 0) & 7) - 2;
14284 AREG((Opcode >> 0) & 7) = adr;
14286 READ_WORD_F(adr, src)
14287 res = -src - ((flag_X >> 8) & 1);
14288 flag_V = (res & src) >> 8;
14289 flag_N = flag_X = flag_C = res >> 8;
14290 flag_NotZ |= res & 0xFFFF;
14291 WRITE_WORD_F(adr, res)
14303 adr += AREG((Opcode >> 0) & 7);
14305 READ_WORD_F(adr, src)
14306 res = -src - ((flag_X >> 8) & 1);
14307 flag_V = (res & src) >> 8;
14308 flag_N = flag_X = flag_C = res >> 8;
14309 flag_NotZ |= res & 0xFFFF;
14310 WRITE_WORD_F(adr, res)
14321 adr = AREG((Opcode >> 0) & 7);
14324 READ_WORD_F(adr, src)
14325 res = -src - ((flag_X >> 8) & 1);
14326 flag_V = (res & src) >> 8;
14327 flag_N = flag_X = flag_C = res >> 8;
14328 flag_NotZ |= res & 0xFFFF;
14329 WRITE_WORD_F(adr, res)
14342 READ_WORD_F(adr, src)
14343 res = -src - ((flag_X >> 8) & 1);
14344 flag_V = (res & src) >> 8;
14345 flag_N = flag_X = flag_C = res >> 8;
14346 flag_NotZ |= res & 0xFFFF;
14347 WRITE_WORD_F(adr, res)
14360 READ_WORD_F(adr, src)
14361 res = -src - ((flag_X >> 8) & 1);
14362 flag_V = (res & src) >> 8;
14363 flag_N = flag_X = flag_C = res >> 8;
14364 flag_NotZ |= res & 0xFFFF;
14365 WRITE_WORD_F(adr, res)
14379 READ_WORD_F(adr, src)
14380 res = -src - ((flag_X >> 8) & 1);
14381 flag_V = (res & src) >> 8;
14382 flag_N = flag_X = flag_C = res >> 8;
14383 flag_NotZ |= res & 0xFFFF;
14384 WRITE_WORD_F(adr, res)
14398 READ_WORD_F(adr, src)
14399 res = -src - ((flag_X >> 8) & 1);
14400 flag_V = (res & src) >> 8;
14401 flag_N = flag_X = flag_C = res >> 8;
14402 flag_NotZ |= res & 0xFFFF;
14403 WRITE_WORD_F(adr, res)
14414 src = DREGu32((Opcode >> 0) & 7);
14415 res = -src - ((flag_X >> 8) & 1);
14417 flag_V = (res & src) >> 24;
14418 flag_X = flag_C = (res?1:0)<<8;
14419 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14420 flag_N = res >> 24;
14421 DREGu32((Opcode >> 0) & 7) = res;
14431 adr = AREG((Opcode >> 0) & 7);
14433 READ_LONG_F(adr, src)
14434 res = -src - ((flag_X >> 8) & 1);
14436 flag_V = (res & src) >> 24;
14437 flag_X = flag_C = (res?1:0)<<8;
14438 // flag_X = flag_C = ((src & res & 1) | (src >> 1) | (res >> 1)) >> 23;
14439 flag_N = res >> 24;
14440 WRITE_LONG_F(adr, res)
14451 adr = AREG((Opcode >> 0) & 7);
14452 AREG((Opcode >> 0) & 7) += 4;
14454 READ_LONG_F(adr, src)
14455 res = -src - ((flag_X >> 8) & 1);
14457 flag_V = (res & src) >> 24;
14458 flag_X = flag_C = (res?1:0)<<8;
14459 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14460 flag_N = res >> 24;
14461 WRITE_LONG_F(adr, res)
14472 adr = AREG((Opcode >> 0) & 7) - 4;
14473 AREG((Opcode >> 0) & 7) = adr;
14475 READ_LONG_F(adr, src)
14476 res = -src - ((flag_X >> 8) & 1);
14478 flag_V = (res & src) >> 24;
14479 flag_X = flag_C = (res?1:0)<<8;
14480 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14481 flag_N = res >> 24;
14482 WRITE_LONG_F(adr, res)
14494 adr += AREG((Opcode >> 0) & 7);
14496 READ_LONG_F(adr, src)
14497 res = -src - ((flag_X >> 8) & 1);
14499 flag_V = (res & src) >> 24;
14500 flag_X = flag_C = (res?1:0)<<8;
14501 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14502 flag_N = res >> 24;
14503 WRITE_LONG_F(adr, res)
14514 adr = AREG((Opcode >> 0) & 7);
14517 READ_LONG_F(adr, src)
14518 res = -src - ((flag_X >> 8) & 1);
14520 flag_V = (res & src) >> 24;
14521 flag_X = flag_C = (res?1:0)<<8;
14522 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14523 flag_N = res >> 24;
14524 WRITE_LONG_F(adr, res)
14537 READ_LONG_F(adr, src)
14538 res = -src - ((flag_X >> 8) & 1);
14540 flag_V = (res & src) >> 24;
14541 flag_X = flag_C = (res?1:0)<<8;
14542 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14543 flag_N = res >> 24;
14544 WRITE_LONG_F(adr, res)
14557 READ_LONG_F(adr, src)
14558 res = -src - ((flag_X >> 8) & 1);
14560 flag_V = (res & src) >> 24;
14561 flag_X = flag_C = (res?1:0)<<8;
14562 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14563 flag_N = res >> 24;
14564 WRITE_LONG_F(adr, res)
14578 READ_LONG_F(adr, src)
14579 res = -src - ((flag_X >> 8) & 1);
14581 flag_V = (res & src) >> 24;
14582 flag_X = flag_C = (res?1:0)<<8;
14583 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14584 flag_N = res >> 24;
14585 WRITE_LONG_F(adr, res)
14599 READ_LONG_F(adr, src)
14600 res = -src - ((flag_X >> 8) & 1);
14602 flag_V = (res & src) >> 24;
14603 flag_X = flag_C = (res?1:0)<<8;
14604 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14605 flag_N = res >> 24;
14606 WRITE_LONG_F(adr, res)
14618 flag_N = flag_NotZ = flag_V = flag_C = 0;
14619 DREGu8((Opcode >> 0) & 7) = res;
14629 adr = AREG((Opcode >> 0) & 7);
14631 flag_N = flag_NotZ = flag_V = flag_C = 0;
14633 WRITE_BYTE_F(adr, res)
14644 adr = AREG((Opcode >> 0) & 7);
14645 AREG((Opcode >> 0) & 7) += 1;
14647 flag_N = flag_NotZ = flag_V = flag_C = 0;
14649 WRITE_BYTE_F(adr, res)
14660 adr = AREG((Opcode >> 0) & 7) - 1;
14661 AREG((Opcode >> 0) & 7) = adr;
14663 flag_N = flag_NotZ = flag_V = flag_C = 0;
14665 WRITE_BYTE_F(adr, res)
14677 adr += AREG((Opcode >> 0) & 7);
14679 flag_N = flag_NotZ = flag_V = flag_C = 0;
14681 WRITE_BYTE_F(adr, res)
14692 adr = AREG((Opcode >> 0) & 7);
14695 flag_N = flag_NotZ = flag_V = flag_C = 0;
14697 WRITE_BYTE_F(adr, res)
14710 flag_N = flag_NotZ = flag_V = flag_C = 0;
14712 WRITE_BYTE_F(adr, res)
14725 flag_N = flag_NotZ = flag_V = flag_C = 0;
14727 WRITE_BYTE_F(adr, res)
14741 flag_N = flag_NotZ = flag_V = flag_C = 0;
14743 WRITE_BYTE_F(adr, res)
14757 flag_N = flag_NotZ = flag_V = flag_C = 0;
14759 WRITE_BYTE_F(adr, res)
14771 flag_N = flag_NotZ = flag_V = flag_C = 0;
14772 DREGu16((Opcode >> 0) & 7) = res;
14782 adr = AREG((Opcode >> 0) & 7);
14784 flag_N = flag_NotZ = flag_V = flag_C = 0;
14786 WRITE_WORD_F(adr, res)
14797 adr = AREG((Opcode >> 0) & 7);
14798 AREG((Opcode >> 0) & 7) += 2;
14800 flag_N = flag_NotZ = flag_V = flag_C = 0;
14802 WRITE_WORD_F(adr, res)
14813 adr = AREG((Opcode >> 0) & 7) - 2;
14814 AREG((Opcode >> 0) & 7) = adr;
14816 flag_N = flag_NotZ = flag_V = flag_C = 0;
14818 WRITE_WORD_F(adr, res)
14830 adr += AREG((Opcode >> 0) & 7);
14832 flag_N = flag_NotZ = flag_V = flag_C = 0;
14834 WRITE_WORD_F(adr, res)
14845 adr = AREG((Opcode >> 0) & 7);
14848 flag_N = flag_NotZ = flag_V = flag_C = 0;
14850 WRITE_WORD_F(adr, res)
14863 flag_N = flag_NotZ = flag_V = flag_C = 0;
14865 WRITE_WORD_F(adr, res)
14878 flag_N = flag_NotZ = flag_V = flag_C = 0;
14880 WRITE_WORD_F(adr, res)
14894 flag_N = flag_NotZ = flag_V = flag_C = 0;
14896 WRITE_WORD_F(adr, res)
14910 flag_N = flag_NotZ = flag_V = flag_C = 0;
14912 WRITE_WORD_F(adr, res)
14924 flag_N = flag_NotZ = flag_V = flag_C = 0;
14925 DREGu32((Opcode >> 0) & 7) = res;
14935 adr = AREG((Opcode >> 0) & 7);
14937 flag_N = flag_NotZ = flag_V = flag_C = 0;
14939 WRITE_LONG_F(adr, res)
14950 adr = AREG((Opcode >> 0) & 7);
14951 AREG((Opcode >> 0) & 7) += 4;
14953 flag_N = flag_NotZ = flag_V = flag_C = 0;
14955 WRITE_LONG_F(adr, res)
14966 adr = AREG((Opcode >> 0) & 7) - 4;
14967 AREG((Opcode >> 0) & 7) = adr;
14969 flag_N = flag_NotZ = flag_V = flag_C = 0;
14971 WRITE_LONG_F(adr, res)
14983 adr += AREG((Opcode >> 0) & 7);
14985 flag_N = flag_NotZ = flag_V = flag_C = 0;
14987 WRITE_LONG_F(adr, res)
14998 adr = AREG((Opcode >> 0) & 7);
15001 flag_N = flag_NotZ = flag_V = flag_C = 0;
15003 WRITE_LONG_F(adr, res)
15016 flag_N = flag_NotZ = flag_V = flag_C = 0;
15018 WRITE_LONG_F(adr, res)
15031 flag_N = flag_NotZ = flag_V = flag_C = 0;
15033 WRITE_LONG_F(adr, res)
15047 flag_N = flag_NotZ = flag_V = flag_C = 0;
15049 WRITE_LONG_F(adr, res)
15063 flag_N = flag_NotZ = flag_V = flag_C = 0;
15065 WRITE_LONG_F(adr, res)
15076 src = DREGu8((Opcode >> 0) & 7);
15078 flag_V = res & src;
15079 flag_N = flag_X = flag_C = res;
15080 flag_NotZ = res & 0xFF;
15081 DREGu8((Opcode >> 0) & 7) = res;
15091 adr = AREG((Opcode >> 0) & 7);
15093 READ_BYTE_F(adr, src)
15095 flag_V = res & src;
15096 flag_N = flag_X = flag_C = res;
15097 flag_NotZ = res & 0xFF;
15098 WRITE_BYTE_F(adr, res)
15109 adr = AREG((Opcode >> 0) & 7);
15110 AREG((Opcode >> 0) & 7) += 1;
15112 READ_BYTE_F(adr, src)
15114 flag_V = res & src;
15115 flag_N = flag_X = flag_C = res;
15116 flag_NotZ = res & 0xFF;
15117 WRITE_BYTE_F(adr, res)
15128 adr = AREG((Opcode >> 0) & 7) - 1;
15129 AREG((Opcode >> 0) & 7) = adr;
15131 READ_BYTE_F(adr, src)
15133 flag_V = res & src;
15134 flag_N = flag_X = flag_C = res;
15135 flag_NotZ = res & 0xFF;
15136 WRITE_BYTE_F(adr, res)
15148 adr += AREG((Opcode >> 0) & 7);
15150 READ_BYTE_F(adr, src)
15152 flag_V = res & src;
15153 flag_N = flag_X = flag_C = res;
15154 flag_NotZ = res & 0xFF;
15155 WRITE_BYTE_F(adr, res)
15166 adr = AREG((Opcode >> 0) & 7);
15169 READ_BYTE_F(adr, src)
15171 flag_V = res & src;
15172 flag_N = flag_X = flag_C = res;
15173 flag_NotZ = res & 0xFF;
15174 WRITE_BYTE_F(adr, res)
15187 READ_BYTE_F(adr, src)
15189 flag_V = res & src;
15190 flag_N = flag_X = flag_C = res;
15191 flag_NotZ = res & 0xFF;
15192 WRITE_BYTE_F(adr, res)
15205 READ_BYTE_F(adr, src)
15207 flag_V = res & src;
15208 flag_N = flag_X = flag_C = res;
15209 flag_NotZ = res & 0xFF;
15210 WRITE_BYTE_F(adr, res)
15224 READ_BYTE_F(adr, src)
15226 flag_V = res & src;
15227 flag_N = flag_X = flag_C = res;
15228 flag_NotZ = res & 0xFF;
15229 WRITE_BYTE_F(adr, res)
15243 READ_BYTE_F(adr, src)
15245 flag_V = res & src;
15246 flag_N = flag_X = flag_C = res;
15247 flag_NotZ = res & 0xFF;
15248 WRITE_BYTE_F(adr, res)
15259 src = DREGu16((Opcode >> 0) & 7);
15261 flag_V = (res & src) >> 8;
15262 flag_N = flag_X = flag_C = res >> 8;
15263 flag_NotZ = res & 0xFFFF;
15264 DREGu16((Opcode >> 0) & 7) = res;
15274 adr = AREG((Opcode >> 0) & 7);
15276 READ_WORD_F(adr, src)
15278 flag_V = (res & src) >> 8;
15279 flag_N = flag_X = flag_C = res >> 8;
15280 flag_NotZ = res & 0xFFFF;
15281 WRITE_WORD_F(adr, res)
15292 adr = AREG((Opcode >> 0) & 7);
15293 AREG((Opcode >> 0) & 7) += 2;
15295 READ_WORD_F(adr, src)
15297 flag_V = (res & src) >> 8;
15298 flag_N = flag_X = flag_C = res >> 8;
15299 flag_NotZ = res & 0xFFFF;
15300 WRITE_WORD_F(adr, res)
15311 adr = AREG((Opcode >> 0) & 7) - 2;
15312 AREG((Opcode >> 0) & 7) = adr;
15314 READ_WORD_F(adr, src)
15316 flag_V = (res & src) >> 8;
15317 flag_N = flag_X = flag_C = res >> 8;
15318 flag_NotZ = res & 0xFFFF;
15319 WRITE_WORD_F(adr, res)
15331 adr += AREG((Opcode >> 0) & 7);
15333 READ_WORD_F(adr, src)
15335 flag_V = (res & src) >> 8;
15336 flag_N = flag_X = flag_C = res >> 8;
15337 flag_NotZ = res & 0xFFFF;
15338 WRITE_WORD_F(adr, res)
15349 adr = AREG((Opcode >> 0) & 7);
15352 READ_WORD_F(adr, src)
15354 flag_V = (res & src) >> 8;
15355 flag_N = flag_X = flag_C = res >> 8;
15356 flag_NotZ = res & 0xFFFF;
15357 WRITE_WORD_F(adr, res)
15370 READ_WORD_F(adr, src)
15372 flag_V = (res & src) >> 8;
15373 flag_N = flag_X = flag_C = res >> 8;
15374 flag_NotZ = res & 0xFFFF;
15375 WRITE_WORD_F(adr, res)
15388 READ_WORD_F(adr, src)
15390 flag_V = (res & src) >> 8;
15391 flag_N = flag_X = flag_C = res >> 8;
15392 flag_NotZ = res & 0xFFFF;
15393 WRITE_WORD_F(adr, res)
15407 READ_WORD_F(adr, src)
15409 flag_V = (res & src) >> 8;
15410 flag_N = flag_X = flag_C = res >> 8;
15411 flag_NotZ = res & 0xFFFF;
15412 WRITE_WORD_F(adr, res)
15426 READ_WORD_F(adr, src)
15428 flag_V = (res & src) >> 8;
15429 flag_N = flag_X = flag_C = res >> 8;
15430 flag_NotZ = res & 0xFFFF;
15431 WRITE_WORD_F(adr, res)
15442 src = DREGu32((Opcode >> 0) & 7);
15445 flag_V = (res & src) >> 24;
15446 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15447 flag_N = res >> 24;
15448 DREGu32((Opcode >> 0) & 7) = res;
15458 adr = AREG((Opcode >> 0) & 7);
15460 READ_LONG_F(adr, src)
15463 flag_V = (res & src) >> 24;
15464 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15465 flag_N = res >> 24;
15466 WRITE_LONG_F(adr, res)
15477 adr = AREG((Opcode >> 0) & 7);
15478 AREG((Opcode >> 0) & 7) += 4;
15480 READ_LONG_F(adr, src)
15483 flag_V = (res & src) >> 24;
15484 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15485 flag_N = res >> 24;
15486 WRITE_LONG_F(adr, res)
15497 adr = AREG((Opcode >> 0) & 7) - 4;
15498 AREG((Opcode >> 0) & 7) = adr;
15500 READ_LONG_F(adr, src)
15503 flag_V = (res & src) >> 24;
15504 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15505 flag_N = res >> 24;
15506 WRITE_LONG_F(adr, res)
15518 adr += AREG((Opcode >> 0) & 7);
15520 READ_LONG_F(adr, src)
15523 flag_V = (res & src) >> 24;
15524 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15525 flag_N = res >> 24;
15526 WRITE_LONG_F(adr, res)
15537 adr = AREG((Opcode >> 0) & 7);
15540 READ_LONG_F(adr, src)
15543 flag_V = (res & src) >> 24;
15544 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15545 flag_N = res >> 24;
15546 WRITE_LONG_F(adr, res)
15559 READ_LONG_F(adr, src)
15562 flag_V = (res & src) >> 24;
15563 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15564 flag_N = res >> 24;
15565 WRITE_LONG_F(adr, res)
15578 READ_LONG_F(adr, src)
15581 flag_V = (res & src) >> 24;
15582 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15583 flag_N = res >> 24;
15584 WRITE_LONG_F(adr, res)
15598 READ_LONG_F(adr, src)
15601 flag_V = (res & src) >> 24;
15602 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15603 flag_N = res >> 24;
15604 WRITE_LONG_F(adr, res)
15618 READ_LONG_F(adr, src)
15621 flag_V = (res & src) >> 24;
15622 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15623 flag_N = res >> 24;
15624 WRITE_LONG_F(adr, res)
15635 src = DREGu8((Opcode >> 0) & 7);
15640 flag_NotZ = res & 0xFF;
15641 DREGu8((Opcode >> 0) & 7) = res;
15651 adr = AREG((Opcode >> 0) & 7);
15653 READ_BYTE_F(adr, src)
15658 flag_NotZ = res & 0xFF;
15659 WRITE_BYTE_F(adr, res)
15670 adr = AREG((Opcode >> 0) & 7);
15671 AREG((Opcode >> 0) & 7) += 1;
15673 READ_BYTE_F(adr, src)
15678 flag_NotZ = res & 0xFF;
15679 WRITE_BYTE_F(adr, res)
15690 adr = AREG((Opcode >> 0) & 7) - 1;
15691 AREG((Opcode >> 0) & 7) = adr;
15693 READ_BYTE_F(adr, src)
15698 flag_NotZ = res & 0xFF;
15699 WRITE_BYTE_F(adr, res)
15711 adr += AREG((Opcode >> 0) & 7);
15713 READ_BYTE_F(adr, src)
15718 flag_NotZ = res & 0xFF;
15719 WRITE_BYTE_F(adr, res)
15730 adr = AREG((Opcode >> 0) & 7);
15733 READ_BYTE_F(adr, src)
15738 flag_NotZ = res & 0xFF;
15739 WRITE_BYTE_F(adr, res)
15752 READ_BYTE_F(adr, src)
15757 flag_NotZ = res & 0xFF;
15758 WRITE_BYTE_F(adr, res)
15771 READ_BYTE_F(adr, src)
15776 flag_NotZ = res & 0xFF;
15777 WRITE_BYTE_F(adr, res)
15791 READ_BYTE_F(adr, src)
15796 flag_NotZ = res & 0xFF;
15797 WRITE_BYTE_F(adr, res)
15811 READ_BYTE_F(adr, src)
15816 flag_NotZ = res & 0xFF;
15817 WRITE_BYTE_F(adr, res)
15828 src = DREGu16((Opcode >> 0) & 7);
15832 flag_NotZ = res & 0xFFFF;
15834 DREGu16((Opcode >> 0) & 7) = res;
15844 adr = AREG((Opcode >> 0) & 7);
15846 READ_WORD_F(adr, src)
15850 flag_NotZ = res & 0xFFFF;
15852 WRITE_WORD_F(adr, res)
15863 adr = AREG((Opcode >> 0) & 7);
15864 AREG((Opcode >> 0) & 7) += 2;
15866 READ_WORD_F(adr, src)
15870 flag_NotZ = res & 0xFFFF;
15872 WRITE_WORD_F(adr, res)
15883 adr = AREG((Opcode >> 0) & 7) - 2;
15884 AREG((Opcode >> 0) & 7) = adr;
15886 READ_WORD_F(adr, src)
15890 flag_NotZ = res & 0xFFFF;
15892 WRITE_WORD_F(adr, res)
15904 adr += AREG((Opcode >> 0) & 7);
15906 READ_WORD_F(adr, src)
15910 flag_NotZ = res & 0xFFFF;
15912 WRITE_WORD_F(adr, res)
15923 adr = AREG((Opcode >> 0) & 7);
15926 READ_WORD_F(adr, src)
15930 flag_NotZ = res & 0xFFFF;
15932 WRITE_WORD_F(adr, res)
15945 READ_WORD_F(adr, src)
15949 flag_NotZ = res & 0xFFFF;
15951 WRITE_WORD_F(adr, res)
15964 READ_WORD_F(adr, src)
15968 flag_NotZ = res & 0xFFFF;
15970 WRITE_WORD_F(adr, res)
15984 READ_WORD_F(adr, src)
15988 flag_NotZ = res & 0xFFFF;
15990 WRITE_WORD_F(adr, res)
16004 READ_WORD_F(adr, src)
16008 flag_NotZ = res & 0xFFFF;
16010 WRITE_WORD_F(adr, res)
16021 src = DREGu32((Opcode >> 0) & 7);
16026 flag_N = res >> 24;
16027 DREGu32((Opcode >> 0) & 7) = res;
16037 adr = AREG((Opcode >> 0) & 7);
16039 READ_LONG_F(adr, src)
16044 flag_N = res >> 24;
16045 WRITE_LONG_F(adr, res)
16056 adr = AREG((Opcode >> 0) & 7);
16057 AREG((Opcode >> 0) & 7) += 4;
16059 READ_LONG_F(adr, src)
16064 flag_N = res >> 24;
16065 WRITE_LONG_F(adr, res)
16076 adr = AREG((Opcode >> 0) & 7) - 4;
16077 AREG((Opcode >> 0) & 7) = adr;
16079 READ_LONG_F(adr, src)
16084 flag_N = res >> 24;
16085 WRITE_LONG_F(adr, res)
16097 adr += AREG((Opcode >> 0) & 7);
16099 READ_LONG_F(adr, src)
16104 flag_N = res >> 24;
16105 WRITE_LONG_F(adr, res)
16116 adr = AREG((Opcode >> 0) & 7);
16119 READ_LONG_F(adr, src)
16124 flag_N = res >> 24;
16125 WRITE_LONG_F(adr, res)
16138 READ_LONG_F(adr, src)
16143 flag_N = res >> 24;
16144 WRITE_LONG_F(adr, res)
16157 READ_LONG_F(adr, src)
16162 flag_N = res >> 24;
16163 WRITE_LONG_F(adr, res)
16177 READ_LONG_F(adr, src)
16182 flag_N = res >> 24;
16183 WRITE_LONG_F(adr, res)
16197 READ_LONG_F(adr, src)
16202 flag_N = res >> 24;
16203 WRITE_LONG_F(adr, res)
16215 DREGu16((Opcode >> 0) & 7) = res;
16226 adr = AREG((Opcode >> 0) & 7);
16228 WRITE_WORD_F(adr, res)
16240 adr = AREG((Opcode >> 0) & 7);
16241 AREG((Opcode >> 0) & 7) += 2;
16243 WRITE_WORD_F(adr, res)
16255 adr = AREG((Opcode >> 0) & 7) - 2;
16256 AREG((Opcode >> 0) & 7) = adr;
16258 WRITE_WORD_F(adr, res)
16271 adr += AREG((Opcode >> 0) & 7);
16273 WRITE_WORD_F(adr, res)
16285 adr = AREG((Opcode >> 0) & 7);
16288 WRITE_WORD_F(adr, res)
16302 WRITE_WORD_F(adr, res)
16316 WRITE_WORD_F(adr, res)
16331 WRITE_WORD_F(adr, res)
16346 WRITE_WORD_F(adr, res)
16357 res = DREGu16((Opcode >> 0) & 7);
16368 adr = AREG((Opcode >> 0) & 7);
16370 READ_WORD_F(adr, res)
16382 adr = AREG((Opcode >> 0) & 7);
16383 AREG((Opcode >> 0) & 7) += 2;
16385 READ_WORD_F(adr, res)
16397 adr = AREG((Opcode >> 0) & 7) - 2;
16398 AREG((Opcode >> 0) & 7) = adr;
16400 READ_WORD_F(adr, res)
16413 adr += AREG((Opcode >> 0) & 7);
16415 READ_WORD_F(adr, res)
16427 adr = AREG((Opcode >> 0) & 7);
16430 READ_WORD_F(adr, res)
16444 READ_WORD_F(adr, res)
16458 READ_WORD_F(adr, res)
16470 adr = GET_SWORD + ((u32)(PC) - BasePC);
16473 READ_WORD_F(adr, res)
16485 adr = (u32)(PC) - BasePC;
16488 READ_WORD_F(adr, res)
16514 READ_WORD_F(adr, res)
16529 READ_WORD_F(adr, res)
16543 res = DREGu16((Opcode >> 0) & 7);
16551 CHECK_INT_TO_JUMP(12)
16557 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
16571 adr = AREG((Opcode >> 0) & 7);
16573 READ_WORD_F(adr, res)
16582 CHECK_INT_TO_JUMP(16)
16588 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
16602 adr = AREG((Opcode >> 0) & 7);
16603 AREG((Opcode >> 0) & 7) += 2;
16605 READ_WORD_F(adr, res)
16614 CHECK_INT_TO_JUMP(16)
16620 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
16634 adr = AREG((Opcode >> 0) & 7) - 2;
16635 AREG((Opcode >> 0) & 7) = adr;
16637 READ_WORD_F(adr, res)
16646 CHECK_INT_TO_JUMP(18)
16652 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
16667 adr += AREG((Opcode >> 0) & 7);
16669 READ_WORD_F(adr, res)
16678 CHECK_INT_TO_JUMP(20)
16684 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
16698 adr = AREG((Opcode >> 0) & 7);
16701 READ_WORD_F(adr, res)
16710 CHECK_INT_TO_JUMP(22)
16716 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
16733 READ_WORD_F(adr, res)
16742 CHECK_INT_TO_JUMP(20)
16748 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
16764 READ_WORD_F(adr, res)
16773 CHECK_INT_TO_JUMP(24)
16779 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
16793 adr = GET_SWORD + ((u32)(PC) - BasePC);
16796 READ_WORD_F(adr, res)
16805 CHECK_INT_TO_JUMP(24)
16811 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
16825 adr = (u32)(PC) - BasePC;
16828 READ_WORD_F(adr, res)
16837 CHECK_INT_TO_JUMP(22)
16843 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
16865 CHECK_INT_TO_JUMP(16)
16871 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
16888 READ_WORD_F(adr, res)
16897 CHECK_INT_TO_JUMP(16)
16903 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
16920 READ_WORD_F(adr, res)
16929 CHECK_INT_TO_JUMP(18)
16935 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
16947 res = DREGu8((Opcode >> 0) & 7);
16948 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
16952 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
16954 DREGu8((Opcode >> 0) & 7) = res;
16956 flag_X = flag_C = M68K_SR_C;
16958 else flag_X = flag_C = 0;
16969 adr = AREG((Opcode >> 0) & 7);
16971 READ_BYTE_F(adr, res)
16972 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
16976 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
16978 WRITE_BYTE_F(adr, res)
16980 flag_X = flag_C = M68K_SR_C;
16982 else flag_X = flag_C = 0;
16994 adr = AREG((Opcode >> 0) & 7);
16995 AREG((Opcode >> 0) & 7) += 1;
16997 READ_BYTE_F(adr, res)
16998 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17002 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17004 WRITE_BYTE_F(adr, res)
17006 flag_X = flag_C = M68K_SR_C;
17008 else flag_X = flag_C = 0;
17020 adr = AREG((Opcode >> 0) & 7) - 1;
17021 AREG((Opcode >> 0) & 7) = adr;
17023 READ_BYTE_F(adr, res)
17024 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17028 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17030 WRITE_BYTE_F(adr, res)
17032 flag_X = flag_C = M68K_SR_C;
17034 else flag_X = flag_C = 0;
17047 adr += AREG((Opcode >> 0) & 7);
17049 READ_BYTE_F(adr, res)
17050 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17054 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17056 WRITE_BYTE_F(adr, res)
17058 flag_X = flag_C = M68K_SR_C;
17060 else flag_X = flag_C = 0;
17072 adr = AREG((Opcode >> 0) & 7);
17075 READ_BYTE_F(adr, res)
17076 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17080 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17082 WRITE_BYTE_F(adr, res)
17084 flag_X = flag_C = M68K_SR_C;
17086 else flag_X = flag_C = 0;
17100 READ_BYTE_F(adr, res)
17101 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17105 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17107 WRITE_BYTE_F(adr, res)
17109 flag_X = flag_C = M68K_SR_C;
17111 else flag_X = flag_C = 0;
17125 READ_BYTE_F(adr, res)
17126 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17130 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17132 WRITE_BYTE_F(adr, res)
17134 flag_X = flag_C = M68K_SR_C;
17136 else flag_X = flag_C = 0;
17151 READ_BYTE_F(adr, res)
17152 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17156 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17158 WRITE_BYTE_F(adr, res)
17160 flag_X = flag_C = M68K_SR_C;
17162 else flag_X = flag_C = 0;
17177 READ_BYTE_F(adr, res)
17178 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17182 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17184 WRITE_BYTE_F(adr, res)
17186 flag_X = flag_C = M68K_SR_C;
17188 else flag_X = flag_C = 0;
17200 adr = AREG((Opcode >> 0) & 7);
17214 adr += AREG((Opcode >> 0) & 7);
17227 adr = AREG((Opcode >> 0) & 7);
17267 adr = GET_SWORD + ((u32)(PC) - BasePC);
17281 adr = (u32)(PC) - BasePC;
17295 res = DREGu32((Opcode >> 0) & 7);
17296 res = (res >> 16) | (res << 16);
17300 flag_N = res >> 24;
17301 DREGu32((Opcode >> 0) & 7) = res;
17314 adr = AREG((Opcode >> 0) & 7);
17315 psrc = &DREGu32(0);
17322 WRITE_WORD_F(adr, *psrc)
17326 } while (res >>= 1);
17328 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17329 #ifdef USE_CYCLONE_TIMING
17345 adr = AREG((Opcode >> 0) & 7);
17346 psrc = &AREGu32(7);
17354 WRITE_WORD_F(adr, *psrc)
17357 } while (res >>= 1);
17358 AREG((Opcode >> 0) & 7) = adr;
17360 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17374 adr += AREG((Opcode >> 0) & 7);
17375 psrc = &DREGu32(0);
17382 WRITE_WORD_F(adr, *psrc)
17386 } while (res >>= 1);
17388 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17389 #ifdef USE_CYCLONE_TIMING
17405 adr = AREG((Opcode >> 0) & 7);
17407 psrc = &DREGu32(0);
17414 WRITE_WORD_F(adr, *psrc)
17418 } while (res >>= 1);
17420 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17421 #ifdef USE_CYCLONE_TIMING
17438 psrc = &DREGu32(0);
17445 WRITE_WORD_F(adr, *psrc)
17449 } while (res >>= 1);
17451 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17452 #ifdef USE_CYCLONE_TIMING
17469 psrc = &DREGu32(0);
17476 WRITE_WORD_F(adr, *psrc)
17480 } while (res >>= 1);
17482 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17483 #ifdef USE_CYCLONE_TIMING
17500 psrc = &AREGu32(7);
17508 WRITE_WORD_F(adr, *psrc)
17511 } while (res >>= 1);
17514 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17527 adr = AREG((Opcode >> 0) & 7);
17528 psrc = &DREGu32(0);
17535 WRITE_LONG_F(adr, *psrc)
17539 } while (res >>= 1);
17541 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17542 #ifdef USE_CYCLONE_TIMING
17558 adr = AREG((Opcode >> 0) & 7);
17559 psrc = &AREGu32(7);
17567 WRITE_LONG_DEC_F(adr, *psrc)
17570 } while (res >>= 1);
17571 AREG((Opcode >> 0) & 7) = adr;
17573 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17587 adr += AREG((Opcode >> 0) & 7);
17588 psrc = &DREGu32(0);
17595 WRITE_LONG_F(adr, *psrc)
17599 } while (res >>= 1);
17601 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17602 #ifdef USE_CYCLONE_TIMING
17618 adr = AREG((Opcode >> 0) & 7);
17620 psrc = &DREGu32(0);
17627 WRITE_LONG_F(adr, *psrc)
17631 } while (res >>= 1);
17633 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17634 #ifdef USE_CYCLONE_TIMING
17651 psrc = &DREGu32(0);
17658 WRITE_LONG_F(adr, *psrc)
17662 } while (res >>= 1);
17664 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17665 #ifdef USE_CYCLONE_TIMING
17682 psrc = &DREGu32(0);
17689 WRITE_LONG_F(adr, *psrc)
17693 } while (res >>= 1);
17695 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17696 #ifdef USE_CYCLONE_TIMING
17713 psrc = &AREGu32(7);
17721 WRITE_LONG_DEC_F(adr, *psrc)
17724 } while (res >>= 1);
17727 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17737 res = (s32)DREGs8((Opcode >> 0) & 7);
17742 DREGu16((Opcode >> 0) & 7) = res;
17752 res = (s32)DREGs16((Opcode >> 0) & 7);
17757 DREGu32((Opcode >> 0) & 7) = res;
17767 res = DREGu8((Opcode >> 0) & 7);
17781 adr = AREG((Opcode >> 0) & 7);
17783 READ_BYTE_F(adr, res)
17798 adr = AREG((Opcode >> 0) & 7);
17799 AREG((Opcode >> 0) & 7) += 1;
17801 READ_BYTE_F(adr, res)
17816 adr = AREG((Opcode >> 0) & 7) - 1;
17817 AREG((Opcode >> 0) & 7) = adr;
17819 READ_BYTE_F(adr, res)
17835 adr += AREG((Opcode >> 0) & 7);
17837 READ_BYTE_F(adr, res)
17852 adr = AREG((Opcode >> 0) & 7);
17855 READ_BYTE_F(adr, res)
17872 READ_BYTE_F(adr, res)
17889 READ_BYTE_F(adr, res)
17907 READ_BYTE_F(adr, res)
17925 READ_BYTE_F(adr, res)
17940 res = DREGu16((Opcode >> 0) & 7);
17954 adr = AREG((Opcode >> 0) & 7);
17956 READ_WORD_F(adr, res)
17971 adr = AREG((Opcode >> 0) & 7);
17972 AREG((Opcode >> 0) & 7) += 2;
17974 READ_WORD_F(adr, res)
17989 adr = AREG((Opcode >> 0) & 7) - 2;
17990 AREG((Opcode >> 0) & 7) = adr;
17992 READ_WORD_F(adr, res)
18008 adr += AREG((Opcode >> 0) & 7);
18010 READ_WORD_F(adr, res)
18025 adr = AREG((Opcode >> 0) & 7);
18028 READ_WORD_F(adr, res)
18045 READ_WORD_F(adr, res)
18062 READ_WORD_F(adr, res)
18080 READ_WORD_F(adr, res)
18098 READ_WORD_F(adr, res)
18113 res = DREGu32((Opcode >> 0) & 7);
18117 flag_N = res >> 24;
18127 adr = AREG((Opcode >> 0) & 7);
18129 READ_LONG_F(adr, res)
18133 flag_N = res >> 24;
18144 adr = AREG((Opcode >> 0) & 7);
18145 AREG((Opcode >> 0) & 7) += 4;
18147 READ_LONG_F(adr, res)
18151 flag_N = res >> 24;
18162 adr = AREG((Opcode >> 0) & 7) - 4;
18163 AREG((Opcode >> 0) & 7) = adr;
18165 READ_LONG_F(adr, res)
18169 flag_N = res >> 24;
18181 adr += AREG((Opcode >> 0) & 7);
18183 READ_LONG_F(adr, res)
18187 flag_N = res >> 24;
18198 adr = AREG((Opcode >> 0) & 7);
18201 READ_LONG_F(adr, res)
18205 flag_N = res >> 24;
18218 READ_LONG_F(adr, res)
18222 flag_N = res >> 24;
18235 READ_LONG_F(adr, res)
18239 flag_N = res >> 24;
18253 READ_LONG_F(adr, res)
18257 flag_N = res >> 24;
18271 READ_LONG_F(adr, res)
18275 flag_N = res >> 24;
18286 res = DREGu8((Opcode >> 0) & 7);
18292 DREGu8((Opcode >> 0) & 7) = res;
18302 adr = AREG((Opcode >> 0) & 7);
18304 READ_BYTE_F(adr, res)
18319 adr = AREG((Opcode >> 0) & 7);
18320 AREG((Opcode >> 0) & 7) += 1;
18322 READ_BYTE_F(adr, res)
18337 adr = AREG((Opcode >> 0) & 7) - 1;
18338 AREG((Opcode >> 0) & 7) = adr;
18340 READ_BYTE_F(adr, res)
18356 adr += AREG((Opcode >> 0) & 7);
18358 READ_BYTE_F(adr, res)
18373 adr = AREG((Opcode >> 0) & 7);
18376 READ_BYTE_F(adr, res)
18393 READ_BYTE_F(adr, res)
18410 READ_BYTE_F(adr, res)
18428 READ_BYTE_F(adr, res)
18446 READ_BYTE_F(adr, res)
18460 execute_exception(M68K_ILLEGAL_INSTRUCTION_EX);
18464 // ILLEGAL A000-AFFF
18469 execute_exception(M68K_1010_EX);
18473 // ILLEGAL F000-FFFF
18478 execute_exception(M68K_1111_EX);
18491 adr = AREG((Opcode >> 0) & 7);
18492 psrc = &DREGs32(0);
18499 READSX_WORD_F(adr, *psrc)
18503 } while (res >>= 1);
18505 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18506 #ifdef USE_CYCLONE_TIMING
18522 adr = AREG((Opcode >> 0) & 7);
18523 psrc = &DREGs32(0);
18530 READSX_WORD_F(adr, *psrc)
18534 } while (res >>= 1);
18535 AREG((Opcode >> 0) & 7) = adr;
18537 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18551 adr += AREG((Opcode >> 0) & 7);
18552 psrc = &DREGs32(0);
18559 READSX_WORD_F(adr, *psrc)
18563 } while (res >>= 1);
18565 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18566 #ifdef USE_CYCLONE_TIMING
18582 adr = AREG((Opcode >> 0) & 7);
18584 psrc = &DREGs32(0);
18591 READSX_WORD_F(adr, *psrc)
18595 } while (res >>= 1);
18597 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18598 #ifdef USE_CYCLONE_TIMING
18615 psrc = &DREGs32(0);
18622 READSX_WORD_F(adr, *psrc)
18626 } while (res >>= 1);
18628 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18629 #ifdef USE_CYCLONE_TIMING
18646 psrc = &DREGs32(0);
18653 READSX_WORD_F(adr, *psrc)
18657 } while (res >>= 1);
18659 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18660 #ifdef USE_CYCLONE_TIMING
18676 adr = GET_SWORD + ((u32)(PC) - BasePC);
18678 psrc = &DREGs32(0);
18685 READSX_WORD_F(adr, *psrc)
18689 } while (res >>= 1);
18691 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18692 #ifdef USE_CYCLONE_TIMING
18708 adr = (u32)(PC) - BasePC;
18710 psrc = &DREGs32(0);
18717 READSX_WORD_F(adr, *psrc)
18721 } while (res >>= 1);
18723 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18724 #ifdef USE_CYCLONE_TIMING
18741 psrc = &DREGs32(0);
18748 READSX_WORD_F(adr, *psrc)
18752 } while (res >>= 1);
18755 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18768 adr = AREG((Opcode >> 0) & 7);
18769 psrc = &DREGu32(0);
18776 READ_LONG_F(adr, *psrc)
18780 } while (res >>= 1);
18782 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18783 #ifdef USE_CYCLONE_TIMING
18799 adr = AREG((Opcode >> 0) & 7);
18800 psrc = &DREGu32(0);
18807 READ_LONG_F(adr, *psrc)
18811 } while (res >>= 1);
18812 AREG((Opcode >> 0) & 7) = adr;
18814 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18828 adr += AREG((Opcode >> 0) & 7);
18829 psrc = &DREGu32(0);
18836 READ_LONG_F(adr, *psrc)
18840 } while (res >>= 1);
18842 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18843 #ifdef USE_CYCLONE_TIMING
18859 adr = AREG((Opcode >> 0) & 7);
18861 psrc = &DREGu32(0);
18868 READ_LONG_F(adr, *psrc)
18872 } while (res >>= 1);
18874 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18875 #ifdef USE_CYCLONE_TIMING
18892 psrc = &DREGu32(0);
18899 READ_LONG_F(adr, *psrc)
18903 } while (res >>= 1);
18905 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18906 #ifdef USE_CYCLONE_TIMING
18923 psrc = &DREGu32(0);
18930 READ_LONG_F(adr, *psrc)
18934 } while (res >>= 1);
18936 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18937 #ifdef USE_CYCLONE_TIMING
18953 adr = GET_SWORD + ((u32)(PC) - BasePC);
18955 psrc = &DREGu32(0);
18962 READ_LONG_F(adr, *psrc)
18966 } while (res >>= 1);
18968 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18969 #ifdef USE_CYCLONE_TIMING
18985 adr = (u32)(PC) - BasePC;
18987 psrc = &DREGu32(0);
18994 READ_LONG_F(adr, *psrc)
18998 } while (res >>= 1);
19000 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
19001 #ifdef USE_CYCLONE_TIMING
19018 psrc = &DREGu32(0);
19025 READ_LONG_F(adr, *psrc)
19029 } while (res >>= 1);
19032 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
19039 execute_exception(M68K_TRAP_BASE_EX + (Opcode & 0xF));
19049 res = AREGu32((Opcode >> 0) & 7);
19053 AREG((Opcode >> 0) & 7) = res;
19068 WRITE_LONG_DEC_F(AREG(7), AREG(7))
19081 src = AREGu32((Opcode >> 0) & 7);
19084 READ_LONG_F(src, res)
19085 AREG((Opcode >> 0) & 7) = res;
19097 READ_LONG_F(AREG(7), AREG(7))
19112 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
19115 res = AREGu32((Opcode >> 0) & 7);
19130 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
19134 AREG((Opcode >> 0) & 7) = res;
19148 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
19152 if (m68kcontext.reset_handler) m68kcontext.reset_handler();
19153 // CPU->Reset_CallBack();
19174 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
19178 res &= M68K_SR_MASK;
19186 m68kcontext.execinfo |= M68K_HALTED;
19187 m68kcontext.io_cycle_counter = 0;
19201 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
19216 m68kcontext.execinfo &= ~(M68K_EMULATE_GROUP_0|M68K_EMULATE_TRACE|M68K_DO_TRACE);
19217 CHECK_INT_TO_JUMP(20)
19230 CHECK_BRANCH_EXCEPTION(res)
19239 execute_exception(M68K_TRAPV_EX);
19254 CHECK_BRANCH_EXCEPTION(res)
19265 adr = AREG((Opcode >> 0) & 7);
19269 oldPC = (u32)(PC) - BasePC;
19274 CHECK_BRANCH_EXCEPTION(adr)
19286 adr += AREG((Opcode >> 0) & 7);
19290 oldPC = (u32)(PC) - BasePC;
19295 CHECK_BRANCH_EXCEPTION(adr)
19306 adr = AREG((Opcode >> 0) & 7);
19311 oldPC = (u32)(PC) - BasePC;
19316 CHECK_BRANCH_EXCEPTION(adr)
19331 oldPC = (u32)(PC) - BasePC;
19336 CHECK_BRANCH_EXCEPTION(adr)
19351 oldPC = (u32)(PC) - BasePC;
19356 CHECK_BRANCH_EXCEPTION(adr)
19367 adr = GET_SWORD + ((u32)(PC) - BasePC);
19372 oldPC = (u32)(PC) - BasePC;
19377 CHECK_BRANCH_EXCEPTION(adr)
19388 adr = (u32)(PC) - BasePC;
19393 oldPC = (u32)(PC) - BasePC;
19398 CHECK_BRANCH_EXCEPTION(adr)
19409 adr = AREG((Opcode >> 0) & 7);
19411 CHECK_BRANCH_EXCEPTION(adr)
19422 adr += AREG((Opcode >> 0) & 7);
19424 CHECK_BRANCH_EXCEPTION(adr)
19434 adr = AREG((Opcode >> 0) & 7);
19437 CHECK_BRANCH_EXCEPTION(adr)
19449 CHECK_BRANCH_EXCEPTION(adr)
19461 CHECK_BRANCH_EXCEPTION(adr)
19471 adr = GET_SWORD + ((u32)(PC) - BasePC);
19474 CHECK_BRANCH_EXCEPTION(adr)
19484 adr = (u32)(PC) - BasePC;
19487 CHECK_BRANCH_EXCEPTION(adr)
19497 src = DREGu16((Opcode >> 0) & 7);
19498 res = DREGu16((Opcode >> 9) & 7);
19499 if (((s32)res < 0) || (res > src))
19502 execute_exception(M68K_CHK_EX);
19513 adr = AREG((Opcode >> 0) & 7);
19515 READ_WORD_F(adr, src)
19516 res = DREGu16((Opcode >> 9) & 7);
19517 if (((s32)res < 0) || (res > src))
19520 execute_exception(M68K_CHK_EX);
19532 adr = AREG((Opcode >> 0) & 7);
19533 AREG((Opcode >> 0) & 7) += 2;
19535 READ_WORD_F(adr, src)
19536 res = DREGu16((Opcode >> 9) & 7);
19537 if (((s32)res < 0) || (res > src))
19540 execute_exception(M68K_CHK_EX);
19552 adr = AREG((Opcode >> 0) & 7) - 2;
19553 AREG((Opcode >> 0) & 7) = adr;
19555 READ_WORD_F(adr, src)
19556 res = DREGu16((Opcode >> 9) & 7);
19557 if (((s32)res < 0) || (res > src))
19560 execute_exception(M68K_CHK_EX);
19573 adr += AREG((Opcode >> 0) & 7);
19575 READ_WORD_F(adr, src)
19576 res = DREGu16((Opcode >> 9) & 7);
19577 if (((s32)res < 0) || (res > src))
19580 execute_exception(M68K_CHK_EX);
19592 adr = AREG((Opcode >> 0) & 7);
19595 READ_WORD_F(adr, src)
19596 res = DREGu16((Opcode >> 9) & 7);
19597 if (((s32)res < 0) || (res > src))
19600 execute_exception(M68K_CHK_EX);
19614 READ_WORD_F(adr, src)
19615 res = DREGu16((Opcode >> 9) & 7);
19616 if (((s32)res < 0) || (res > src))
19619 execute_exception(M68K_CHK_EX);
19633 READ_WORD_F(adr, src)
19634 res = DREGu16((Opcode >> 9) & 7);
19635 if (((s32)res < 0) || (res > src))
19638 execute_exception(M68K_CHK_EX);
19650 adr = GET_SWORD + ((u32)(PC) - BasePC);
19653 READ_WORD_F(adr, src)
19654 res = DREGu16((Opcode >> 9) & 7);
19655 if (((s32)res < 0) || (res > src))
19658 execute_exception(M68K_CHK_EX);
19670 adr = (u32)(PC) - BasePC;
19673 READ_WORD_F(adr, src)
19674 res = DREGu16((Opcode >> 9) & 7);
19675 if (((s32)res < 0) || (res > src))
19678 execute_exception(M68K_CHK_EX);
19691 res = DREGu16((Opcode >> 9) & 7);
19692 if (((s32)res < 0) || (res > src))
19695 execute_exception(M68K_CHK_EX);
19710 READ_WORD_F(adr, src)
19711 res = DREGu16((Opcode >> 9) & 7);
19712 if (((s32)res < 0) || (res > src))
19715 execute_exception(M68K_CHK_EX);
19730 READ_WORD_F(adr, src)
19731 res = DREGu16((Opcode >> 9) & 7);
19732 if (((s32)res < 0) || (res > src))
19735 execute_exception(M68K_CHK_EX);
19747 adr = AREG((Opcode >> 0) & 7);
19749 AREG((Opcode >> 9) & 7) = res;
19760 adr += AREG((Opcode >> 0) & 7);
19762 AREG((Opcode >> 9) & 7) = res;
19772 adr = AREG((Opcode >> 0) & 7);
19775 AREG((Opcode >> 9) & 7) = res;
19787 AREG((Opcode >> 9) & 7) = res;
19799 AREG((Opcode >> 9) & 7) = res;
19809 adr = GET_SWORD + ((u32)(PC) - BasePC);
19812 AREG((Opcode >> 9) & 7) = res;
19822 adr = (u32)(PC) - BasePC;
19825 AREG((Opcode >> 9) & 7) = res;
19836 DREGu8((Opcode >> 0) & 7) = res;
19847 DREGu8((Opcode >> 0) & 7) = res;
19857 if (flag_NotZ && (!(flag_C & 0x100)))
19860 DREGu8((Opcode >> 0) & 7) = res;
19864 DREGu8((Opcode >> 0) & 7) = res;
19874 if ((!flag_NotZ) || (flag_C & 0x100))
19877 DREGu8((Opcode >> 0) & 7) = res;
19881 DREGu8((Opcode >> 0) & 7) = res;
19891 if (!(flag_C & 0x100))
19894 DREGu8((Opcode >> 0) & 7) = res;
19898 DREGu8((Opcode >> 0) & 7) = res;
19908 if (flag_C & 0x100)
19911 DREGu8((Opcode >> 0) & 7) = res;
19915 DREGu8((Opcode >> 0) & 7) = res;
19928 DREGu8((Opcode >> 0) & 7) = res;
19932 DREGu8((Opcode >> 0) & 7) = res;
19945 DREGu8((Opcode >> 0) & 7) = res;
19949 DREGu8((Opcode >> 0) & 7) = res;
19959 if (!(flag_V & 0x80))
19962 DREGu8((Opcode >> 0) & 7) = res;
19966 DREGu8((Opcode >> 0) & 7) = res;
19979 DREGu8((Opcode >> 0) & 7) = res;
19983 DREGu8((Opcode >> 0) & 7) = res;
19993 if (!(flag_N & 0x80))
19996 DREGu8((Opcode >> 0) & 7) = res;
20000 DREGu8((Opcode >> 0) & 7) = res;
20013 DREGu8((Opcode >> 0) & 7) = res;
20017 DREGu8((Opcode >> 0) & 7) = res;
20027 if (!((flag_N ^ flag_V) & 0x80))
20030 DREGu8((Opcode >> 0) & 7) = res;
20034 DREGu8((Opcode >> 0) & 7) = res;
20044 if ((flag_N ^ flag_V) & 0x80)
20047 DREGu8((Opcode >> 0) & 7) = res;
20051 DREGu8((Opcode >> 0) & 7) = res;
20061 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20064 DREGu8((Opcode >> 0) & 7) = res;
20068 DREGu8((Opcode >> 0) & 7) = res;
20078 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20081 DREGu8((Opcode >> 0) & 7) = res;
20085 DREGu8((Opcode >> 0) & 7) = res;
20095 adr = AREG((Opcode >> 0) & 7);
20098 WRITE_BYTE_F(adr, res)
20109 adr = AREG((Opcode >> 0) & 7);
20112 WRITE_BYTE_F(adr, res)
20123 adr = AREG((Opcode >> 0) & 7);
20124 if (flag_NotZ && (!(flag_C & 0x100)))
20128 WRITE_BYTE_F(adr, res)
20134 WRITE_BYTE_F(adr, res)
20145 adr = AREG((Opcode >> 0) & 7);
20146 if ((!flag_NotZ) || (flag_C & 0x100))
20150 WRITE_BYTE_F(adr, res)
20156 WRITE_BYTE_F(adr, res)
20167 adr = AREG((Opcode >> 0) & 7);
20168 if (!(flag_C & 0x100))
20172 WRITE_BYTE_F(adr, res)
20178 WRITE_BYTE_F(adr, res)
20189 adr = AREG((Opcode >> 0) & 7);
20190 if (flag_C & 0x100)
20194 WRITE_BYTE_F(adr, res)
20200 WRITE_BYTE_F(adr, res)
20211 adr = AREG((Opcode >> 0) & 7);
20216 WRITE_BYTE_F(adr, res)
20222 WRITE_BYTE_F(adr, res)
20233 adr = AREG((Opcode >> 0) & 7);
20238 WRITE_BYTE_F(adr, res)
20244 WRITE_BYTE_F(adr, res)
20255 adr = AREG((Opcode >> 0) & 7);
20256 if (!(flag_V & 0x80))
20260 WRITE_BYTE_F(adr, res)
20266 WRITE_BYTE_F(adr, res)
20277 adr = AREG((Opcode >> 0) & 7);
20282 WRITE_BYTE_F(adr, res)
20288 WRITE_BYTE_F(adr, res)
20299 adr = AREG((Opcode >> 0) & 7);
20300 if (!(flag_N & 0x80))
20304 WRITE_BYTE_F(adr, res)
20310 WRITE_BYTE_F(adr, res)
20321 adr = AREG((Opcode >> 0) & 7);
20326 WRITE_BYTE_F(adr, res)
20332 WRITE_BYTE_F(adr, res)
20343 adr = AREG((Opcode >> 0) & 7);
20344 if (!((flag_N ^ flag_V) & 0x80))
20348 WRITE_BYTE_F(adr, res)
20354 WRITE_BYTE_F(adr, res)
20365 adr = AREG((Opcode >> 0) & 7);
20366 if ((flag_N ^ flag_V) & 0x80)
20370 WRITE_BYTE_F(adr, res)
20376 WRITE_BYTE_F(adr, res)
20387 adr = AREG((Opcode >> 0) & 7);
20388 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20392 WRITE_BYTE_F(adr, res)
20398 WRITE_BYTE_F(adr, res)
20409 adr = AREG((Opcode >> 0) & 7);
20410 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20414 WRITE_BYTE_F(adr, res)
20420 WRITE_BYTE_F(adr, res)
20431 adr = AREG((Opcode >> 0) & 7);
20432 AREG((Opcode >> 0) & 7) += 1;
20435 WRITE_BYTE_F(adr, res)
20446 adr = AREG((Opcode >> 0) & 7);
20447 AREG((Opcode >> 0) & 7) += 1;
20450 WRITE_BYTE_F(adr, res)
20461 adr = AREG((Opcode >> 0) & 7);
20462 AREG((Opcode >> 0) & 7) += 1;
20463 if (flag_NotZ && (!(flag_C & 0x100)))
20467 WRITE_BYTE_F(adr, res)
20473 WRITE_BYTE_F(adr, res)
20484 adr = AREG((Opcode >> 0) & 7);
20485 AREG((Opcode >> 0) & 7) += 1;
20486 if ((!flag_NotZ) || (flag_C & 0x100))
20490 WRITE_BYTE_F(adr, res)
20496 WRITE_BYTE_F(adr, res)
20507 adr = AREG((Opcode >> 0) & 7);
20508 AREG((Opcode >> 0) & 7) += 1;
20509 if (!(flag_C & 0x100))
20513 WRITE_BYTE_F(adr, res)
20519 WRITE_BYTE_F(adr, res)
20530 adr = AREG((Opcode >> 0) & 7);
20531 AREG((Opcode >> 0) & 7) += 1;
20532 if (flag_C & 0x100)
20536 WRITE_BYTE_F(adr, res)
20542 WRITE_BYTE_F(adr, res)
20553 adr = AREG((Opcode >> 0) & 7);
20554 AREG((Opcode >> 0) & 7) += 1;
20559 WRITE_BYTE_F(adr, res)
20565 WRITE_BYTE_F(adr, res)
20576 adr = AREG((Opcode >> 0) & 7);
20577 AREG((Opcode >> 0) & 7) += 1;
20582 WRITE_BYTE_F(adr, res)
20588 WRITE_BYTE_F(adr, res)
20599 adr = AREG((Opcode >> 0) & 7);
20600 AREG((Opcode >> 0) & 7) += 1;
20601 if (!(flag_V & 0x80))
20605 WRITE_BYTE_F(adr, res)
20611 WRITE_BYTE_F(adr, res)
20622 adr = AREG((Opcode >> 0) & 7);
20623 AREG((Opcode >> 0) & 7) += 1;
20628 WRITE_BYTE_F(adr, res)
20634 WRITE_BYTE_F(adr, res)
20645 adr = AREG((Opcode >> 0) & 7);
20646 AREG((Opcode >> 0) & 7) += 1;
20647 if (!(flag_N & 0x80))
20651 WRITE_BYTE_F(adr, res)
20657 WRITE_BYTE_F(adr, res)
20668 adr = AREG((Opcode >> 0) & 7);
20669 AREG((Opcode >> 0) & 7) += 1;
20674 WRITE_BYTE_F(adr, res)
20680 WRITE_BYTE_F(adr, res)
20691 adr = AREG((Opcode >> 0) & 7);
20692 AREG((Opcode >> 0) & 7) += 1;
20693 if (!((flag_N ^ flag_V) & 0x80))
20697 WRITE_BYTE_F(adr, res)
20703 WRITE_BYTE_F(adr, res)
20714 adr = AREG((Opcode >> 0) & 7);
20715 AREG((Opcode >> 0) & 7) += 1;
20716 if ((flag_N ^ flag_V) & 0x80)
20720 WRITE_BYTE_F(adr, res)
20726 WRITE_BYTE_F(adr, res)
20737 adr = AREG((Opcode >> 0) & 7);
20738 AREG((Opcode >> 0) & 7) += 1;
20739 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20743 WRITE_BYTE_F(adr, res)
20749 WRITE_BYTE_F(adr, res)
20760 adr = AREG((Opcode >> 0) & 7);
20761 AREG((Opcode >> 0) & 7) += 1;
20762 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20766 WRITE_BYTE_F(adr, res)
20772 WRITE_BYTE_F(adr, res)
20783 adr = AREG((Opcode >> 0) & 7) - 1;
20784 AREG((Opcode >> 0) & 7) = adr;
20787 WRITE_BYTE_F(adr, res)
20798 adr = AREG((Opcode >> 0) & 7) - 1;
20799 AREG((Opcode >> 0) & 7) = adr;
20802 WRITE_BYTE_F(adr, res)
20813 adr = AREG((Opcode >> 0) & 7) - 1;
20814 AREG((Opcode >> 0) & 7) = adr;
20815 if (flag_NotZ && (!(flag_C & 0x100)))
20819 WRITE_BYTE_F(adr, res)
20825 WRITE_BYTE_F(adr, res)
20836 adr = AREG((Opcode >> 0) & 7) - 1;
20837 AREG((Opcode >> 0) & 7) = adr;
20838 if ((!flag_NotZ) || (flag_C & 0x100))
20842 WRITE_BYTE_F(adr, res)
20848 WRITE_BYTE_F(adr, res)
20859 adr = AREG((Opcode >> 0) & 7) - 1;
20860 AREG((Opcode >> 0) & 7) = adr;
20861 if (!(flag_C & 0x100))
20865 WRITE_BYTE_F(adr, res)
20871 WRITE_BYTE_F(adr, res)
20882 adr = AREG((Opcode >> 0) & 7) - 1;
20883 AREG((Opcode >> 0) & 7) = adr;
20884 if (flag_C & 0x100)
20888 WRITE_BYTE_F(adr, res)
20894 WRITE_BYTE_F(adr, res)
20905 adr = AREG((Opcode >> 0) & 7) - 1;
20906 AREG((Opcode >> 0) & 7) = adr;
20911 WRITE_BYTE_F(adr, res)
20917 WRITE_BYTE_F(adr, res)
20928 adr = AREG((Opcode >> 0) & 7) - 1;
20929 AREG((Opcode >> 0) & 7) = adr;
20934 WRITE_BYTE_F(adr, res)
20940 WRITE_BYTE_F(adr, res)
20951 adr = AREG((Opcode >> 0) & 7) - 1;
20952 AREG((Opcode >> 0) & 7) = adr;
20953 if (!(flag_V & 0x80))
20957 WRITE_BYTE_F(adr, res)
20963 WRITE_BYTE_F(adr, res)
20974 adr = AREG((Opcode >> 0) & 7) - 1;
20975 AREG((Opcode >> 0) & 7) = adr;
20980 WRITE_BYTE_F(adr, res)
20986 WRITE_BYTE_F(adr, res)
20997 adr = AREG((Opcode >> 0) & 7) - 1;
20998 AREG((Opcode >> 0) & 7) = adr;
20999 if (!(flag_N & 0x80))
21003 WRITE_BYTE_F(adr, res)
21009 WRITE_BYTE_F(adr, res)
21020 adr = AREG((Opcode >> 0) & 7) - 1;
21021 AREG((Opcode >> 0) & 7) = adr;
21026 WRITE_BYTE_F(adr, res)
21032 WRITE_BYTE_F(adr, res)
21043 adr = AREG((Opcode >> 0) & 7) - 1;
21044 AREG((Opcode >> 0) & 7) = adr;
21045 if (!((flag_N ^ flag_V) & 0x80))
21049 WRITE_BYTE_F(adr, res)
21055 WRITE_BYTE_F(adr, res)
21066 adr = AREG((Opcode >> 0) & 7) - 1;
21067 AREG((Opcode >> 0) & 7) = adr;
21068 if ((flag_N ^ flag_V) & 0x80)
21072 WRITE_BYTE_F(adr, res)
21078 WRITE_BYTE_F(adr, res)
21089 adr = AREG((Opcode >> 0) & 7) - 1;
21090 AREG((Opcode >> 0) & 7) = adr;
21091 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21095 WRITE_BYTE_F(adr, res)
21101 WRITE_BYTE_F(adr, res)
21112 adr = AREG((Opcode >> 0) & 7) - 1;
21113 AREG((Opcode >> 0) & 7) = adr;
21114 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21118 WRITE_BYTE_F(adr, res)
21124 WRITE_BYTE_F(adr, res)
21136 adr += AREG((Opcode >> 0) & 7);
21139 WRITE_BYTE_F(adr, res)
21151 adr += AREG((Opcode >> 0) & 7);
21154 WRITE_BYTE_F(adr, res)
21166 adr += AREG((Opcode >> 0) & 7);
21167 if (flag_NotZ && (!(flag_C & 0x100)))
21171 WRITE_BYTE_F(adr, res)
21177 WRITE_BYTE_F(adr, res)
21189 adr += AREG((Opcode >> 0) & 7);
21190 if ((!flag_NotZ) || (flag_C & 0x100))
21194 WRITE_BYTE_F(adr, res)
21200 WRITE_BYTE_F(adr, res)
21212 adr += AREG((Opcode >> 0) & 7);
21213 if (!(flag_C & 0x100))
21217 WRITE_BYTE_F(adr, res)
21223 WRITE_BYTE_F(adr, res)
21235 adr += AREG((Opcode >> 0) & 7);
21236 if (flag_C & 0x100)
21240 WRITE_BYTE_F(adr, res)
21246 WRITE_BYTE_F(adr, res)
21258 adr += AREG((Opcode >> 0) & 7);
21263 WRITE_BYTE_F(adr, res)
21269 WRITE_BYTE_F(adr, res)
21281 adr += AREG((Opcode >> 0) & 7);
21286 WRITE_BYTE_F(adr, res)
21292 WRITE_BYTE_F(adr, res)
21304 adr += AREG((Opcode >> 0) & 7);
21305 if (!(flag_V & 0x80))
21309 WRITE_BYTE_F(adr, res)
21315 WRITE_BYTE_F(adr, res)
21327 adr += AREG((Opcode >> 0) & 7);
21332 WRITE_BYTE_F(adr, res)
21338 WRITE_BYTE_F(adr, res)
21350 adr += AREG((Opcode >> 0) & 7);
21351 if (!(flag_N & 0x80))
21355 WRITE_BYTE_F(adr, res)
21361 WRITE_BYTE_F(adr, res)
21373 adr += AREG((Opcode >> 0) & 7);
21378 WRITE_BYTE_F(adr, res)
21384 WRITE_BYTE_F(adr, res)
21396 adr += AREG((Opcode >> 0) & 7);
21397 if (!((flag_N ^ flag_V) & 0x80))
21401 WRITE_BYTE_F(adr, res)
21407 WRITE_BYTE_F(adr, res)
21419 adr += AREG((Opcode >> 0) & 7);
21420 if ((flag_N ^ flag_V) & 0x80)
21424 WRITE_BYTE_F(adr, res)
21430 WRITE_BYTE_F(adr, res)
21442 adr += AREG((Opcode >> 0) & 7);
21443 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21447 WRITE_BYTE_F(adr, res)
21453 WRITE_BYTE_F(adr, res)
21465 adr += AREG((Opcode >> 0) & 7);
21466 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21470 WRITE_BYTE_F(adr, res)
21476 WRITE_BYTE_F(adr, res)
21487 adr = AREG((Opcode >> 0) & 7);
21491 WRITE_BYTE_F(adr, res)
21502 adr = AREG((Opcode >> 0) & 7);
21506 WRITE_BYTE_F(adr, res)
21517 adr = AREG((Opcode >> 0) & 7);
21519 if (flag_NotZ && (!(flag_C & 0x100)))
21523 WRITE_BYTE_F(adr, res)
21529 WRITE_BYTE_F(adr, res)
21540 adr = AREG((Opcode >> 0) & 7);
21542 if ((!flag_NotZ) || (flag_C & 0x100))
21546 WRITE_BYTE_F(adr, res)
21552 WRITE_BYTE_F(adr, res)
21563 adr = AREG((Opcode >> 0) & 7);
21565 if (!(flag_C & 0x100))
21569 WRITE_BYTE_F(adr, res)
21575 WRITE_BYTE_F(adr, res)
21586 adr = AREG((Opcode >> 0) & 7);
21588 if (flag_C & 0x100)
21592 WRITE_BYTE_F(adr, res)
21598 WRITE_BYTE_F(adr, res)
21609 adr = AREG((Opcode >> 0) & 7);
21615 WRITE_BYTE_F(adr, res)
21621 WRITE_BYTE_F(adr, res)
21632 adr = AREG((Opcode >> 0) & 7);
21638 WRITE_BYTE_F(adr, res)
21644 WRITE_BYTE_F(adr, res)
21655 adr = AREG((Opcode >> 0) & 7);
21657 if (!(flag_V & 0x80))
21661 WRITE_BYTE_F(adr, res)
21667 WRITE_BYTE_F(adr, res)
21678 adr = AREG((Opcode >> 0) & 7);
21684 WRITE_BYTE_F(adr, res)
21690 WRITE_BYTE_F(adr, res)
21701 adr = AREG((Opcode >> 0) & 7);
21703 if (!(flag_N & 0x80))
21707 WRITE_BYTE_F(adr, res)
21713 WRITE_BYTE_F(adr, res)
21724 adr = AREG((Opcode >> 0) & 7);
21730 WRITE_BYTE_F(adr, res)
21736 WRITE_BYTE_F(adr, res)
21747 adr = AREG((Opcode >> 0) & 7);
21749 if (!((flag_N ^ flag_V) & 0x80))
21753 WRITE_BYTE_F(adr, res)
21759 WRITE_BYTE_F(adr, res)
21770 adr = AREG((Opcode >> 0) & 7);
21772 if ((flag_N ^ flag_V) & 0x80)
21776 WRITE_BYTE_F(adr, res)
21782 WRITE_BYTE_F(adr, res)
21793 adr = AREG((Opcode >> 0) & 7);
21795 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21799 WRITE_BYTE_F(adr, res)
21805 WRITE_BYTE_F(adr, res)
21816 adr = AREG((Opcode >> 0) & 7);
21818 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21822 WRITE_BYTE_F(adr, res)
21828 WRITE_BYTE_F(adr, res)
21842 WRITE_BYTE_F(adr, res)
21856 WRITE_BYTE_F(adr, res)
21868 if (flag_NotZ && (!(flag_C & 0x100)))
21872 WRITE_BYTE_F(adr, res)
21878 WRITE_BYTE_F(adr, res)
21890 if ((!flag_NotZ) || (flag_C & 0x100))
21894 WRITE_BYTE_F(adr, res)
21900 WRITE_BYTE_F(adr, res)
21912 if (!(flag_C & 0x100))
21916 WRITE_BYTE_F(adr, res)
21922 WRITE_BYTE_F(adr, res)
21934 if (flag_C & 0x100)
21938 WRITE_BYTE_F(adr, res)
21944 WRITE_BYTE_F(adr, res)
21960 WRITE_BYTE_F(adr, res)
21966 WRITE_BYTE_F(adr, res)
21982 WRITE_BYTE_F(adr, res)
21988 WRITE_BYTE_F(adr, res)
22000 if (!(flag_V & 0x80))
22004 WRITE_BYTE_F(adr, res)
22010 WRITE_BYTE_F(adr, res)
22026 WRITE_BYTE_F(adr, res)
22032 WRITE_BYTE_F(adr, res)
22044 if (!(flag_N & 0x80))
22048 WRITE_BYTE_F(adr, res)
22054 WRITE_BYTE_F(adr, res)
22070 WRITE_BYTE_F(adr, res)
22076 WRITE_BYTE_F(adr, res)
22088 if (!((flag_N ^ flag_V) & 0x80))
22092 WRITE_BYTE_F(adr, res)
22098 WRITE_BYTE_F(adr, res)
22110 if ((flag_N ^ flag_V) & 0x80)
22114 WRITE_BYTE_F(adr, res)
22120 WRITE_BYTE_F(adr, res)
22132 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22136 WRITE_BYTE_F(adr, res)
22142 WRITE_BYTE_F(adr, res)
22154 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22158 WRITE_BYTE_F(adr, res)
22164 WRITE_BYTE_F(adr, res)
22178 WRITE_BYTE_F(adr, res)
22192 WRITE_BYTE_F(adr, res)
22204 if (flag_NotZ && (!(flag_C & 0x100)))
22208 WRITE_BYTE_F(adr, res)
22214 WRITE_BYTE_F(adr, res)
22226 if ((!flag_NotZ) || (flag_C & 0x100))
22230 WRITE_BYTE_F(adr, res)
22236 WRITE_BYTE_F(adr, res)
22248 if (!(flag_C & 0x100))
22252 WRITE_BYTE_F(adr, res)
22258 WRITE_BYTE_F(adr, res)
22270 if (flag_C & 0x100)
22274 WRITE_BYTE_F(adr, res)
22280 WRITE_BYTE_F(adr, res)
22296 WRITE_BYTE_F(adr, res)
22302 WRITE_BYTE_F(adr, res)
22318 WRITE_BYTE_F(adr, res)
22324 WRITE_BYTE_F(adr, res)
22336 if (!(flag_V & 0x80))
22340 WRITE_BYTE_F(adr, res)
22346 WRITE_BYTE_F(adr, res)
22362 WRITE_BYTE_F(adr, res)
22368 WRITE_BYTE_F(adr, res)
22380 if (!(flag_N & 0x80))
22384 WRITE_BYTE_F(adr, res)
22390 WRITE_BYTE_F(adr, res)
22406 WRITE_BYTE_F(adr, res)
22412 WRITE_BYTE_F(adr, res)
22424 if (!((flag_N ^ flag_V) & 0x80))
22428 WRITE_BYTE_F(adr, res)
22434 WRITE_BYTE_F(adr, res)
22446 if ((flag_N ^ flag_V) & 0x80)
22450 WRITE_BYTE_F(adr, res)
22456 WRITE_BYTE_F(adr, res)
22468 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22472 WRITE_BYTE_F(adr, res)
22478 WRITE_BYTE_F(adr, res)
22490 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22494 WRITE_BYTE_F(adr, res)
22500 WRITE_BYTE_F(adr, res)
22515 WRITE_BYTE_F(adr, res)
22530 WRITE_BYTE_F(adr, res)
22543 if (flag_NotZ && (!(flag_C & 0x100)))
22547 WRITE_BYTE_F(adr, res)
22553 WRITE_BYTE_F(adr, res)
22566 if ((!flag_NotZ) || (flag_C & 0x100))
22570 WRITE_BYTE_F(adr, res)
22576 WRITE_BYTE_F(adr, res)
22589 if (!(flag_C & 0x100))
22593 WRITE_BYTE_F(adr, res)
22599 WRITE_BYTE_F(adr, res)
22612 if (flag_C & 0x100)
22616 WRITE_BYTE_F(adr, res)
22622 WRITE_BYTE_F(adr, res)
22639 WRITE_BYTE_F(adr, res)
22645 WRITE_BYTE_F(adr, res)
22662 WRITE_BYTE_F(adr, res)
22668 WRITE_BYTE_F(adr, res)
22681 if (!(flag_V & 0x80))
22685 WRITE_BYTE_F(adr, res)
22691 WRITE_BYTE_F(adr, res)
22708 WRITE_BYTE_F(adr, res)
22714 WRITE_BYTE_F(adr, res)
22727 if (!(flag_N & 0x80))
22731 WRITE_BYTE_F(adr, res)
22737 WRITE_BYTE_F(adr, res)
22754 WRITE_BYTE_F(adr, res)
22760 WRITE_BYTE_F(adr, res)
22773 if (!((flag_N ^ flag_V) & 0x80))
22777 WRITE_BYTE_F(adr, res)
22783 WRITE_BYTE_F(adr, res)
22796 if ((flag_N ^ flag_V) & 0x80)
22800 WRITE_BYTE_F(adr, res)
22806 WRITE_BYTE_F(adr, res)
22819 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22823 WRITE_BYTE_F(adr, res)
22829 WRITE_BYTE_F(adr, res)
22842 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22846 WRITE_BYTE_F(adr, res)
22852 WRITE_BYTE_F(adr, res)
22867 WRITE_BYTE_F(adr, res)
22882 WRITE_BYTE_F(adr, res)
22895 if (flag_NotZ && (!(flag_C & 0x100)))
22899 WRITE_BYTE_F(adr, res)
22905 WRITE_BYTE_F(adr, res)
22918 if ((!flag_NotZ) || (flag_C & 0x100))
22922 WRITE_BYTE_F(adr, res)
22928 WRITE_BYTE_F(adr, res)
22941 if (!(flag_C & 0x100))
22945 WRITE_BYTE_F(adr, res)
22951 WRITE_BYTE_F(adr, res)
22964 if (flag_C & 0x100)
22968 WRITE_BYTE_F(adr, res)
22974 WRITE_BYTE_F(adr, res)
22991 WRITE_BYTE_F(adr, res)
22997 WRITE_BYTE_F(adr, res)
23014 WRITE_BYTE_F(adr, res)
23020 WRITE_BYTE_F(adr, res)
23033 if (!(flag_V & 0x80))
23037 WRITE_BYTE_F(adr, res)
23043 WRITE_BYTE_F(adr, res)
23060 WRITE_BYTE_F(adr, res)
23066 WRITE_BYTE_F(adr, res)
23079 if (!(flag_N & 0x80))
23083 WRITE_BYTE_F(adr, res)
23089 WRITE_BYTE_F(adr, res)
23106 WRITE_BYTE_F(adr, res)
23112 WRITE_BYTE_F(adr, res)
23125 if (!((flag_N ^ flag_V) & 0x80))
23129 WRITE_BYTE_F(adr, res)
23135 WRITE_BYTE_F(adr, res)
23148 if ((flag_N ^ flag_V) & 0x80)
23152 WRITE_BYTE_F(adr, res)
23158 WRITE_BYTE_F(adr, res)
23171 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
23175 WRITE_BYTE_F(adr, res)
23181 WRITE_BYTE_F(adr, res)
23194 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
23198 WRITE_BYTE_F(adr, res)
23204 WRITE_BYTE_F(adr, res)
23225 res = DREGu16((Opcode >> 0) & 7);
23227 DREGu16((Opcode >> 0) & 7) = res;
23228 if ((s32)res != -1)
23232 newPC = (u32)(PC) - BasePC;
23233 newPC += GET_SWORD;
23235 CHECK_BRANCH_EXCEPTION(newPC)
23248 if ((!flag_NotZ) || (flag_C & 0x100))
23250 res = DREGu16((Opcode >> 0) & 7);
23252 DREGu16((Opcode >> 0) & 7) = res;
23253 if ((s32)res != -1)
23257 newPC = (u32)(PC) - BasePC;
23258 newPC += GET_SWORD;
23260 CHECK_BRANCH_EXCEPTION(newPC)
23279 if (flag_NotZ && (!(flag_C & 0x100)))
23281 res = DREGu16((Opcode >> 0) & 7);
23283 DREGu16((Opcode >> 0) & 7) = res;
23284 if ((s32)res != -1)
23288 newPC = (u32)(PC) - BasePC;
23289 newPC += GET_SWORD;
23291 CHECK_BRANCH_EXCEPTION(newPC)
23310 if (flag_C & 0x100)
23312 res = DREGu16((Opcode >> 0) & 7);
23314 DREGu16((Opcode >> 0) & 7) = res;
23315 if ((s32)res != -1)
23319 newPC = (u32)(PC) - BasePC;
23320 newPC += GET_SWORD;
23322 CHECK_BRANCH_EXCEPTION(newPC)
23341 if (!(flag_C & 0x100))
23343 res = DREGu16((Opcode >> 0) & 7);
23345 DREGu16((Opcode >> 0) & 7) = res;
23346 if ((s32)res != -1)
23350 newPC = (u32)(PC) - BasePC;
23351 newPC += GET_SWORD;
23353 CHECK_BRANCH_EXCEPTION(newPC)
23374 res = DREGu16((Opcode >> 0) & 7);
23376 DREGu16((Opcode >> 0) & 7) = res;
23377 if ((s32)res != -1)
23381 newPC = (u32)(PC) - BasePC;
23382 newPC += GET_SWORD;
23384 CHECK_BRANCH_EXCEPTION(newPC)
23405 res = DREGu16((Opcode >> 0) & 7);
23407 DREGu16((Opcode >> 0) & 7) = res;
23408 if ((s32)res != -1)
23412 newPC = (u32)(PC) - BasePC;
23413 newPC += GET_SWORD;
23415 CHECK_BRANCH_EXCEPTION(newPC)
23436 res = DREGu16((Opcode >> 0) & 7);
23438 DREGu16((Opcode >> 0) & 7) = res;
23439 if ((s32)res != -1)
23443 newPC = (u32)(PC) - BasePC;
23444 newPC += GET_SWORD;
23446 CHECK_BRANCH_EXCEPTION(newPC)
23465 if (!(flag_V & 0x80))
23467 res = DREGu16((Opcode >> 0) & 7);
23469 DREGu16((Opcode >> 0) & 7) = res;
23470 if ((s32)res != -1)
23474 newPC = (u32)(PC) - BasePC;
23475 newPC += GET_SWORD;
23477 CHECK_BRANCH_EXCEPTION(newPC)
23498 res = DREGu16((Opcode >> 0) & 7);
23500 DREGu16((Opcode >> 0) & 7) = res;
23501 if ((s32)res != -1)
23505 newPC = (u32)(PC) - BasePC;
23506 newPC += GET_SWORD;
23508 CHECK_BRANCH_EXCEPTION(newPC)
23527 if (!(flag_N & 0x80))
23529 res = DREGu16((Opcode >> 0) & 7);
23531 DREGu16((Opcode >> 0) & 7) = res;
23532 if ((s32)res != -1)
23536 newPC = (u32)(PC) - BasePC;
23537 newPC += GET_SWORD;
23539 CHECK_BRANCH_EXCEPTION(newPC)
23558 if ((flag_N ^ flag_V) & 0x80)
23560 res = DREGu16((Opcode >> 0) & 7);
23562 DREGu16((Opcode >> 0) & 7) = res;
23563 if ((s32)res != -1)
23567 newPC = (u32)(PC) - BasePC;
23568 newPC += GET_SWORD;
23570 CHECK_BRANCH_EXCEPTION(newPC)
23589 if (!((flag_N ^ flag_V) & 0x80))
23591 res = DREGu16((Opcode >> 0) & 7);
23593 DREGu16((Opcode >> 0) & 7) = res;
23594 if ((s32)res != -1)
23598 newPC = (u32)(PC) - BasePC;
23599 newPC += GET_SWORD;
23601 CHECK_BRANCH_EXCEPTION(newPC)
23620 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
23622 res = DREGu16((Opcode >> 0) & 7);
23624 DREGu16((Opcode >> 0) & 7) = res;
23625 if ((s32)res != -1)
23629 newPC = (u32)(PC) - BasePC;
23630 newPC += GET_SWORD;
23632 CHECK_BRANCH_EXCEPTION(newPC)
23651 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
23653 res = DREGu16((Opcode >> 0) & 7);
23655 DREGu16((Opcode >> 0) & 7) = res;
23656 if ((s32)res != -1)
23660 newPC = (u32)(PC) - BasePC;
23661 newPC += GET_SWORD;
23663 CHECK_BRANCH_EXCEPTION(newPC)
23682 src = (((Opcode >> 9) - 1) & 7) + 1;
23683 dst = DREGu8((Opcode >> 0) & 7);
23685 flag_N = flag_X = flag_C = res;
23686 flag_V = (src ^ res) & (dst ^ res);
23687 flag_NotZ = res & 0xFF;
23688 DREGu8((Opcode >> 0) & 7) = res;
23698 src = (((Opcode >> 9) - 1) & 7) + 1;
23699 adr = AREG((Opcode >> 0) & 7);
23701 READ_BYTE_F(adr, dst)
23703 flag_N = flag_X = flag_C = res;
23704 flag_V = (src ^ res) & (dst ^ res);
23705 flag_NotZ = res & 0xFF;
23706 WRITE_BYTE_F(adr, res)
23717 src = (((Opcode >> 9) - 1) & 7) + 1;
23718 adr = AREG((Opcode >> 0) & 7);
23719 AREG((Opcode >> 0) & 7) += 1;
23721 READ_BYTE_F(adr, dst)
23723 flag_N = flag_X = flag_C = res;
23724 flag_V = (src ^ res) & (dst ^ res);
23725 flag_NotZ = res & 0xFF;
23726 WRITE_BYTE_F(adr, res)
23737 src = (((Opcode >> 9) - 1) & 7) + 1;
23738 adr = AREG((Opcode >> 0) & 7) - 1;
23739 AREG((Opcode >> 0) & 7) = adr;
23741 READ_BYTE_F(adr, dst)
23743 flag_N = flag_X = flag_C = res;
23744 flag_V = (src ^ res) & (dst ^ res);
23745 flag_NotZ = res & 0xFF;
23746 WRITE_BYTE_F(adr, res)
23757 src = (((Opcode >> 9) - 1) & 7) + 1;
23759 adr += AREG((Opcode >> 0) & 7);
23761 READ_BYTE_F(adr, dst)
23763 flag_N = flag_X = flag_C = res;
23764 flag_V = (src ^ res) & (dst ^ res);
23765 flag_NotZ = res & 0xFF;
23766 WRITE_BYTE_F(adr, res)
23777 src = (((Opcode >> 9) - 1) & 7) + 1;
23778 adr = AREG((Opcode >> 0) & 7);
23781 READ_BYTE_F(adr, dst)
23783 flag_N = flag_X = flag_C = res;
23784 flag_V = (src ^ res) & (dst ^ res);
23785 flag_NotZ = res & 0xFF;
23786 WRITE_BYTE_F(adr, res)
23797 src = (((Opcode >> 9) - 1) & 7) + 1;
23800 READ_BYTE_F(adr, dst)
23802 flag_N = flag_X = flag_C = res;
23803 flag_V = (src ^ res) & (dst ^ res);
23804 flag_NotZ = res & 0xFF;
23805 WRITE_BYTE_F(adr, res)
23816 src = (((Opcode >> 9) - 1) & 7) + 1;
23819 READ_BYTE_F(adr, dst)
23821 flag_N = flag_X = flag_C = res;
23822 flag_V = (src ^ res) & (dst ^ res);
23823 flag_NotZ = res & 0xFF;
23824 WRITE_BYTE_F(adr, res)
23835 src = (((Opcode >> 9) - 1) & 7) + 1;
23839 READ_BYTE_F(adr, dst)
23841 flag_N = flag_X = flag_C = res;
23842 flag_V = (src ^ res) & (dst ^ res);
23843 flag_NotZ = res & 0xFF;
23844 WRITE_BYTE_F(adr, res)
23855 src = (((Opcode >> 9) - 1) & 7) + 1;
23859 READ_BYTE_F(adr, dst)
23861 flag_N = flag_X = flag_C = res;
23862 flag_V = (src ^ res) & (dst ^ res);
23863 flag_NotZ = res & 0xFF;
23864 WRITE_BYTE_F(adr, res)
23875 src = (((Opcode >> 9) - 1) & 7) + 1;
23876 dst = DREGu16((Opcode >> 0) & 7);
23878 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
23879 flag_N = flag_X = flag_C = res >> 8;
23880 flag_NotZ = res & 0xFFFF;
23881 DREGu16((Opcode >> 0) & 7) = res;
23891 src = (((Opcode >> 9) - 1) & 7) + 1;
23892 dst = AREGu32((Opcode >> 0) & 7);
23894 AREG((Opcode >> 0) & 7) = res;
23895 #ifdef USE_CYCLONE_TIMING_ // breaks Project-X
23908 src = (((Opcode >> 9) - 1) & 7) + 1;
23909 adr = AREG((Opcode >> 0) & 7);
23911 READ_WORD_F(adr, dst)
23913 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
23914 flag_N = flag_X = flag_C = res >> 8;
23915 flag_NotZ = res & 0xFFFF;
23916 WRITE_WORD_F(adr, res)
23927 src = (((Opcode >> 9) - 1) & 7) + 1;
23928 adr = AREG((Opcode >> 0) & 7);
23929 AREG((Opcode >> 0) & 7) += 2;
23931 READ_WORD_F(adr, dst)
23933 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
23934 flag_N = flag_X = flag_C = res >> 8;
23935 flag_NotZ = res & 0xFFFF;
23936 WRITE_WORD_F(adr, res)
23947 src = (((Opcode >> 9) - 1) & 7) + 1;
23948 adr = AREG((Opcode >> 0) & 7) - 2;
23949 AREG((Opcode >> 0) & 7) = adr;
23951 READ_WORD_F(adr, dst)
23953 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
23954 flag_N = flag_X = flag_C = res >> 8;
23955 flag_NotZ = res & 0xFFFF;
23956 WRITE_WORD_F(adr, res)
23967 src = (((Opcode >> 9) - 1) & 7) + 1;
23969 adr += AREG((Opcode >> 0) & 7);
23971 READ_WORD_F(adr, dst)
23973 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
23974 flag_N = flag_X = flag_C = res >> 8;
23975 flag_NotZ = res & 0xFFFF;
23976 WRITE_WORD_F(adr, res)
23987 src = (((Opcode >> 9) - 1) & 7) + 1;
23988 adr = AREG((Opcode >> 0) & 7);
23991 READ_WORD_F(adr, dst)
23993 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
23994 flag_N = flag_X = flag_C = res >> 8;
23995 flag_NotZ = res & 0xFFFF;
23996 WRITE_WORD_F(adr, res)
24007 src = (((Opcode >> 9) - 1) & 7) + 1;
24010 READ_WORD_F(adr, dst)
24012 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24013 flag_N = flag_X = flag_C = res >> 8;
24014 flag_NotZ = res & 0xFFFF;
24015 WRITE_WORD_F(adr, res)
24026 src = (((Opcode >> 9) - 1) & 7) + 1;
24029 READ_WORD_F(adr, dst)
24031 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24032 flag_N = flag_X = flag_C = res >> 8;
24033 flag_NotZ = res & 0xFFFF;
24034 WRITE_WORD_F(adr, res)
24045 src = (((Opcode >> 9) - 1) & 7) + 1;
24049 READ_WORD_F(adr, dst)
24051 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24052 flag_N = flag_X = flag_C = res >> 8;
24053 flag_NotZ = res & 0xFFFF;
24054 WRITE_WORD_F(adr, res)
24065 src = (((Opcode >> 9) - 1) & 7) + 1;
24069 READ_WORD_F(adr, dst)
24071 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24072 flag_N = flag_X = flag_C = res >> 8;
24073 flag_NotZ = res & 0xFFFF;
24074 WRITE_WORD_F(adr, res)
24085 src = (((Opcode >> 9) - 1) & 7) + 1;
24086 dst = DREGu32((Opcode >> 0) & 7);
24089 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24090 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24091 flag_N = res >> 24;
24092 DREGu32((Opcode >> 0) & 7) = res;
24102 src = (((Opcode >> 9) - 1) & 7) + 1;
24103 dst = AREGu32((Opcode >> 0) & 7);
24105 AREG((Opcode >> 0) & 7) = res;
24115 src = (((Opcode >> 9) - 1) & 7) + 1;
24116 adr = AREG((Opcode >> 0) & 7);
24118 READ_LONG_F(adr, dst)
24121 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24122 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24123 flag_N = res >> 24;
24124 WRITE_LONG_F(adr, res)
24135 src = (((Opcode >> 9) - 1) & 7) + 1;
24136 adr = AREG((Opcode >> 0) & 7);
24137 AREG((Opcode >> 0) & 7) += 4;
24139 READ_LONG_F(adr, dst)
24142 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24143 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24144 flag_N = res >> 24;
24145 WRITE_LONG_F(adr, res)
24156 src = (((Opcode >> 9) - 1) & 7) + 1;
24157 adr = AREG((Opcode >> 0) & 7) - 4;
24158 AREG((Opcode >> 0) & 7) = adr;
24160 READ_LONG_F(adr, dst)
24163 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24164 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24165 flag_N = res >> 24;
24166 WRITE_LONG_F(adr, res)
24177 src = (((Opcode >> 9) - 1) & 7) + 1;
24179 adr += AREG((Opcode >> 0) & 7);
24181 READ_LONG_F(adr, dst)
24184 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24185 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24186 flag_N = res >> 24;
24187 WRITE_LONG_F(adr, res)
24198 src = (((Opcode >> 9) - 1) & 7) + 1;
24199 adr = AREG((Opcode >> 0) & 7);
24202 READ_LONG_F(adr, dst)
24205 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24206 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24207 flag_N = res >> 24;
24208 WRITE_LONG_F(adr, res)
24219 src = (((Opcode >> 9) - 1) & 7) + 1;
24222 READ_LONG_F(adr, dst)
24225 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24226 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24227 flag_N = res >> 24;
24228 WRITE_LONG_F(adr, res)
24239 src = (((Opcode >> 9) - 1) & 7) + 1;
24242 READ_LONG_F(adr, dst)
24245 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24246 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24247 flag_N = res >> 24;
24248 WRITE_LONG_F(adr, res)
24259 src = (((Opcode >> 9) - 1) & 7) + 1;
24263 READ_LONG_F(adr, dst)
24266 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24267 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24268 flag_N = res >> 24;
24269 WRITE_LONG_F(adr, res)
24280 src = (((Opcode >> 9) - 1) & 7) + 1;
24284 READ_LONG_F(adr, dst)
24287 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24288 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24289 flag_N = res >> 24;
24290 WRITE_LONG_F(adr, res)
24301 src = (((Opcode >> 9) - 1) & 7) + 1;
24302 dst = DREGu8((Opcode >> 0) & 7);
24304 flag_N = flag_X = flag_C = res;
24305 flag_V = (src ^ dst) & (res ^ dst);
24306 flag_NotZ = res & 0xFF;
24307 DREGu8((Opcode >> 0) & 7) = res;
24317 src = (((Opcode >> 9) - 1) & 7) + 1;
24318 adr = AREG((Opcode >> 0) & 7);
24320 READ_BYTE_F(adr, dst)
24322 flag_N = flag_X = flag_C = res;
24323 flag_V = (src ^ dst) & (res ^ dst);
24324 flag_NotZ = res & 0xFF;
24325 WRITE_BYTE_F(adr, res)
24336 src = (((Opcode >> 9) - 1) & 7) + 1;
24337 adr = AREG((Opcode >> 0) & 7);
24338 AREG((Opcode >> 0) & 7) += 1;
24340 READ_BYTE_F(adr, dst)
24342 flag_N = flag_X = flag_C = res;
24343 flag_V = (src ^ dst) & (res ^ dst);
24344 flag_NotZ = res & 0xFF;
24345 WRITE_BYTE_F(adr, res)
24356 src = (((Opcode >> 9) - 1) & 7) + 1;
24357 adr = AREG((Opcode >> 0) & 7) - 1;
24358 AREG((Opcode >> 0) & 7) = adr;
24360 READ_BYTE_F(adr, dst)
24362 flag_N = flag_X = flag_C = res;
24363 flag_V = (src ^ dst) & (res ^ dst);
24364 flag_NotZ = res & 0xFF;
24365 WRITE_BYTE_F(adr, res)
24376 src = (((Opcode >> 9) - 1) & 7) + 1;
24378 adr += AREG((Opcode >> 0) & 7);
24380 READ_BYTE_F(adr, dst)
24382 flag_N = flag_X = flag_C = res;
24383 flag_V = (src ^ dst) & (res ^ dst);
24384 flag_NotZ = res & 0xFF;
24385 WRITE_BYTE_F(adr, res)
24396 src = (((Opcode >> 9) - 1) & 7) + 1;
24397 adr = AREG((Opcode >> 0) & 7);
24400 READ_BYTE_F(adr, dst)
24402 flag_N = flag_X = flag_C = res;
24403 flag_V = (src ^ dst) & (res ^ dst);
24404 flag_NotZ = res & 0xFF;
24405 WRITE_BYTE_F(adr, res)
24416 src = (((Opcode >> 9) - 1) & 7) + 1;
24419 READ_BYTE_F(adr, dst)
24421 flag_N = flag_X = flag_C = res;
24422 flag_V = (src ^ dst) & (res ^ dst);
24423 flag_NotZ = res & 0xFF;
24424 WRITE_BYTE_F(adr, res)
24435 src = (((Opcode >> 9) - 1) & 7) + 1;
24438 READ_BYTE_F(adr, dst)
24440 flag_N = flag_X = flag_C = res;
24441 flag_V = (src ^ dst) & (res ^ dst);
24442 flag_NotZ = res & 0xFF;
24443 WRITE_BYTE_F(adr, res)
24454 src = (((Opcode >> 9) - 1) & 7) + 1;
24458 READ_BYTE_F(adr, dst)
24460 flag_N = flag_X = flag_C = res;
24461 flag_V = (src ^ dst) & (res ^ dst);
24462 flag_NotZ = res & 0xFF;
24463 WRITE_BYTE_F(adr, res)
24474 src = (((Opcode >> 9) - 1) & 7) + 1;
24478 READ_BYTE_F(adr, dst)
24480 flag_N = flag_X = flag_C = res;
24481 flag_V = (src ^ dst) & (res ^ dst);
24482 flag_NotZ = res & 0xFF;
24483 WRITE_BYTE_F(adr, res)
24494 src = (((Opcode >> 9) - 1) & 7) + 1;
24495 dst = DREGu16((Opcode >> 0) & 7);
24497 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24498 flag_N = flag_X = flag_C = res >> 8;
24499 flag_NotZ = res & 0xFFFF;
24500 DREGu16((Opcode >> 0) & 7) = res;
24510 src = (((Opcode >> 9) - 1) & 7) + 1;
24511 dst = AREGu32((Opcode >> 0) & 7);
24513 AREG((Opcode >> 0) & 7) = res;
24523 src = (((Opcode >> 9) - 1) & 7) + 1;
24524 adr = AREG((Opcode >> 0) & 7);
24526 READ_WORD_F(adr, dst)
24528 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24529 flag_N = flag_X = flag_C = res >> 8;
24530 flag_NotZ = res & 0xFFFF;
24531 WRITE_WORD_F(adr, res)
24542 src = (((Opcode >> 9) - 1) & 7) + 1;
24543 adr = AREG((Opcode >> 0) & 7);
24544 AREG((Opcode >> 0) & 7) += 2;
24546 READ_WORD_F(adr, dst)
24548 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24549 flag_N = flag_X = flag_C = res >> 8;
24550 flag_NotZ = res & 0xFFFF;
24551 WRITE_WORD_F(adr, res)
24562 src = (((Opcode >> 9) - 1) & 7) + 1;
24563 adr = AREG((Opcode >> 0) & 7) - 2;
24564 AREG((Opcode >> 0) & 7) = adr;
24566 READ_WORD_F(adr, dst)
24568 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24569 flag_N = flag_X = flag_C = res >> 8;
24570 flag_NotZ = res & 0xFFFF;
24571 WRITE_WORD_F(adr, res)
24582 src = (((Opcode >> 9) - 1) & 7) + 1;
24584 adr += AREG((Opcode >> 0) & 7);
24586 READ_WORD_F(adr, dst)
24588 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24589 flag_N = flag_X = flag_C = res >> 8;
24590 flag_NotZ = res & 0xFFFF;
24591 WRITE_WORD_F(adr, res)
24602 src = (((Opcode >> 9) - 1) & 7) + 1;
24603 adr = AREG((Opcode >> 0) & 7);
24606 READ_WORD_F(adr, dst)
24608 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24609 flag_N = flag_X = flag_C = res >> 8;
24610 flag_NotZ = res & 0xFFFF;
24611 WRITE_WORD_F(adr, res)
24622 src = (((Opcode >> 9) - 1) & 7) + 1;
24625 READ_WORD_F(adr, dst)
24627 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24628 flag_N = flag_X = flag_C = res >> 8;
24629 flag_NotZ = res & 0xFFFF;
24630 WRITE_WORD_F(adr, res)
24641 src = (((Opcode >> 9) - 1) & 7) + 1;
24644 READ_WORD_F(adr, dst)
24646 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24647 flag_N = flag_X = flag_C = res >> 8;
24648 flag_NotZ = res & 0xFFFF;
24649 WRITE_WORD_F(adr, res)
24660 src = (((Opcode >> 9) - 1) & 7) + 1;
24664 READ_WORD_F(adr, dst)
24666 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24667 flag_N = flag_X = flag_C = res >> 8;
24668 flag_NotZ = res & 0xFFFF;
24669 WRITE_WORD_F(adr, res)
24680 src = (((Opcode >> 9) - 1) & 7) + 1;
24684 READ_WORD_F(adr, dst)
24686 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24687 flag_N = flag_X = flag_C = res >> 8;
24688 flag_NotZ = res & 0xFFFF;
24689 WRITE_WORD_F(adr, res)
24700 src = (((Opcode >> 9) - 1) & 7) + 1;
24701 dst = DREGu32((Opcode >> 0) & 7);
24704 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24705 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24706 flag_N = res >> 24;
24707 DREGu32((Opcode >> 0) & 7) = res;
24717 src = (((Opcode >> 9) - 1) & 7) + 1;
24718 dst = AREGu32((Opcode >> 0) & 7);
24720 AREG((Opcode >> 0) & 7) = res;
24730 src = (((Opcode >> 9) - 1) & 7) + 1;
24731 adr = AREG((Opcode >> 0) & 7);
24733 READ_LONG_F(adr, dst)
24736 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24737 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24738 flag_N = res >> 24;
24739 WRITE_LONG_F(adr, res)
24750 src = (((Opcode >> 9) - 1) & 7) + 1;
24751 adr = AREG((Opcode >> 0) & 7);
24752 AREG((Opcode >> 0) & 7) += 4;
24754 READ_LONG_F(adr, dst)
24757 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24758 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24759 flag_N = res >> 24;
24760 WRITE_LONG_F(adr, res)
24771 src = (((Opcode >> 9) - 1) & 7) + 1;
24772 adr = AREG((Opcode >> 0) & 7) - 4;
24773 AREG((Opcode >> 0) & 7) = adr;
24775 READ_LONG_F(adr, dst)
24778 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24779 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24780 flag_N = res >> 24;
24781 WRITE_LONG_F(adr, res)
24792 src = (((Opcode >> 9) - 1) & 7) + 1;
24794 adr += AREG((Opcode >> 0) & 7);
24796 READ_LONG_F(adr, dst)
24799 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24800 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24801 flag_N = res >> 24;
24802 WRITE_LONG_F(adr, res)
24813 src = (((Opcode >> 9) - 1) & 7) + 1;
24814 adr = AREG((Opcode >> 0) & 7);
24817 READ_LONG_F(adr, dst)
24820 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24821 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24822 flag_N = res >> 24;
24823 WRITE_LONG_F(adr, res)
24834 src = (((Opcode >> 9) - 1) & 7) + 1;
24837 READ_LONG_F(adr, dst)
24840 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24841 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24842 flag_N = res >> 24;
24843 WRITE_LONG_F(adr, res)
24854 src = (((Opcode >> 9) - 1) & 7) + 1;
24857 READ_LONG_F(adr, dst)
24860 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24861 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24862 flag_N = res >> 24;
24863 WRITE_LONG_F(adr, res)
24874 src = (((Opcode >> 9) - 1) & 7) + 1;
24878 READ_LONG_F(adr, dst)
24881 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24882 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24883 flag_N = res >> 24;
24884 WRITE_LONG_F(adr, res)
24895 src = (((Opcode >> 9) - 1) & 7) + 1;
24899 READ_LONG_F(adr, dst)
24902 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24903 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24904 flag_N = res >> 24;
24905 WRITE_LONG_F(adr, res)
24916 if (flag_NotZ && (!(flag_C & 0x100)))
24918 PC += ((s8)(Opcode & 0xFE)) >> 1;
24919 m68kcontext.io_cycle_counter -= 2;
24930 if ((!flag_NotZ) || (flag_C & 0x100))
24932 PC += ((s8)(Opcode & 0xFE)) >> 1;
24933 m68kcontext.io_cycle_counter -= 2;
24944 if (!(flag_C & 0x100))
24946 PC += ((s8)(Opcode & 0xFE)) >> 1;
24947 m68kcontext.io_cycle_counter -= 2;
24958 if (flag_C & 0x100)
24960 PC += ((s8)(Opcode & 0xFE)) >> 1;
24961 m68kcontext.io_cycle_counter -= 2;
24974 PC += ((s8)(Opcode & 0xFE)) >> 1;
24975 m68kcontext.io_cycle_counter -= 2;
24988 PC += ((s8)(Opcode & 0xFE)) >> 1;
24989 m68kcontext.io_cycle_counter -= 2;
25000 if (!(flag_V & 0x80))
25002 PC += ((s8)(Opcode & 0xFE)) >> 1;
25003 m68kcontext.io_cycle_counter -= 2;
25016 PC += ((s8)(Opcode & 0xFE)) >> 1;
25017 m68kcontext.io_cycle_counter -= 2;
25028 if (!(flag_N & 0x80))
25030 PC += ((s8)(Opcode & 0xFE)) >> 1;
25031 m68kcontext.io_cycle_counter -= 2;
25044 PC += ((s8)(Opcode & 0xFE)) >> 1;
25045 m68kcontext.io_cycle_counter -= 2;
25056 if (!((flag_N ^ flag_V) & 0x80))
25058 PC += ((s8)(Opcode & 0xFE)) >> 1;
25059 m68kcontext.io_cycle_counter -= 2;
25070 if ((flag_N ^ flag_V) & 0x80)
25072 PC += ((s8)(Opcode & 0xFE)) >> 1;
25073 m68kcontext.io_cycle_counter -= 2;
25084 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
25086 PC += ((s8)(Opcode & 0xFE)) >> 1;
25087 m68kcontext.io_cycle_counter -= 2;
25098 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
25100 PC += ((s8)(Opcode & 0xFE)) >> 1;
25101 m68kcontext.io_cycle_counter -= 2;
25112 if (flag_NotZ && (!(flag_C & 0x100)))
25116 newPC = (u32)(PC) - BasePC;
25117 newPC += GET_SWORD;
25119 CHECK_BRANCH_EXCEPTION(newPC)
25132 if ((!flag_NotZ) || (flag_C & 0x100))
25136 newPC = (u32)(PC) - BasePC;
25137 newPC += GET_SWORD;
25139 CHECK_BRANCH_EXCEPTION(newPC)
25152 if (!(flag_C & 0x100))
25156 newPC = (u32)(PC) - BasePC;
25157 newPC += GET_SWORD;
25159 CHECK_BRANCH_EXCEPTION(newPC)
25172 if (flag_C & 0x100)
25176 newPC = (u32)(PC) - BasePC;
25177 newPC += GET_SWORD;
25179 CHECK_BRANCH_EXCEPTION(newPC)
25196 newPC = (u32)(PC) - BasePC;
25197 newPC += GET_SWORD;
25199 CHECK_BRANCH_EXCEPTION(newPC)
25216 newPC = (u32)(PC) - BasePC;
25217 newPC += GET_SWORD;
25219 CHECK_BRANCH_EXCEPTION(newPC)
25232 if (!(flag_V & 0x80))
25236 newPC = (u32)(PC) - BasePC;
25237 newPC += GET_SWORD;
25239 CHECK_BRANCH_EXCEPTION(newPC)
25256 newPC = (u32)(PC) - BasePC;
25257 newPC += GET_SWORD;
25259 CHECK_BRANCH_EXCEPTION(newPC)
25272 if (!(flag_N & 0x80))
25276 newPC = (u32)(PC) - BasePC;
25277 newPC += GET_SWORD;
25279 CHECK_BRANCH_EXCEPTION(newPC)
25296 newPC = (u32)(PC) - BasePC;
25297 newPC += GET_SWORD;
25299 CHECK_BRANCH_EXCEPTION(newPC)
25312 if (!((flag_N ^ flag_V) & 0x80))
25316 newPC = (u32)(PC) - BasePC;
25317 newPC += GET_SWORD;
25319 CHECK_BRANCH_EXCEPTION(newPC)
25332 if ((flag_N ^ flag_V) & 0x80)
25336 newPC = (u32)(PC) - BasePC;
25337 newPC += GET_SWORD;
25339 CHECK_BRANCH_EXCEPTION(newPC)
25352 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
25356 newPC = (u32)(PC) - BasePC;
25357 newPC += GET_SWORD;
25359 CHECK_BRANCH_EXCEPTION(newPC)
25372 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
25376 newPC = (u32)(PC) - BasePC;
25377 newPC += GET_SWORD;
25379 CHECK_BRANCH_EXCEPTION(newPC)
25389 #ifdef FAMEC_CHECK_BRANCHES
25390 u32 newPC = (u32)(PC) - BasePC;
25394 CHECK_BRANCH_EXCEPTION(offs)
25396 PC += ((s8)(Opcode & 0xFE)) >> 1;
25410 newPC = (u32)(PC) - BasePC;
25411 newPC += GET_SWORD;
25413 CHECK_BRANCH_EXCEPTION(newPC)
25428 oldPC = (u32)(PC) - BasePC;
25430 #ifdef FAMEC_CHECK_BRANCHES
25434 CHECK_BRANCH_EXCEPTION(offs)
25436 PC += ((s8)(Opcode & 0xFE)) >> 1;
25452 newPC = (u32)(PC) - BasePC;
25455 newPC += GET_SWORD;
25457 CHECK_BRANCH_EXCEPTION(newPC)
25469 res = (s32)(s8)Opcode;
25470 flag_C = flag_V = 0;
25471 flag_N = flag_NotZ = res;
25472 DREGu32((Opcode >> 9) & 7) = res;
25482 src = DREGu8((Opcode >> 0) & 7);
25483 res = DREGu8((Opcode >> 9) & 7);
25489 DREGu8((Opcode >> 9) & 7) = res;
25499 adr = AREG((Opcode >> 0) & 7);
25501 READ_BYTE_F(adr, src)
25502 res = DREGu8((Opcode >> 9) & 7);
25508 DREGu8((Opcode >> 9) & 7) = res;
25519 adr = AREG((Opcode >> 0) & 7);
25520 AREG((Opcode >> 0) & 7) += 1;
25522 READ_BYTE_F(adr, src)
25523 res = DREGu8((Opcode >> 9) & 7);
25529 DREGu8((Opcode >> 9) & 7) = res;
25540 adr = AREG((Opcode >> 0) & 7) - 1;
25541 AREG((Opcode >> 0) & 7) = adr;
25543 READ_BYTE_F(adr, src)
25544 res = DREGu8((Opcode >> 9) & 7);
25550 DREGu8((Opcode >> 9) & 7) = res;
25562 adr += AREG((Opcode >> 0) & 7);
25564 READ_BYTE_F(adr, src)
25565 res = DREGu8((Opcode >> 9) & 7);
25571 DREGu8((Opcode >> 9) & 7) = res;
25582 adr = AREG((Opcode >> 0) & 7);
25585 READ_BYTE_F(adr, src)
25586 res = DREGu8((Opcode >> 9) & 7);
25592 DREGu8((Opcode >> 9) & 7) = res;
25605 READ_BYTE_F(adr, src)
25606 res = DREGu8((Opcode >> 9) & 7);
25612 DREGu8((Opcode >> 9) & 7) = res;
25625 READ_BYTE_F(adr, src)
25626 res = DREGu8((Opcode >> 9) & 7);
25632 DREGu8((Opcode >> 9) & 7) = res;
25643 adr = GET_SWORD + ((u32)(PC) - BasePC);
25646 READ_BYTE_F(adr, src)
25647 res = DREGu8((Opcode >> 9) & 7);
25653 DREGu8((Opcode >> 9) & 7) = res;
25664 adr = (u32)(PC) - BasePC;
25667 READ_BYTE_F(adr, src)
25668 res = DREGu8((Opcode >> 9) & 7);
25674 DREGu8((Opcode >> 9) & 7) = res;
25686 res = DREGu8((Opcode >> 9) & 7);
25692 DREGu8((Opcode >> 9) & 7) = res;
25705 READ_BYTE_F(adr, src)
25706 res = DREGu8((Opcode >> 9) & 7);
25712 DREGu8((Opcode >> 9) & 7) = res;
25726 READ_BYTE_F(adr, src)
25727 res = DREGu8((Opcode >> 9) & 7);
25733 DREGu8((Opcode >> 9) & 7) = res;
25744 src = DREGu16((Opcode >> 0) & 7);
25745 res = DREGu16((Opcode >> 9) & 7);
25751 DREGu16((Opcode >> 9) & 7) = res;
25761 adr = AREG((Opcode >> 0) & 7);
25763 READ_WORD_F(adr, src)
25764 res = DREGu16((Opcode >> 9) & 7);
25770 DREGu16((Opcode >> 9) & 7) = res;
25781 adr = AREG((Opcode >> 0) & 7);
25782 AREG((Opcode >> 0) & 7) += 2;
25784 READ_WORD_F(adr, src)
25785 res = DREGu16((Opcode >> 9) & 7);
25791 DREGu16((Opcode >> 9) & 7) = res;
25802 adr = AREG((Opcode >> 0) & 7) - 2;
25803 AREG((Opcode >> 0) & 7) = adr;
25805 READ_WORD_F(adr, src)
25806 res = DREGu16((Opcode >> 9) & 7);
25812 DREGu16((Opcode >> 9) & 7) = res;
25824 adr += AREG((Opcode >> 0) & 7);
25826 READ_WORD_F(adr, src)
25827 res = DREGu16((Opcode >> 9) & 7);
25833 DREGu16((Opcode >> 9) & 7) = res;
25844 adr = AREG((Opcode >> 0) & 7);
25847 READ_WORD_F(adr, src)
25848 res = DREGu16((Opcode >> 9) & 7);
25854 DREGu16((Opcode >> 9) & 7) = res;
25867 READ_WORD_F(adr, src)
25868 res = DREGu16((Opcode >> 9) & 7);
25874 DREGu16((Opcode >> 9) & 7) = res;
25887 READ_WORD_F(adr, src)
25888 res = DREGu16((Opcode >> 9) & 7);
25894 DREGu16((Opcode >> 9) & 7) = res;
25905 adr = GET_SWORD + ((u32)(PC) - BasePC);
25908 READ_WORD_F(adr, src)
25909 res = DREGu16((Opcode >> 9) & 7);
25915 DREGu16((Opcode >> 9) & 7) = res;
25926 adr = (u32)(PC) - BasePC;
25929 READ_WORD_F(adr, src)
25930 res = DREGu16((Opcode >> 9) & 7);
25936 DREGu16((Opcode >> 9) & 7) = res;
25948 res = DREGu16((Opcode >> 9) & 7);
25954 DREGu16((Opcode >> 9) & 7) = res;
25967 READ_WORD_F(adr, src)
25968 res = DREGu16((Opcode >> 9) & 7);
25974 DREGu16((Opcode >> 9) & 7) = res;
25988 READ_WORD_F(adr, src)
25989 res = DREGu16((Opcode >> 9) & 7);
25995 DREGu16((Opcode >> 9) & 7) = res;
26006 src = DREGu32((Opcode >> 0) & 7);
26007 res = DREGu32((Opcode >> 9) & 7);
26012 flag_N = res >> 24;
26013 DREGu32((Opcode >> 9) & 7) = res;
26023 adr = AREG((Opcode >> 0) & 7);
26025 READ_LONG_F(adr, src)
26026 res = DREGu32((Opcode >> 9) & 7);
26031 flag_N = res >> 24;
26032 DREGu32((Opcode >> 9) & 7) = res;
26043 adr = AREG((Opcode >> 0) & 7);
26044 AREG((Opcode >> 0) & 7) += 4;
26046 READ_LONG_F(adr, src)
26047 res = DREGu32((Opcode >> 9) & 7);
26052 flag_N = res >> 24;
26053 DREGu32((Opcode >> 9) & 7) = res;
26064 adr = AREG((Opcode >> 0) & 7) - 4;
26065 AREG((Opcode >> 0) & 7) = adr;
26067 READ_LONG_F(adr, src)
26068 res = DREGu32((Opcode >> 9) & 7);
26073 flag_N = res >> 24;
26074 DREGu32((Opcode >> 9) & 7) = res;
26086 adr += AREG((Opcode >> 0) & 7);
26088 READ_LONG_F(adr, src)
26089 res = DREGu32((Opcode >> 9) & 7);
26094 flag_N = res >> 24;
26095 DREGu32((Opcode >> 9) & 7) = res;
26106 adr = AREG((Opcode >> 0) & 7);
26109 READ_LONG_F(adr, src)
26110 res = DREGu32((Opcode >> 9) & 7);
26115 flag_N = res >> 24;
26116 DREGu32((Opcode >> 9) & 7) = res;
26129 READ_LONG_F(adr, src)
26130 res = DREGu32((Opcode >> 9) & 7);
26135 flag_N = res >> 24;
26136 DREGu32((Opcode >> 9) & 7) = res;
26149 READ_LONG_F(adr, src)
26150 res = DREGu32((Opcode >> 9) & 7);
26155 flag_N = res >> 24;
26156 DREGu32((Opcode >> 9) & 7) = res;
26167 adr = GET_SWORD + ((u32)(PC) - BasePC);
26170 READ_LONG_F(adr, src)
26171 res = DREGu32((Opcode >> 9) & 7);
26176 flag_N = res >> 24;
26177 DREGu32((Opcode >> 9) & 7) = res;
26188 adr = (u32)(PC) - BasePC;
26191 READ_LONG_F(adr, src)
26192 res = DREGu32((Opcode >> 9) & 7);
26197 flag_N = res >> 24;
26198 DREGu32((Opcode >> 9) & 7) = res;
26210 res = DREGu32((Opcode >> 9) & 7);
26215 flag_N = res >> 24;
26216 DREGu32((Opcode >> 9) & 7) = res;
26229 READ_LONG_F(adr, src)
26230 res = DREGu32((Opcode >> 9) & 7);
26235 flag_N = res >> 24;
26236 DREGu32((Opcode >> 9) & 7) = res;
26250 READ_LONG_F(adr, src)
26251 res = DREGu32((Opcode >> 9) & 7);
26256 flag_N = res >> 24;
26257 DREGu32((Opcode >> 9) & 7) = res;
26268 src = DREGu8((Opcode >> 9) & 7);
26269 adr = AREG((Opcode >> 0) & 7);
26271 READ_BYTE_F(adr, res)
26277 WRITE_BYTE_F(adr, res)
26288 src = DREGu8((Opcode >> 9) & 7);
26289 adr = AREG((Opcode >> 0) & 7);
26290 AREG((Opcode >> 0) & 7) += 1;
26292 READ_BYTE_F(adr, res)
26298 WRITE_BYTE_F(adr, res)
26309 src = DREGu8((Opcode >> 9) & 7);
26310 adr = AREG((Opcode >> 0) & 7) - 1;
26311 AREG((Opcode >> 0) & 7) = adr;
26313 READ_BYTE_F(adr, res)
26319 WRITE_BYTE_F(adr, res)
26330 src = DREGu8((Opcode >> 9) & 7);
26332 adr += AREG((Opcode >> 0) & 7);
26334 READ_BYTE_F(adr, res)
26340 WRITE_BYTE_F(adr, res)
26351 src = DREGu8((Opcode >> 9) & 7);
26352 adr = AREG((Opcode >> 0) & 7);
26355 READ_BYTE_F(adr, res)
26361 WRITE_BYTE_F(adr, res)
26372 src = DREGu8((Opcode >> 9) & 7);
26375 READ_BYTE_F(adr, res)
26381 WRITE_BYTE_F(adr, res)
26392 src = DREGu8((Opcode >> 9) & 7);
26395 READ_BYTE_F(adr, res)
26401 WRITE_BYTE_F(adr, res)
26412 src = DREGu8((Opcode >> 9) & 7);
26416 READ_BYTE_F(adr, res)
26422 WRITE_BYTE_F(adr, res)
26433 src = DREGu8((Opcode >> 9) & 7);
26437 READ_BYTE_F(adr, res)
26443 WRITE_BYTE_F(adr, res)
26454 src = DREGu16((Opcode >> 9) & 7);
26455 adr = AREG((Opcode >> 0) & 7);
26457 READ_WORD_F(adr, res)
26463 WRITE_WORD_F(adr, res)
26474 src = DREGu16((Opcode >> 9) & 7);
26475 adr = AREG((Opcode >> 0) & 7);
26476 AREG((Opcode >> 0) & 7) += 2;
26478 READ_WORD_F(adr, res)
26484 WRITE_WORD_F(adr, res)
26495 src = DREGu16((Opcode >> 9) & 7);
26496 adr = AREG((Opcode >> 0) & 7) - 2;
26497 AREG((Opcode >> 0) & 7) = adr;
26499 READ_WORD_F(adr, res)
26505 WRITE_WORD_F(adr, res)
26516 src = DREGu16((Opcode >> 9) & 7);
26518 adr += AREG((Opcode >> 0) & 7);
26520 READ_WORD_F(adr, res)
26526 WRITE_WORD_F(adr, res)
26537 src = DREGu16((Opcode >> 9) & 7);
26538 adr = AREG((Opcode >> 0) & 7);
26541 READ_WORD_F(adr, res)
26547 WRITE_WORD_F(adr, res)
26558 src = DREGu16((Opcode >> 9) & 7);
26561 READ_WORD_F(adr, res)
26567 WRITE_WORD_F(adr, res)
26578 src = DREGu16((Opcode >> 9) & 7);
26581 READ_WORD_F(adr, res)
26587 WRITE_WORD_F(adr, res)
26598 src = DREGu16((Opcode >> 9) & 7);
26602 READ_WORD_F(adr, res)
26608 WRITE_WORD_F(adr, res)
26619 src = DREGu16((Opcode >> 9) & 7);
26623 READ_WORD_F(adr, res)
26629 WRITE_WORD_F(adr, res)
26640 src = DREGu32((Opcode >> 9) & 7);
26641 adr = AREG((Opcode >> 0) & 7);
26643 READ_LONG_F(adr, res)
26648 flag_N = res >> 24;
26649 WRITE_LONG_F(adr, res)
26660 src = DREGu32((Opcode >> 9) & 7);
26661 adr = AREG((Opcode >> 0) & 7);
26662 AREG((Opcode >> 0) & 7) += 4;
26664 READ_LONG_F(adr, res)
26669 flag_N = res >> 24;
26670 WRITE_LONG_F(adr, res)
26681 src = DREGu32((Opcode >> 9) & 7);
26682 adr = AREG((Opcode >> 0) & 7) - 4;
26683 AREG((Opcode >> 0) & 7) = adr;
26685 READ_LONG_F(adr, res)
26690 flag_N = res >> 24;
26691 WRITE_LONG_F(adr, res)
26702 src = DREGu32((Opcode >> 9) & 7);
26704 adr += AREG((Opcode >> 0) & 7);
26706 READ_LONG_F(adr, res)
26711 flag_N = res >> 24;
26712 WRITE_LONG_F(adr, res)
26723 src = DREGu32((Opcode >> 9) & 7);
26724 adr = AREG((Opcode >> 0) & 7);
26727 READ_LONG_F(adr, res)
26732 flag_N = res >> 24;
26733 WRITE_LONG_F(adr, res)
26744 src = DREGu32((Opcode >> 9) & 7);
26747 READ_LONG_F(adr, res)
26752 flag_N = res >> 24;
26753 WRITE_LONG_F(adr, res)
26764 src = DREGu32((Opcode >> 9) & 7);
26767 READ_LONG_F(adr, res)
26772 flag_N = res >> 24;
26773 WRITE_LONG_F(adr, res)
26784 src = DREGu32((Opcode >> 9) & 7);
26788 READ_LONG_F(adr, res)
26793 flag_N = res >> 24;
26794 WRITE_LONG_F(adr, res)
26805 src = DREGu32((Opcode >> 9) & 7);
26809 READ_LONG_F(adr, res)
26814 flag_N = res >> 24;
26815 WRITE_LONG_F(adr, res)
26826 src = DREGu8((Opcode >> 0) & 7);
26827 dst = DREGu8((Opcode >> 9) & 7);
26828 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26829 if (res > 9) res -= 6;
26830 res += (dst & 0xF0) - (src & 0xF0);
26834 flag_X = flag_C = M68K_SR_C;
26836 else flag_X = flag_C = 0;
26837 flag_NotZ |= res & 0xFF;
26839 DREGu8((Opcode >> 9) & 7) = res;
26849 adr = AREG((Opcode >> 0) & 7) - 1;
26850 AREG((Opcode >> 0) & 7) = adr;
26852 READ_BYTE_F(adr, src)
26853 adr = AREG((Opcode >> 9) & 7) - 1;
26854 AREG((Opcode >> 9) & 7) = adr;
26855 READ_BYTE_F(adr, dst)
26856 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26857 if (res > 9) res -= 6;
26858 res += (dst & 0xF0) - (src & 0xF0);
26862 flag_X = flag_C = M68K_SR_C;
26864 else flag_X = flag_C = 0;
26865 flag_NotZ |= res & 0xFF;
26867 WRITE_BYTE_F(adr, res)
26881 READ_BYTE_F(adr, src)
26882 adr = AREG((Opcode >> 9) & 7) - 1;
26883 AREG((Opcode >> 9) & 7) = adr;
26884 READ_BYTE_F(adr, dst)
26885 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26886 if (res > 9) res -= 6;
26887 res += (dst & 0xF0) - (src & 0xF0);
26891 flag_X = flag_C = M68K_SR_C;
26893 else flag_X = flag_C = 0;
26894 flag_NotZ |= res & 0xFF;
26896 WRITE_BYTE_F(adr, res)
26907 adr = AREG((Opcode >> 0) & 7) - 1;
26908 AREG((Opcode >> 0) & 7) = adr;
26910 READ_BYTE_F(adr, src)
26913 READ_BYTE_F(adr, dst)
26914 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26915 if (res > 9) res -= 6;
26916 res += (dst & 0xF0) - (src & 0xF0);
26920 flag_X = flag_C = M68K_SR_C;
26922 else flag_X = flag_C = 0;
26923 flag_NotZ |= res & 0xFF;
26925 WRITE_BYTE_F(adr, res)
26939 READ_BYTE_F(adr, src)
26942 READ_BYTE_F(adr, dst)
26943 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26944 if (res > 9) res -= 6;
26945 res += (dst & 0xF0) - (src & 0xF0);
26949 flag_X = flag_C = M68K_SR_C;
26951 else flag_X = flag_C = 0;
26952 flag_NotZ |= res & 0xFF;
26954 WRITE_BYTE_F(adr, res)
26965 src = DREGu16((Opcode >> 0) & 7);
26968 execute_exception(M68K_ZERO_DIVIDE_EX);
26969 #ifdef USE_CYCLONE_TIMING_DIV
26975 dst = DREGu32((Opcode >> 9) & 7);
26982 if (q & 0xFFFF0000)
26984 flag_V = M68K_SR_V;
26985 #ifdef USE_CYCLONE_TIMING_DIV
26994 flag_V = flag_C = 0;
26995 res = q | (r << 16);
26996 DREGu32((Opcode >> 9) & 7) = res;
26998 #ifdef USE_CYCLONE_TIMING_DIV
27011 adr = AREG((Opcode >> 0) & 7);
27013 READ_WORD_F(adr, src)
27016 execute_exception(M68K_ZERO_DIVIDE_EX);
27017 #ifdef USE_CYCLONE_TIMING_DIV
27023 dst = DREGu32((Opcode >> 9) & 7);
27030 if (q & 0xFFFF0000)
27032 flag_V = M68K_SR_V;
27033 #ifdef USE_CYCLONE_TIMING_DIV
27042 flag_V = flag_C = 0;
27043 res = q | (r << 16);
27044 DREGu32((Opcode >> 9) & 7) = res;
27046 #ifdef USE_CYCLONE_TIMING_DIV
27059 adr = AREG((Opcode >> 0) & 7);
27060 AREG((Opcode >> 0) & 7) += 2;
27062 READ_WORD_F(adr, src)
27065 execute_exception(M68K_ZERO_DIVIDE_EX);
27066 #ifdef USE_CYCLONE_TIMING_DIV
27072 dst = DREGu32((Opcode >> 9) & 7);
27079 if (q & 0xFFFF0000)
27081 flag_V = M68K_SR_V;
27082 #ifdef USE_CYCLONE_TIMING_DIV
27091 flag_V = flag_C = 0;
27092 res = q | (r << 16);
27093 DREGu32((Opcode >> 9) & 7) = res;
27095 #ifdef USE_CYCLONE_TIMING_DIV
27108 adr = AREG((Opcode >> 0) & 7) - 2;
27109 AREG((Opcode >> 0) & 7) = adr;
27111 READ_WORD_F(adr, src)
27114 execute_exception(M68K_ZERO_DIVIDE_EX);
27115 #ifdef USE_CYCLONE_TIMING_DIV
27121 dst = DREGu32((Opcode >> 9) & 7);
27128 if (q & 0xFFFF0000)
27130 flag_V = M68K_SR_V;
27131 #ifdef USE_CYCLONE_TIMING_DIV
27140 flag_V = flag_C = 0;
27141 res = q | (r << 16);
27142 DREGu32((Opcode >> 9) & 7) = res;
27144 #ifdef USE_CYCLONE_TIMING_DIV
27158 adr += AREG((Opcode >> 0) & 7);
27160 READ_WORD_F(adr, src)
27163 execute_exception(M68K_ZERO_DIVIDE_EX);
27164 #ifdef USE_CYCLONE_TIMING_DIV
27170 dst = DREGu32((Opcode >> 9) & 7);
27177 if (q & 0xFFFF0000)
27179 flag_V = M68K_SR_V;
27180 #ifdef USE_CYCLONE_TIMING_DIV
27189 flag_V = flag_C = 0;
27190 res = q | (r << 16);
27191 DREGu32((Opcode >> 9) & 7) = res;
27193 #ifdef USE_CYCLONE_TIMING_DIV
27206 adr = AREG((Opcode >> 0) & 7);
27209 READ_WORD_F(adr, src)
27212 execute_exception(M68K_ZERO_DIVIDE_EX);
27213 #ifdef USE_CYCLONE_TIMING_DIV
27219 dst = DREGu32((Opcode >> 9) & 7);
27226 if (q & 0xFFFF0000)
27228 flag_V = M68K_SR_V;
27229 #ifdef USE_CYCLONE_TIMING_DIV
27238 flag_V = flag_C = 0;
27239 res = q | (r << 16);
27240 DREGu32((Opcode >> 9) & 7) = res;
27242 #ifdef USE_CYCLONE_TIMING_DIV
27257 READ_WORD_F(adr, src)
27260 execute_exception(M68K_ZERO_DIVIDE_EX);
27261 #ifdef USE_CYCLONE_TIMING_DIV
27267 dst = DREGu32((Opcode >> 9) & 7);
27274 if (q & 0xFFFF0000)
27276 flag_V = M68K_SR_V;
27277 #ifdef USE_CYCLONE_TIMING_DIV
27286 flag_V = flag_C = 0;
27287 res = q | (r << 16);
27288 DREGu32((Opcode >> 9) & 7) = res;
27290 #ifdef USE_CYCLONE_TIMING_DIV
27305 READ_WORD_F(adr, src)
27308 execute_exception(M68K_ZERO_DIVIDE_EX);
27309 #ifdef USE_CYCLONE_TIMING_DIV
27315 dst = DREGu32((Opcode >> 9) & 7);
27322 if (q & 0xFFFF0000)
27324 flag_V = M68K_SR_V;
27325 #ifdef USE_CYCLONE_TIMING_DIV
27334 flag_V = flag_C = 0;
27335 res = q | (r << 16);
27336 DREGu32((Opcode >> 9) & 7) = res;
27338 #ifdef USE_CYCLONE_TIMING_DIV
27351 adr = GET_SWORD + ((u32)(PC) - BasePC);
27354 READ_WORD_F(adr, src)
27357 execute_exception(M68K_ZERO_DIVIDE_EX);
27358 #ifdef USE_CYCLONE_TIMING_DIV
27364 dst = DREGu32((Opcode >> 9) & 7);
27371 if (q & 0xFFFF0000)
27373 flag_V = M68K_SR_V;
27374 #ifdef USE_CYCLONE_TIMING_DIV
27383 flag_V = flag_C = 0;
27384 res = q | (r << 16);
27385 DREGu32((Opcode >> 9) & 7) = res;
27387 #ifdef USE_CYCLONE_TIMING_DIV
27400 adr = (u32)(PC) - BasePC;
27403 READ_WORD_F(adr, src)
27406 execute_exception(M68K_ZERO_DIVIDE_EX);
27407 #ifdef USE_CYCLONE_TIMING_DIV
27413 dst = DREGu32((Opcode >> 9) & 7);
27420 if (q & 0xFFFF0000)
27422 flag_V = M68K_SR_V;
27423 #ifdef USE_CYCLONE_TIMING_DIV
27432 flag_V = flag_C = 0;
27433 res = q | (r << 16);
27434 DREGu32((Opcode >> 9) & 7) = res;
27436 #ifdef USE_CYCLONE_TIMING_DIV
27452 execute_exception(M68K_ZERO_DIVIDE_EX);
27453 #ifdef USE_CYCLONE_TIMING_DIV
27459 dst = DREGu32((Opcode >> 9) & 7);
27466 if (q & 0xFFFF0000)
27468 flag_V = M68K_SR_V;
27469 #ifdef USE_CYCLONE_TIMING_DIV
27478 flag_V = flag_C = 0;
27479 res = q | (r << 16);
27480 DREGu32((Opcode >> 9) & 7) = res;
27482 #ifdef USE_CYCLONE_TIMING_DIV
27498 READ_WORD_F(adr, src)
27501 execute_exception(M68K_ZERO_DIVIDE_EX);
27502 #ifdef USE_CYCLONE_TIMING_DIV
27508 dst = DREGu32((Opcode >> 9) & 7);
27515 if (q & 0xFFFF0000)
27517 flag_V = M68K_SR_V;
27518 #ifdef USE_CYCLONE_TIMING_DIV
27527 flag_V = flag_C = 0;
27528 res = q | (r << 16);
27529 DREGu32((Opcode >> 9) & 7) = res;
27531 #ifdef USE_CYCLONE_TIMING_DIV
27547 READ_WORD_F(adr, src)
27550 execute_exception(M68K_ZERO_DIVIDE_EX);
27551 #ifdef USE_CYCLONE_TIMING_DIV
27557 dst = DREGu32((Opcode >> 9) & 7);
27564 if (q & 0xFFFF0000)
27566 flag_V = M68K_SR_V;
27567 #ifdef USE_CYCLONE_TIMING_DIV
27576 flag_V = flag_C = 0;
27577 res = q | (r << 16);
27578 DREGu32((Opcode >> 9) & 7) = res;
27580 #ifdef USE_CYCLONE_TIMING_DIV
27593 src = (s32)DREGs16((Opcode >> 0) & 7);
27596 execute_exception(M68K_ZERO_DIVIDE_EX);
27597 #ifdef USE_CYCLONE_TIMING_DIV
27602 dst = DREGu32((Opcode >> 9) & 7);
27603 if ((dst == 0x80000000) && (src == (u32)-1))
27605 flag_NotZ = flag_N = 0;
27606 flag_V = flag_C = 0;
27608 DREGu32((Opcode >> 9) & 7) = res;
27609 #ifdef USE_CYCLONE_TIMING_DIV
27617 q = (s32)dst / (s32)src;
27618 r = (s32)dst % (s32)src;
27620 if ((q > 0x7FFF) || (q < -0x8000))
27622 flag_V = M68K_SR_V;
27623 #ifdef USE_CYCLONE_TIMING_DIV
27631 flag_V = flag_C = 0;
27632 res = q | (r << 16);
27633 DREGu32((Opcode >> 9) & 7) = res;
27635 #ifdef USE_CYCLONE_TIMING_DIV
27636 end81C0: m68kcontext.io_cycle_counter -= 50;
27647 adr = AREG((Opcode >> 0) & 7);
27649 READSX_WORD_F(adr, src)
27652 execute_exception(M68K_ZERO_DIVIDE_EX);
27653 #ifdef USE_CYCLONE_TIMING_DIV
27658 dst = DREGu32((Opcode >> 9) & 7);
27659 if ((dst == 0x80000000) && (src == (u32)-1))
27661 flag_NotZ = flag_N = 0;
27662 flag_V = flag_C = 0;
27664 DREGu32((Opcode >> 9) & 7) = res;
27665 #ifdef USE_CYCLONE_TIMING_DIV
27673 q = (s32)dst / (s32)src;
27674 r = (s32)dst % (s32)src;
27676 if ((q > 0x7FFF) || (q < -0x8000))
27678 flag_V = M68K_SR_V;
27679 #ifdef USE_CYCLONE_TIMING_DIV
27687 flag_V = flag_C = 0;
27688 res = q | (r << 16);
27689 DREGu32((Opcode >> 9) & 7) = res;
27691 #ifdef USE_CYCLONE_TIMING_DIV
27692 end81D0: m68kcontext.io_cycle_counter -= 50;
27703 adr = AREG((Opcode >> 0) & 7);
27704 AREG((Opcode >> 0) & 7) += 2;
27706 READSX_WORD_F(adr, src)
27709 execute_exception(M68K_ZERO_DIVIDE_EX);
27710 #ifdef USE_CYCLONE_TIMING_DIV
27715 dst = DREGu32((Opcode >> 9) & 7);
27716 if ((dst == 0x80000000) && (src == (u32)-1))
27718 flag_NotZ = flag_N = 0;
27719 flag_V = flag_C = 0;
27721 DREGu32((Opcode >> 9) & 7) = res;
27722 #ifdef USE_CYCLONE_TIMING_DIV
27730 q = (s32)dst / (s32)src;
27731 r = (s32)dst % (s32)src;
27733 if ((q > 0x7FFF) || (q < -0x8000))
27735 flag_V = M68K_SR_V;
27736 #ifdef USE_CYCLONE_TIMING_DIV
27744 flag_V = flag_C = 0;
27745 res = q | (r << 16);
27746 DREGu32((Opcode >> 9) & 7) = res;
27748 #ifdef USE_CYCLONE_TIMING_DIV
27749 end81D8: m68kcontext.io_cycle_counter -= 50;
27760 adr = AREG((Opcode >> 0) & 7) - 2;
27761 AREG((Opcode >> 0) & 7) = adr;
27763 READSX_WORD_F(adr, src)
27766 execute_exception(M68K_ZERO_DIVIDE_EX);
27767 #ifdef USE_CYCLONE_TIMING_DIV
27772 dst = DREGu32((Opcode >> 9) & 7);
27773 if ((dst == 0x80000000) && (src == (u32)-1))
27775 flag_NotZ = flag_N = 0;
27776 flag_V = flag_C = 0;
27778 DREGu32((Opcode >> 9) & 7) = res;
27779 #ifdef USE_CYCLONE_TIMING_DIV
27787 q = (s32)dst / (s32)src;
27788 r = (s32)dst % (s32)src;
27790 if ((q > 0x7FFF) || (q < -0x8000))
27792 flag_V = M68K_SR_V;
27793 #ifdef USE_CYCLONE_TIMING_DIV
27801 flag_V = flag_C = 0;
27802 res = q | (r << 16);
27803 DREGu32((Opcode >> 9) & 7) = res;
27805 #ifdef USE_CYCLONE_TIMING_DIV
27806 end81E0: m68kcontext.io_cycle_counter -= 50;
27818 adr += AREG((Opcode >> 0) & 7);
27820 READSX_WORD_F(adr, src)
27823 execute_exception(M68K_ZERO_DIVIDE_EX);
27824 #ifdef USE_CYCLONE_TIMING_DIV
27829 dst = DREGu32((Opcode >> 9) & 7);
27830 if ((dst == 0x80000000) && (src == (u32)-1))
27832 flag_NotZ = flag_N = 0;
27833 flag_V = flag_C = 0;
27835 DREGu32((Opcode >> 9) & 7) = res;
27836 #ifdef USE_CYCLONE_TIMING_DIV
27844 q = (s32)dst / (s32)src;
27845 r = (s32)dst % (s32)src;
27847 if ((q > 0x7FFF) || (q < -0x8000))
27849 flag_V = M68K_SR_V;
27850 #ifdef USE_CYCLONE_TIMING_DIV
27858 flag_V = flag_C = 0;
27859 res = q | (r << 16);
27860 DREGu32((Opcode >> 9) & 7) = res;
27862 #ifdef USE_CYCLONE_TIMING_DIV
27863 end81E8: m68kcontext.io_cycle_counter -= 50;
27874 adr = AREG((Opcode >> 0) & 7);
27877 READSX_WORD_F(adr, src)
27880 execute_exception(M68K_ZERO_DIVIDE_EX);
27881 #ifdef USE_CYCLONE_TIMING_DIV
27886 dst = DREGu32((Opcode >> 9) & 7);
27887 if ((dst == 0x80000000) && (src == (u32)-1))
27889 flag_NotZ = flag_N = 0;
27890 flag_V = flag_C = 0;
27892 DREGu32((Opcode >> 9) & 7) = res;
27893 #ifdef USE_CYCLONE_TIMING_DIV
27901 q = (s32)dst / (s32)src;
27902 r = (s32)dst % (s32)src;
27904 if ((q > 0x7FFF) || (q < -0x8000))
27906 flag_V = M68K_SR_V;
27907 #ifdef USE_CYCLONE_TIMING_DIV
27915 flag_V = flag_C = 0;
27916 res = q | (r << 16);
27917 DREGu32((Opcode >> 9) & 7) = res;
27919 #ifdef USE_CYCLONE_TIMING_DIV
27920 end81F0: m68kcontext.io_cycle_counter -= 50;
27933 READSX_WORD_F(adr, src)
27936 execute_exception(M68K_ZERO_DIVIDE_EX);
27937 #ifdef USE_CYCLONE_TIMING_DIV
27942 dst = DREGu32((Opcode >> 9) & 7);
27943 if ((dst == 0x80000000) && (src == (u32)-1))
27945 flag_NotZ = flag_N = 0;
27946 flag_V = flag_C = 0;
27948 DREGu32((Opcode >> 9) & 7) = res;
27949 #ifdef USE_CYCLONE_TIMING_DIV
27957 q = (s32)dst / (s32)src;
27958 r = (s32)dst % (s32)src;
27960 if ((q > 0x7FFF) || (q < -0x8000))
27962 flag_V = M68K_SR_V;
27963 #ifdef USE_CYCLONE_TIMING_DIV
27971 flag_V = flag_C = 0;
27972 res = q | (r << 16);
27973 DREGu32((Opcode >> 9) & 7) = res;
27975 #ifdef USE_CYCLONE_TIMING_DIV
27976 end81F8: m68kcontext.io_cycle_counter -= 50;
27989 READSX_WORD_F(adr, src)
27992 execute_exception(M68K_ZERO_DIVIDE_EX);
27993 #ifdef USE_CYCLONE_TIMING_DIV
27998 dst = DREGu32((Opcode >> 9) & 7);
27999 if ((dst == 0x80000000) && (src == (u32)-1))
28001 flag_NotZ = flag_N = 0;
28002 flag_V = flag_C = 0;
28004 DREGu32((Opcode >> 9) & 7) = res;
28005 #ifdef USE_CYCLONE_TIMING_DIV
28013 q = (s32)dst / (s32)src;
28014 r = (s32)dst % (s32)src;
28016 if ((q > 0x7FFF) || (q < -0x8000))
28018 flag_V = M68K_SR_V;
28019 #ifdef USE_CYCLONE_TIMING_DIV
28027 flag_V = flag_C = 0;
28028 res = q | (r << 16);
28029 DREGu32((Opcode >> 9) & 7) = res;
28031 #ifdef USE_CYCLONE_TIMING_DIV
28032 end81F9: m68kcontext.io_cycle_counter -= 50;
28043 adr = GET_SWORD + ((u32)(PC) - BasePC);
28046 READSX_WORD_F(adr, src)
28049 execute_exception(M68K_ZERO_DIVIDE_EX);
28050 #ifdef USE_CYCLONE_TIMING_DIV
28055 dst = DREGu32((Opcode >> 9) & 7);
28056 if ((dst == 0x80000000) && (src == (u32)-1))
28058 flag_NotZ = flag_N = 0;
28059 flag_V = flag_C = 0;
28061 DREGu32((Opcode >> 9) & 7) = res;
28062 #ifdef USE_CYCLONE_TIMING_DIV
28070 q = (s32)dst / (s32)src;
28071 r = (s32)dst % (s32)src;
28073 if ((q > 0x7FFF) || (q < -0x8000))
28075 flag_V = M68K_SR_V;
28076 #ifdef USE_CYCLONE_TIMING_DIV
28084 flag_V = flag_C = 0;
28085 res = q | (r << 16);
28086 DREGu32((Opcode >> 9) & 7) = res;
28088 #ifdef USE_CYCLONE_TIMING_DIV
28089 end81FA: m68kcontext.io_cycle_counter -= 50;
28100 adr = (u32)(PC) - BasePC;
28103 READSX_WORD_F(adr, src)
28106 execute_exception(M68K_ZERO_DIVIDE_EX);
28107 #ifdef USE_CYCLONE_TIMING_DIV
28112 dst = DREGu32((Opcode >> 9) & 7);
28113 if ((dst == 0x80000000) && (src == (u32)-1))
28115 flag_NotZ = flag_N = 0;
28116 flag_V = flag_C = 0;
28118 DREGu32((Opcode >> 9) & 7) = res;
28119 #ifdef USE_CYCLONE_TIMING_DIV
28127 q = (s32)dst / (s32)src;
28128 r = (s32)dst % (s32)src;
28130 if ((q > 0x7FFF) || (q < -0x8000))
28132 flag_V = M68K_SR_V;
28133 #ifdef USE_CYCLONE_TIMING_DIV
28141 flag_V = flag_C = 0;
28142 res = q | (r << 16);
28143 DREGu32((Opcode >> 9) & 7) = res;
28145 #ifdef USE_CYCLONE_TIMING_DIV
28146 end81FB: m68kcontext.io_cycle_counter -= 50;
28160 execute_exception(M68K_ZERO_DIVIDE_EX);
28161 #ifdef USE_CYCLONE_TIMING_DIV
28166 dst = DREGu32((Opcode >> 9) & 7);
28167 if ((dst == 0x80000000) && (src == (u32)-1))
28169 flag_NotZ = flag_N = 0;
28170 flag_V = flag_C = 0;
28172 DREGu32((Opcode >> 9) & 7) = res;
28173 #ifdef USE_CYCLONE_TIMING_DIV
28181 q = (s32)dst / (s32)src;
28182 r = (s32)dst % (s32)src;
28184 if ((q > 0x7FFF) || (q < -0x8000))
28186 flag_V = M68K_SR_V;
28187 #ifdef USE_CYCLONE_TIMING_DIV
28195 flag_V = flag_C = 0;
28196 res = q | (r << 16);
28197 DREGu32((Opcode >> 9) & 7) = res;
28199 #ifdef USE_CYCLONE_TIMING_DIV
28200 end81FC: m68kcontext.io_cycle_counter -= 50;
28214 READSX_WORD_F(adr, src)
28217 execute_exception(M68K_ZERO_DIVIDE_EX);
28218 #ifdef USE_CYCLONE_TIMING_DIV
28223 dst = DREGu32((Opcode >> 9) & 7);
28224 if ((dst == 0x80000000) && (src == (u32)-1))
28226 flag_NotZ = flag_N = 0;
28227 flag_V = flag_C = 0;
28229 DREGu32((Opcode >> 9) & 7) = res;
28230 #ifdef USE_CYCLONE_TIMING_DIV
28238 q = (s32)dst / (s32)src;
28239 r = (s32)dst % (s32)src;
28241 if ((q > 0x7FFF) || (q < -0x8000))
28243 flag_V = M68K_SR_V;
28244 #ifdef USE_CYCLONE_TIMING_DIV
28252 flag_V = flag_C = 0;
28253 res = q | (r << 16);
28254 DREGu32((Opcode >> 9) & 7) = res;
28256 #ifdef USE_CYCLONE_TIMING_DIV
28257 end81DF: m68kcontext.io_cycle_counter -= 50;
28271 READSX_WORD_F(adr, src)
28274 execute_exception(M68K_ZERO_DIVIDE_EX);
28275 #ifdef USE_CYCLONE_TIMING_DIV
28280 dst = DREGu32((Opcode >> 9) & 7);
28281 if ((dst == 0x80000000) && (src == (u32)-1))
28283 flag_NotZ = flag_N = 0;
28284 flag_V = flag_C = 0;
28286 DREGu32((Opcode >> 9) & 7) = res;
28287 #ifdef USE_CYCLONE_TIMING_DIV
28295 q = (s32)dst / (s32)src;
28296 r = (s32)dst % (s32)src;
28298 if ((q > 0x7FFF) || (q < -0x8000))
28300 flag_V = M68K_SR_V;
28301 #ifdef USE_CYCLONE_TIMING_DIV
28309 flag_V = flag_C = 0;
28310 res = q | (r << 16);
28311 DREGu32((Opcode >> 9) & 7) = res;
28313 #ifdef USE_CYCLONE_TIMING_DIV
28314 end81E7: m68kcontext.io_cycle_counter -= 50;
28325 src = DREGu8((Opcode >> 0) & 7);
28326 dst = DREGu8((Opcode >> 9) & 7);
28328 flag_N = flag_X = flag_C = res;
28329 flag_V = (src ^ dst) & (res ^ dst);
28330 flag_NotZ = res & 0xFF;
28331 DREGu8((Opcode >> 9) & 7) = res;
28341 // can't read byte from Ax registers !
28342 m68kcontext.execinfo |= M68K_FAULTED;
28343 m68kcontext.io_cycle_counter = 0;
28345 goto famec_Exec_End;
28346 dst = DREGu8((Opcode >> 9) & 7);
28348 flag_N = flag_X = flag_C = res;
28349 flag_V = (src ^ dst) & (res ^ dst);
28350 flag_NotZ = res & 0xFF;
28351 DREGu8((Opcode >> 9) & 7) = res;
28362 adr = AREG((Opcode >> 0) & 7);
28364 READ_BYTE_F(adr, src)
28365 dst = DREGu8((Opcode >> 9) & 7);
28367 flag_N = flag_X = flag_C = res;
28368 flag_V = (src ^ dst) & (res ^ dst);
28369 flag_NotZ = res & 0xFF;
28370 DREGu8((Opcode >> 9) & 7) = res;
28381 adr = AREG((Opcode >> 0) & 7);
28382 AREG((Opcode >> 0) & 7) += 1;
28384 READ_BYTE_F(adr, src)
28385 dst = DREGu8((Opcode >> 9) & 7);
28387 flag_N = flag_X = flag_C = res;
28388 flag_V = (src ^ dst) & (res ^ dst);
28389 flag_NotZ = res & 0xFF;
28390 DREGu8((Opcode >> 9) & 7) = res;
28401 adr = AREG((Opcode >> 0) & 7) - 1;
28402 AREG((Opcode >> 0) & 7) = adr;
28404 READ_BYTE_F(adr, src)
28405 dst = DREGu8((Opcode >> 9) & 7);
28407 flag_N = flag_X = flag_C = res;
28408 flag_V = (src ^ dst) & (res ^ dst);
28409 flag_NotZ = res & 0xFF;
28410 DREGu8((Opcode >> 9) & 7) = res;
28422 adr += AREG((Opcode >> 0) & 7);
28424 READ_BYTE_F(adr, src)
28425 dst = DREGu8((Opcode >> 9) & 7);
28427 flag_N = flag_X = flag_C = res;
28428 flag_V = (src ^ dst) & (res ^ dst);
28429 flag_NotZ = res & 0xFF;
28430 DREGu8((Opcode >> 9) & 7) = res;
28441 adr = AREG((Opcode >> 0) & 7);
28444 READ_BYTE_F(adr, src)
28445 dst = DREGu8((Opcode >> 9) & 7);
28447 flag_N = flag_X = flag_C = res;
28448 flag_V = (src ^ dst) & (res ^ dst);
28449 flag_NotZ = res & 0xFF;
28450 DREGu8((Opcode >> 9) & 7) = res;
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;
28482 READ_BYTE_F(adr, src)
28483 dst = DREGu8((Opcode >> 9) & 7);
28485 flag_N = flag_X = flag_C = res;
28486 flag_V = (src ^ dst) & (res ^ dst);
28487 flag_NotZ = res & 0xFF;
28488 DREGu8((Opcode >> 9) & 7) = res;
28499 adr = GET_SWORD + ((u32)(PC) - BasePC);
28502 READ_BYTE_F(adr, src)
28503 dst = DREGu8((Opcode >> 9) & 7);
28505 flag_N = flag_X = flag_C = res;
28506 flag_V = (src ^ dst) & (res ^ dst);
28507 flag_NotZ = res & 0xFF;
28508 DREGu8((Opcode >> 9) & 7) = res;
28519 adr = (u32)(PC) - BasePC;
28522 READ_BYTE_F(adr, src)
28523 dst = DREGu8((Opcode >> 9) & 7);
28525 flag_N = flag_X = flag_C = res;
28526 flag_V = (src ^ dst) & (res ^ dst);
28527 flag_NotZ = res & 0xFF;
28528 DREGu8((Opcode >> 9) & 7) = res;
28540 dst = DREGu8((Opcode >> 9) & 7);
28542 flag_N = flag_X = flag_C = res;
28543 flag_V = (src ^ dst) & (res ^ dst);
28544 flag_NotZ = res & 0xFF;
28545 DREGu8((Opcode >> 9) & 7) = res;
28558 READ_BYTE_F(adr, src)
28559 dst = DREGu8((Opcode >> 9) & 7);
28561 flag_N = flag_X = flag_C = res;
28562 flag_V = (src ^ dst) & (res ^ dst);
28563 flag_NotZ = res & 0xFF;
28564 DREGu8((Opcode >> 9) & 7) = res;
28578 READ_BYTE_F(adr, src)
28579 dst = DREGu8((Opcode >> 9) & 7);
28581 flag_N = flag_X = flag_C = res;
28582 flag_V = (src ^ dst) & (res ^ dst);
28583 flag_NotZ = res & 0xFF;
28584 DREGu8((Opcode >> 9) & 7) = res;
28595 src = DREGu16((Opcode >> 0) & 7);
28596 dst = DREGu16((Opcode >> 9) & 7);
28598 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28599 flag_N = flag_X = flag_C = res >> 8;
28600 flag_NotZ = res & 0xFFFF;
28601 DREGu16((Opcode >> 9) & 7) = res;
28611 src = AREGu16((Opcode >> 0) & 7);
28612 dst = DREGu16((Opcode >> 9) & 7);
28614 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28615 flag_N = flag_X = flag_C = res >> 8;
28616 flag_NotZ = res & 0xFFFF;
28617 DREGu16((Opcode >> 9) & 7) = res;
28627 adr = AREG((Opcode >> 0) & 7);
28629 READ_WORD_F(adr, src)
28630 dst = DREGu16((Opcode >> 9) & 7);
28632 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28633 flag_N = flag_X = flag_C = res >> 8;
28634 flag_NotZ = res & 0xFFFF;
28635 DREGu16((Opcode >> 9) & 7) = res;
28646 adr = AREG((Opcode >> 0) & 7);
28647 AREG((Opcode >> 0) & 7) += 2;
28649 READ_WORD_F(adr, src)
28650 dst = DREGu16((Opcode >> 9) & 7);
28652 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28653 flag_N = flag_X = flag_C = res >> 8;
28654 flag_NotZ = res & 0xFFFF;
28655 DREGu16((Opcode >> 9) & 7) = res;
28666 adr = AREG((Opcode >> 0) & 7) - 2;
28667 AREG((Opcode >> 0) & 7) = adr;
28669 READ_WORD_F(adr, src)
28670 dst = DREGu16((Opcode >> 9) & 7);
28672 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28673 flag_N = flag_X = flag_C = res >> 8;
28674 flag_NotZ = res & 0xFFFF;
28675 DREGu16((Opcode >> 9) & 7) = res;
28687 adr += AREG((Opcode >> 0) & 7);
28689 READ_WORD_F(adr, src)
28690 dst = DREGu16((Opcode >> 9) & 7);
28692 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28693 flag_N = flag_X = flag_C = res >> 8;
28694 flag_NotZ = res & 0xFFFF;
28695 DREGu16((Opcode >> 9) & 7) = res;
28706 adr = AREG((Opcode >> 0) & 7);
28709 READ_WORD_F(adr, src)
28710 dst = DREGu16((Opcode >> 9) & 7);
28712 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28713 flag_N = flag_X = flag_C = res >> 8;
28714 flag_NotZ = res & 0xFFFF;
28715 DREGu16((Opcode >> 9) & 7) = res;
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;
28747 READ_WORD_F(adr, src)
28748 dst = DREGu16((Opcode >> 9) & 7);
28750 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28751 flag_N = flag_X = flag_C = res >> 8;
28752 flag_NotZ = res & 0xFFFF;
28753 DREGu16((Opcode >> 9) & 7) = res;
28764 adr = GET_SWORD + ((u32)(PC) - BasePC);
28767 READ_WORD_F(adr, src)
28768 dst = DREGu16((Opcode >> 9) & 7);
28770 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28771 flag_N = flag_X = flag_C = res >> 8;
28772 flag_NotZ = res & 0xFFFF;
28773 DREGu16((Opcode >> 9) & 7) = res;
28784 adr = (u32)(PC) - BasePC;
28787 READ_WORD_F(adr, src)
28788 dst = DREGu16((Opcode >> 9) & 7);
28790 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28791 flag_N = flag_X = flag_C = res >> 8;
28792 flag_NotZ = res & 0xFFFF;
28793 DREGu16((Opcode >> 9) & 7) = res;
28805 dst = DREGu16((Opcode >> 9) & 7);
28807 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28808 flag_N = flag_X = flag_C = res >> 8;
28809 flag_NotZ = res & 0xFFFF;
28810 DREGu16((Opcode >> 9) & 7) = res;
28823 READ_WORD_F(adr, src)
28824 dst = DREGu16((Opcode >> 9) & 7);
28826 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28827 flag_N = flag_X = flag_C = res >> 8;
28828 flag_NotZ = res & 0xFFFF;
28829 DREGu16((Opcode >> 9) & 7) = res;
28843 READ_WORD_F(adr, src)
28844 dst = DREGu16((Opcode >> 9) & 7);
28846 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28847 flag_N = flag_X = flag_C = res >> 8;
28848 flag_NotZ = res & 0xFFFF;
28849 DREGu16((Opcode >> 9) & 7) = res;
28860 src = DREGu32((Opcode >> 0) & 7);
28861 dst = DREGu32((Opcode >> 9) & 7);
28864 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28865 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28866 flag_N = res >> 24;
28867 DREGu32((Opcode >> 9) & 7) = res;
28877 src = AREGu32((Opcode >> 0) & 7);
28878 dst = DREGu32((Opcode >> 9) & 7);
28881 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28882 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28883 flag_N = res >> 24;
28884 DREGu32((Opcode >> 9) & 7) = res;
28894 adr = AREG((Opcode >> 0) & 7);
28896 READ_LONG_F(adr, src)
28897 dst = DREGu32((Opcode >> 9) & 7);
28900 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28901 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28902 flag_N = res >> 24;
28903 DREGu32((Opcode >> 9) & 7) = res;
28914 adr = AREG((Opcode >> 0) & 7);
28915 AREG((Opcode >> 0) & 7) += 4;
28917 READ_LONG_F(adr, src)
28918 dst = DREGu32((Opcode >> 9) & 7);
28921 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28922 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28923 flag_N = res >> 24;
28924 DREGu32((Opcode >> 9) & 7) = res;
28935 adr = AREG((Opcode >> 0) & 7) - 4;
28936 AREG((Opcode >> 0) & 7) = adr;
28938 READ_LONG_F(adr, src)
28939 dst = DREGu32((Opcode >> 9) & 7);
28942 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28943 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28944 flag_N = res >> 24;
28945 DREGu32((Opcode >> 9) & 7) = res;
28957 adr += AREG((Opcode >> 0) & 7);
28959 READ_LONG_F(adr, src)
28960 dst = DREGu32((Opcode >> 9) & 7);
28963 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28964 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28965 flag_N = res >> 24;
28966 DREGu32((Opcode >> 9) & 7) = res;
28977 adr = AREG((Opcode >> 0) & 7);
28980 READ_LONG_F(adr, src)
28981 dst = DREGu32((Opcode >> 9) & 7);
28984 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28985 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28986 flag_N = res >> 24;
28987 DREGu32((Opcode >> 9) & 7) = res;
29000 READ_LONG_F(adr, src)
29001 dst = DREGu32((Opcode >> 9) & 7);
29004 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29005 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29006 flag_N = res >> 24;
29007 DREGu32((Opcode >> 9) & 7) = res;
29020 READ_LONG_F(adr, src)
29021 dst = DREGu32((Opcode >> 9) & 7);
29024 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29025 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29026 flag_N = res >> 24;
29027 DREGu32((Opcode >> 9) & 7) = res;
29038 adr = GET_SWORD + ((u32)(PC) - BasePC);
29041 READ_LONG_F(adr, src)
29042 dst = DREGu32((Opcode >> 9) & 7);
29045 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29046 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29047 flag_N = res >> 24;
29048 DREGu32((Opcode >> 9) & 7) = res;
29059 adr = (u32)(PC) - BasePC;
29062 READ_LONG_F(adr, src)
29063 dst = DREGu32((Opcode >> 9) & 7);
29066 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29067 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29068 flag_N = res >> 24;
29069 DREGu32((Opcode >> 9) & 7) = res;
29081 dst = DREGu32((Opcode >> 9) & 7);
29084 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29085 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29086 flag_N = res >> 24;
29087 DREGu32((Opcode >> 9) & 7) = res;
29100 READ_LONG_F(adr, src)
29101 dst = DREGu32((Opcode >> 9) & 7);
29104 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29105 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29106 flag_N = res >> 24;
29107 DREGu32((Opcode >> 9) & 7) = res;
29121 READ_LONG_F(adr, src)
29122 dst = DREGu32((Opcode >> 9) & 7);
29125 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29126 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29127 flag_N = res >> 24;
29128 DREGu32((Opcode >> 9) & 7) = res;
29139 src = DREGu8((Opcode >> 9) & 7);
29140 adr = AREG((Opcode >> 0) & 7);
29142 READ_BYTE_F(adr, dst)
29144 flag_N = flag_X = flag_C = res;
29145 flag_V = (src ^ dst) & (res ^ dst);
29146 flag_NotZ = res & 0xFF;
29147 WRITE_BYTE_F(adr, res)
29158 src = DREGu8((Opcode >> 9) & 7);
29159 adr = AREG((Opcode >> 0) & 7);
29160 AREG((Opcode >> 0) & 7) += 1;
29162 READ_BYTE_F(adr, dst)
29164 flag_N = flag_X = flag_C = res;
29165 flag_V = (src ^ dst) & (res ^ dst);
29166 flag_NotZ = res & 0xFF;
29167 WRITE_BYTE_F(adr, res)
29178 src = DREGu8((Opcode >> 9) & 7);
29179 adr = AREG((Opcode >> 0) & 7) - 1;
29180 AREG((Opcode >> 0) & 7) = adr;
29182 READ_BYTE_F(adr, dst)
29184 flag_N = flag_X = flag_C = res;
29185 flag_V = (src ^ dst) & (res ^ dst);
29186 flag_NotZ = res & 0xFF;
29187 WRITE_BYTE_F(adr, res)
29198 src = DREGu8((Opcode >> 9) & 7);
29200 adr += AREG((Opcode >> 0) & 7);
29202 READ_BYTE_F(adr, dst)
29204 flag_N = flag_X = flag_C = res;
29205 flag_V = (src ^ dst) & (res ^ dst);
29206 flag_NotZ = res & 0xFF;
29207 WRITE_BYTE_F(adr, res)
29218 src = DREGu8((Opcode >> 9) & 7);
29219 adr = AREG((Opcode >> 0) & 7);
29222 READ_BYTE_F(adr, dst)
29224 flag_N = flag_X = flag_C = res;
29225 flag_V = (src ^ dst) & (res ^ dst);
29226 flag_NotZ = res & 0xFF;
29227 WRITE_BYTE_F(adr, res)
29238 src = DREGu8((Opcode >> 9) & 7);
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);
29260 READ_BYTE_F(adr, dst)
29262 flag_N = flag_X = flag_C = res;
29263 flag_V = (src ^ dst) & (res ^ dst);
29264 flag_NotZ = res & 0xFF;
29265 WRITE_BYTE_F(adr, res)
29276 src = DREGu8((Opcode >> 9) & 7);
29280 READ_BYTE_F(adr, dst)
29282 flag_N = flag_X = flag_C = res;
29283 flag_V = (src ^ dst) & (res ^ dst);
29284 flag_NotZ = res & 0xFF;
29285 WRITE_BYTE_F(adr, res)
29296 src = DREGu8((Opcode >> 9) & 7);
29300 READ_BYTE_F(adr, dst)
29302 flag_N = flag_X = flag_C = res;
29303 flag_V = (src ^ dst) & (res ^ dst);
29304 flag_NotZ = res & 0xFF;
29305 WRITE_BYTE_F(adr, res)
29316 src = DREGu16((Opcode >> 9) & 7);
29317 adr = AREG((Opcode >> 0) & 7);
29319 READ_WORD_F(adr, dst)
29321 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29322 flag_N = flag_X = flag_C = res >> 8;
29323 flag_NotZ = res & 0xFFFF;
29324 WRITE_WORD_F(adr, res)
29335 src = DREGu16((Opcode >> 9) & 7);
29336 adr = AREG((Opcode >> 0) & 7);
29337 AREG((Opcode >> 0) & 7) += 2;
29339 READ_WORD_F(adr, dst)
29341 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29342 flag_N = flag_X = flag_C = res >> 8;
29343 flag_NotZ = res & 0xFFFF;
29344 WRITE_WORD_F(adr, res)
29355 src = DREGu16((Opcode >> 9) & 7);
29356 adr = AREG((Opcode >> 0) & 7) - 2;
29357 AREG((Opcode >> 0) & 7) = adr;
29359 READ_WORD_F(adr, dst)
29361 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29362 flag_N = flag_X = flag_C = res >> 8;
29363 flag_NotZ = res & 0xFFFF;
29364 WRITE_WORD_F(adr, res)
29375 src = DREGu16((Opcode >> 9) & 7);
29377 adr += AREG((Opcode >> 0) & 7);
29379 READ_WORD_F(adr, dst)
29381 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29382 flag_N = flag_X = flag_C = res >> 8;
29383 flag_NotZ = res & 0xFFFF;
29384 WRITE_WORD_F(adr, res)
29395 src = DREGu16((Opcode >> 9) & 7);
29396 adr = AREG((Opcode >> 0) & 7);
29399 READ_WORD_F(adr, dst)
29401 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29402 flag_N = flag_X = flag_C = res >> 8;
29403 flag_NotZ = res & 0xFFFF;
29404 WRITE_WORD_F(adr, res)
29415 src = DREGu16((Opcode >> 9) & 7);
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);
29437 READ_WORD_F(adr, dst)
29439 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29440 flag_N = flag_X = flag_C = res >> 8;
29441 flag_NotZ = res & 0xFFFF;
29442 WRITE_WORD_F(adr, res)
29453 src = DREGu16((Opcode >> 9) & 7);
29457 READ_WORD_F(adr, dst)
29459 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29460 flag_N = flag_X = flag_C = res >> 8;
29461 flag_NotZ = res & 0xFFFF;
29462 WRITE_WORD_F(adr, res)
29473 src = DREGu16((Opcode >> 9) & 7);
29477 READ_WORD_F(adr, dst)
29479 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29480 flag_N = flag_X = flag_C = res >> 8;
29481 flag_NotZ = res & 0xFFFF;
29482 WRITE_WORD_F(adr, res)
29493 src = DREGu32((Opcode >> 9) & 7);
29494 adr = AREG((Opcode >> 0) & 7);
29496 READ_LONG_F(adr, dst)
29499 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29500 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29501 flag_N = res >> 24;
29502 WRITE_LONG_F(adr, res)
29513 src = DREGu32((Opcode >> 9) & 7);
29514 adr = AREG((Opcode >> 0) & 7);
29515 AREG((Opcode >> 0) & 7) += 4;
29517 READ_LONG_F(adr, dst)
29520 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29521 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29522 flag_N = res >> 24;
29523 WRITE_LONG_F(adr, res)
29534 src = DREGu32((Opcode >> 9) & 7);
29535 adr = AREG((Opcode >> 0) & 7) - 4;
29536 AREG((Opcode >> 0) & 7) = adr;
29538 READ_LONG_F(adr, dst)
29541 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29542 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29543 flag_N = res >> 24;
29544 WRITE_LONG_F(adr, res)
29555 src = DREGu32((Opcode >> 9) & 7);
29557 adr += AREG((Opcode >> 0) & 7);
29559 READ_LONG_F(adr, dst)
29562 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29563 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29564 flag_N = res >> 24;
29565 WRITE_LONG_F(adr, res)
29576 src = DREGu32((Opcode >> 9) & 7);
29577 adr = AREG((Opcode >> 0) & 7);
29580 READ_LONG_F(adr, dst)
29583 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29584 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29585 flag_N = res >> 24;
29586 WRITE_LONG_F(adr, res)
29597 src = DREGu32((Opcode >> 9) & 7);
29600 READ_LONG_F(adr, dst)
29603 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29604 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29605 flag_N = res >> 24;
29606 WRITE_LONG_F(adr, res)
29617 src = DREGu32((Opcode >> 9) & 7);
29620 READ_LONG_F(adr, dst)
29623 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29624 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29625 flag_N = res >> 24;
29626 WRITE_LONG_F(adr, res)
29637 src = DREGu32((Opcode >> 9) & 7);
29641 READ_LONG_F(adr, dst)
29644 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29645 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29646 flag_N = res >> 24;
29647 WRITE_LONG_F(adr, res)
29658 src = DREGu32((Opcode >> 9) & 7);
29662 READ_LONG_F(adr, dst)
29665 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29666 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29667 flag_N = res >> 24;
29668 WRITE_LONG_F(adr, res)
29679 src = DREGu8((Opcode >> 0) & 7);
29680 dst = DREGu8((Opcode >> 9) & 7);
29681 res = dst - src - ((flag_X >> 8) & 1);
29682 flag_N = flag_X = flag_C = res;
29683 flag_V = (src ^ dst) & (res ^ dst);
29684 flag_NotZ |= res & 0xFF;
29685 DREGu8((Opcode >> 9) & 7) = res;
29695 src = DREGu16((Opcode >> 0) & 7);
29696 dst = DREGu16((Opcode >> 9) & 7);
29697 res = dst - src - ((flag_X >> 8) & 1);
29698 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29699 flag_N = flag_X = flag_C = res >> 8;
29700 flag_NotZ |= res & 0xFFFF;
29701 DREGu16((Opcode >> 9) & 7) = res;
29711 src = DREGu32((Opcode >> 0) & 7);
29712 dst = DREGu32((Opcode >> 9) & 7);
29713 res = dst - src - ((flag_X >> 8) & 1);
29715 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29716 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29717 flag_N = res >> 24;
29718 DREGu32((Opcode >> 9) & 7) = res;
29728 adr = AREG((Opcode >> 0) & 7) - 1;
29729 AREG((Opcode >> 0) & 7) = adr;
29731 READ_BYTE_F(adr, src)
29732 adr = AREG((Opcode >> 9) & 7) - 1;
29733 AREG((Opcode >> 9) & 7) = adr;
29734 READ_BYTE_F(adr, dst)
29735 res = dst - src - ((flag_X >> 8) & 1);
29736 flag_N = flag_X = flag_C = res;
29737 flag_V = (src ^ dst) & (res ^ dst);
29738 flag_NotZ |= res & 0xFF;
29739 WRITE_BYTE_F(adr, res)
29750 adr = AREG((Opcode >> 0) & 7) - 2;
29751 AREG((Opcode >> 0) & 7) = adr;
29753 READ_WORD_F(adr, src)
29754 adr = AREG((Opcode >> 9) & 7) - 2;
29755 AREG((Opcode >> 9) & 7) = adr;
29756 READ_WORD_F(adr, dst)
29757 res = dst - src - ((flag_X >> 8) & 1);
29758 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29759 flag_N = flag_X = flag_C = res >> 8;
29760 flag_NotZ |= res & 0xFFFF;
29761 WRITE_WORD_F(adr, res)
29772 adr = AREG((Opcode >> 0) & 7) - 4;
29773 AREG((Opcode >> 0) & 7) = adr;
29775 READ_LONG_F(adr, src)
29776 adr = AREG((Opcode >> 9) & 7) - 4;
29777 AREG((Opcode >> 9) & 7) = adr;
29778 READ_LONG_F(adr, dst)
29779 res = dst - src - ((flag_X >> 8) & 1);
29781 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29782 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29783 flag_N = res >> 24;
29784 WRITE_LONG_F(adr, res)
29798 READ_BYTE_F(adr, src)
29799 adr = AREG((Opcode >> 9) & 7) - 1;
29800 AREG((Opcode >> 9) & 7) = adr;
29801 READ_BYTE_F(adr, dst)
29802 res = dst - src - ((flag_X >> 8) & 1);
29803 flag_N = flag_X = flag_C = res;
29804 flag_V = (src ^ dst) & (res ^ dst);
29805 flag_NotZ |= res & 0xFF;
29806 WRITE_BYTE_F(adr, res)
29820 READ_WORD_F(adr, src)
29821 adr = AREG((Opcode >> 9) & 7) - 2;
29822 AREG((Opcode >> 9) & 7) = adr;
29823 READ_WORD_F(adr, dst)
29824 res = dst - src - ((flag_X >> 8) & 1);
29825 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29826 flag_N = flag_X = flag_C = res >> 8;
29827 flag_NotZ |= res & 0xFFFF;
29828 WRITE_WORD_F(adr, res)
29842 READ_LONG_F(adr, src)
29843 adr = AREG((Opcode >> 9) & 7) - 4;
29844 AREG((Opcode >> 9) & 7) = adr;
29845 READ_LONG_F(adr, dst)
29846 res = dst - src - ((flag_X >> 8) & 1);
29848 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29849 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29850 flag_N = res >> 24;
29851 WRITE_LONG_F(adr, res)
29862 adr = AREG((Opcode >> 0) & 7) - 1;
29863 AREG((Opcode >> 0) & 7) = adr;
29865 READ_BYTE_F(adr, src)
29868 READ_BYTE_F(adr, dst)
29869 res = dst - src - ((flag_X >> 8) & 1);
29870 flag_N = flag_X = flag_C = res;
29871 flag_V = (src ^ dst) & (res ^ dst);
29872 flag_NotZ |= res & 0xFF;
29873 WRITE_BYTE_F(adr, res)
29884 adr = AREG((Opcode >> 0) & 7) - 2;
29885 AREG((Opcode >> 0) & 7) = adr;
29887 READ_WORD_F(adr, src)
29890 READ_WORD_F(adr, dst)
29891 res = dst - src - ((flag_X >> 8) & 1);
29892 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29893 flag_N = flag_X = flag_C = res >> 8;
29894 flag_NotZ |= res & 0xFFFF;
29895 WRITE_WORD_F(adr, res)
29906 adr = AREG((Opcode >> 0) & 7) - 4;
29907 AREG((Opcode >> 0) & 7) = adr;
29909 READ_LONG_F(adr, src)
29912 READ_LONG_F(adr, dst)
29913 res = dst - src - ((flag_X >> 8) & 1);
29915 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29916 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29917 flag_N = res >> 24;
29918 WRITE_LONG_F(adr, res)
29932 READ_BYTE_F(adr, src)
29935 READ_BYTE_F(adr, dst)
29936 res = dst - src - ((flag_X >> 8) & 1);
29937 flag_N = flag_X = flag_C = res;
29938 flag_V = (src ^ dst) & (res ^ dst);
29939 flag_NotZ |= res & 0xFF;
29940 WRITE_BYTE_F(adr, res)
29954 READ_WORD_F(adr, src)
29957 READ_WORD_F(adr, dst)
29958 res = dst - src - ((flag_X >> 8) & 1);
29959 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29960 flag_N = flag_X = flag_C = res >> 8;
29961 flag_NotZ |= res & 0xFFFF;
29962 WRITE_WORD_F(adr, res)
29976 READ_LONG_F(adr, src)
29979 READ_LONG_F(adr, dst)
29980 res = dst - src - ((flag_X >> 8) & 1);
29982 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29983 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29984 flag_N = res >> 24;
29985 WRITE_LONG_F(adr, res)
29996 src = (s32)DREGs16((Opcode >> 0) & 7);
29997 dst = AREGu32((Opcode >> 9) & 7);
29999 AREG((Opcode >> 9) & 7) = res;
30009 src = (s32)AREGs16((Opcode >> 0) & 7);
30010 dst = AREGu32((Opcode >> 9) & 7);
30012 AREG((Opcode >> 9) & 7) = res;
30022 adr = AREG((Opcode >> 0) & 7);
30024 READSX_WORD_F(adr, src)
30025 dst = AREGu32((Opcode >> 9) & 7);
30027 AREG((Opcode >> 9) & 7) = res;
30038 adr = AREG((Opcode >> 0) & 7);
30039 AREG((Opcode >> 0) & 7) += 2;
30041 READSX_WORD_F(adr, src)
30042 dst = AREGu32((Opcode >> 9) & 7);
30044 AREG((Opcode >> 9) & 7) = res;
30055 adr = AREG((Opcode >> 0) & 7) - 2;
30056 AREG((Opcode >> 0) & 7) = adr;
30058 READSX_WORD_F(adr, src)
30059 dst = AREGu32((Opcode >> 9) & 7);
30061 AREG((Opcode >> 9) & 7) = res;
30073 adr += AREG((Opcode >> 0) & 7);
30075 READSX_WORD_F(adr, src)
30076 dst = AREGu32((Opcode >> 9) & 7);
30078 AREG((Opcode >> 9) & 7) = res;
30089 adr = AREG((Opcode >> 0) & 7);
30092 READSX_WORD_F(adr, src)
30093 dst = AREGu32((Opcode >> 9) & 7);
30095 AREG((Opcode >> 9) & 7) = res;
30108 READSX_WORD_F(adr, src)
30109 dst = AREGu32((Opcode >> 9) & 7);
30111 AREG((Opcode >> 9) & 7) = res;
30124 READSX_WORD_F(adr, src)
30125 dst = AREGu32((Opcode >> 9) & 7);
30127 AREG((Opcode >> 9) & 7) = res;
30138 adr = GET_SWORD + ((u32)(PC) - BasePC);
30141 READSX_WORD_F(adr, src)
30142 dst = AREGu32((Opcode >> 9) & 7);
30144 AREG((Opcode >> 9) & 7) = res;
30155 adr = (u32)(PC) - BasePC;
30158 READSX_WORD_F(adr, src)
30159 dst = AREGu32((Opcode >> 9) & 7);
30161 AREG((Opcode >> 9) & 7) = res;
30173 dst = AREGu32((Opcode >> 9) & 7);
30175 AREG((Opcode >> 9) & 7) = res;
30188 READSX_WORD_F(adr, src)
30189 dst = AREGu32((Opcode >> 9) & 7);
30191 AREG((Opcode >> 9) & 7) = res;
30205 READSX_WORD_F(adr, src)
30206 dst = AREGu32((Opcode >> 9) & 7);
30208 AREG((Opcode >> 9) & 7) = res;
30219 src = (s32)DREGs32((Opcode >> 0) & 7);
30220 dst = AREGu32((Opcode >> 9) & 7);
30222 AREG((Opcode >> 9) & 7) = res;
30223 #ifdef USE_CYCLONE_TIMING
30236 src = (s32)AREGs32((Opcode >> 0) & 7);
30237 dst = AREGu32((Opcode >> 9) & 7);
30239 AREG((Opcode >> 9) & 7) = res;
30240 #ifdef USE_CYCLONE_TIMING
30253 adr = AREG((Opcode >> 0) & 7);
30255 READSX_LONG_F(adr, src)
30256 dst = AREGu32((Opcode >> 9) & 7);
30258 AREG((Opcode >> 9) & 7) = res;
30269 adr = AREG((Opcode >> 0) & 7);
30270 AREG((Opcode >> 0) & 7) += 4;
30272 READSX_LONG_F(adr, src)
30273 dst = AREGu32((Opcode >> 9) & 7);
30275 AREG((Opcode >> 9) & 7) = res;
30286 adr = AREG((Opcode >> 0) & 7) - 4;
30287 AREG((Opcode >> 0) & 7) = adr;
30289 READSX_LONG_F(adr, src)
30290 dst = AREGu32((Opcode >> 9) & 7);
30292 AREG((Opcode >> 9) & 7) = res;
30304 adr += AREG((Opcode >> 0) & 7);
30306 READSX_LONG_F(adr, src)
30307 dst = AREGu32((Opcode >> 9) & 7);
30309 AREG((Opcode >> 9) & 7) = res;
30320 adr = AREG((Opcode >> 0) & 7);
30323 READSX_LONG_F(adr, src)
30324 dst = AREGu32((Opcode >> 9) & 7);
30326 AREG((Opcode >> 9) & 7) = res;
30339 READSX_LONG_F(adr, src)
30340 dst = AREGu32((Opcode >> 9) & 7);
30342 AREG((Opcode >> 9) & 7) = res;
30355 READSX_LONG_F(adr, src)
30356 dst = AREGu32((Opcode >> 9) & 7);
30358 AREG((Opcode >> 9) & 7) = res;
30369 adr = GET_SWORD + ((u32)(PC) - BasePC);
30372 READSX_LONG_F(adr, src)
30373 dst = AREGu32((Opcode >> 9) & 7);
30375 AREG((Opcode >> 9) & 7) = res;
30386 adr = (u32)(PC) - BasePC;
30389 READSX_LONG_F(adr, src)
30390 dst = AREGu32((Opcode >> 9) & 7);
30392 AREG((Opcode >> 9) & 7) = res;
30404 dst = AREGu32((Opcode >> 9) & 7);
30406 AREG((Opcode >> 9) & 7) = res;
30407 #ifdef USE_CYCLONE_TIMING
30423 READSX_LONG_F(adr, src)
30424 dst = AREGu32((Opcode >> 9) & 7);
30426 AREG((Opcode >> 9) & 7) = res;
30440 READSX_LONG_F(adr, src)
30441 dst = AREGu32((Opcode >> 9) & 7);
30443 AREG((Opcode >> 9) & 7) = res;
30454 src = DREGu8((Opcode >> 0) & 7);
30455 dst = DREGu8((Opcode >> 9) & 7);
30457 flag_N = flag_C = res;
30458 flag_V = (src ^ dst) & (res ^ dst);
30459 flag_NotZ = res & 0xFF;
30469 // can't read byte from Ax registers !
30470 m68kcontext.execinfo |= M68K_FAULTED;
30471 m68kcontext.io_cycle_counter = 0;
30473 goto famec_Exec_End;
30474 dst = DREGu8((Opcode >> 9) & 7);
30476 flag_N = flag_C = res;
30477 flag_V = (src ^ dst) & (res ^ dst);
30478 flag_NotZ = res & 0xFF;
30489 adr = AREG((Opcode >> 0) & 7);
30491 READ_BYTE_F(adr, src)
30492 dst = DREGu8((Opcode >> 9) & 7);
30494 flag_N = flag_C = res;
30495 flag_V = (src ^ dst) & (res ^ dst);
30496 flag_NotZ = res & 0xFF;
30507 adr = AREG((Opcode >> 0) & 7);
30508 AREG((Opcode >> 0) & 7) += 1;
30510 READ_BYTE_F(adr, src)
30511 dst = DREGu8((Opcode >> 9) & 7);
30513 flag_N = flag_C = res;
30514 flag_V = (src ^ dst) & (res ^ dst);
30515 flag_NotZ = res & 0xFF;
30526 adr = AREG((Opcode >> 0) & 7) - 1;
30527 AREG((Opcode >> 0) & 7) = adr;
30529 READ_BYTE_F(adr, src)
30530 dst = DREGu8((Opcode >> 9) & 7);
30532 flag_N = flag_C = res;
30533 flag_V = (src ^ dst) & (res ^ dst);
30534 flag_NotZ = res & 0xFF;
30546 adr += AREG((Opcode >> 0) & 7);
30548 READ_BYTE_F(adr, src)
30549 dst = DREGu8((Opcode >> 9) & 7);
30551 flag_N = flag_C = res;
30552 flag_V = (src ^ dst) & (res ^ dst);
30553 flag_NotZ = res & 0xFF;
30564 adr = AREG((Opcode >> 0) & 7);
30567 READ_BYTE_F(adr, src)
30568 dst = DREGu8((Opcode >> 9) & 7);
30570 flag_N = flag_C = res;
30571 flag_V = (src ^ dst) & (res ^ dst);
30572 flag_NotZ = res & 0xFF;
30585 READ_BYTE_F(adr, src)
30586 dst = DREGu8((Opcode >> 9) & 7);
30588 flag_N = flag_C = res;
30589 flag_V = (src ^ dst) & (res ^ dst);
30590 flag_NotZ = res & 0xFF;
30603 READ_BYTE_F(adr, src)
30604 dst = DREGu8((Opcode >> 9) & 7);
30606 flag_N = flag_C = res;
30607 flag_V = (src ^ dst) & (res ^ dst);
30608 flag_NotZ = res & 0xFF;
30619 adr = GET_SWORD + ((u32)(PC) - BasePC);
30622 READ_BYTE_F(adr, src)
30623 dst = DREGu8((Opcode >> 9) & 7);
30625 flag_N = flag_C = res;
30626 flag_V = (src ^ dst) & (res ^ dst);
30627 flag_NotZ = res & 0xFF;
30638 adr = (u32)(PC) - BasePC;
30641 READ_BYTE_F(adr, src)
30642 dst = DREGu8((Opcode >> 9) & 7);
30644 flag_N = flag_C = res;
30645 flag_V = (src ^ dst) & (res ^ dst);
30646 flag_NotZ = res & 0xFF;
30658 dst = DREGu8((Opcode >> 9) & 7);
30660 flag_N = flag_C = res;
30661 flag_V = (src ^ dst) & (res ^ dst);
30662 flag_NotZ = res & 0xFF;
30675 READ_BYTE_F(adr, src)
30676 dst = DREGu8((Opcode >> 9) & 7);
30678 flag_N = flag_C = res;
30679 flag_V = (src ^ dst) & (res ^ dst);
30680 flag_NotZ = res & 0xFF;
30694 READ_BYTE_F(adr, src)
30695 dst = DREGu8((Opcode >> 9) & 7);
30697 flag_N = flag_C = res;
30698 flag_V = (src ^ dst) & (res ^ dst);
30699 flag_NotZ = res & 0xFF;
30710 src = DREGu16((Opcode >> 0) & 7);
30711 dst = DREGu16((Opcode >> 9) & 7);
30713 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30714 flag_N = flag_C = res >> 8;
30715 flag_NotZ = res & 0xFFFF;
30725 src = AREGu16((Opcode >> 0) & 7);
30726 dst = DREGu16((Opcode >> 9) & 7);
30728 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30729 flag_N = flag_C = res >> 8;
30730 flag_NotZ = res & 0xFFFF;
30740 adr = AREG((Opcode >> 0) & 7);
30742 READ_WORD_F(adr, src)
30743 dst = DREGu16((Opcode >> 9) & 7);
30745 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30746 flag_N = flag_C = res >> 8;
30747 flag_NotZ = res & 0xFFFF;
30758 adr = AREG((Opcode >> 0) & 7);
30759 AREG((Opcode >> 0) & 7) += 2;
30761 READ_WORD_F(adr, src)
30762 dst = DREGu16((Opcode >> 9) & 7);
30764 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30765 flag_N = flag_C = res >> 8;
30766 flag_NotZ = res & 0xFFFF;
30777 adr = AREG((Opcode >> 0) & 7) - 2;
30778 AREG((Opcode >> 0) & 7) = adr;
30780 READ_WORD_F(adr, src)
30781 dst = DREGu16((Opcode >> 9) & 7);
30783 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30784 flag_N = flag_C = res >> 8;
30785 flag_NotZ = res & 0xFFFF;
30797 adr += AREG((Opcode >> 0) & 7);
30799 READ_WORD_F(adr, src)
30800 dst = DREGu16((Opcode >> 9) & 7);
30802 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30803 flag_N = flag_C = res >> 8;
30804 flag_NotZ = res & 0xFFFF;
30815 adr = AREG((Opcode >> 0) & 7);
30818 READ_WORD_F(adr, src)
30819 dst = DREGu16((Opcode >> 9) & 7);
30821 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30822 flag_N = flag_C = res >> 8;
30823 flag_NotZ = res & 0xFFFF;
30836 READ_WORD_F(adr, src)
30837 dst = DREGu16((Opcode >> 9) & 7);
30839 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30840 flag_N = flag_C = res >> 8;
30841 flag_NotZ = res & 0xFFFF;
30854 READ_WORD_F(adr, src)
30855 dst = DREGu16((Opcode >> 9) & 7);
30857 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30858 flag_N = flag_C = res >> 8;
30859 flag_NotZ = res & 0xFFFF;
30870 adr = GET_SWORD + ((u32)(PC) - BasePC);
30873 READ_WORD_F(adr, src)
30874 dst = DREGu16((Opcode >> 9) & 7);
30876 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30877 flag_N = flag_C = res >> 8;
30878 flag_NotZ = res & 0xFFFF;
30889 adr = (u32)(PC) - BasePC;
30892 READ_WORD_F(adr, src)
30893 dst = DREGu16((Opcode >> 9) & 7);
30895 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30896 flag_N = flag_C = res >> 8;
30897 flag_NotZ = res & 0xFFFF;
30909 dst = DREGu16((Opcode >> 9) & 7);
30911 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30912 flag_N = flag_C = res >> 8;
30913 flag_NotZ = res & 0xFFFF;
30926 READ_WORD_F(adr, src)
30927 dst = DREGu16((Opcode >> 9) & 7);
30929 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30930 flag_N = flag_C = res >> 8;
30931 flag_NotZ = res & 0xFFFF;
30945 READ_WORD_F(adr, src)
30946 dst = DREGu16((Opcode >> 9) & 7);
30948 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30949 flag_N = flag_C = res >> 8;
30950 flag_NotZ = res & 0xFFFF;
30961 src = DREGu32((Opcode >> 0) & 7);
30962 dst = DREGu32((Opcode >> 9) & 7);
30965 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
30966 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
30967 flag_N = res >> 24;
30977 src = AREGu32((Opcode >> 0) & 7);
30978 dst = DREGu32((Opcode >> 9) & 7);
30981 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
30982 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
30983 flag_N = res >> 24;
30993 adr = AREG((Opcode >> 0) & 7);
30995 READ_LONG_F(adr, src)
30996 dst = DREGu32((Opcode >> 9) & 7);
30999 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31000 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31001 flag_N = res >> 24;
31012 adr = AREG((Opcode >> 0) & 7);
31013 AREG((Opcode >> 0) & 7) += 4;
31015 READ_LONG_F(adr, src)
31016 dst = DREGu32((Opcode >> 9) & 7);
31019 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31020 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31021 flag_N = res >> 24;
31032 adr = AREG((Opcode >> 0) & 7) - 4;
31033 AREG((Opcode >> 0) & 7) = adr;
31035 READ_LONG_F(adr, src)
31036 dst = DREGu32((Opcode >> 9) & 7);
31039 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31040 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31041 flag_N = res >> 24;
31053 adr += AREG((Opcode >> 0) & 7);
31055 READ_LONG_F(adr, src)
31056 dst = DREGu32((Opcode >> 9) & 7);
31059 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31060 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31061 flag_N = res >> 24;
31072 adr = AREG((Opcode >> 0) & 7);
31075 READ_LONG_F(adr, src)
31076 dst = DREGu32((Opcode >> 9) & 7);
31079 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31080 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31081 flag_N = res >> 24;
31094 READ_LONG_F(adr, src)
31095 dst = DREGu32((Opcode >> 9) & 7);
31098 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31099 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31100 flag_N = res >> 24;
31113 READ_LONG_F(adr, src)
31114 dst = DREGu32((Opcode >> 9) & 7);
31117 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31118 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31119 flag_N = res >> 24;
31130 adr = GET_SWORD + ((u32)(PC) - BasePC);
31133 READ_LONG_F(adr, src)
31134 dst = DREGu32((Opcode >> 9) & 7);
31137 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31138 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31139 flag_N = res >> 24;
31150 adr = (u32)(PC) - BasePC;
31153 READ_LONG_F(adr, src)
31154 dst = DREGu32((Opcode >> 9) & 7);
31157 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31158 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31159 flag_N = res >> 24;
31171 dst = DREGu32((Opcode >> 9) & 7);
31174 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31175 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31176 flag_N = res >> 24;
31189 READ_LONG_F(adr, src)
31190 dst = DREGu32((Opcode >> 9) & 7);
31193 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31194 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31195 flag_N = res >> 24;
31209 READ_LONG_F(adr, src)
31210 dst = DREGu32((Opcode >> 9) & 7);
31213 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31214 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31215 flag_N = res >> 24;
31226 adr = AREG((Opcode >> 0) & 7);
31227 AREG((Opcode >> 0) & 7) += 1;
31229 READ_BYTE_F(adr, src)
31230 adr = AREG((Opcode >> 9) & 7);
31231 AREG((Opcode >> 9) & 7) += 1;
31232 READ_BYTE_F(adr, dst)
31234 flag_N = flag_C = res;
31235 flag_V = (src ^ dst) & (res ^ dst);
31236 flag_NotZ = res & 0xFF;
31247 adr = AREG((Opcode >> 0) & 7);
31248 AREG((Opcode >> 0) & 7) += 2;
31250 READ_WORD_F(adr, src)
31251 adr = AREG((Opcode >> 9) & 7);
31252 AREG((Opcode >> 9) & 7) += 2;
31253 READ_WORD_F(adr, dst)
31255 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31256 flag_N = flag_C = res >> 8;
31257 flag_NotZ = res & 0xFFFF;
31268 adr = AREG((Opcode >> 0) & 7);
31269 AREG((Opcode >> 0) & 7) += 4;
31271 READ_LONG_F(adr, src)
31272 adr = AREG((Opcode >> 9) & 7);
31273 AREG((Opcode >> 9) & 7) += 4;
31274 READ_LONG_F(adr, dst)
31277 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31278 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31279 flag_N = res >> 24;
31293 READ_BYTE_F(adr, src)
31294 adr = AREG((Opcode >> 9) & 7);
31295 AREG((Opcode >> 9) & 7) += 1;
31296 READ_BYTE_F(adr, dst)
31298 flag_N = flag_C = res;
31299 flag_V = (src ^ dst) & (res ^ dst);
31300 flag_NotZ = res & 0xFF;
31314 READ_WORD_F(adr, src)
31315 adr = AREG((Opcode >> 9) & 7);
31316 AREG((Opcode >> 9) & 7) += 2;
31317 READ_WORD_F(adr, dst)
31319 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31320 flag_N = flag_C = res >> 8;
31321 flag_NotZ = res & 0xFFFF;
31335 READ_LONG_F(adr, src)
31336 adr = AREG((Opcode >> 9) & 7);
31337 AREG((Opcode >> 9) & 7) += 4;
31338 READ_LONG_F(adr, dst)
31341 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31342 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31343 flag_N = res >> 24;
31354 adr = AREG((Opcode >> 0) & 7);
31355 AREG((Opcode >> 0) & 7) += 1;
31357 READ_BYTE_F(adr, src)
31360 READ_BYTE_F(adr, dst)
31362 flag_N = flag_C = res;
31363 flag_V = (src ^ dst) & (res ^ dst);
31364 flag_NotZ = res & 0xFF;
31375 adr = AREG((Opcode >> 0) & 7);
31376 AREG((Opcode >> 0) & 7) += 2;
31378 READ_WORD_F(adr, src)
31381 READ_WORD_F(adr, dst)
31383 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31384 flag_N = flag_C = res >> 8;
31385 flag_NotZ = res & 0xFFFF;
31396 adr = AREG((Opcode >> 0) & 7);
31397 AREG((Opcode >> 0) & 7) += 4;
31399 READ_LONG_F(adr, src)
31402 READ_LONG_F(adr, dst)
31405 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31406 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31407 flag_N = res >> 24;
31421 READ_BYTE_F(adr, src)
31424 READ_BYTE_F(adr, dst)
31426 flag_N = flag_C = res;
31427 flag_V = (src ^ dst) & (res ^ dst);
31428 flag_NotZ = res & 0xFF;
31442 READ_WORD_F(adr, src)
31445 READ_WORD_F(adr, dst)
31447 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31448 flag_N = flag_C = res >> 8;
31449 flag_NotZ = res & 0xFFFF;
31463 READ_LONG_F(adr, src)
31466 READ_LONG_F(adr, dst)
31469 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31470 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31471 flag_N = res >> 24;
31482 src = DREGu8((Opcode >> 9) & 7);
31483 res = DREGu8((Opcode >> 0) & 7);
31489 DREGu8((Opcode >> 0) & 7) = res;
31499 src = DREGu8((Opcode >> 9) & 7);
31500 adr = AREG((Opcode >> 0) & 7);
31502 READ_BYTE_F(adr, res)
31508 WRITE_BYTE_F(adr, res)
31519 src = DREGu8((Opcode >> 9) & 7);
31520 adr = AREG((Opcode >> 0) & 7);
31521 AREG((Opcode >> 0) & 7) += 1;
31523 READ_BYTE_F(adr, res)
31529 WRITE_BYTE_F(adr, res)
31540 src = DREGu8((Opcode >> 9) & 7);
31541 adr = AREG((Opcode >> 0) & 7) - 1;
31542 AREG((Opcode >> 0) & 7) = adr;
31544 READ_BYTE_F(adr, res)
31550 WRITE_BYTE_F(adr, res)
31561 src = DREGu8((Opcode >> 9) & 7);
31563 adr += AREG((Opcode >> 0) & 7);
31565 READ_BYTE_F(adr, res)
31571 WRITE_BYTE_F(adr, res)
31582 src = DREGu8((Opcode >> 9) & 7);
31583 adr = AREG((Opcode >> 0) & 7);
31586 READ_BYTE_F(adr, res)
31592 WRITE_BYTE_F(adr, res)
31603 src = DREGu8((Opcode >> 9) & 7);
31606 READ_BYTE_F(adr, res)
31612 WRITE_BYTE_F(adr, res)
31623 src = DREGu8((Opcode >> 9) & 7);
31626 READ_BYTE_F(adr, res)
31632 WRITE_BYTE_F(adr, res)
31643 src = DREGu8((Opcode >> 9) & 7);
31647 READ_BYTE_F(adr, res)
31653 WRITE_BYTE_F(adr, res)
31664 src = DREGu8((Opcode >> 9) & 7);
31668 READ_BYTE_F(adr, res)
31674 WRITE_BYTE_F(adr, res)
31685 src = DREGu16((Opcode >> 9) & 7);
31686 res = DREGu16((Opcode >> 0) & 7);
31692 DREGu16((Opcode >> 0) & 7) = res;
31702 src = DREGu16((Opcode >> 9) & 7);
31703 adr = AREG((Opcode >> 0) & 7);
31705 READ_WORD_F(adr, res)
31711 WRITE_WORD_F(adr, res)
31722 src = DREGu16((Opcode >> 9) & 7);
31723 adr = AREG((Opcode >> 0) & 7);
31724 AREG((Opcode >> 0) & 7) += 2;
31726 READ_WORD_F(adr, res)
31732 WRITE_WORD_F(adr, res)
31743 src = DREGu16((Opcode >> 9) & 7);
31744 adr = AREG((Opcode >> 0) & 7) - 2;
31745 AREG((Opcode >> 0) & 7) = adr;
31747 READ_WORD_F(adr, res)
31753 WRITE_WORD_F(adr, res)
31764 src = DREGu16((Opcode >> 9) & 7);
31766 adr += AREG((Opcode >> 0) & 7);
31768 READ_WORD_F(adr, res)
31774 WRITE_WORD_F(adr, res)
31785 src = DREGu16((Opcode >> 9) & 7);
31786 adr = AREG((Opcode >> 0) & 7);
31789 READ_WORD_F(adr, res)
31795 WRITE_WORD_F(adr, res)
31806 src = DREGu16((Opcode >> 9) & 7);
31809 READ_WORD_F(adr, res)
31815 WRITE_WORD_F(adr, res)
31826 src = DREGu16((Opcode >> 9) & 7);
31829 READ_WORD_F(adr, res)
31835 WRITE_WORD_F(adr, res)
31846 src = DREGu16((Opcode >> 9) & 7);
31850 READ_WORD_F(adr, res)
31856 WRITE_WORD_F(adr, res)
31867 src = DREGu16((Opcode >> 9) & 7);
31871 READ_WORD_F(adr, res)
31877 WRITE_WORD_F(adr, res)
31888 src = DREGu32((Opcode >> 9) & 7);
31889 res = DREGu32((Opcode >> 0) & 7);
31894 flag_N = res >> 24;
31895 DREGu32((Opcode >> 0) & 7) = res;
31905 src = DREGu32((Opcode >> 9) & 7);
31906 adr = AREG((Opcode >> 0) & 7);
31908 READ_LONG_F(adr, res)
31913 flag_N = res >> 24;
31914 WRITE_LONG_F(adr, res)
31925 src = DREGu32((Opcode >> 9) & 7);
31926 adr = AREG((Opcode >> 0) & 7);
31927 AREG((Opcode >> 0) & 7) += 4;
31929 READ_LONG_F(adr, res)
31934 flag_N = res >> 24;
31935 WRITE_LONG_F(adr, res)
31946 src = DREGu32((Opcode >> 9) & 7);
31947 adr = AREG((Opcode >> 0) & 7) - 4;
31948 AREG((Opcode >> 0) & 7) = adr;
31950 READ_LONG_F(adr, res)
31955 flag_N = res >> 24;
31956 WRITE_LONG_F(adr, res)
31967 src = DREGu32((Opcode >> 9) & 7);
31969 adr += AREG((Opcode >> 0) & 7);
31971 READ_LONG_F(adr, res)
31976 flag_N = res >> 24;
31977 WRITE_LONG_F(adr, res)
31988 src = DREGu32((Opcode >> 9) & 7);
31989 adr = AREG((Opcode >> 0) & 7);
31992 READ_LONG_F(adr, res)
31997 flag_N = res >> 24;
31998 WRITE_LONG_F(adr, res)
32009 src = DREGu32((Opcode >> 9) & 7);
32012 READ_LONG_F(adr, res)
32017 flag_N = res >> 24;
32018 WRITE_LONG_F(adr, res)
32029 src = DREGu32((Opcode >> 9) & 7);
32032 READ_LONG_F(adr, res)
32037 flag_N = res >> 24;
32038 WRITE_LONG_F(adr, res)
32049 src = DREGu32((Opcode >> 9) & 7);
32053 READ_LONG_F(adr, res)
32058 flag_N = res >> 24;
32059 WRITE_LONG_F(adr, res)
32070 src = DREGu32((Opcode >> 9) & 7);
32074 READ_LONG_F(adr, res)
32079 flag_N = res >> 24;
32080 WRITE_LONG_F(adr, res)
32091 src = (s32)DREGs16((Opcode >> 0) & 7);
32092 dst = AREGu32((Opcode >> 9) & 7);
32095 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32096 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32097 flag_N = res >> 24;
32107 src = (s32)AREGs16((Opcode >> 0) & 7);
32108 dst = AREGu32((Opcode >> 9) & 7);
32111 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32112 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32113 flag_N = res >> 24;
32123 adr = AREG((Opcode >> 0) & 7);
32125 READSX_WORD_F(adr, src)
32126 dst = AREGu32((Opcode >> 9) & 7);
32129 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32130 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32131 flag_N = res >> 24;
32142 adr = AREG((Opcode >> 0) & 7);
32143 AREG((Opcode >> 0) & 7) += 2;
32145 READSX_WORD_F(adr, src)
32146 dst = AREGu32((Opcode >> 9) & 7);
32149 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32150 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32151 flag_N = res >> 24;
32162 adr = AREG((Opcode >> 0) & 7) - 2;
32163 AREG((Opcode >> 0) & 7) = adr;
32165 READSX_WORD_F(adr, src)
32166 dst = AREGu32((Opcode >> 9) & 7);
32169 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32170 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32171 flag_N = res >> 24;
32183 adr += AREG((Opcode >> 0) & 7);
32185 READSX_WORD_F(adr, src)
32186 dst = AREGu32((Opcode >> 9) & 7);
32189 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32190 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32191 flag_N = res >> 24;
32202 adr = AREG((Opcode >> 0) & 7);
32205 READSX_WORD_F(adr, src)
32206 dst = AREGu32((Opcode >> 9) & 7);
32209 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32210 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32211 flag_N = res >> 24;
32224 READSX_WORD_F(adr, src)
32225 dst = AREGu32((Opcode >> 9) & 7);
32228 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32229 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32230 flag_N = res >> 24;
32243 READSX_WORD_F(adr, src)
32244 dst = AREGu32((Opcode >> 9) & 7);
32247 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32248 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32249 flag_N = res >> 24;
32260 adr = GET_SWORD + ((u32)(PC) - BasePC);
32263 READSX_WORD_F(adr, src)
32264 dst = AREGu32((Opcode >> 9) & 7);
32267 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32268 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32269 flag_N = res >> 24;
32280 adr = (u32)(PC) - BasePC;
32283 READSX_WORD_F(adr, src)
32284 dst = AREGu32((Opcode >> 9) & 7);
32287 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32288 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32289 flag_N = res >> 24;
32301 dst = AREGu32((Opcode >> 9) & 7);
32304 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32305 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32306 flag_N = res >> 24;
32319 READSX_WORD_F(adr, src)
32320 dst = AREGu32((Opcode >> 9) & 7);
32323 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32324 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32325 flag_N = res >> 24;
32339 READSX_WORD_F(adr, src)
32340 dst = AREGu32((Opcode >> 9) & 7);
32343 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32344 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32345 flag_N = res >> 24;
32356 src = (s32)DREGs32((Opcode >> 0) & 7);
32357 dst = AREGu32((Opcode >> 9) & 7);
32360 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32361 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32362 flag_N = res >> 24;
32372 src = (s32)AREGs32((Opcode >> 0) & 7);
32373 dst = AREGu32((Opcode >> 9) & 7);
32376 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32377 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32378 flag_N = res >> 24;
32388 adr = AREG((Opcode >> 0) & 7);
32390 READSX_LONG_F(adr, src)
32391 dst = AREGu32((Opcode >> 9) & 7);
32394 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32395 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32396 flag_N = res >> 24;
32407 adr = AREG((Opcode >> 0) & 7);
32408 AREG((Opcode >> 0) & 7) += 4;
32410 READSX_LONG_F(adr, src)
32411 dst = AREGu32((Opcode >> 9) & 7);
32414 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32415 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32416 flag_N = res >> 24;
32427 adr = AREG((Opcode >> 0) & 7) - 4;
32428 AREG((Opcode >> 0) & 7) = adr;
32430 READSX_LONG_F(adr, src)
32431 dst = AREGu32((Opcode >> 9) & 7);
32434 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32435 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32436 flag_N = res >> 24;
32448 adr += AREG((Opcode >> 0) & 7);
32450 READSX_LONG_F(adr, src)
32451 dst = AREGu32((Opcode >> 9) & 7);
32454 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32455 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32456 flag_N = res >> 24;
32467 adr = AREG((Opcode >> 0) & 7);
32470 READSX_LONG_F(adr, src)
32471 dst = AREGu32((Opcode >> 9) & 7);
32474 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32475 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32476 flag_N = res >> 24;
32489 READSX_LONG_F(adr, src)
32490 dst = AREGu32((Opcode >> 9) & 7);
32493 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32494 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32495 flag_N = res >> 24;
32508 READSX_LONG_F(adr, src)
32509 dst = AREGu32((Opcode >> 9) & 7);
32512 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32513 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32514 flag_N = res >> 24;
32525 adr = GET_SWORD + ((u32)(PC) - BasePC);
32528 READSX_LONG_F(adr, src)
32529 dst = AREGu32((Opcode >> 9) & 7);
32532 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32533 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32534 flag_N = res >> 24;
32545 adr = (u32)(PC) - BasePC;
32548 READSX_LONG_F(adr, src)
32549 dst = AREGu32((Opcode >> 9) & 7);
32552 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32553 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32554 flag_N = res >> 24;
32566 dst = AREGu32((Opcode >> 9) & 7);
32569 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32570 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32571 flag_N = res >> 24;
32584 READSX_LONG_F(adr, src)
32585 dst = AREGu32((Opcode >> 9) & 7);
32588 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32589 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32590 flag_N = res >> 24;
32604 READSX_LONG_F(adr, src)
32605 dst = AREGu32((Opcode >> 9) & 7);
32608 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32609 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32610 flag_N = res >> 24;
32621 src = DREGu8((Opcode >> 0) & 7);
32622 res = DREGu8((Opcode >> 9) & 7);
32628 DREGu8((Opcode >> 9) & 7) = res;
32638 adr = AREG((Opcode >> 0) & 7);
32640 READ_BYTE_F(adr, src)
32641 res = DREGu8((Opcode >> 9) & 7);
32647 DREGu8((Opcode >> 9) & 7) = res;
32658 adr = AREG((Opcode >> 0) & 7);
32659 AREG((Opcode >> 0) & 7) += 1;
32661 READ_BYTE_F(adr, src)
32662 res = DREGu8((Opcode >> 9) & 7);
32668 DREGu8((Opcode >> 9) & 7) = res;
32679 adr = AREG((Opcode >> 0) & 7) - 1;
32680 AREG((Opcode >> 0) & 7) = adr;
32682 READ_BYTE_F(adr, src)
32683 res = DREGu8((Opcode >> 9) & 7);
32689 DREGu8((Opcode >> 9) & 7) = res;
32701 adr += AREG((Opcode >> 0) & 7);
32703 READ_BYTE_F(adr, src)
32704 res = DREGu8((Opcode >> 9) & 7);
32710 DREGu8((Opcode >> 9) & 7) = res;
32721 adr = AREG((Opcode >> 0) & 7);
32724 READ_BYTE_F(adr, src)
32725 res = DREGu8((Opcode >> 9) & 7);
32731 DREGu8((Opcode >> 9) & 7) = res;
32744 READ_BYTE_F(adr, src)
32745 res = DREGu8((Opcode >> 9) & 7);
32751 DREGu8((Opcode >> 9) & 7) = res;
32764 READ_BYTE_F(adr, src)
32765 res = DREGu8((Opcode >> 9) & 7);
32771 DREGu8((Opcode >> 9) & 7) = res;
32782 adr = GET_SWORD + ((u32)(PC) - BasePC);
32785 READ_BYTE_F(adr, src)
32786 res = DREGu8((Opcode >> 9) & 7);
32792 DREGu8((Opcode >> 9) & 7) = res;
32803 adr = (u32)(PC) - BasePC;
32806 READ_BYTE_F(adr, src)
32807 res = DREGu8((Opcode >> 9) & 7);
32813 DREGu8((Opcode >> 9) & 7) = res;
32825 res = DREGu8((Opcode >> 9) & 7);
32831 DREGu8((Opcode >> 9) & 7) = res;
32844 READ_BYTE_F(adr, src)
32845 res = DREGu8((Opcode >> 9) & 7);
32851 DREGu8((Opcode >> 9) & 7) = res;
32865 READ_BYTE_F(adr, src)
32866 res = DREGu8((Opcode >> 9) & 7);
32872 DREGu8((Opcode >> 9) & 7) = res;
32883 src = DREGu16((Opcode >> 0) & 7);
32884 res = DREGu16((Opcode >> 9) & 7);
32890 DREGu16((Opcode >> 9) & 7) = res;
32900 adr = AREG((Opcode >> 0) & 7);
32902 READ_WORD_F(adr, src)
32903 res = DREGu16((Opcode >> 9) & 7);
32909 DREGu16((Opcode >> 9) & 7) = res;
32920 adr = AREG((Opcode >> 0) & 7);
32921 AREG((Opcode >> 0) & 7) += 2;
32923 READ_WORD_F(adr, src)
32924 res = DREGu16((Opcode >> 9) & 7);
32930 DREGu16((Opcode >> 9) & 7) = res;
32941 adr = AREG((Opcode >> 0) & 7) - 2;
32942 AREG((Opcode >> 0) & 7) = adr;
32944 READ_WORD_F(adr, src)
32945 res = DREGu16((Opcode >> 9) & 7);
32951 DREGu16((Opcode >> 9) & 7) = res;
32963 adr += AREG((Opcode >> 0) & 7);
32965 READ_WORD_F(adr, src)
32966 res = DREGu16((Opcode >> 9) & 7);
32972 DREGu16((Opcode >> 9) & 7) = res;
32983 adr = AREG((Opcode >> 0) & 7);
32986 READ_WORD_F(adr, src)
32987 res = DREGu16((Opcode >> 9) & 7);
32993 DREGu16((Opcode >> 9) & 7) = res;
33006 READ_WORD_F(adr, src)
33007 res = DREGu16((Opcode >> 9) & 7);
33013 DREGu16((Opcode >> 9) & 7) = res;
33026 READ_WORD_F(adr, src)
33027 res = DREGu16((Opcode >> 9) & 7);
33033 DREGu16((Opcode >> 9) & 7) = res;
33044 adr = GET_SWORD + ((u32)(PC) - BasePC);
33047 READ_WORD_F(adr, src)
33048 res = DREGu16((Opcode >> 9) & 7);
33054 DREGu16((Opcode >> 9) & 7) = res;
33065 adr = (u32)(PC) - BasePC;
33068 READ_WORD_F(adr, src)
33069 res = DREGu16((Opcode >> 9) & 7);
33075 DREGu16((Opcode >> 9) & 7) = res;
33087 res = DREGu16((Opcode >> 9) & 7);
33093 DREGu16((Opcode >> 9) & 7) = res;
33106 READ_WORD_F(adr, src)
33107 res = DREGu16((Opcode >> 9) & 7);
33113 DREGu16((Opcode >> 9) & 7) = res;
33127 READ_WORD_F(adr, src)
33128 res = DREGu16((Opcode >> 9) & 7);
33134 DREGu16((Opcode >> 9) & 7) = res;
33145 src = DREGu32((Opcode >> 0) & 7);
33146 res = DREGu32((Opcode >> 9) & 7);
33151 flag_N = res >> 24;
33152 DREGu32((Opcode >> 9) & 7) = res;
33162 adr = AREG((Opcode >> 0) & 7);
33164 READ_LONG_F(adr, src)
33165 res = DREGu32((Opcode >> 9) & 7);
33170 flag_N = res >> 24;
33171 DREGu32((Opcode >> 9) & 7) = res;
33182 adr = AREG((Opcode >> 0) & 7);
33183 AREG((Opcode >> 0) & 7) += 4;
33185 READ_LONG_F(adr, src)
33186 res = DREGu32((Opcode >> 9) & 7);
33191 flag_N = res >> 24;
33192 DREGu32((Opcode >> 9) & 7) = res;
33203 adr = AREG((Opcode >> 0) & 7) - 4;
33204 AREG((Opcode >> 0) & 7) = adr;
33206 READ_LONG_F(adr, src)
33207 res = DREGu32((Opcode >> 9) & 7);
33212 flag_N = res >> 24;
33213 DREGu32((Opcode >> 9) & 7) = res;
33225 adr += AREG((Opcode >> 0) & 7);
33227 READ_LONG_F(adr, src)
33228 res = DREGu32((Opcode >> 9) & 7);
33233 flag_N = res >> 24;
33234 DREGu32((Opcode >> 9) & 7) = res;
33245 adr = AREG((Opcode >> 0) & 7);
33248 READ_LONG_F(adr, src)
33249 res = DREGu32((Opcode >> 9) & 7);
33254 flag_N = res >> 24;
33255 DREGu32((Opcode >> 9) & 7) = res;
33268 READ_LONG_F(adr, src)
33269 res = DREGu32((Opcode >> 9) & 7);
33274 flag_N = res >> 24;
33275 DREGu32((Opcode >> 9) & 7) = res;
33288 READ_LONG_F(adr, src)
33289 res = DREGu32((Opcode >> 9) & 7);
33294 flag_N = res >> 24;
33295 DREGu32((Opcode >> 9) & 7) = res;
33306 adr = GET_SWORD + ((u32)(PC) - BasePC);
33309 READ_LONG_F(adr, src)
33310 res = DREGu32((Opcode >> 9) & 7);
33315 flag_N = res >> 24;
33316 DREGu32((Opcode >> 9) & 7) = res;
33327 adr = (u32)(PC) - BasePC;
33330 READ_LONG_F(adr, src)
33331 res = DREGu32((Opcode >> 9) & 7);
33336 flag_N = res >> 24;
33337 DREGu32((Opcode >> 9) & 7) = res;
33349 res = DREGu32((Opcode >> 9) & 7);
33354 flag_N = res >> 24;
33355 DREGu32((Opcode >> 9) & 7) = res;
33368 READ_LONG_F(adr, src)
33369 res = DREGu32((Opcode >> 9) & 7);
33374 flag_N = res >> 24;
33375 DREGu32((Opcode >> 9) & 7) = res;
33389 READ_LONG_F(adr, src)
33390 res = DREGu32((Opcode >> 9) & 7);
33395 flag_N = res >> 24;
33396 DREGu32((Opcode >> 9) & 7) = res;
33407 src = DREGu8((Opcode >> 9) & 7);
33408 adr = AREG((Opcode >> 0) & 7);
33410 READ_BYTE_F(adr, res)
33416 WRITE_BYTE_F(adr, res)
33427 src = DREGu8((Opcode >> 9) & 7);
33428 adr = AREG((Opcode >> 0) & 7);
33429 AREG((Opcode >> 0) & 7) += 1;
33431 READ_BYTE_F(adr, res)
33437 WRITE_BYTE_F(adr, res)
33448 src = DREGu8((Opcode >> 9) & 7);
33449 adr = AREG((Opcode >> 0) & 7) - 1;
33450 AREG((Opcode >> 0) & 7) = adr;
33452 READ_BYTE_F(adr, res)
33458 WRITE_BYTE_F(adr, res)
33469 src = DREGu8((Opcode >> 9) & 7);
33471 adr += AREG((Opcode >> 0) & 7);
33473 READ_BYTE_F(adr, res)
33479 WRITE_BYTE_F(adr, res)
33490 src = DREGu8((Opcode >> 9) & 7);
33491 adr = AREG((Opcode >> 0) & 7);
33494 READ_BYTE_F(adr, res)
33500 WRITE_BYTE_F(adr, res)
33511 src = DREGu8((Opcode >> 9) & 7);
33514 READ_BYTE_F(adr, res)
33520 WRITE_BYTE_F(adr, res)
33531 src = DREGu8((Opcode >> 9) & 7);
33534 READ_BYTE_F(adr, res)
33540 WRITE_BYTE_F(adr, res)
33551 src = DREGu8((Opcode >> 9) & 7);
33555 READ_BYTE_F(adr, res)
33561 WRITE_BYTE_F(adr, res)
33572 src = DREGu8((Opcode >> 9) & 7);
33576 READ_BYTE_F(adr, res)
33582 WRITE_BYTE_F(adr, res)
33593 src = DREGu16((Opcode >> 9) & 7);
33594 adr = AREG((Opcode >> 0) & 7);
33596 READ_WORD_F(adr, res)
33602 WRITE_WORD_F(adr, res)
33613 src = DREGu16((Opcode >> 9) & 7);
33614 adr = AREG((Opcode >> 0) & 7);
33615 AREG((Opcode >> 0) & 7) += 2;
33617 READ_WORD_F(adr, res)
33623 WRITE_WORD_F(adr, res)
33634 src = DREGu16((Opcode >> 9) & 7);
33635 adr = AREG((Opcode >> 0) & 7) - 2;
33636 AREG((Opcode >> 0) & 7) = adr;
33638 READ_WORD_F(adr, res)
33644 WRITE_WORD_F(adr, res)
33655 src = DREGu16((Opcode >> 9) & 7);
33657 adr += AREG((Opcode >> 0) & 7);
33659 READ_WORD_F(adr, res)
33665 WRITE_WORD_F(adr, res)
33676 src = DREGu16((Opcode >> 9) & 7);
33677 adr = AREG((Opcode >> 0) & 7);
33680 READ_WORD_F(adr, res)
33686 WRITE_WORD_F(adr, res)
33697 src = DREGu16((Opcode >> 9) & 7);
33700 READ_WORD_F(adr, res)
33706 WRITE_WORD_F(adr, res)
33717 src = DREGu16((Opcode >> 9) & 7);
33720 READ_WORD_F(adr, res)
33726 WRITE_WORD_F(adr, res)
33737 src = DREGu16((Opcode >> 9) & 7);
33741 READ_WORD_F(adr, res)
33747 WRITE_WORD_F(adr, res)
33758 src = DREGu16((Opcode >> 9) & 7);
33762 READ_WORD_F(adr, res)
33768 WRITE_WORD_F(adr, res)
33779 src = DREGu32((Opcode >> 9) & 7);
33780 adr = AREG((Opcode >> 0) & 7);
33782 READ_LONG_F(adr, res)
33787 flag_N = res >> 24;
33788 WRITE_LONG_F(adr, res)
33799 src = DREGu32((Opcode >> 9) & 7);
33800 adr = AREG((Opcode >> 0) & 7);
33801 AREG((Opcode >> 0) & 7) += 4;
33803 READ_LONG_F(adr, res)
33808 flag_N = res >> 24;
33809 WRITE_LONG_F(adr, res)
33820 src = DREGu32((Opcode >> 9) & 7);
33821 adr = AREG((Opcode >> 0) & 7) - 4;
33822 AREG((Opcode >> 0) & 7) = adr;
33824 READ_LONG_F(adr, res)
33829 flag_N = res >> 24;
33830 WRITE_LONG_F(adr, res)
33841 src = DREGu32((Opcode >> 9) & 7);
33843 adr += AREG((Opcode >> 0) & 7);
33845 READ_LONG_F(adr, res)
33850 flag_N = res >> 24;
33851 WRITE_LONG_F(adr, res)
33862 src = DREGu32((Opcode >> 9) & 7);
33863 adr = AREG((Opcode >> 0) & 7);
33866 READ_LONG_F(adr, res)
33871 flag_N = res >> 24;
33872 WRITE_LONG_F(adr, res)
33883 src = DREGu32((Opcode >> 9) & 7);
33886 READ_LONG_F(adr, res)
33891 flag_N = res >> 24;
33892 WRITE_LONG_F(adr, res)
33903 src = DREGu32((Opcode >> 9) & 7);
33906 READ_LONG_F(adr, res)
33911 flag_N = res >> 24;
33912 WRITE_LONG_F(adr, res)
33923 src = DREGu32((Opcode >> 9) & 7);
33927 READ_LONG_F(adr, res)
33932 flag_N = res >> 24;
33933 WRITE_LONG_F(adr, res)
33944 src = DREGu32((Opcode >> 9) & 7);
33948 READ_LONG_F(adr, res)
33953 flag_N = res >> 24;
33954 WRITE_LONG_F(adr, res)
33965 src = DREGu8((Opcode >> 0) & 7);
33966 dst = DREGu8((Opcode >> 9) & 7);
33967 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
33968 if (res > 9) res += 6;
33969 res += (dst & 0xF0) + (src & 0xF0);
33973 flag_X = flag_C = M68K_SR_C;
33975 else flag_X = flag_C = 0;
33976 flag_NotZ |= res & 0xFF;
33978 DREGu8((Opcode >> 9) & 7) = res;
33988 adr = AREG((Opcode >> 0) & 7) - 1;
33989 AREG((Opcode >> 0) & 7) = adr;
33991 READ_BYTE_F(adr, src)
33992 adr = AREG((Opcode >> 9) & 7) - 1;
33993 AREG((Opcode >> 9) & 7) = adr;
33994 READ_BYTE_F(adr, dst)
33995 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
33996 if (res > 9) res += 6;
33997 res += (dst & 0xF0) + (src & 0xF0);
34001 flag_X = flag_C = M68K_SR_C;
34003 else flag_X = flag_C = 0;
34004 flag_NotZ |= res & 0xFF;
34006 WRITE_BYTE_F(adr, res)
34020 READ_BYTE_F(adr, src)
34021 adr = AREG((Opcode >> 9) & 7) - 1;
34022 AREG((Opcode >> 9) & 7) = adr;
34023 READ_BYTE_F(adr, dst)
34024 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34025 if (res > 9) res += 6;
34026 res += (dst & 0xF0) + (src & 0xF0);
34030 flag_X = flag_C = M68K_SR_C;
34032 else flag_X = flag_C = 0;
34033 flag_NotZ |= res & 0xFF;
34035 WRITE_BYTE_F(adr, res)
34046 adr = AREG((Opcode >> 0) & 7) - 1;
34047 AREG((Opcode >> 0) & 7) = adr;
34049 READ_BYTE_F(adr, src)
34052 READ_BYTE_F(adr, dst)
34053 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34054 if (res > 9) res += 6;
34055 res += (dst & 0xF0) + (src & 0xF0);
34059 flag_X = flag_C = M68K_SR_C;
34061 else flag_X = flag_C = 0;
34062 flag_NotZ |= res & 0xFF;
34064 WRITE_BYTE_F(adr, res)
34078 READ_BYTE_F(adr, src)
34081 READ_BYTE_F(adr, dst)
34082 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34083 if (res > 9) res += 6;
34084 res += (dst & 0xF0) + (src & 0xF0);
34088 flag_X = flag_C = M68K_SR_C;
34090 else flag_X = flag_C = 0;
34091 flag_NotZ |= res & 0xFF;
34093 WRITE_BYTE_F(adr, res)
34104 src = DREGu16((Opcode >> 0) & 7);
34105 res = DREGu16((Opcode >> 9) & 7);
34107 flag_N = res >> 24;
34109 flag_V = flag_C = 0;
34110 DREGu32((Opcode >> 9) & 7) = res;
34111 #ifdef USE_CYCLONE_TIMING
34124 adr = AREG((Opcode >> 0) & 7);
34126 READ_WORD_F(adr, src)
34127 res = DREGu16((Opcode >> 9) & 7);
34129 flag_N = res >> 24;
34131 flag_V = flag_C = 0;
34132 DREGu32((Opcode >> 9) & 7) = res;
34134 #ifdef USE_CYCLONE_TIMING
34147 adr = AREG((Opcode >> 0) & 7);
34148 AREG((Opcode >> 0) & 7) += 2;
34150 READ_WORD_F(adr, src)
34151 res = DREGu16((Opcode >> 9) & 7);
34153 flag_N = res >> 24;
34155 flag_V = flag_C = 0;
34156 DREGu32((Opcode >> 9) & 7) = res;
34158 #ifdef USE_CYCLONE_TIMING
34171 adr = AREG((Opcode >> 0) & 7) - 2;
34172 AREG((Opcode >> 0) & 7) = adr;
34174 READ_WORD_F(adr, src)
34175 res = DREGu16((Opcode >> 9) & 7);
34177 flag_N = res >> 24;
34179 flag_V = flag_C = 0;
34180 DREGu32((Opcode >> 9) & 7) = res;
34182 #ifdef USE_CYCLONE_TIMING
34196 adr += AREG((Opcode >> 0) & 7);
34198 READ_WORD_F(adr, src)
34199 res = DREGu16((Opcode >> 9) & 7);
34201 flag_N = res >> 24;
34203 flag_V = flag_C = 0;
34204 DREGu32((Opcode >> 9) & 7) = res;
34206 #ifdef USE_CYCLONE_TIMING
34219 adr = AREG((Opcode >> 0) & 7);
34222 READ_WORD_F(adr, src)
34223 res = DREGu16((Opcode >> 9) & 7);
34225 flag_N = res >> 24;
34227 flag_V = flag_C = 0;
34228 DREGu32((Opcode >> 9) & 7) = res;
34230 #ifdef USE_CYCLONE_TIMING
34245 READ_WORD_F(adr, src)
34246 res = DREGu16((Opcode >> 9) & 7);
34248 flag_N = res >> 24;
34250 flag_V = flag_C = 0;
34251 DREGu32((Opcode >> 9) & 7) = res;
34253 #ifdef USE_CYCLONE_TIMING
34268 READ_WORD_F(adr, src)
34269 res = DREGu16((Opcode >> 9) & 7);
34271 flag_N = res >> 24;
34273 flag_V = flag_C = 0;
34274 DREGu32((Opcode >> 9) & 7) = res;
34276 #ifdef USE_CYCLONE_TIMING
34289 adr = GET_SWORD + ((u32)(PC) - BasePC);
34292 READ_WORD_F(adr, src)
34293 res = DREGu16((Opcode >> 9) & 7);
34295 flag_N = res >> 24;
34297 flag_V = flag_C = 0;
34298 DREGu32((Opcode >> 9) & 7) = res;
34300 #ifdef USE_CYCLONE_TIMING
34313 adr = (u32)(PC) - BasePC;
34316 READ_WORD_F(adr, src)
34317 res = DREGu16((Opcode >> 9) & 7);
34319 flag_N = res >> 24;
34321 flag_V = flag_C = 0;
34322 DREGu32((Opcode >> 9) & 7) = res;
34324 #ifdef USE_CYCLONE_TIMING
34338 res = DREGu16((Opcode >> 9) & 7);
34340 flag_N = res >> 24;
34342 flag_V = flag_C = 0;
34343 DREGu32((Opcode >> 9) & 7) = res;
34344 #ifdef USE_CYCLONE_TIMING
34360 READ_WORD_F(adr, src)
34361 res = DREGu16((Opcode >> 9) & 7);
34363 flag_N = res >> 24;
34365 flag_V = flag_C = 0;
34366 DREGu32((Opcode >> 9) & 7) = res;
34368 #ifdef USE_CYCLONE_TIMING
34384 READ_WORD_F(adr, src)
34385 res = DREGu16((Opcode >> 9) & 7);
34387 flag_N = res >> 24;
34389 flag_V = flag_C = 0;
34390 DREGu32((Opcode >> 9) & 7) = res;
34392 #ifdef USE_CYCLONE_TIMING
34405 src = (s32)DREGs16((Opcode >> 0) & 7);
34406 res = (s32)DREGs16((Opcode >> 9) & 7);
34407 res = ((s32)res) * ((s32)src);
34408 flag_N = res >> 24;
34410 flag_V = flag_C = 0;
34411 DREGu32((Opcode >> 9) & 7) = res;
34412 #ifdef USE_CYCLONE_TIMING
34425 adr = AREG((Opcode >> 0) & 7);
34427 READSX_WORD_F(adr, src)
34428 res = (s32)DREGs16((Opcode >> 9) & 7);
34429 res = ((s32)res) * ((s32)src);
34430 flag_N = res >> 24;
34432 flag_V = flag_C = 0;
34433 DREGu32((Opcode >> 9) & 7) = res;
34435 #ifdef USE_CYCLONE_TIMING
34448 adr = AREG((Opcode >> 0) & 7);
34449 AREG((Opcode >> 0) & 7) += 2;
34451 READSX_WORD_F(adr, src)
34452 res = (s32)DREGs16((Opcode >> 9) & 7);
34453 res = ((s32)res) * ((s32)src);
34454 flag_N = res >> 24;
34456 flag_V = flag_C = 0;
34457 DREGu32((Opcode >> 9) & 7) = res;
34459 #ifdef USE_CYCLONE_TIMING
34472 adr = AREG((Opcode >> 0) & 7) - 2;
34473 AREG((Opcode >> 0) & 7) = adr;
34475 READSX_WORD_F(adr, src)
34476 res = (s32)DREGs16((Opcode >> 9) & 7);
34477 res = ((s32)res) * ((s32)src);
34478 flag_N = res >> 24;
34480 flag_V = flag_C = 0;
34481 DREGu32((Opcode >> 9) & 7) = res;
34483 #ifdef USE_CYCLONE_TIMING
34497 adr += AREG((Opcode >> 0) & 7);
34499 READSX_WORD_F(adr, src)
34500 res = (s32)DREGs16((Opcode >> 9) & 7);
34501 res = ((s32)res) * ((s32)src);
34502 flag_N = res >> 24;
34504 flag_V = flag_C = 0;
34505 DREGu32((Opcode >> 9) & 7) = res;
34507 #ifdef USE_CYCLONE_TIMING
34520 adr = AREG((Opcode >> 0) & 7);
34523 READSX_WORD_F(adr, src)
34524 res = (s32)DREGs16((Opcode >> 9) & 7);
34525 res = ((s32)res) * ((s32)src);
34526 flag_N = res >> 24;
34528 flag_V = flag_C = 0;
34529 DREGu32((Opcode >> 9) & 7) = res;
34531 #ifdef USE_CYCLONE_TIMING
34546 READSX_WORD_F(adr, src)
34547 res = (s32)DREGs16((Opcode >> 9) & 7);
34548 res = ((s32)res) * ((s32)src);
34549 flag_N = res >> 24;
34551 flag_V = flag_C = 0;
34552 DREGu32((Opcode >> 9) & 7) = res;
34554 #ifdef USE_CYCLONE_TIMING
34569 READSX_WORD_F(adr, src)
34570 res = (s32)DREGs16((Opcode >> 9) & 7);
34571 res = ((s32)res) * ((s32)src);
34572 flag_N = res >> 24;
34574 flag_V = flag_C = 0;
34575 DREGu32((Opcode >> 9) & 7) = res;
34577 #ifdef USE_CYCLONE_TIMING
34590 adr = GET_SWORD + ((u32)(PC) - BasePC);
34593 READSX_WORD_F(adr, src)
34594 res = (s32)DREGs16((Opcode >> 9) & 7);
34595 res = ((s32)res) * ((s32)src);
34596 flag_N = res >> 24;
34598 flag_V = flag_C = 0;
34599 DREGu32((Opcode >> 9) & 7) = res;
34601 #ifdef USE_CYCLONE_TIMING
34614 adr = (u32)(PC) - BasePC;
34617 READSX_WORD_F(adr, src)
34618 res = (s32)DREGs16((Opcode >> 9) & 7);
34619 res = ((s32)res) * ((s32)src);
34620 flag_N = res >> 24;
34622 flag_V = flag_C = 0;
34623 DREGu32((Opcode >> 9) & 7) = res;
34625 #ifdef USE_CYCLONE_TIMING
34639 res = (s32)DREGs16((Opcode >> 9) & 7);
34640 res = ((s32)res) * ((s32)src);
34641 flag_N = res >> 24;
34643 flag_V = flag_C = 0;
34644 DREGu32((Opcode >> 9) & 7) = res;
34645 #ifdef USE_CYCLONE_TIMING
34661 READSX_WORD_F(adr, src)
34662 res = (s32)DREGs16((Opcode >> 9) & 7);
34663 res = ((s32)res) * ((s32)src);
34664 flag_N = res >> 24;
34666 flag_V = flag_C = 0;
34667 DREGu32((Opcode >> 9) & 7) = res;
34669 #ifdef USE_CYCLONE_TIMING
34685 READSX_WORD_F(adr, src)
34686 res = (s32)DREGs16((Opcode >> 9) & 7);
34687 res = ((s32)res) * ((s32)src);
34688 flag_N = res >> 24;
34690 flag_V = flag_C = 0;
34691 DREGu32((Opcode >> 9) & 7) = res;
34693 #ifdef USE_CYCLONE_TIMING
34706 res = DREGu32((Opcode >> 0) & 7);
34707 src = DREGu32((Opcode >> 9) & 7);
34708 DREGu32((Opcode >> 9) & 7) = res;
34710 DREGu32((Opcode >> 0) & 7) = res;
34720 res = AREGu32((Opcode >> 0) & 7);
34721 src = AREGu32((Opcode >> 9) & 7);
34722 AREG((Opcode >> 9) & 7) = res;
34724 AREG((Opcode >> 0) & 7) = res;
34734 res = AREGu32((Opcode >> 0) & 7);
34735 src = DREGu32((Opcode >> 9) & 7);
34736 DREGu32((Opcode >> 9) & 7) = res;
34738 AREG((Opcode >> 0) & 7) = res;
34748 src = DREGu8((Opcode >> 0) & 7);
34749 dst = DREGu8((Opcode >> 9) & 7);
34751 flag_N = flag_X = flag_C = res;
34752 flag_V = (src ^ res) & (dst ^ res);
34753 flag_NotZ = res & 0xFF;
34754 DREGu8((Opcode >> 9) & 7) = res;
34764 // can't read byte from Ax registers !
34765 m68kcontext.execinfo |= M68K_FAULTED;
34766 m68kcontext.io_cycle_counter = 0;
34768 goto famec_Exec_End;
34769 dst = DREGu8((Opcode >> 9) & 7);
34771 flag_N = flag_X = flag_C = res;
34772 flag_V = (src ^ res) & (dst ^ res);
34773 flag_NotZ = res & 0xFF;
34774 DREGu8((Opcode >> 9) & 7) = res;
34785 adr = AREG((Opcode >> 0) & 7);
34787 READ_BYTE_F(adr, src)
34788 dst = DREGu8((Opcode >> 9) & 7);
34790 flag_N = flag_X = flag_C = res;
34791 flag_V = (src ^ res) & (dst ^ res);
34792 flag_NotZ = res & 0xFF;
34793 DREGu8((Opcode >> 9) & 7) = res;
34804 adr = AREG((Opcode >> 0) & 7);
34805 AREG((Opcode >> 0) & 7) += 1;
34807 READ_BYTE_F(adr, src)
34808 dst = DREGu8((Opcode >> 9) & 7);
34810 flag_N = flag_X = flag_C = res;
34811 flag_V = (src ^ res) & (dst ^ res);
34812 flag_NotZ = res & 0xFF;
34813 DREGu8((Opcode >> 9) & 7) = res;
34824 adr = AREG((Opcode >> 0) & 7) - 1;
34825 AREG((Opcode >> 0) & 7) = adr;
34827 READ_BYTE_F(adr, src)
34828 dst = DREGu8((Opcode >> 9) & 7);
34830 flag_N = flag_X = flag_C = res;
34831 flag_V = (src ^ res) & (dst ^ res);
34832 flag_NotZ = res & 0xFF;
34833 DREGu8((Opcode >> 9) & 7) = res;
34845 adr += AREG((Opcode >> 0) & 7);
34847 READ_BYTE_F(adr, src)
34848 dst = DREGu8((Opcode >> 9) & 7);
34850 flag_N = flag_X = flag_C = res;
34851 flag_V = (src ^ res) & (dst ^ res);
34852 flag_NotZ = res & 0xFF;
34853 DREGu8((Opcode >> 9) & 7) = res;
34864 adr = AREG((Opcode >> 0) & 7);
34867 READ_BYTE_F(adr, src)
34868 dst = DREGu8((Opcode >> 9) & 7);
34870 flag_N = flag_X = flag_C = res;
34871 flag_V = (src ^ res) & (dst ^ res);
34872 flag_NotZ = res & 0xFF;
34873 DREGu8((Opcode >> 9) & 7) = res;
34886 READ_BYTE_F(adr, src)
34887 dst = DREGu8((Opcode >> 9) & 7);
34889 flag_N = flag_X = flag_C = res;
34890 flag_V = (src ^ res) & (dst ^ res);
34891 flag_NotZ = res & 0xFF;
34892 DREGu8((Opcode >> 9) & 7) = res;
34905 READ_BYTE_F(adr, src)
34906 dst = DREGu8((Opcode >> 9) & 7);
34908 flag_N = flag_X = flag_C = res;
34909 flag_V = (src ^ res) & (dst ^ res);
34910 flag_NotZ = res & 0xFF;
34911 DREGu8((Opcode >> 9) & 7) = res;
34922 adr = GET_SWORD + ((u32)(PC) - BasePC);
34925 READ_BYTE_F(adr, src)
34926 dst = DREGu8((Opcode >> 9) & 7);
34928 flag_N = flag_X = flag_C = res;
34929 flag_V = (src ^ res) & (dst ^ res);
34930 flag_NotZ = res & 0xFF;
34931 DREGu8((Opcode >> 9) & 7) = res;
34942 adr = (u32)(PC) - BasePC;
34945 READ_BYTE_F(adr, src)
34946 dst = DREGu8((Opcode >> 9) & 7);
34948 flag_N = flag_X = flag_C = res;
34949 flag_V = (src ^ res) & (dst ^ res);
34950 flag_NotZ = res & 0xFF;
34951 DREGu8((Opcode >> 9) & 7) = res;
34963 dst = DREGu8((Opcode >> 9) & 7);
34965 flag_N = flag_X = flag_C = res;
34966 flag_V = (src ^ res) & (dst ^ res);
34967 flag_NotZ = res & 0xFF;
34968 DREGu8((Opcode >> 9) & 7) = res;
34981 READ_BYTE_F(adr, src)
34982 dst = DREGu8((Opcode >> 9) & 7);
34984 flag_N = flag_X = flag_C = res;
34985 flag_V = (src ^ res) & (dst ^ res);
34986 flag_NotZ = res & 0xFF;
34987 DREGu8((Opcode >> 9) & 7) = res;
35001 READ_BYTE_F(adr, src)
35002 dst = DREGu8((Opcode >> 9) & 7);
35004 flag_N = flag_X = flag_C = res;
35005 flag_V = (src ^ res) & (dst ^ res);
35006 flag_NotZ = res & 0xFF;
35007 DREGu8((Opcode >> 9) & 7) = res;
35018 src = DREGu16((Opcode >> 0) & 7);
35019 dst = DREGu16((Opcode >> 9) & 7);
35021 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35022 flag_N = flag_X = flag_C = res >> 8;
35023 flag_NotZ = res & 0xFFFF;
35024 DREGu16((Opcode >> 9) & 7) = res;
35034 src = AREGu16((Opcode >> 0) & 7);
35035 dst = DREGu16((Opcode >> 9) & 7);
35037 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35038 flag_N = flag_X = flag_C = res >> 8;
35039 flag_NotZ = res & 0xFFFF;
35040 DREGu16((Opcode >> 9) & 7) = res;
35050 adr = AREG((Opcode >> 0) & 7);
35052 READ_WORD_F(adr, src)
35053 dst = DREGu16((Opcode >> 9) & 7);
35055 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35056 flag_N = flag_X = flag_C = res >> 8;
35057 flag_NotZ = res & 0xFFFF;
35058 DREGu16((Opcode >> 9) & 7) = res;
35069 adr = AREG((Opcode >> 0) & 7);
35070 AREG((Opcode >> 0) & 7) += 2;
35072 READ_WORD_F(adr, src)
35073 dst = DREGu16((Opcode >> 9) & 7);
35075 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35076 flag_N = flag_X = flag_C = res >> 8;
35077 flag_NotZ = res & 0xFFFF;
35078 DREGu16((Opcode >> 9) & 7) = res;
35089 adr = AREG((Opcode >> 0) & 7) - 2;
35090 AREG((Opcode >> 0) & 7) = adr;
35092 READ_WORD_F(adr, src)
35093 dst = DREGu16((Opcode >> 9) & 7);
35095 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35096 flag_N = flag_X = flag_C = res >> 8;
35097 flag_NotZ = res & 0xFFFF;
35098 DREGu16((Opcode >> 9) & 7) = res;
35110 adr += AREG((Opcode >> 0) & 7);
35112 READ_WORD_F(adr, src)
35113 dst = DREGu16((Opcode >> 9) & 7);
35115 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35116 flag_N = flag_X = flag_C = res >> 8;
35117 flag_NotZ = res & 0xFFFF;
35118 DREGu16((Opcode >> 9) & 7) = res;
35129 adr = AREG((Opcode >> 0) & 7);
35132 READ_WORD_F(adr, src)
35133 dst = DREGu16((Opcode >> 9) & 7);
35135 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35136 flag_N = flag_X = flag_C = res >> 8;
35137 flag_NotZ = res & 0xFFFF;
35138 DREGu16((Opcode >> 9) & 7) = res;
35151 READ_WORD_F(adr, src)
35152 dst = DREGu16((Opcode >> 9) & 7);
35154 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35155 flag_N = flag_X = flag_C = res >> 8;
35156 flag_NotZ = res & 0xFFFF;
35157 DREGu16((Opcode >> 9) & 7) = res;
35170 READ_WORD_F(adr, src)
35171 dst = DREGu16((Opcode >> 9) & 7);
35173 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35174 flag_N = flag_X = flag_C = res >> 8;
35175 flag_NotZ = res & 0xFFFF;
35176 DREGu16((Opcode >> 9) & 7) = res;
35187 adr = GET_SWORD + ((u32)(PC) - BasePC);
35190 READ_WORD_F(adr, src)
35191 dst = DREGu16((Opcode >> 9) & 7);
35193 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35194 flag_N = flag_X = flag_C = res >> 8;
35195 flag_NotZ = res & 0xFFFF;
35196 DREGu16((Opcode >> 9) & 7) = res;
35207 adr = (u32)(PC) - BasePC;
35210 READ_WORD_F(adr, src)
35211 dst = DREGu16((Opcode >> 9) & 7);
35213 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35214 flag_N = flag_X = flag_C = res >> 8;
35215 flag_NotZ = res & 0xFFFF;
35216 DREGu16((Opcode >> 9) & 7) = res;
35228 dst = DREGu16((Opcode >> 9) & 7);
35230 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35231 flag_N = flag_X = flag_C = res >> 8;
35232 flag_NotZ = res & 0xFFFF;
35233 DREGu16((Opcode >> 9) & 7) = res;
35246 READ_WORD_F(adr, src)
35247 dst = DREGu16((Opcode >> 9) & 7);
35249 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35250 flag_N = flag_X = flag_C = res >> 8;
35251 flag_NotZ = res & 0xFFFF;
35252 DREGu16((Opcode >> 9) & 7) = res;
35266 READ_WORD_F(adr, src)
35267 dst = DREGu16((Opcode >> 9) & 7);
35269 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35270 flag_N = flag_X = flag_C = res >> 8;
35271 flag_NotZ = res & 0xFFFF;
35272 DREGu16((Opcode >> 9) & 7) = res;
35283 src = DREGu32((Opcode >> 0) & 7);
35284 dst = DREGu32((Opcode >> 9) & 7);
35287 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35288 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35289 flag_N = res >> 24;
35290 DREGu32((Opcode >> 9) & 7) = res;
35300 src = AREGu32((Opcode >> 0) & 7);
35301 dst = DREGu32((Opcode >> 9) & 7);
35304 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35305 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35306 flag_N = res >> 24;
35307 DREGu32((Opcode >> 9) & 7) = res;
35317 adr = AREG((Opcode >> 0) & 7);
35319 READ_LONG_F(adr, src)
35320 dst = DREGu32((Opcode >> 9) & 7);
35323 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35324 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35325 flag_N = res >> 24;
35326 DREGu32((Opcode >> 9) & 7) = res;
35337 adr = AREG((Opcode >> 0) & 7);
35338 AREG((Opcode >> 0) & 7) += 4;
35340 READ_LONG_F(adr, src)
35341 dst = DREGu32((Opcode >> 9) & 7);
35344 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35345 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35346 flag_N = res >> 24;
35347 DREGu32((Opcode >> 9) & 7) = res;
35358 adr = AREG((Opcode >> 0) & 7) - 4;
35359 AREG((Opcode >> 0) & 7) = adr;
35361 READ_LONG_F(adr, src)
35362 dst = DREGu32((Opcode >> 9) & 7);
35365 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35366 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35367 flag_N = res >> 24;
35368 DREGu32((Opcode >> 9) & 7) = res;
35380 adr += AREG((Opcode >> 0) & 7);
35382 READ_LONG_F(adr, src)
35383 dst = DREGu32((Opcode >> 9) & 7);
35386 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35387 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35388 flag_N = res >> 24;
35389 DREGu32((Opcode >> 9) & 7) = res;
35400 adr = AREG((Opcode >> 0) & 7);
35403 READ_LONG_F(adr, src)
35404 dst = DREGu32((Opcode >> 9) & 7);
35407 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35408 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35409 flag_N = res >> 24;
35410 DREGu32((Opcode >> 9) & 7) = res;
35423 READ_LONG_F(adr, src)
35424 dst = DREGu32((Opcode >> 9) & 7);
35427 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35428 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35429 flag_N = res >> 24;
35430 DREGu32((Opcode >> 9) & 7) = res;
35443 READ_LONG_F(adr, src)
35444 dst = DREGu32((Opcode >> 9) & 7);
35447 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35448 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35449 flag_N = res >> 24;
35450 DREGu32((Opcode >> 9) & 7) = res;
35461 adr = GET_SWORD + ((u32)(PC) - BasePC);
35464 READ_LONG_F(adr, src)
35465 dst = DREGu32((Opcode >> 9) & 7);
35468 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35469 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35470 flag_N = res >> 24;
35471 DREGu32((Opcode >> 9) & 7) = res;
35482 adr = (u32)(PC) - BasePC;
35485 READ_LONG_F(adr, src)
35486 dst = DREGu32((Opcode >> 9) & 7);
35489 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35490 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35491 flag_N = res >> 24;
35492 DREGu32((Opcode >> 9) & 7) = res;
35504 dst = DREGu32((Opcode >> 9) & 7);
35507 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35508 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35509 flag_N = res >> 24;
35510 DREGu32((Opcode >> 9) & 7) = res;
35523 READ_LONG_F(adr, src)
35524 dst = DREGu32((Opcode >> 9) & 7);
35527 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35528 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35529 flag_N = res >> 24;
35530 DREGu32((Opcode >> 9) & 7) = res;
35544 READ_LONG_F(adr, src)
35545 dst = DREGu32((Opcode >> 9) & 7);
35548 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35549 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35550 flag_N = res >> 24;
35551 DREGu32((Opcode >> 9) & 7) = res;
35562 src = DREGu8((Opcode >> 9) & 7);
35563 adr = AREG((Opcode >> 0) & 7);
35565 READ_BYTE_F(adr, dst)
35567 flag_N = flag_X = flag_C = res;
35568 flag_V = (src ^ res) & (dst ^ res);
35569 flag_NotZ = res & 0xFF;
35570 WRITE_BYTE_F(adr, res)
35581 src = DREGu8((Opcode >> 9) & 7);
35582 adr = AREG((Opcode >> 0) & 7);
35583 AREG((Opcode >> 0) & 7) += 1;
35585 READ_BYTE_F(adr, dst)
35587 flag_N = flag_X = flag_C = res;
35588 flag_V = (src ^ res) & (dst ^ res);
35589 flag_NotZ = res & 0xFF;
35590 WRITE_BYTE_F(adr, res)
35601 src = DREGu8((Opcode >> 9) & 7);
35602 adr = AREG((Opcode >> 0) & 7) - 1;
35603 AREG((Opcode >> 0) & 7) = adr;
35605 READ_BYTE_F(adr, dst)
35607 flag_N = flag_X = flag_C = res;
35608 flag_V = (src ^ res) & (dst ^ res);
35609 flag_NotZ = res & 0xFF;
35610 WRITE_BYTE_F(adr, res)
35621 src = DREGu8((Opcode >> 9) & 7);
35623 adr += AREG((Opcode >> 0) & 7);
35625 READ_BYTE_F(adr, dst)
35627 flag_N = flag_X = flag_C = res;
35628 flag_V = (src ^ res) & (dst ^ res);
35629 flag_NotZ = res & 0xFF;
35630 WRITE_BYTE_F(adr, res)
35641 src = DREGu8((Opcode >> 9) & 7);
35642 adr = AREG((Opcode >> 0) & 7);
35645 READ_BYTE_F(adr, dst)
35647 flag_N = flag_X = flag_C = res;
35648 flag_V = (src ^ res) & (dst ^ res);
35649 flag_NotZ = res & 0xFF;
35650 WRITE_BYTE_F(adr, res)
35661 src = DREGu8((Opcode >> 9) & 7);
35664 READ_BYTE_F(adr, dst)
35666 flag_N = flag_X = flag_C = res;
35667 flag_V = (src ^ res) & (dst ^ res);
35668 flag_NotZ = res & 0xFF;
35669 WRITE_BYTE_F(adr, res)
35680 src = DREGu8((Opcode >> 9) & 7);
35683 READ_BYTE_F(adr, dst)
35685 flag_N = flag_X = flag_C = res;
35686 flag_V = (src ^ res) & (dst ^ res);
35687 flag_NotZ = res & 0xFF;
35688 WRITE_BYTE_F(adr, res)
35699 src = DREGu8((Opcode >> 9) & 7);
35703 READ_BYTE_F(adr, dst)
35705 flag_N = flag_X = flag_C = res;
35706 flag_V = (src ^ res) & (dst ^ res);
35707 flag_NotZ = res & 0xFF;
35708 WRITE_BYTE_F(adr, res)
35719 src = DREGu8((Opcode >> 9) & 7);
35723 READ_BYTE_F(adr, dst)
35725 flag_N = flag_X = flag_C = res;
35726 flag_V = (src ^ res) & (dst ^ res);
35727 flag_NotZ = res & 0xFF;
35728 WRITE_BYTE_F(adr, res)
35739 src = DREGu16((Opcode >> 9) & 7);
35740 adr = AREG((Opcode >> 0) & 7);
35742 READ_WORD_F(adr, dst)
35744 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35745 flag_N = flag_X = flag_C = res >> 8;
35746 flag_NotZ = res & 0xFFFF;
35747 WRITE_WORD_F(adr, res)
35758 src = DREGu16((Opcode >> 9) & 7);
35759 adr = AREG((Opcode >> 0) & 7);
35760 AREG((Opcode >> 0) & 7) += 2;
35762 READ_WORD_F(adr, dst)
35764 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35765 flag_N = flag_X = flag_C = res >> 8;
35766 flag_NotZ = res & 0xFFFF;
35767 WRITE_WORD_F(adr, res)
35778 src = DREGu16((Opcode >> 9) & 7);
35779 adr = AREG((Opcode >> 0) & 7) - 2;
35780 AREG((Opcode >> 0) & 7) = adr;
35782 READ_WORD_F(adr, dst)
35784 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35785 flag_N = flag_X = flag_C = res >> 8;
35786 flag_NotZ = res & 0xFFFF;
35787 WRITE_WORD_F(adr, res)
35798 src = DREGu16((Opcode >> 9) & 7);
35800 adr += AREG((Opcode >> 0) & 7);
35802 READ_WORD_F(adr, dst)
35804 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35805 flag_N = flag_X = flag_C = res >> 8;
35806 flag_NotZ = res & 0xFFFF;
35807 WRITE_WORD_F(adr, res)
35818 src = DREGu16((Opcode >> 9) & 7);
35819 adr = AREG((Opcode >> 0) & 7);
35822 READ_WORD_F(adr, dst)
35824 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35825 flag_N = flag_X = flag_C = res >> 8;
35826 flag_NotZ = res & 0xFFFF;
35827 WRITE_WORD_F(adr, res)
35838 src = DREGu16((Opcode >> 9) & 7);
35841 READ_WORD_F(adr, dst)
35843 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35844 flag_N = flag_X = flag_C = res >> 8;
35845 flag_NotZ = res & 0xFFFF;
35846 WRITE_WORD_F(adr, res)
35857 src = DREGu16((Opcode >> 9) & 7);
35860 READ_WORD_F(adr, dst)
35862 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35863 flag_N = flag_X = flag_C = res >> 8;
35864 flag_NotZ = res & 0xFFFF;
35865 WRITE_WORD_F(adr, res)
35876 src = DREGu16((Opcode >> 9) & 7);
35880 READ_WORD_F(adr, dst)
35882 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35883 flag_N = flag_X = flag_C = res >> 8;
35884 flag_NotZ = res & 0xFFFF;
35885 WRITE_WORD_F(adr, res)
35896 src = DREGu16((Opcode >> 9) & 7);
35900 READ_WORD_F(adr, dst)
35902 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35903 flag_N = flag_X = flag_C = res >> 8;
35904 flag_NotZ = res & 0xFFFF;
35905 WRITE_WORD_F(adr, res)
35916 src = DREGu32((Opcode >> 9) & 7);
35917 adr = AREG((Opcode >> 0) & 7);
35919 READ_LONG_F(adr, dst)
35922 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35923 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35924 flag_N = res >> 24;
35925 WRITE_LONG_F(adr, res)
35936 src = DREGu32((Opcode >> 9) & 7);
35937 adr = AREG((Opcode >> 0) & 7);
35938 AREG((Opcode >> 0) & 7) += 4;
35940 READ_LONG_F(adr, dst)
35943 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35944 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35945 flag_N = res >> 24;
35946 WRITE_LONG_F(adr, res)
35957 src = DREGu32((Opcode >> 9) & 7);
35958 adr = AREG((Opcode >> 0) & 7) - 4;
35959 AREG((Opcode >> 0) & 7) = adr;
35961 READ_LONG_F(adr, dst)
35964 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35965 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35966 flag_N = res >> 24;
35967 WRITE_LONG_F(adr, res)
35978 src = DREGu32((Opcode >> 9) & 7);
35980 adr += AREG((Opcode >> 0) & 7);
35982 READ_LONG_F(adr, dst)
35985 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35986 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35987 flag_N = res >> 24;
35988 WRITE_LONG_F(adr, res)
35999 src = DREGu32((Opcode >> 9) & 7);
36000 adr = AREG((Opcode >> 0) & 7);
36003 READ_LONG_F(adr, dst)
36006 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36007 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36008 flag_N = res >> 24;
36009 WRITE_LONG_F(adr, res)
36020 src = DREGu32((Opcode >> 9) & 7);
36023 READ_LONG_F(adr, dst)
36026 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36027 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36028 flag_N = res >> 24;
36029 WRITE_LONG_F(adr, res)
36040 src = DREGu32((Opcode >> 9) & 7);
36043 READ_LONG_F(adr, dst)
36046 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36047 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36048 flag_N = res >> 24;
36049 WRITE_LONG_F(adr, res)
36060 src = DREGu32((Opcode >> 9) & 7);
36064 READ_LONG_F(adr, dst)
36067 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36068 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36069 flag_N = res >> 24;
36070 WRITE_LONG_F(adr, res)
36081 src = DREGu32((Opcode >> 9) & 7);
36085 READ_LONG_F(adr, dst)
36088 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36089 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36090 flag_N = res >> 24;
36091 WRITE_LONG_F(adr, res)
36102 src = DREGu8((Opcode >> 0) & 7);
36103 dst = DREGu8((Opcode >> 9) & 7);
36104 res = dst + src + ((flag_X >> 8) & 1);
36105 flag_N = flag_X = flag_C = res;
36106 flag_V = (src ^ res) & (dst ^ res);
36107 flag_NotZ |= res & 0xFF;
36108 DREGu8((Opcode >> 9) & 7) = res;
36118 src = DREGu16((Opcode >> 0) & 7);
36119 dst = DREGu16((Opcode >> 9) & 7);
36120 res = dst + src + ((flag_X >> 8) & 1);
36121 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36122 flag_N = flag_X = flag_C = res >> 8;
36123 flag_NotZ |= res & 0xFFFF;
36124 DREGu16((Opcode >> 9) & 7) = res;
36134 src = DREGu32((Opcode >> 0) & 7);
36135 dst = DREGu32((Opcode >> 9) & 7);
36136 res = dst + src + ((flag_X >> 8) & 1);
36138 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36139 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36140 flag_N = res >> 24;
36141 DREGu32((Opcode >> 9) & 7) = res;
36151 adr = AREG((Opcode >> 0) & 7) - 1;
36152 AREG((Opcode >> 0) & 7) = adr;
36154 READ_BYTE_F(adr, src)
36155 adr = AREG((Opcode >> 9) & 7) - 1;
36156 AREG((Opcode >> 9) & 7) = adr;
36157 READ_BYTE_F(adr, dst)
36158 res = dst + src + ((flag_X >> 8) & 1);
36159 flag_N = flag_X = flag_C = res;
36160 flag_V = (src ^ res) & (dst ^ res);
36161 flag_NotZ |= res & 0xFF;
36162 WRITE_BYTE_F(adr, res)
36173 adr = AREG((Opcode >> 0) & 7) - 2;
36174 AREG((Opcode >> 0) & 7) = adr;
36176 READ_WORD_F(adr, src)
36177 adr = AREG((Opcode >> 9) & 7) - 2;
36178 AREG((Opcode >> 9) & 7) = adr;
36179 READ_WORD_F(adr, dst)
36180 res = dst + src + ((flag_X >> 8) & 1);
36181 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36182 flag_N = flag_X = flag_C = res >> 8;
36183 flag_NotZ |= res & 0xFFFF;
36184 WRITE_WORD_F(adr, res)
36195 adr = AREG((Opcode >> 0) & 7) - 4;
36196 AREG((Opcode >> 0) & 7) = adr;
36198 READ_LONG_F(adr, src)
36199 adr = AREG((Opcode >> 9) & 7) - 4;
36200 AREG((Opcode >> 9) & 7) = adr;
36201 READ_LONG_F(adr, dst)
36202 res = dst + src + ((flag_X >> 8) & 1);
36204 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36205 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36206 flag_N = res >> 24;
36207 WRITE_LONG_F(adr, res)
36221 READ_BYTE_F(adr, src)
36222 adr = AREG((Opcode >> 9) & 7) - 1;
36223 AREG((Opcode >> 9) & 7) = adr;
36224 READ_BYTE_F(adr, dst)
36225 res = dst + src + ((flag_X >> 8) & 1);
36226 flag_N = flag_X = flag_C = res;
36227 flag_V = (src ^ res) & (dst ^ res);
36228 flag_NotZ |= res & 0xFF;
36229 WRITE_BYTE_F(adr, res)
36243 READ_WORD_F(adr, src)
36244 adr = AREG((Opcode >> 9) & 7) - 2;
36245 AREG((Opcode >> 9) & 7) = adr;
36246 READ_WORD_F(adr, dst)
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 WRITE_WORD_F(adr, res)
36265 READ_LONG_F(adr, src)
36266 adr = AREG((Opcode >> 9) & 7) - 4;
36267 AREG((Opcode >> 9) & 7) = adr;
36268 READ_LONG_F(adr, dst)
36269 res = dst + src + ((flag_X >> 8) & 1);
36271 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36272 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36273 flag_N = res >> 24;
36274 WRITE_LONG_F(adr, res)
36285 adr = AREG((Opcode >> 0) & 7) - 1;
36286 AREG((Opcode >> 0) & 7) = adr;
36288 READ_BYTE_F(adr, src)
36291 READ_BYTE_F(adr, dst)
36292 res = dst + src + ((flag_X >> 8) & 1);
36293 flag_N = flag_X = flag_C = res;
36294 flag_V = (src ^ res) & (dst ^ res);
36295 flag_NotZ |= res & 0xFF;
36296 WRITE_BYTE_F(adr, res)
36307 adr = AREG((Opcode >> 0) & 7) - 2;
36308 AREG((Opcode >> 0) & 7) = adr;
36310 READ_WORD_F(adr, src)
36313 READ_WORD_F(adr, dst)
36314 res = dst + src + ((flag_X >> 8) & 1);
36315 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36316 flag_N = flag_X = flag_C = res >> 8;
36317 flag_NotZ |= res & 0xFFFF;
36318 WRITE_WORD_F(adr, res)
36329 adr = AREG((Opcode >> 0) & 7) - 4;
36330 AREG((Opcode >> 0) & 7) = adr;
36332 READ_LONG_F(adr, src)
36335 READ_LONG_F(adr, dst)
36336 res = dst + src + ((flag_X >> 8) & 1);
36338 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36339 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36340 flag_N = res >> 24;
36341 WRITE_LONG_F(adr, res)
36355 READ_BYTE_F(adr, src)
36358 READ_BYTE_F(adr, dst)
36359 res = dst + src + ((flag_X >> 8) & 1);
36360 flag_N = flag_X = flag_C = res;
36361 flag_V = (src ^ res) & (dst ^ res);
36362 flag_NotZ |= res & 0xFF;
36363 WRITE_BYTE_F(adr, res)
36377 READ_WORD_F(adr, src)
36380 READ_WORD_F(adr, dst)
36381 res = dst + src + ((flag_X >> 8) & 1);
36382 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36383 flag_N = flag_X = flag_C = res >> 8;
36384 flag_NotZ |= res & 0xFFFF;
36385 WRITE_WORD_F(adr, res)
36399 READ_LONG_F(adr, src)
36402 READ_LONG_F(adr, dst)
36403 res = dst + src + ((flag_X >> 8) & 1);
36405 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36406 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36407 flag_N = res >> 24;
36408 WRITE_LONG_F(adr, res)
36419 src = (s32)DREGs16((Opcode >> 0) & 7);
36420 dst = AREGu32((Opcode >> 9) & 7);
36422 AREG((Opcode >> 9) & 7) = res;
36432 src = (s32)AREGs16((Opcode >> 0) & 7);
36433 dst = AREGu32((Opcode >> 9) & 7);
36435 AREG((Opcode >> 9) & 7) = res;
36445 adr = AREG((Opcode >> 0) & 7);
36447 READSX_WORD_F(adr, src)
36448 dst = AREGu32((Opcode >> 9) & 7);
36450 AREG((Opcode >> 9) & 7) = res;
36461 adr = AREG((Opcode >> 0) & 7);
36462 AREG((Opcode >> 0) & 7) += 2;
36464 READSX_WORD_F(adr, src)
36465 dst = AREGu32((Opcode >> 9) & 7);
36467 AREG((Opcode >> 9) & 7) = res;
36478 adr = AREG((Opcode >> 0) & 7) - 2;
36479 AREG((Opcode >> 0) & 7) = adr;
36481 READSX_WORD_F(adr, src)
36482 dst = AREGu32((Opcode >> 9) & 7);
36484 AREG((Opcode >> 9) & 7) = res;
36496 adr += AREG((Opcode >> 0) & 7);
36498 READSX_WORD_F(adr, src)
36499 dst = AREGu32((Opcode >> 9) & 7);
36501 AREG((Opcode >> 9) & 7) = res;
36512 adr = AREG((Opcode >> 0) & 7);
36515 READSX_WORD_F(adr, src)
36516 dst = AREGu32((Opcode >> 9) & 7);
36518 AREG((Opcode >> 9) & 7) = res;
36531 READSX_WORD_F(adr, src)
36532 dst = AREGu32((Opcode >> 9) & 7);
36534 AREG((Opcode >> 9) & 7) = res;
36547 READSX_WORD_F(adr, src)
36548 dst = AREGu32((Opcode >> 9) & 7);
36550 AREG((Opcode >> 9) & 7) = res;
36561 adr = GET_SWORD + ((u32)(PC) - BasePC);
36564 READSX_WORD_F(adr, src)
36565 dst = AREGu32((Opcode >> 9) & 7);
36567 AREG((Opcode >> 9) & 7) = res;
36578 adr = (u32)(PC) - BasePC;
36581 READSX_WORD_F(adr, src)
36582 dst = AREGu32((Opcode >> 9) & 7);
36584 AREG((Opcode >> 9) & 7) = res;
36596 dst = AREGu32((Opcode >> 9) & 7);
36598 AREG((Opcode >> 9) & 7) = res;
36611 READSX_WORD_F(adr, src)
36612 dst = AREGu32((Opcode >> 9) & 7);
36614 AREG((Opcode >> 9) & 7) = res;
36628 READSX_WORD_F(adr, src)
36629 dst = AREGu32((Opcode >> 9) & 7);
36631 AREG((Opcode >> 9) & 7) = res;
36642 src = (s32)DREGs32((Opcode >> 0) & 7);
36643 dst = AREGu32((Opcode >> 9) & 7);
36645 AREG((Opcode >> 9) & 7) = res;
36646 #ifdef USE_CYCLONE_TIMING
36659 src = (s32)AREGs32((Opcode >> 0) & 7);
36660 dst = AREGu32((Opcode >> 9) & 7);
36662 AREG((Opcode >> 9) & 7) = res;
36663 #ifdef USE_CYCLONE_TIMING
36676 adr = AREG((Opcode >> 0) & 7);
36678 READSX_LONG_F(adr, src)
36679 dst = AREGu32((Opcode >> 9) & 7);
36681 AREG((Opcode >> 9) & 7) = res;
36692 adr = AREG((Opcode >> 0) & 7);
36693 AREG((Opcode >> 0) & 7) += 4;
36695 READSX_LONG_F(adr, src)
36696 dst = AREGu32((Opcode >> 9) & 7);
36698 AREG((Opcode >> 9) & 7) = res;
36709 adr = AREG((Opcode >> 0) & 7) - 4;
36710 AREG((Opcode >> 0) & 7) = adr;
36712 READSX_LONG_F(adr, src)
36713 dst = AREGu32((Opcode >> 9) & 7);
36715 AREG((Opcode >> 9) & 7) = res;
36727 adr += AREG((Opcode >> 0) & 7);
36729 READSX_LONG_F(adr, src)
36730 dst = AREGu32((Opcode >> 9) & 7);
36732 AREG((Opcode >> 9) & 7) = res;
36743 adr = AREG((Opcode >> 0) & 7);
36746 READSX_LONG_F(adr, src)
36747 dst = AREGu32((Opcode >> 9) & 7);
36749 AREG((Opcode >> 9) & 7) = res;
36762 READSX_LONG_F(adr, src)
36763 dst = AREGu32((Opcode >> 9) & 7);
36765 AREG((Opcode >> 9) & 7) = res;
36778 READSX_LONG_F(adr, src)
36779 dst = AREGu32((Opcode >> 9) & 7);
36781 AREG((Opcode >> 9) & 7) = res;
36792 adr = GET_SWORD + ((u32)(PC) - BasePC);
36795 READSX_LONG_F(adr, src)
36796 dst = AREGu32((Opcode >> 9) & 7);
36798 AREG((Opcode >> 9) & 7) = res;
36809 adr = (u32)(PC) - BasePC;
36812 READSX_LONG_F(adr, src)
36813 dst = AREGu32((Opcode >> 9) & 7);
36815 AREG((Opcode >> 9) & 7) = res;
36827 dst = AREGu32((Opcode >> 9) & 7);
36829 AREG((Opcode >> 9) & 7) = res;
36830 #ifdef USE_CYCLONE_TIMING
36846 READSX_LONG_F(adr, src)
36847 dst = AREGu32((Opcode >> 9) & 7);
36849 AREG((Opcode >> 9) & 7) = res;
36863 READSX_LONG_F(adr, src)
36864 dst = AREGu32((Opcode >> 9) & 7);
36866 AREG((Opcode >> 9) & 7) = res;
36879 sft = (((Opcode >> 9) - 1) & 7) + 1;
36880 m68kcontext.io_cycle_counter -= sft * 2;
36881 src = (s32)DREGs8((Opcode >> 0) & 7);
36883 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
36884 res = ((s32)src) >> sft;
36887 DREGu8((Opcode >> 0) & 7) = res;
36899 sft = (((Opcode >> 9) - 1) & 7) + 1;
36900 m68kcontext.io_cycle_counter -= sft * 2;
36901 src = (s32)DREGs16((Opcode >> 0) & 7);
36903 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
36904 res = ((s32)src) >> sft;
36907 DREGu16((Opcode >> 0) & 7) = res;
36919 sft = (((Opcode >> 9) - 1) & 7) + 1;
36920 m68kcontext.io_cycle_counter -= sft * 2;
36921 src = (s32)DREGs32((Opcode >> 0) & 7);
36923 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
36924 res = ((s32)src) >> sft;
36925 flag_N = res >> 24;
36927 DREGu32((Opcode >> 0) & 7) = res;
36939 sft = (((Opcode >> 9) - 1) & 7) + 1;
36940 m68kcontext.io_cycle_counter -= sft * 2;
36941 src = DREGu8((Opcode >> 0) & 7);
36942 flag_N = flag_V = 0;
36943 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
36946 DREGu8((Opcode >> 0) & 7) = res;
36958 sft = (((Opcode >> 9) - 1) & 7) + 1;
36959 m68kcontext.io_cycle_counter -= sft * 2;
36960 src = DREGu16((Opcode >> 0) & 7);
36961 flag_N = flag_V = 0;
36962 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
36965 DREGu16((Opcode >> 0) & 7) = res;
36977 sft = (((Opcode >> 9) - 1) & 7) + 1;
36978 m68kcontext.io_cycle_counter -= sft * 2;
36979 src = DREGu32((Opcode >> 0) & 7);
36980 flag_N = flag_V = 0;
36981 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
36984 DREGu32((Opcode >> 0) & 7) = res;
36996 sft = (((Opcode >> 9) - 1) & 7) + 1;
36997 m68kcontext.io_cycle_counter -= sft * 2;
36998 src = DREGu8((Opcode >> 0) & 7);
36999 src |= (flag_X & M68K_SR_X) << 0;
37000 res = (src >> sft) | (src << (9 - sft));
37001 flag_X = flag_C = res >> 0;
37004 flag_NotZ = res & 0x000000FF;
37005 DREGu8((Opcode >> 0) & 7) = res;
37017 sft = (((Opcode >> 9) - 1) & 7) + 1;
37018 m68kcontext.io_cycle_counter -= sft * 2;
37019 src = DREGu16((Opcode >> 0) & 7);
37020 src |= (flag_X & M68K_SR_X) << 8;
37021 res = (src >> sft) | (src << (17 - sft));
37022 flag_X = flag_C = res >> 8;
37025 flag_NotZ = res & 0x0000FFFF;
37026 DREGu16((Opcode >> 0) & 7) = res;
37038 sft = (((Opcode >> 9) - 1) & 7) + 1;
37039 m68kcontext.io_cycle_counter -= sft * 2;
37040 src = DREGu32((Opcode >> 0) & 7);
37041 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37042 if (sft == 1) res = (src >> 1) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1)));
37043 else res = (src >> sft) | (src << (33 - sft)) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + sft)));
37046 flag_N = res >> 24;
37048 DREGu32((Opcode >> 0) & 7) = res;
37060 sft = (((Opcode >> 9) - 1) & 7) + 1;
37061 m68kcontext.io_cycle_counter -= sft * 2;
37062 src = DREGu8((Opcode >> 0) & 7);
37064 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37065 res = (src >> sft) | (src << (8 - sft));
37067 flag_NotZ = res & 0x000000FF;
37068 DREGu8((Opcode >> 0) & 7) = res;
37080 sft = (((Opcode >> 9) - 1) & 7) + 1;
37081 m68kcontext.io_cycle_counter -= sft * 2;
37082 src = DREGu16((Opcode >> 0) & 7);
37084 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37085 res = (src >> sft) | (src << (16 - sft));
37087 flag_NotZ = res & 0x0000FFFF;
37088 DREGu16((Opcode >> 0) & 7) = res;
37100 sft = (((Opcode >> 9) - 1) & 7) + 1;
37101 m68kcontext.io_cycle_counter -= sft * 2;
37102 src = DREGu32((Opcode >> 0) & 7);
37104 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37105 res = (src >> sft) | (src << (32 - sft));
37106 flag_N = res >> 24;
37108 DREGu32((Opcode >> 0) & 7) = res;
37120 sft = (((Opcode >> 9) - 1) & 7) + 1;
37121 m68kcontext.io_cycle_counter -= sft * 2;
37122 src = DREGu8((Opcode >> 0) & 7);
37125 flag_X = flag_C = src << (0 + sft);
37128 flag_NotZ = res & 0x000000FF;
37129 DREGu8((Opcode >> 0) & 7) = res;
37131 if ((sft > 7) && (src)) flag_V = M68K_SR_V;
37134 u32 msk = (((s32)0x80000000) >> (sft + 24)) & 0x000000FF;
37136 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37141 if (src) flag_V = M68K_SR_V;
37143 flag_X = flag_C = src << M68K_SR_C_SFT;
37145 DREGu8((Opcode >> 0) & 7) = res;
37159 sft = (((Opcode >> 9) - 1) & 7) + 1;
37160 m68kcontext.io_cycle_counter -= sft * 2;
37161 src = DREGu16((Opcode >> 0) & 7);
37162 flag_X = flag_C = src >> (8 - sft);
37165 flag_NotZ = res & 0x0000FFFF;
37166 DREGu16((Opcode >> 0) & 7) = res;
37169 u32 msk = (((s32)0x80000000) >> (sft + 16)) & 0x0000FFFF;
37171 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37184 sft = (((Opcode >> 9) - 1) & 7) + 1;
37185 m68kcontext.io_cycle_counter -= sft * 2;
37186 src = DREGu32((Opcode >> 0) & 7);
37187 flag_X = flag_C = src >> (24 - sft);
37189 flag_N = res >> 24;
37190 flag_NotZ = res & 0xFFFFFFFF;
37191 DREGu32((Opcode >> 0) & 7) = res;
37194 u32 msk = (((s32)0x80000000) >> (sft + 0)) & 0xFFFFFFFF;
37196 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37209 sft = (((Opcode >> 9) - 1) & 7) + 1;
37210 m68kcontext.io_cycle_counter -= sft * 2;
37211 src = DREGu8((Opcode >> 0) & 7);
37213 flag_X = flag_C = src << (0 + sft);
37216 flag_NotZ = res & 0x000000FF;
37217 DREGu8((Opcode >> 0) & 7) = res;
37229 sft = (((Opcode >> 9) - 1) & 7) + 1;
37230 m68kcontext.io_cycle_counter -= sft * 2;
37231 src = DREGu16((Opcode >> 0) & 7);
37233 flag_X = flag_C = src >> (8 - sft);
37236 flag_NotZ = res & 0x0000FFFF;
37237 DREGu16((Opcode >> 0) & 7) = res;
37249 sft = (((Opcode >> 9) - 1) & 7) + 1;
37250 m68kcontext.io_cycle_counter -= sft * 2;
37251 src = DREGu32((Opcode >> 0) & 7);
37253 flag_X = flag_C = src >> (24 - sft);
37255 flag_N = res >> 24;
37256 flag_NotZ = res & 0xFFFFFFFF;
37257 DREGu32((Opcode >> 0) & 7) = res;
37269 sft = (((Opcode >> 9) - 1) & 7) + 1;
37270 m68kcontext.io_cycle_counter -= sft * 2;
37271 src = DREGu8((Opcode >> 0) & 7);
37272 src |= (flag_X & M68K_SR_X) << 0;
37273 res = (src << sft) | (src >> (9 - sft));
37274 flag_X = flag_C = res >> 0;
37277 flag_NotZ = res & 0x000000FF;
37278 DREGu8((Opcode >> 0) & 7) = res;
37290 sft = (((Opcode >> 9) - 1) & 7) + 1;
37291 m68kcontext.io_cycle_counter -= sft * 2;
37292 src = DREGu16((Opcode >> 0) & 7);
37293 src |= (flag_X & M68K_SR_X) << 8;
37294 res = (src << sft) | (src >> (17 - sft));
37295 flag_X = flag_C = res >> 8;
37298 flag_NotZ = res & 0x0000FFFF;
37299 DREGu16((Opcode >> 0) & 7) = res;
37311 sft = (((Opcode >> 9) - 1) & 7) + 1;
37312 m68kcontext.io_cycle_counter -= sft * 2;
37313 src = DREGu32((Opcode >> 0) & 7);
37314 flag_C = src >> ((32 - M68K_SR_C_SFT) - sft);
37315 if (sft == 1) res = (src << 1) | ((flag_X & M68K_SR_X) >> ((M68K_SR_X_SFT + 1) - 1));
37316 else res = (src << sft) | (src >> (33 - sft)) | ((flag_X & M68K_SR_X) >> ((M68K_SR_X_SFT + 1) - sft));
37319 flag_N = res >> 24;
37321 DREGu32((Opcode >> 0) & 7) = res;
37333 sft = (((Opcode >> 9) - 1) & 7) + 1;
37334 m68kcontext.io_cycle_counter -= sft * 2;
37335 src = DREGu8((Opcode >> 0) & 7);
37337 flag_C = src << (0 + sft);
37338 res = (src << sft) | (src >> (8 - sft));
37340 flag_NotZ = res & 0x000000FF;
37341 DREGu8((Opcode >> 0) & 7) = res;
37353 sft = (((Opcode >> 9) - 1) & 7) + 1;
37354 m68kcontext.io_cycle_counter -= sft * 2;
37355 src = DREGu16((Opcode >> 0) & 7);
37357 flag_C = src >> (8 - sft);
37358 res = (src << sft) | (src >> (16 - sft));
37360 flag_NotZ = res & 0x0000FFFF;
37361 DREGu16((Opcode >> 0) & 7) = res;
37373 sft = (((Opcode >> 9) - 1) & 7) + 1;
37374 m68kcontext.io_cycle_counter -= sft * 2;
37375 src = DREGu32((Opcode >> 0) & 7);
37377 flag_C = src >> (24 - sft);
37378 res = (src << sft) | (src >> (32 - sft));
37379 flag_N = res >> 24;
37381 DREGu32((Opcode >> 0) & 7) = res;
37393 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37394 src = (s32)DREGs8((Opcode >> 0) & 7);
37397 m68kcontext.io_cycle_counter -= sft * 2;
37401 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37402 res = ((s32)src) >> sft;
37405 DREGu8((Opcode >> 0) & 7) = res;
37409 if (src & (1 << 7))
37411 flag_N = M68K_SR_N;
37414 flag_C = M68K_SR_C;
37415 flag_X = M68K_SR_X;
37417 DREGu8((Opcode >> 0) & 7) = res;
37427 DREGu8((Opcode >> 0) & 7) = res;
37446 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37447 src = (s32)DREGs16((Opcode >> 0) & 7);
37450 m68kcontext.io_cycle_counter -= sft * 2;
37454 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37455 res = ((s32)src) >> sft;
37458 DREGu16((Opcode >> 0) & 7) = res;
37462 if (src & (1 << 15))
37464 flag_N = M68K_SR_N;
37467 flag_C = M68K_SR_C;
37468 flag_X = M68K_SR_X;
37470 DREGu16((Opcode >> 0) & 7) = res;
37480 DREGu16((Opcode >> 0) & 7) = res;
37494 #ifdef USE_CYCLONE_TIMING
37504 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37505 src = (s32)DREGs32((Opcode >> 0) & 7);
37508 m68kcontext.io_cycle_counter -= sft * 2;
37512 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37513 res = ((s32)src) >> sft;
37514 flag_N = res >> 24;
37516 DREGu32((Opcode >> 0) & 7) = res;
37520 if (src & (1 << 31))
37522 flag_N = M68K_SR_N;
37525 flag_C = M68K_SR_C;
37526 flag_X = M68K_SR_X;
37528 DREGu32((Opcode >> 0) & 7) = res;
37538 DREGu32((Opcode >> 0) & 7) = res;
37544 flag_N = src >> 24;
37558 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37559 src = DREGu8((Opcode >> 0) & 7);
37562 m68kcontext.io_cycle_counter -= sft * 2;
37565 flag_N = flag_V = 0;
37566 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37569 DREGu8((Opcode >> 0) & 7) = res;
37573 flag_X = flag_C = 0;
37578 DREGu8((Opcode >> 0) & 7) = res;
37597 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37598 src = DREGu16((Opcode >> 0) & 7);
37601 m68kcontext.io_cycle_counter -= sft * 2;
37604 flag_N = flag_V = 0;
37605 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37608 DREGu16((Opcode >> 0) & 7) = res;
37612 flag_X = flag_C = 0;
37617 DREGu16((Opcode >> 0) & 7) = res;
37631 #ifdef USE_CYCLONE_TIMING
37641 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37642 src = DREGu32((Opcode >> 0) & 7);
37645 m68kcontext.io_cycle_counter -= sft * 2;
37648 flag_N = flag_V = 0;
37649 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37652 DREGu32((Opcode >> 0) & 7) = res;
37656 if (sft == 32) flag_C = src >> (31 - M68K_SR_C_SFT);
37663 DREGu32((Opcode >> 0) & 7) = res;
37669 flag_N = src >> 24;
37683 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37684 src = DREGu8((Opcode >> 0) & 7);
37687 m68kcontext.io_cycle_counter -= sft * 2;
37690 src |= (flag_X & M68K_SR_X) << 0;
37691 res = (src >> sft) | (src << (9 - sft));
37692 flag_X = flag_C = res >> 0;
37695 flag_NotZ = res & 0x000000FF;
37696 DREGu8((Opcode >> 0) & 7) = res;
37715 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37716 src = DREGu16((Opcode >> 0) & 7);
37719 m68kcontext.io_cycle_counter -= sft * 2;
37722 src |= (flag_X & M68K_SR_X) << 8;
37723 res = (src >> sft) | (src << (17 - sft));
37724 flag_X = flag_C = res >> 8;
37727 flag_NotZ = res & 0x0000FFFF;
37728 DREGu16((Opcode >> 0) & 7) = res;
37742 #ifdef USE_CYCLONE_TIMING
37752 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37753 src = DREGu32((Opcode >> 0) & 7);
37756 m68kcontext.io_cycle_counter -= sft * 2;
37761 if (sft == 1) res = (src >> 1) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1)));
37762 else res = (src >> sft) | (src << (33 - sft)) | (((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1))) >> (sft - 1));
37763 flag_X = (src >> (32 - sft)) << M68K_SR_X_SFT;
37768 flag_N = res >> 24;
37770 DREGu32((Opcode >> 0) & 7) = res;
37776 flag_N = src >> 24;
37790 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37791 src = DREGu8((Opcode >> 0) & 7);
37794 m68kcontext.io_cycle_counter -= sft * 2;
37797 flag_C = src << (M68K_SR_C_SFT - ((sft - 1) & 7));
37798 res = (src >> sft) | (src << (8 - sft));
37801 flag_NotZ = res & 0x000000FF;
37802 DREGu8((Opcode >> 0) & 7) = res;
37821 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37822 src = DREGu16((Opcode >> 0) & 7);
37825 m68kcontext.io_cycle_counter -= sft * 2;
37828 flag_C = (src >> ((sft - 1) & 15)) << M68K_SR_C_SFT;
37829 res = (src >> sft) | (src << (16 - sft));
37832 flag_NotZ = res & 0x0000FFFF;
37833 DREGu16((Opcode >> 0) & 7) = res;
37847 #ifdef USE_CYCLONE_TIMING
37857 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37858 src = DREGu32((Opcode >> 0) & 7);
37861 m68kcontext.io_cycle_counter -= sft * 2;
37864 flag_C = (src >> ((sft - 1) & 31)) << M68K_SR_C_SFT;
37865 res = (src >> sft) | (src << (32 - sft));
37867 flag_N = res >> 24;
37869 DREGu32((Opcode >> 0) & 7) = res;
37875 flag_N = src >> 24;
37889 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37890 src = DREGu8((Opcode >> 0) & 7);
37893 m68kcontext.io_cycle_counter -= sft * 2;
37896 flag_X = flag_C = (src << sft) >> 0;
37897 res = (src << sft) & 0x000000FF;
37900 DREGu8((Opcode >> 0) & 7) = res;
37903 u32 msk = (((s32)0x80000000) >> (sft + 24)) & 0x000000FF;
37905 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37910 if (sft == 256) flag_C = src << M68K_SR_C_SFT;
37913 if (src) flag_V = M68K_SR_V;
37916 DREGu8((Opcode >> 0) & 7) = res;
37937 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37938 src = DREGu16((Opcode >> 0) & 7);
37941 m68kcontext.io_cycle_counter -= sft * 2;
37944 flag_X = flag_C = (src << sft) >> 8;
37945 res = (src << sft) & 0x0000FFFF;
37948 DREGu16((Opcode >> 0) & 7) = res;
37951 u32 msk = (((s32)0x80000000) >> (sft + 16)) & 0x0000FFFF;
37953 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37958 if (sft == 65536) flag_C = src << M68K_SR_C_SFT;
37961 if (src) flag_V = M68K_SR_V;
37964 DREGu16((Opcode >> 0) & 7) = res;
37980 #ifdef USE_CYCLONE_TIMING
37990 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37991 src = DREGu32((Opcode >> 0) & 7);
37994 m68kcontext.io_cycle_counter -= sft * 2;
37997 flag_X = flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
37999 flag_N = res >> 24;
38001 DREGu32((Opcode >> 0) & 7) = res;
38004 u32 msk = (((s32)0x80000000) >> (sft + 0)) & 0xFFFFFFFF;
38006 if ((src) && (src != msk)) flag_V = M68K_SR_V;
38011 if (sft == 0) flag_C = src << M68K_SR_C_SFT;
38014 if (src) flag_V = M68K_SR_V;
38017 DREGu32((Opcode >> 0) & 7) = res;
38025 flag_N = src >> 24;
38039 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38040 src = DREGu8((Opcode >> 0) & 7);
38043 m68kcontext.io_cycle_counter -= sft * 2;
38046 flag_X = flag_C = (src << sft) >> 0;
38047 res = (src << sft) & 0x000000FF;
38051 DREGu8((Opcode >> 0) & 7) = res;
38055 flag_X = flag_C = 0;
38060 DREGu8((Opcode >> 0) & 7) = res;
38079 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38080 src = DREGu16((Opcode >> 0) & 7);
38083 m68kcontext.io_cycle_counter -= sft * 2;
38086 flag_X = flag_C = (src << sft) >> 8;
38087 res = (src << sft) & 0x0000FFFF;
38091 DREGu16((Opcode >> 0) & 7) = res;
38095 flag_X = flag_C = 0;
38100 DREGu16((Opcode >> 0) & 7) = res;
38114 #ifdef USE_CYCLONE_TIMING
38124 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38125 src = DREGu32((Opcode >> 0) & 7);
38128 m68kcontext.io_cycle_counter -= sft * 2;
38131 flag_X = flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38134 flag_N = res >> 24;
38136 DREGu32((Opcode >> 0) & 7) = res;
38140 if (sft == 32) flag_C = src << M68K_SR_C_SFT;
38147 DREGu32((Opcode >> 0) & 7) = res;
38153 flag_N = src >> 24;
38167 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38168 src = DREGu8((Opcode >> 0) & 7);
38171 m68kcontext.io_cycle_counter -= sft * 2;
38174 src |= (flag_X & M68K_SR_X) << 0;
38175 res = (src << sft) | (src >> (9 - sft));
38176 flag_X = flag_C = res >> 0;
38179 flag_NotZ = res & 0x000000FF;
38180 DREGu8((Opcode >> 0) & 7) = res;
38199 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38200 src = DREGu16((Opcode >> 0) & 7);
38203 m68kcontext.io_cycle_counter -= sft * 2;
38206 src |= (flag_X & M68K_SR_X) << 8;
38207 res = (src << sft) | (src >> (17 - sft));
38208 flag_X = flag_C = res >> 8;
38211 flag_NotZ = res & 0x0000FFFF;
38212 DREGu16((Opcode >> 0) & 7) = res;
38226 #ifdef USE_CYCLONE_TIMING
38236 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38237 src = DREGu32((Opcode >> 0) & 7);
38240 m68kcontext.io_cycle_counter -= sft * 2;
38245 if (sft == 1) res = (src << 1) | ((flag_X >> ((M68K_SR_X_SFT + 1) - 1)) & 1);
38246 else res = (src << sft) | (src >> (33 - sft)) | (((flag_X >> ((M68K_SR_X_SFT + 1) - 1)) & 1) << (sft - 1));
38247 flag_X = (src >> (32 - sft)) << M68K_SR_X_SFT;
38252 flag_N = res >> 24;
38254 DREGu32((Opcode >> 0) & 7) = res;
38260 flag_N = src >> 24;
38274 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38275 src = DREGu8((Opcode >> 0) & 7);
38278 m68kcontext.io_cycle_counter -= sft * 2;
38281 flag_C = (src << sft) >> 0;
38282 res = ((src << sft) | (src >> (8 - sft))) & 0x000000FF;
38286 DREGu8((Opcode >> 0) & 7) = res;
38291 flag_C = src << M68K_SR_C_SFT;
38312 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38313 src = DREGu16((Opcode >> 0) & 7);
38316 m68kcontext.io_cycle_counter -= sft * 2;
38319 flag_C = (src << sft) >> 8;
38320 res = ((src << sft) | (src >> (16 - sft))) & 0x0000FFFF;
38324 DREGu16((Opcode >> 0) & 7) = res;
38329 flag_C = src << M68K_SR_C_SFT;
38345 #ifdef USE_CYCLONE_TIMING
38355 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38356 src = DREGu32((Opcode >> 0) & 7);
38359 m68kcontext.io_cycle_counter -= sft * 2;
38362 flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38363 res = (src << sft) | (src >> (32 - sft));
38365 flag_N = res >> 24;
38367 DREGu32((Opcode >> 0) & 7) = res;
38372 flag_C = src << M68K_SR_C_SFT;
38373 flag_N = src >> 24;
38380 flag_N = src >> 24;
38392 adr = AREG((Opcode >> 0) & 7);
38394 READ_WORD_F(adr, src)
38396 flag_X = flag_C = src << M68K_SR_C_SFT;
38397 res = (src >> 1) | (src & (1 << 15));
38400 WRITE_WORD_F(adr, res)
38411 adr = AREG((Opcode >> 0) & 7);
38412 AREG((Opcode >> 0) & 7) += 2;
38414 READ_WORD_F(adr, src)
38416 flag_X = flag_C = src << M68K_SR_C_SFT;
38417 res = (src >> 1) | (src & (1 << 15));
38420 WRITE_WORD_F(adr, res)
38431 adr = AREG((Opcode >> 0) & 7) - 2;
38432 AREG((Opcode >> 0) & 7) = adr;
38434 READ_WORD_F(adr, src)
38436 flag_X = flag_C = src << M68K_SR_C_SFT;
38437 res = (src >> 1) | (src & (1 << 15));
38440 WRITE_WORD_F(adr, res)
38452 adr += AREG((Opcode >> 0) & 7);
38454 READ_WORD_F(adr, src)
38456 flag_X = flag_C = src << M68K_SR_C_SFT;
38457 res = (src >> 1) | (src & (1 << 15));
38460 WRITE_WORD_F(adr, res)
38471 adr = AREG((Opcode >> 0) & 7);
38474 READ_WORD_F(adr, src)
38476 flag_X = flag_C = src << M68K_SR_C_SFT;
38477 res = (src >> 1) | (src & (1 << 15));
38480 WRITE_WORD_F(adr, res)
38493 READ_WORD_F(adr, src)
38495 flag_X = flag_C = src << M68K_SR_C_SFT;
38496 res = (src >> 1) | (src & (1 << 15));
38499 WRITE_WORD_F(adr, res)
38512 READ_WORD_F(adr, src)
38514 flag_X = flag_C = src << M68K_SR_C_SFT;
38515 res = (src >> 1) | (src & (1 << 15));
38518 WRITE_WORD_F(adr, res)
38532 READ_WORD_F(adr, src)
38534 flag_X = flag_C = src << M68K_SR_C_SFT;
38535 res = (src >> 1) | (src & (1 << 15));
38538 WRITE_WORD_F(adr, res)
38552 READ_WORD_F(adr, src)
38554 flag_X = flag_C = src << M68K_SR_C_SFT;
38555 res = (src >> 1) | (src & (1 << 15));
38558 WRITE_WORD_F(adr, res)
38569 adr = AREG((Opcode >> 0) & 7);
38571 READ_WORD_F(adr, src)
38572 flag_N = flag_V = 0;
38573 flag_X = flag_C = src << M68K_SR_C_SFT;
38576 WRITE_WORD_F(adr, res)
38587 adr = AREG((Opcode >> 0) & 7);
38588 AREG((Opcode >> 0) & 7) += 2;
38590 READ_WORD_F(adr, src)
38591 flag_N = flag_V = 0;
38592 flag_X = flag_C = src << M68K_SR_C_SFT;
38595 WRITE_WORD_F(adr, res)
38606 adr = AREG((Opcode >> 0) & 7) - 2;
38607 AREG((Opcode >> 0) & 7) = adr;
38609 READ_WORD_F(adr, src)
38610 flag_N = flag_V = 0;
38611 flag_X = flag_C = src << M68K_SR_C_SFT;
38614 WRITE_WORD_F(adr, res)
38626 adr += AREG((Opcode >> 0) & 7);
38628 READ_WORD_F(adr, src)
38629 flag_N = flag_V = 0;
38630 flag_X = flag_C = src << M68K_SR_C_SFT;
38633 WRITE_WORD_F(adr, res)
38644 adr = AREG((Opcode >> 0) & 7);
38647 READ_WORD_F(adr, src)
38648 flag_N = flag_V = 0;
38649 flag_X = flag_C = src << M68K_SR_C_SFT;
38652 WRITE_WORD_F(adr, res)
38665 READ_WORD_F(adr, src)
38666 flag_N = flag_V = 0;
38667 flag_X = flag_C = src << M68K_SR_C_SFT;
38670 WRITE_WORD_F(adr, res)
38683 READ_WORD_F(adr, src)
38684 flag_N = flag_V = 0;
38685 flag_X = flag_C = src << M68K_SR_C_SFT;
38688 WRITE_WORD_F(adr, res)
38702 READ_WORD_F(adr, src)
38703 flag_N = flag_V = 0;
38704 flag_X = flag_C = src << M68K_SR_C_SFT;
38707 WRITE_WORD_F(adr, res)
38721 READ_WORD_F(adr, src)
38722 flag_N = flag_V = 0;
38723 flag_X = flag_C = src << M68K_SR_C_SFT;
38726 WRITE_WORD_F(adr, res)
38737 adr = AREG((Opcode >> 0) & 7);
38739 READ_WORD_F(adr, src)
38741 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38742 flag_C = flag_X = src << M68K_SR_C_SFT;
38745 WRITE_WORD_F(adr, res)
38756 adr = AREG((Opcode >> 0) & 7);
38757 AREG((Opcode >> 0) & 7) += 2;
38759 READ_WORD_F(adr, src)
38761 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38762 flag_C = flag_X = src << M68K_SR_C_SFT;
38765 WRITE_WORD_F(adr, res)
38776 adr = AREG((Opcode >> 0) & 7) - 2;
38777 AREG((Opcode >> 0) & 7) = adr;
38779 READ_WORD_F(adr, src)
38781 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38782 flag_C = flag_X = src << M68K_SR_C_SFT;
38785 WRITE_WORD_F(adr, res)
38797 adr += AREG((Opcode >> 0) & 7);
38799 READ_WORD_F(adr, src)
38801 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38802 flag_C = flag_X = src << M68K_SR_C_SFT;
38805 WRITE_WORD_F(adr, res)
38816 adr = AREG((Opcode >> 0) & 7);
38819 READ_WORD_F(adr, src)
38821 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38822 flag_C = flag_X = src << M68K_SR_C_SFT;
38825 WRITE_WORD_F(adr, res)
38838 READ_WORD_F(adr, src)
38840 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38841 flag_C = flag_X = src << M68K_SR_C_SFT;
38844 WRITE_WORD_F(adr, res)
38857 READ_WORD_F(adr, src)
38859 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38860 flag_C = flag_X = src << M68K_SR_C_SFT;
38863 WRITE_WORD_F(adr, res)
38877 READ_WORD_F(adr, src)
38879 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38880 flag_C = flag_X = src << M68K_SR_C_SFT;
38883 WRITE_WORD_F(adr, res)
38897 READ_WORD_F(adr, src)
38899 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38900 flag_C = flag_X = src << M68K_SR_C_SFT;
38903 WRITE_WORD_F(adr, res)
38914 adr = AREG((Opcode >> 0) & 7);
38916 READ_WORD_F(adr, src)
38918 flag_C = src << M68K_SR_C_SFT;
38919 res = (src >> 1) | (src << 15);
38921 flag_NotZ = res & 0x0000FFFF;
38922 WRITE_WORD_F(adr, res)
38933 adr = AREG((Opcode >> 0) & 7);
38934 AREG((Opcode >> 0) & 7) += 2;
38936 READ_WORD_F(adr, src)
38938 flag_C = src << M68K_SR_C_SFT;
38939 res = (src >> 1) | (src << 15);
38941 flag_NotZ = res & 0x0000FFFF;
38942 WRITE_WORD_F(adr, res)
38953 adr = AREG((Opcode >> 0) & 7) - 2;
38954 AREG((Opcode >> 0) & 7) = adr;
38956 READ_WORD_F(adr, src)
38958 flag_C = src << M68K_SR_C_SFT;
38959 res = (src >> 1) | (src << 15);
38961 flag_NotZ = res & 0x0000FFFF;
38962 WRITE_WORD_F(adr, res)
38974 adr += AREG((Opcode >> 0) & 7);
38976 READ_WORD_F(adr, src)
38978 flag_C = src << M68K_SR_C_SFT;
38979 res = (src >> 1) | (src << 15);
38981 flag_NotZ = res & 0x0000FFFF;
38982 WRITE_WORD_F(adr, res)
38993 adr = AREG((Opcode >> 0) & 7);
38996 READ_WORD_F(adr, src)
38998 flag_C = src << M68K_SR_C_SFT;
38999 res = (src >> 1) | (src << 15);
39001 flag_NotZ = res & 0x0000FFFF;
39002 WRITE_WORD_F(adr, res)
39015 READ_WORD_F(adr, src)
39017 flag_C = src << M68K_SR_C_SFT;
39018 res = (src >> 1) | (src << 15);
39020 flag_NotZ = res & 0x0000FFFF;
39021 WRITE_WORD_F(adr, res)
39034 READ_WORD_F(adr, src)
39036 flag_C = src << M68K_SR_C_SFT;
39037 res = (src >> 1) | (src << 15);
39039 flag_NotZ = res & 0x0000FFFF;
39040 WRITE_WORD_F(adr, res)
39054 READ_WORD_F(adr, src)
39056 flag_C = src << M68K_SR_C_SFT;
39057 res = (src >> 1) | (src << 15);
39059 flag_NotZ = res & 0x0000FFFF;
39060 WRITE_WORD_F(adr, res)
39074 READ_WORD_F(adr, src)
39076 flag_C = src << M68K_SR_C_SFT;
39077 res = (src >> 1) | (src << 15);
39079 flag_NotZ = res & 0x0000FFFF;
39080 WRITE_WORD_F(adr, res)
39091 adr = AREG((Opcode >> 0) & 7);
39093 READ_WORD_F(adr, src)
39094 flag_X = flag_C = src >> 7;
39096 flag_V = (src ^ res) >> 8;
39098 flag_NotZ = res & 0x0000FFFF;
39099 WRITE_WORD_F(adr, res)
39110 adr = AREG((Opcode >> 0) & 7);
39111 AREG((Opcode >> 0) & 7) += 2;
39113 READ_WORD_F(adr, src)
39114 flag_X = flag_C = src >> 7;
39116 flag_V = (src ^ res) >> 8;
39118 flag_NotZ = res & 0x0000FFFF;
39119 WRITE_WORD_F(adr, res)
39130 adr = AREG((Opcode >> 0) & 7) - 2;
39131 AREG((Opcode >> 0) & 7) = adr;
39133 READ_WORD_F(adr, src)
39134 flag_X = flag_C = src >> 7;
39136 flag_V = (src ^ res) >> 8;
39138 flag_NotZ = res & 0x0000FFFF;
39139 WRITE_WORD_F(adr, res)
39151 adr += AREG((Opcode >> 0) & 7);
39153 READ_WORD_F(adr, src)
39154 flag_X = flag_C = src >> 7;
39156 flag_V = (src ^ res) >> 8;
39158 flag_NotZ = res & 0x0000FFFF;
39159 WRITE_WORD_F(adr, res)
39170 adr = AREG((Opcode >> 0) & 7);
39173 READ_WORD_F(adr, src)
39174 flag_X = flag_C = src >> 7;
39176 flag_V = (src ^ res) >> 8;
39178 flag_NotZ = res & 0x0000FFFF;
39179 WRITE_WORD_F(adr, res)
39192 READ_WORD_F(adr, src)
39193 flag_X = flag_C = src >> 7;
39195 flag_V = (src ^ res) >> 8;
39197 flag_NotZ = res & 0x0000FFFF;
39198 WRITE_WORD_F(adr, res)
39211 READ_WORD_F(adr, src)
39212 flag_X = flag_C = src >> 7;
39214 flag_V = (src ^ res) >> 8;
39216 flag_NotZ = res & 0x0000FFFF;
39217 WRITE_WORD_F(adr, res)
39231 READ_WORD_F(adr, src)
39232 flag_X = flag_C = src >> 7;
39234 flag_V = (src ^ res) >> 8;
39236 flag_NotZ = res & 0x0000FFFF;
39237 WRITE_WORD_F(adr, res)
39251 READ_WORD_F(adr, src)
39252 flag_X = flag_C = src >> 7;
39254 flag_V = (src ^ res) >> 8;
39256 flag_NotZ = res & 0x0000FFFF;
39257 WRITE_WORD_F(adr, res)
39268 adr = AREG((Opcode >> 0) & 7);
39270 READ_WORD_F(adr, src)
39272 flag_X = flag_C = src >> 7;
39275 flag_NotZ = res & 0x0000FFFF;
39276 WRITE_WORD_F(adr, res)
39287 adr = AREG((Opcode >> 0) & 7);
39288 AREG((Opcode >> 0) & 7) += 2;
39290 READ_WORD_F(adr, src)
39292 flag_X = flag_C = src >> 7;
39295 flag_NotZ = res & 0x0000FFFF;
39296 WRITE_WORD_F(adr, res)
39307 adr = AREG((Opcode >> 0) & 7) - 2;
39308 AREG((Opcode >> 0) & 7) = adr;
39310 READ_WORD_F(adr, src)
39312 flag_X = flag_C = src >> 7;
39315 flag_NotZ = res & 0x0000FFFF;
39316 WRITE_WORD_F(adr, res)
39328 adr += AREG((Opcode >> 0) & 7);
39330 READ_WORD_F(adr, src)
39332 flag_X = flag_C = src >> 7;
39335 flag_NotZ = res & 0x0000FFFF;
39336 WRITE_WORD_F(adr, res)
39347 adr = AREG((Opcode >> 0) & 7);
39350 READ_WORD_F(adr, src)
39352 flag_X = flag_C = src >> 7;
39355 flag_NotZ = res & 0x0000FFFF;
39356 WRITE_WORD_F(adr, res)
39369 READ_WORD_F(adr, src)
39371 flag_X = flag_C = src >> 7;
39374 flag_NotZ = res & 0x0000FFFF;
39375 WRITE_WORD_F(adr, res)
39388 READ_WORD_F(adr, src)
39390 flag_X = flag_C = src >> 7;
39393 flag_NotZ = res & 0x0000FFFF;
39394 WRITE_WORD_F(adr, res)
39408 READ_WORD_F(adr, src)
39410 flag_X = flag_C = src >> 7;
39413 flag_NotZ = res & 0x0000FFFF;
39414 WRITE_WORD_F(adr, res)
39428 READ_WORD_F(adr, src)
39430 flag_X = flag_C = src >> 7;
39433 flag_NotZ = res & 0x0000FFFF;
39434 WRITE_WORD_F(adr, res)
39445 adr = AREG((Opcode >> 0) & 7);
39447 READ_WORD_F(adr, src)
39449 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39450 flag_X = flag_C = src >> 7;
39452 flag_NotZ = res & 0x0000FFFF;
39453 WRITE_WORD_F(adr, res)
39464 adr = AREG((Opcode >> 0) & 7);
39465 AREG((Opcode >> 0) & 7) += 2;
39467 READ_WORD_F(adr, src)
39469 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39470 flag_X = flag_C = src >> 7;
39472 flag_NotZ = res & 0x0000FFFF;
39473 WRITE_WORD_F(adr, res)
39484 adr = AREG((Opcode >> 0) & 7) - 2;
39485 AREG((Opcode >> 0) & 7) = adr;
39487 READ_WORD_F(adr, src)
39489 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39490 flag_X = flag_C = src >> 7;
39492 flag_NotZ = res & 0x0000FFFF;
39493 WRITE_WORD_F(adr, res)
39505 adr += AREG((Opcode >> 0) & 7);
39507 READ_WORD_F(adr, src)
39509 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39510 flag_X = flag_C = src >> 7;
39512 flag_NotZ = res & 0x0000FFFF;
39513 WRITE_WORD_F(adr, res)
39524 adr = AREG((Opcode >> 0) & 7);
39527 READ_WORD_F(adr, src)
39529 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39530 flag_X = flag_C = src >> 7;
39532 flag_NotZ = res & 0x0000FFFF;
39533 WRITE_WORD_F(adr, res)
39546 READ_WORD_F(adr, src)
39548 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39549 flag_X = flag_C = src >> 7;
39551 flag_NotZ = res & 0x0000FFFF;
39552 WRITE_WORD_F(adr, res)
39565 READ_WORD_F(adr, src)
39567 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39568 flag_X = flag_C = src >> 7;
39570 flag_NotZ = res & 0x0000FFFF;
39571 WRITE_WORD_F(adr, res)
39585 READ_WORD_F(adr, src)
39587 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39588 flag_X = flag_C = src >> 7;
39590 flag_NotZ = res & 0x0000FFFF;
39591 WRITE_WORD_F(adr, res)
39605 READ_WORD_F(adr, src)
39607 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39608 flag_X = flag_C = src >> 7;
39610 flag_NotZ = res & 0x0000FFFF;
39611 WRITE_WORD_F(adr, res)
39622 adr = AREG((Opcode >> 0) & 7);
39624 READ_WORD_F(adr, src)
39627 res = (src << 1) | (src >> 15);
39629 flag_NotZ = res & 0x0000FFFF;
39630 WRITE_WORD_F(adr, res)
39641 adr = AREG((Opcode >> 0) & 7);
39642 AREG((Opcode >> 0) & 7) += 2;
39644 READ_WORD_F(adr, src)
39647 res = (src << 1) | (src >> 15);
39649 flag_NotZ = res & 0x0000FFFF;
39650 WRITE_WORD_F(adr, res)
39661 adr = AREG((Opcode >> 0) & 7) - 2;
39662 AREG((Opcode >> 0) & 7) = adr;
39664 READ_WORD_F(adr, src)
39667 res = (src << 1) | (src >> 15);
39669 flag_NotZ = res & 0x0000FFFF;
39670 WRITE_WORD_F(adr, res)
39682 adr += AREG((Opcode >> 0) & 7);
39684 READ_WORD_F(adr, src)
39687 res = (src << 1) | (src >> 15);
39689 flag_NotZ = res & 0x0000FFFF;
39690 WRITE_WORD_F(adr, res)
39701 adr = AREG((Opcode >> 0) & 7);
39704 READ_WORD_F(adr, src)
39707 res = (src << 1) | (src >> 15);
39709 flag_NotZ = res & 0x0000FFFF;
39710 WRITE_WORD_F(adr, res)
39723 READ_WORD_F(adr, src)
39726 res = (src << 1) | (src >> 15);
39728 flag_NotZ = res & 0x0000FFFF;
39729 WRITE_WORD_F(adr, res)
39742 READ_WORD_F(adr, src)
39745 res = (src << 1) | (src >> 15);
39747 flag_NotZ = res & 0x0000FFFF;
39748 WRITE_WORD_F(adr, res)
39762 READ_WORD_F(adr, src)
39765 res = (src << 1) | (src >> 15);
39767 flag_NotZ = res & 0x0000FFFF;
39768 WRITE_WORD_F(adr, res)
39782 READ_WORD_F(adr, src)
39785 res = (src << 1) | (src >> 15);
39787 flag_NotZ = res & 0x0000FFFF;
39788 WRITE_WORD_F(adr, res)