3 #define NOT_POLLING g_m68kcontext->not_polling = 1;
15 res = DREGu8((Opcode >> 0) & 7);
21 DREGu8((Opcode >> 0) & 7) = res;
32 adr = AREG((Opcode >> 0) & 7);
40 WRITE_BYTE_F(adr, res)
52 adr = AREG((Opcode >> 0) & 7);
53 AREG((Opcode >> 0) & 7) += 1;
61 WRITE_BYTE_F(adr, res)
73 adr = AREG((Opcode >> 0) & 7) - 1;
74 AREG((Opcode >> 0) & 7) = adr;
82 WRITE_BYTE_F(adr, res)
95 adr += AREG((Opcode >> 0) & 7);
103 WRITE_BYTE_F(adr, res)
115 adr = AREG((Opcode >> 0) & 7);
118 READ_BYTE_F(adr, res)
124 WRITE_BYTE_F(adr, res)
138 READ_BYTE_F(adr, res)
144 WRITE_BYTE_F(adr, res)
158 READ_BYTE_F(adr, res)
164 WRITE_BYTE_F(adr, res)
179 READ_BYTE_F(adr, res)
185 WRITE_BYTE_F(adr, res)
200 READ_BYTE_F(adr, res)
206 WRITE_BYTE_F(adr, res)
218 res = DREGu16((Opcode >> 0) & 7);
224 DREGu16((Opcode >> 0) & 7) = res;
235 adr = AREG((Opcode >> 0) & 7);
237 READ_WORD_F(adr, res)
243 WRITE_WORD_F(adr, res)
255 adr = AREG((Opcode >> 0) & 7);
256 AREG((Opcode >> 0) & 7) += 2;
258 READ_WORD_F(adr, res)
264 WRITE_WORD_F(adr, res)
276 adr = AREG((Opcode >> 0) & 7) - 2;
277 AREG((Opcode >> 0) & 7) = adr;
279 READ_WORD_F(adr, res)
285 WRITE_WORD_F(adr, res)
298 adr += AREG((Opcode >> 0) & 7);
300 READ_WORD_F(adr, res)
306 WRITE_WORD_F(adr, res)
318 adr = AREG((Opcode >> 0) & 7);
321 READ_WORD_F(adr, res)
327 WRITE_WORD_F(adr, res)
341 READ_WORD_F(adr, res)
347 WRITE_WORD_F(adr, res)
361 READ_WORD_F(adr, res)
367 WRITE_WORD_F(adr, res)
382 READ_WORD_F(adr, res)
388 WRITE_WORD_F(adr, res)
403 READ_WORD_F(adr, res)
409 WRITE_WORD_F(adr, res)
421 res = DREGu32((Opcode >> 0) & 7);
427 DREGu32((Opcode >> 0) & 7) = res;
438 adr = AREG((Opcode >> 0) & 7);
440 READ_LONG_F(adr, res)
446 WRITE_LONG_F(adr, res)
458 adr = AREG((Opcode >> 0) & 7);
459 AREG((Opcode >> 0) & 7) += 4;
461 READ_LONG_F(adr, res)
467 WRITE_LONG_F(adr, res)
479 adr = AREG((Opcode >> 0) & 7) - 4;
480 AREG((Opcode >> 0) & 7) = adr;
482 READ_LONG_F(adr, res)
488 WRITE_LONG_F(adr, res)
501 adr += AREG((Opcode >> 0) & 7);
503 READ_LONG_F(adr, res)
509 WRITE_LONG_F(adr, res)
521 adr = AREG((Opcode >> 0) & 7);
524 READ_LONG_F(adr, res)
530 WRITE_LONG_F(adr, res)
544 READ_LONG_F(adr, res)
550 WRITE_LONG_F(adr, res)
564 READ_LONG_F(adr, res)
570 WRITE_LONG_F(adr, res)
585 READ_LONG_F(adr, res)
591 WRITE_LONG_F(adr, res)
606 READ_LONG_F(adr, res)
612 WRITE_LONG_F(adr, res)
624 res &= M68K_CCR_MASK;
643 CHECK_INT_TO_JUMP(20)
647 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
648 #ifdef USE_CYCLONE_TIMING
664 res = DREGu8((Opcode >> 0) & 7);
670 DREGu8((Opcode >> 0) & 7) = res;
681 adr = AREG((Opcode >> 0) & 7);
683 READ_BYTE_F(adr, res)
689 WRITE_BYTE_F(adr, res)
701 adr = AREG((Opcode >> 0) & 7);
702 AREG((Opcode >> 0) & 7) += 1;
704 READ_BYTE_F(adr, res)
710 WRITE_BYTE_F(adr, res)
722 adr = AREG((Opcode >> 0) & 7) - 1;
723 AREG((Opcode >> 0) & 7) = adr;
725 READ_BYTE_F(adr, res)
731 WRITE_BYTE_F(adr, res)
744 adr += AREG((Opcode >> 0) & 7);
746 READ_BYTE_F(adr, res)
752 WRITE_BYTE_F(adr, res)
764 adr = AREG((Opcode >> 0) & 7);
767 READ_BYTE_F(adr, res)
773 WRITE_BYTE_F(adr, res)
787 READ_BYTE_F(adr, res)
793 WRITE_BYTE_F(adr, res)
807 READ_BYTE_F(adr, res)
813 WRITE_BYTE_F(adr, res)
828 READ_BYTE_F(adr, res)
834 WRITE_BYTE_F(adr, res)
849 READ_BYTE_F(adr, res)
855 WRITE_BYTE_F(adr, res)
867 res = DREGu16((Opcode >> 0) & 7);
873 DREGu16((Opcode >> 0) & 7) = res;
884 adr = AREG((Opcode >> 0) & 7);
886 READ_WORD_F(adr, res)
892 WRITE_WORD_F(adr, res)
904 adr = AREG((Opcode >> 0) & 7);
905 AREG((Opcode >> 0) & 7) += 2;
907 READ_WORD_F(adr, res)
913 WRITE_WORD_F(adr, res)
925 adr = AREG((Opcode >> 0) & 7) - 2;
926 AREG((Opcode >> 0) & 7) = adr;
928 READ_WORD_F(adr, res)
934 WRITE_WORD_F(adr, res)
947 adr += AREG((Opcode >> 0) & 7);
949 READ_WORD_F(adr, res)
955 WRITE_WORD_F(adr, res)
967 adr = AREG((Opcode >> 0) & 7);
970 READ_WORD_F(adr, res)
976 WRITE_WORD_F(adr, res)
990 READ_WORD_F(adr, res)
996 WRITE_WORD_F(adr, res)
1010 READ_WORD_F(adr, res)
1016 WRITE_WORD_F(adr, res)
1031 READ_WORD_F(adr, res)
1037 WRITE_WORD_F(adr, res)
1052 READ_WORD_F(adr, res)
1058 WRITE_WORD_F(adr, res)
1070 res = DREGu32((Opcode >> 0) & 7);
1076 DREGu32((Opcode >> 0) & 7) = res;
1077 #ifdef USE_CYCLONE_TIMING
1091 adr = AREG((Opcode >> 0) & 7);
1093 READ_LONG_F(adr, res)
1099 WRITE_LONG_F(adr, res)
1111 adr = AREG((Opcode >> 0) & 7);
1112 AREG((Opcode >> 0) & 7) += 4;
1114 READ_LONG_F(adr, res)
1120 WRITE_LONG_F(adr, res)
1132 adr = AREG((Opcode >> 0) & 7) - 4;
1133 AREG((Opcode >> 0) & 7) = adr;
1135 READ_LONG_F(adr, res)
1141 WRITE_LONG_F(adr, res)
1154 adr += AREG((Opcode >> 0) & 7);
1156 READ_LONG_F(adr, res)
1162 WRITE_LONG_F(adr, res)
1174 adr = AREG((Opcode >> 0) & 7);
1177 READ_LONG_F(adr, res)
1183 WRITE_LONG_F(adr, res)
1197 READ_LONG_F(adr, res)
1203 WRITE_LONG_F(adr, res)
1217 READ_LONG_F(adr, res)
1223 WRITE_LONG_F(adr, res)
1238 READ_LONG_F(adr, res)
1244 WRITE_LONG_F(adr, res)
1259 READ_LONG_F(adr, res)
1265 WRITE_LONG_F(adr, res)
1277 res &= M68K_CCR_MASK;
1292 res &= M68K_SR_MASK;
1301 CHECK_INT_TO_JUMP(20)
1305 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
1318 res = DREGu8((Opcode >> 0) & 7);
1324 DREGu8((Opcode >> 0) & 7) = res;
1335 adr = AREG((Opcode >> 0) & 7);
1337 READ_BYTE_F(adr, res)
1343 WRITE_BYTE_F(adr, res)
1355 adr = AREG((Opcode >> 0) & 7);
1356 AREG((Opcode >> 0) & 7) += 1;
1358 READ_BYTE_F(adr, res)
1364 WRITE_BYTE_F(adr, res)
1376 adr = AREG((Opcode >> 0) & 7) - 1;
1377 AREG((Opcode >> 0) & 7) = adr;
1379 READ_BYTE_F(adr, res)
1385 WRITE_BYTE_F(adr, res)
1398 adr += AREG((Opcode >> 0) & 7);
1400 READ_BYTE_F(adr, res)
1406 WRITE_BYTE_F(adr, res)
1418 adr = AREG((Opcode >> 0) & 7);
1421 READ_BYTE_F(adr, res)
1427 WRITE_BYTE_F(adr, res)
1441 READ_BYTE_F(adr, res)
1447 WRITE_BYTE_F(adr, res)
1461 READ_BYTE_F(adr, res)
1467 WRITE_BYTE_F(adr, res)
1482 READ_BYTE_F(adr, res)
1488 WRITE_BYTE_F(adr, res)
1503 READ_BYTE_F(adr, res)
1509 WRITE_BYTE_F(adr, res)
1521 res = DREGu16((Opcode >> 0) & 7);
1527 DREGu16((Opcode >> 0) & 7) = res;
1538 adr = AREG((Opcode >> 0) & 7);
1540 READ_WORD_F(adr, res)
1546 WRITE_WORD_F(adr, res)
1558 adr = AREG((Opcode >> 0) & 7);
1559 AREG((Opcode >> 0) & 7) += 2;
1561 READ_WORD_F(adr, res)
1567 WRITE_WORD_F(adr, res)
1579 adr = AREG((Opcode >> 0) & 7) - 2;
1580 AREG((Opcode >> 0) & 7) = adr;
1582 READ_WORD_F(adr, res)
1588 WRITE_WORD_F(adr, res)
1601 adr += AREG((Opcode >> 0) & 7);
1603 READ_WORD_F(adr, res)
1609 WRITE_WORD_F(adr, res)
1621 adr = AREG((Opcode >> 0) & 7);
1624 READ_WORD_F(adr, res)
1630 WRITE_WORD_F(adr, res)
1644 READ_WORD_F(adr, res)
1650 WRITE_WORD_F(adr, res)
1664 READ_WORD_F(adr, res)
1670 WRITE_WORD_F(adr, res)
1685 READ_WORD_F(adr, res)
1691 WRITE_WORD_F(adr, res)
1706 READ_WORD_F(adr, res)
1712 WRITE_WORD_F(adr, res)
1724 res = DREGu32((Opcode >> 0) & 7);
1730 DREGu32((Opcode >> 0) & 7) = res;
1741 adr = AREG((Opcode >> 0) & 7);
1743 READ_LONG_F(adr, res)
1749 WRITE_LONG_F(adr, res)
1761 adr = AREG((Opcode >> 0) & 7);
1762 AREG((Opcode >> 0) & 7) += 4;
1764 READ_LONG_F(adr, res)
1770 WRITE_LONG_F(adr, res)
1782 adr = AREG((Opcode >> 0) & 7) - 4;
1783 AREG((Opcode >> 0) & 7) = adr;
1785 READ_LONG_F(adr, res)
1791 WRITE_LONG_F(adr, res)
1804 adr += AREG((Opcode >> 0) & 7);
1806 READ_LONG_F(adr, res)
1812 WRITE_LONG_F(adr, res)
1824 adr = AREG((Opcode >> 0) & 7);
1827 READ_LONG_F(adr, res)
1833 WRITE_LONG_F(adr, res)
1847 READ_LONG_F(adr, res)
1853 WRITE_LONG_F(adr, res)
1867 READ_LONG_F(adr, res)
1873 WRITE_LONG_F(adr, res)
1888 READ_LONG_F(adr, res)
1894 WRITE_LONG_F(adr, res)
1909 READ_LONG_F(adr, res)
1915 WRITE_LONG_F(adr, res)
1927 res &= M68K_CCR_MASK;
1942 res &= M68K_SR_MASK;
1951 CHECK_INT_TO_JUMP(20)
1955 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
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 + GET_PC;
3838 READ_BYTE_F(adr, res)
3839 flag_NotZ = res & src;
3851 src = 1 << (src & 7);
3852 adr = (uptr)(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 + GET_PC;
4584 READ_BYTE_F(adr, res)
4585 flag_NotZ = res & src;
4596 src = DREGu8((Opcode >> 9) & 7);
4597 src = 1 << (src & 7);
4598 adr = (uptr)(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;
5216 #ifdef USE_CYCLONE_TIMING
5230 adr += AREG((Opcode >> 0) & 7);
5232 READ_BYTE_F(adr, res)
5235 READ_BYTE_F(adr, src)
5238 READ_BYTE_F(adr, src)
5241 READ_BYTE_F(adr, src)
5242 DREG((Opcode >> 9) & 7) = res | src;
5244 #ifdef USE_CYCLONE_TIMING
5257 res = DREGu32((Opcode >> 9) & 7);
5259 adr += AREG((Opcode >> 0) & 7);
5261 WRITE_BYTE_F(adr + 0, res >> 8)
5262 WRITE_BYTE_F(adr + 2, res >> 0)
5264 #ifdef USE_CYCLONE_TIMING
5277 res = DREGu32((Opcode >> 9) & 7);
5279 adr += AREG((Opcode >> 0) & 7);
5281 WRITE_BYTE_F(adr, res >> 24)
5283 WRITE_BYTE_F(adr, res >> 16)
5285 WRITE_BYTE_F(adr, res >> 8)
5287 WRITE_BYTE_F(adr, res >> 0)
5289 #ifdef USE_CYCLONE_TIMING
5302 res = DREGu8((Opcode >> 0) & 7);
5307 DREGu8((Opcode >> 9) & 7) = res;
5317 res = DREGu8((Opcode >> 0) & 7);
5322 adr = AREG((Opcode >> 9) & 7);
5324 WRITE_BYTE_F(adr, res)
5335 res = DREGu8((Opcode >> 0) & 7);
5340 adr = AREG((Opcode >> 9) & 7);
5341 AREG((Opcode >> 9) & 7) += 1;
5343 WRITE_BYTE_F(adr, res)
5354 res = DREGu8((Opcode >> 0) & 7);
5359 adr = AREG((Opcode >> 9) & 7) - 1;
5360 AREG((Opcode >> 9) & 7) = adr;
5362 WRITE_BYTE_F(adr, res)
5373 res = DREGu8((Opcode >> 0) & 7);
5379 adr += AREG((Opcode >> 9) & 7);
5381 WRITE_BYTE_F(adr, res)
5392 res = DREGu8((Opcode >> 0) & 7);
5397 adr = AREG((Opcode >> 9) & 7);
5400 WRITE_BYTE_F(adr, res)
5411 res = DREGu8((Opcode >> 0) & 7);
5418 WRITE_BYTE_F(adr, res)
5429 res = DREGu8((Opcode >> 0) & 7);
5436 WRITE_BYTE_F(adr, res)
5447 res = DREGu8((Opcode >> 0) & 7);
5455 WRITE_BYTE_F(adr, res)
5466 res = DREGu8((Opcode >> 0) & 7);
5474 WRITE_BYTE_F(adr, res)
5486 // can't read byte from Ax registers !
5487 m68kcontext.execinfo |= M68K_FAULTED;
5488 m68kcontext.io_cycle_counter = 0;
5490 goto famec_Exec_End;
5495 DREGu8((Opcode >> 9) & 7) = res;
5506 // can't read byte from Ax registers !
5507 m68kcontext.execinfo |= M68K_FAULTED;
5508 m68kcontext.io_cycle_counter = 0;
5510 goto famec_Exec_End;
5515 adr = AREG((Opcode >> 9) & 7);
5517 WRITE_BYTE_F(adr, res)
5529 // can't read byte from Ax registers !
5530 m68kcontext.execinfo |= M68K_FAULTED;
5531 m68kcontext.io_cycle_counter = 0;
5533 goto famec_Exec_End;
5538 adr = AREG((Opcode >> 9) & 7);
5539 AREG((Opcode >> 9) & 7) += 1;
5541 WRITE_BYTE_F(adr, res)
5553 // can't read byte from Ax registers !
5554 m68kcontext.execinfo |= M68K_FAULTED;
5555 m68kcontext.io_cycle_counter = 0;
5557 goto famec_Exec_End;
5562 adr = AREG((Opcode >> 9) & 7) - 1;
5563 AREG((Opcode >> 9) & 7) = adr;
5565 WRITE_BYTE_F(adr, res)
5577 // can't read byte from Ax registers !
5578 m68kcontext.execinfo |= M68K_FAULTED;
5579 m68kcontext.io_cycle_counter = 0;
5581 goto famec_Exec_End;
5587 adr += AREG((Opcode >> 9) & 7);
5589 WRITE_BYTE_F(adr, res)
5601 // can't read byte from Ax registers !
5602 m68kcontext.execinfo |= M68K_FAULTED;
5603 m68kcontext.io_cycle_counter = 0;
5605 goto famec_Exec_End;
5610 adr = AREG((Opcode >> 9) & 7);
5613 WRITE_BYTE_F(adr, res)
5625 // can't read byte from Ax registers !
5626 m68kcontext.execinfo |= M68K_FAULTED;
5627 m68kcontext.io_cycle_counter = 0;
5629 goto famec_Exec_End;
5636 WRITE_BYTE_F(adr, res)
5648 // can't read byte from Ax registers !
5649 m68kcontext.execinfo |= M68K_FAULTED;
5650 m68kcontext.io_cycle_counter = 0;
5652 goto famec_Exec_End;
5659 WRITE_BYTE_F(adr, res)
5671 // can't read byte from Ax registers !
5672 m68kcontext.execinfo |= M68K_FAULTED;
5673 m68kcontext.io_cycle_counter = 0;
5675 goto famec_Exec_End;
5683 WRITE_BYTE_F(adr, res)
5695 // can't read byte from Ax registers !
5696 m68kcontext.execinfo |= M68K_FAULTED;
5697 m68kcontext.io_cycle_counter = 0;
5699 goto famec_Exec_End;
5707 WRITE_BYTE_F(adr, res)
5720 adr = AREG((Opcode >> 0) & 7);
5722 READ_BYTE_F(adr, res)
5727 DREGu8((Opcode >> 9) & 7) = res;
5738 adr = AREG((Opcode >> 0) & 7);
5740 READ_BYTE_F(adr, res)
5745 adr = AREG((Opcode >> 9) & 7);
5746 WRITE_BYTE_F(adr, res)
5757 adr = AREG((Opcode >> 0) & 7);
5759 READ_BYTE_F(adr, res)
5764 adr = AREG((Opcode >> 9) & 7);
5765 AREG((Opcode >> 9) & 7) += 1;
5766 WRITE_BYTE_F(adr, res)
5777 adr = AREG((Opcode >> 0) & 7);
5779 READ_BYTE_F(adr, res)
5784 adr = AREG((Opcode >> 9) & 7) - 1;
5785 AREG((Opcode >> 9) & 7) = adr;
5786 WRITE_BYTE_F(adr, res)
5797 adr = AREG((Opcode >> 0) & 7);
5799 READ_BYTE_F(adr, res)
5805 adr += AREG((Opcode >> 9) & 7);
5806 WRITE_BYTE_F(adr, res)
5817 adr = AREG((Opcode >> 0) & 7);
5819 READ_BYTE_F(adr, res)
5824 adr = AREG((Opcode >> 9) & 7);
5826 WRITE_BYTE_F(adr, res)
5837 adr = AREG((Opcode >> 0) & 7);
5839 READ_BYTE_F(adr, res)
5845 WRITE_BYTE_F(adr, res)
5856 adr = AREG((Opcode >> 0) & 7);
5858 READ_BYTE_F(adr, res)
5864 WRITE_BYTE_F(adr, res)
5875 adr = AREG((Opcode >> 0) & 7);
5877 READ_BYTE_F(adr, res)
5884 WRITE_BYTE_F(adr, res)
5895 adr = AREG((Opcode >> 0) & 7);
5897 READ_BYTE_F(adr, res)
5904 WRITE_BYTE_F(adr, res)
5915 adr = AREG((Opcode >> 0) & 7);
5916 AREG((Opcode >> 0) & 7) += 1;
5918 READ_BYTE_F(adr, res)
5923 DREGu8((Opcode >> 9) & 7) = res;
5934 adr = AREG((Opcode >> 0) & 7);
5935 AREG((Opcode >> 0) & 7) += 1;
5937 READ_BYTE_F(adr, res)
5942 adr = AREG((Opcode >> 9) & 7);
5943 WRITE_BYTE_F(adr, res)
5954 adr = AREG((Opcode >> 0) & 7);
5955 AREG((Opcode >> 0) & 7) += 1;
5957 READ_BYTE_F(adr, res)
5962 adr = AREG((Opcode >> 9) & 7);
5963 AREG((Opcode >> 9) & 7) += 1;
5964 WRITE_BYTE_F(adr, res)
5975 adr = AREG((Opcode >> 0) & 7);
5976 AREG((Opcode >> 0) & 7) += 1;
5978 READ_BYTE_F(adr, res)
5983 adr = AREG((Opcode >> 9) & 7) - 1;
5984 AREG((Opcode >> 9) & 7) = adr;
5985 WRITE_BYTE_F(adr, res)
5996 adr = AREG((Opcode >> 0) & 7);
5997 AREG((Opcode >> 0) & 7) += 1;
5999 READ_BYTE_F(adr, res)
6005 adr += AREG((Opcode >> 9) & 7);
6006 WRITE_BYTE_F(adr, res)
6017 adr = AREG((Opcode >> 0) & 7);
6018 AREG((Opcode >> 0) & 7) += 1;
6020 READ_BYTE_F(adr, res)
6025 adr = AREG((Opcode >> 9) & 7);
6027 WRITE_BYTE_F(adr, res)
6038 adr = AREG((Opcode >> 0) & 7);
6039 AREG((Opcode >> 0) & 7) += 1;
6041 READ_BYTE_F(adr, res)
6047 WRITE_BYTE_F(adr, res)
6058 adr = AREG((Opcode >> 0) & 7);
6059 AREG((Opcode >> 0) & 7) += 1;
6061 READ_BYTE_F(adr, res)
6067 WRITE_BYTE_F(adr, res)
6078 adr = AREG((Opcode >> 0) & 7);
6079 AREG((Opcode >> 0) & 7) += 1;
6081 READ_BYTE_F(adr, res)
6088 WRITE_BYTE_F(adr, res)
6099 adr = AREG((Opcode >> 0) & 7);
6100 AREG((Opcode >> 0) & 7) += 1;
6102 READ_BYTE_F(adr, res)
6109 WRITE_BYTE_F(adr, res)
6120 adr = AREG((Opcode >> 0) & 7) - 1;
6121 AREG((Opcode >> 0) & 7) = adr;
6123 READ_BYTE_F(adr, res)
6128 DREGu8((Opcode >> 9) & 7) = res;
6139 adr = AREG((Opcode >> 0) & 7) - 1;
6140 AREG((Opcode >> 0) & 7) = adr;
6142 READ_BYTE_F(adr, res)
6147 adr = AREG((Opcode >> 9) & 7);
6148 WRITE_BYTE_F(adr, res)
6159 adr = AREG((Opcode >> 0) & 7) - 1;
6160 AREG((Opcode >> 0) & 7) = adr;
6162 READ_BYTE_F(adr, res)
6167 adr = AREG((Opcode >> 9) & 7);
6168 AREG((Opcode >> 9) & 7) += 1;
6169 WRITE_BYTE_F(adr, res)
6180 adr = AREG((Opcode >> 0) & 7) - 1;
6181 AREG((Opcode >> 0) & 7) = adr;
6183 READ_BYTE_F(adr, res)
6188 adr = AREG((Opcode >> 9) & 7) - 1;
6189 AREG((Opcode >> 9) & 7) = adr;
6190 WRITE_BYTE_F(adr, res)
6201 adr = AREG((Opcode >> 0) & 7) - 1;
6202 AREG((Opcode >> 0) & 7) = adr;
6204 READ_BYTE_F(adr, res)
6210 adr += AREG((Opcode >> 9) & 7);
6211 WRITE_BYTE_F(adr, res)
6222 adr = AREG((Opcode >> 0) & 7) - 1;
6223 AREG((Opcode >> 0) & 7) = adr;
6225 READ_BYTE_F(adr, res)
6230 adr = AREG((Opcode >> 9) & 7);
6232 WRITE_BYTE_F(adr, res)
6243 adr = AREG((Opcode >> 0) & 7) - 1;
6244 AREG((Opcode >> 0) & 7) = adr;
6246 READ_BYTE_F(adr, res)
6252 WRITE_BYTE_F(adr, res)
6263 adr = AREG((Opcode >> 0) & 7) - 1;
6264 AREG((Opcode >> 0) & 7) = adr;
6266 READ_BYTE_F(adr, res)
6272 WRITE_BYTE_F(adr, res)
6283 adr = AREG((Opcode >> 0) & 7) - 1;
6284 AREG((Opcode >> 0) & 7) = adr;
6286 READ_BYTE_F(adr, res)
6293 WRITE_BYTE_F(adr, res)
6304 adr = AREG((Opcode >> 0) & 7) - 1;
6305 AREG((Opcode >> 0) & 7) = adr;
6307 READ_BYTE_F(adr, res)
6314 WRITE_BYTE_F(adr, res)
6326 adr += AREG((Opcode >> 0) & 7);
6328 READ_BYTE_F(adr, res)
6333 DREGu8((Opcode >> 9) & 7) = res;
6345 adr += AREG((Opcode >> 0) & 7);
6347 READ_BYTE_F(adr, res)
6352 adr = AREG((Opcode >> 9) & 7);
6353 WRITE_BYTE_F(adr, res)
6365 adr += AREG((Opcode >> 0) & 7);
6367 READ_BYTE_F(adr, res)
6372 adr = AREG((Opcode >> 9) & 7);
6373 AREG((Opcode >> 9) & 7) += 1;
6374 WRITE_BYTE_F(adr, res)
6386 adr += AREG((Opcode >> 0) & 7);
6388 READ_BYTE_F(adr, res)
6393 adr = AREG((Opcode >> 9) & 7) - 1;
6394 AREG((Opcode >> 9) & 7) = adr;
6395 WRITE_BYTE_F(adr, res)
6407 adr += AREG((Opcode >> 0) & 7);
6409 READ_BYTE_F(adr, res)
6415 adr += AREG((Opcode >> 9) & 7);
6416 WRITE_BYTE_F(adr, res)
6428 adr += AREG((Opcode >> 0) & 7);
6430 READ_BYTE_F(adr, res)
6435 adr = AREG((Opcode >> 9) & 7);
6437 WRITE_BYTE_F(adr, res)
6449 adr += AREG((Opcode >> 0) & 7);
6451 READ_BYTE_F(adr, res)
6457 WRITE_BYTE_F(adr, res)
6469 adr += AREG((Opcode >> 0) & 7);
6471 READ_BYTE_F(adr, res)
6477 WRITE_BYTE_F(adr, res)
6489 adr += AREG((Opcode >> 0) & 7);
6491 READ_BYTE_F(adr, res)
6498 WRITE_BYTE_F(adr, res)
6510 adr += AREG((Opcode >> 0) & 7);
6512 READ_BYTE_F(adr, res)
6519 WRITE_BYTE_F(adr, res)
6530 adr = AREG((Opcode >> 0) & 7);
6533 READ_BYTE_F(adr, res)
6538 DREGu8((Opcode >> 9) & 7) = res;
6549 adr = AREG((Opcode >> 0) & 7);
6552 READ_BYTE_F(adr, res)
6557 adr = AREG((Opcode >> 9) & 7);
6558 WRITE_BYTE_F(adr, res)
6569 adr = AREG((Opcode >> 0) & 7);
6572 READ_BYTE_F(adr, res)
6577 adr = AREG((Opcode >> 9) & 7);
6578 AREG((Opcode >> 9) & 7) += 1;
6579 WRITE_BYTE_F(adr, res)
6590 adr = AREG((Opcode >> 0) & 7);
6593 READ_BYTE_F(adr, res)
6598 adr = AREG((Opcode >> 9) & 7) - 1;
6599 AREG((Opcode >> 9) & 7) = adr;
6600 WRITE_BYTE_F(adr, res)
6611 adr = AREG((Opcode >> 0) & 7);
6614 READ_BYTE_F(adr, res)
6620 adr += AREG((Opcode >> 9) & 7);
6621 WRITE_BYTE_F(adr, res)
6632 adr = AREG((Opcode >> 0) & 7);
6635 READ_BYTE_F(adr, res)
6640 adr = AREG((Opcode >> 9) & 7);
6642 WRITE_BYTE_F(adr, res)
6653 adr = AREG((Opcode >> 0) & 7);
6656 READ_BYTE_F(adr, res)
6662 WRITE_BYTE_F(adr, res)
6673 adr = AREG((Opcode >> 0) & 7);
6676 READ_BYTE_F(adr, res)
6682 WRITE_BYTE_F(adr, res)
6693 adr = AREG((Opcode >> 0) & 7);
6696 READ_BYTE_F(adr, res)
6703 WRITE_BYTE_F(adr, res)
6714 adr = AREG((Opcode >> 0) & 7);
6717 READ_BYTE_F(adr, res)
6724 WRITE_BYTE_F(adr, res)
6737 READ_BYTE_F(adr, res)
6742 DREGu8((Opcode >> 9) & 7) = res;
6755 READ_BYTE_F(adr, res)
6760 adr = AREG((Opcode >> 9) & 7);
6761 WRITE_BYTE_F(adr, res)
6774 READ_BYTE_F(adr, res)
6779 adr = AREG((Opcode >> 9) & 7);
6780 AREG((Opcode >> 9) & 7) += 1;
6781 WRITE_BYTE_F(adr, res)
6794 READ_BYTE_F(adr, res)
6799 adr = AREG((Opcode >> 9) & 7) - 1;
6800 AREG((Opcode >> 9) & 7) = adr;
6801 WRITE_BYTE_F(adr, res)
6814 READ_BYTE_F(adr, res)
6820 adr += AREG((Opcode >> 9) & 7);
6821 WRITE_BYTE_F(adr, res)
6834 READ_BYTE_F(adr, res)
6839 adr = AREG((Opcode >> 9) & 7);
6841 WRITE_BYTE_F(adr, res)
6854 READ_BYTE_F(adr, res)
6860 WRITE_BYTE_F(adr, res)
6873 READ_BYTE_F(adr, res)
6879 WRITE_BYTE_F(adr, res)
6892 READ_BYTE_F(adr, res)
6899 WRITE_BYTE_F(adr, res)
6912 READ_BYTE_F(adr, res)
6919 WRITE_BYTE_F(adr, res)
6932 READ_BYTE_F(adr, res)
6937 DREGu8((Opcode >> 9) & 7) = res;
6950 READ_BYTE_F(adr, res)
6955 adr = AREG((Opcode >> 9) & 7);
6956 WRITE_BYTE_F(adr, res)
6969 READ_BYTE_F(adr, res)
6974 adr = AREG((Opcode >> 9) & 7);
6975 AREG((Opcode >> 9) & 7) += 1;
6976 WRITE_BYTE_F(adr, res)
6989 READ_BYTE_F(adr, res)
6994 adr = AREG((Opcode >> 9) & 7) - 1;
6995 AREG((Opcode >> 9) & 7) = adr;
6996 WRITE_BYTE_F(adr, res)
7009 READ_BYTE_F(adr, res)
7015 adr += AREG((Opcode >> 9) & 7);
7016 WRITE_BYTE_F(adr, res)
7029 READ_BYTE_F(adr, res)
7034 adr = AREG((Opcode >> 9) & 7);
7036 WRITE_BYTE_F(adr, res)
7049 READ_BYTE_F(adr, res)
7055 WRITE_BYTE_F(adr, res)
7068 READ_BYTE_F(adr, res)
7074 WRITE_BYTE_F(adr, res)
7087 READ_BYTE_F(adr, res)
7094 WRITE_BYTE_F(adr, res)
7107 READ_BYTE_F(adr, res)
7114 WRITE_BYTE_F(adr, res)
7125 adr = GET_SWORD + GET_PC;
7128 READ_BYTE_F(adr, res)
7133 DREGu8((Opcode >> 9) & 7) = res;
7144 adr = GET_SWORD + GET_PC;
7147 READ_BYTE_F(adr, res)
7152 adr = AREG((Opcode >> 9) & 7);
7153 WRITE_BYTE_F(adr, res)
7164 adr = GET_SWORD + GET_PC;
7167 READ_BYTE_F(adr, res)
7172 adr = AREG((Opcode >> 9) & 7);
7173 AREG((Opcode >> 9) & 7) += 1;
7174 WRITE_BYTE_F(adr, res)
7185 adr = GET_SWORD + GET_PC;
7188 READ_BYTE_F(adr, res)
7193 adr = AREG((Opcode >> 9) & 7) - 1;
7194 AREG((Opcode >> 9) & 7) = adr;
7195 WRITE_BYTE_F(adr, res)
7206 adr = GET_SWORD + GET_PC;
7209 READ_BYTE_F(adr, res)
7215 adr += AREG((Opcode >> 9) & 7);
7216 WRITE_BYTE_F(adr, res)
7227 adr = GET_SWORD + GET_PC;
7230 READ_BYTE_F(adr, res)
7235 adr = AREG((Opcode >> 9) & 7);
7237 WRITE_BYTE_F(adr, res)
7248 adr = GET_SWORD + GET_PC;
7251 READ_BYTE_F(adr, res)
7257 WRITE_BYTE_F(adr, res)
7268 adr = GET_SWORD + GET_PC;
7271 READ_BYTE_F(adr, res)
7277 WRITE_BYTE_F(adr, res)
7288 adr = GET_SWORD + GET_PC;
7291 READ_BYTE_F(adr, res)
7298 WRITE_BYTE_F(adr, res)
7309 adr = GET_SWORD + GET_PC;
7312 READ_BYTE_F(adr, res)
7319 WRITE_BYTE_F(adr, res)
7330 adr = (uptr)(PC) - BasePC;
7333 READ_BYTE_F(adr, res)
7338 DREGu8((Opcode >> 9) & 7) = res;
7349 adr = (uptr)(PC) - BasePC;
7352 READ_BYTE_F(adr, res)
7357 adr = AREG((Opcode >> 9) & 7);
7358 WRITE_BYTE_F(adr, res)
7369 adr = (uptr)(PC) - BasePC;
7372 READ_BYTE_F(adr, res)
7377 adr = AREG((Opcode >> 9) & 7);
7378 AREG((Opcode >> 9) & 7) += 1;
7379 WRITE_BYTE_F(adr, res)
7390 adr = (uptr)(PC) - BasePC;
7393 READ_BYTE_F(adr, res)
7398 adr = AREG((Opcode >> 9) & 7) - 1;
7399 AREG((Opcode >> 9) & 7) = adr;
7400 WRITE_BYTE_F(adr, res)
7411 adr = (uptr)(PC) - BasePC;
7414 READ_BYTE_F(adr, res)
7420 adr += AREG((Opcode >> 9) & 7);
7421 WRITE_BYTE_F(adr, res)
7432 adr = (uptr)(PC) - BasePC;
7435 READ_BYTE_F(adr, res)
7440 adr = AREG((Opcode >> 9) & 7);
7442 WRITE_BYTE_F(adr, res)
7453 adr = (uptr)(PC) - BasePC;
7456 READ_BYTE_F(adr, res)
7462 WRITE_BYTE_F(adr, res)
7473 adr = (uptr)(PC) - BasePC;
7476 READ_BYTE_F(adr, res)
7482 WRITE_BYTE_F(adr, res)
7493 adr = (uptr)(PC) - BasePC;
7496 READ_BYTE_F(adr, res)
7503 WRITE_BYTE_F(adr, res)
7514 adr = (uptr)(PC) - BasePC;
7517 READ_BYTE_F(adr, res)
7524 WRITE_BYTE_F(adr, res)
7540 DREGu8((Opcode >> 9) & 7) = res;
7555 adr = AREG((Opcode >> 9) & 7);
7557 WRITE_BYTE_F(adr, res)
7573 adr = AREG((Opcode >> 9) & 7);
7574 AREG((Opcode >> 9) & 7) += 1;
7576 WRITE_BYTE_F(adr, res)
7592 adr = AREG((Opcode >> 9) & 7) - 1;
7593 AREG((Opcode >> 9) & 7) = adr;
7595 WRITE_BYTE_F(adr, res)
7612 adr += AREG((Opcode >> 9) & 7);
7614 WRITE_BYTE_F(adr, res)
7630 adr = AREG((Opcode >> 9) & 7);
7633 WRITE_BYTE_F(adr, res)
7651 WRITE_BYTE_F(adr, res)
7669 WRITE_BYTE_F(adr, res)
7688 WRITE_BYTE_F(adr, res)
7707 WRITE_BYTE_F(adr, res)
7721 READ_BYTE_F(adr, res)
7726 DREGu8((Opcode >> 9) & 7) = res;
7740 READ_BYTE_F(adr, res)
7745 adr = AREG((Opcode >> 9) & 7);
7746 WRITE_BYTE_F(adr, res)
7760 READ_BYTE_F(adr, res)
7765 adr = AREG((Opcode >> 9) & 7);
7766 AREG((Opcode >> 9) & 7) += 1;
7767 WRITE_BYTE_F(adr, res)
7781 READ_BYTE_F(adr, res)
7786 adr = AREG((Opcode >> 9) & 7) - 1;
7787 AREG((Opcode >> 9) & 7) = adr;
7788 WRITE_BYTE_F(adr, res)
7802 READ_BYTE_F(adr, res)
7808 adr += AREG((Opcode >> 9) & 7);
7809 WRITE_BYTE_F(adr, res)
7823 READ_BYTE_F(adr, res)
7828 adr = AREG((Opcode >> 9) & 7);
7830 WRITE_BYTE_F(adr, res)
7844 READ_BYTE_F(adr, res)
7850 WRITE_BYTE_F(adr, res)
7864 READ_BYTE_F(adr, res)
7870 WRITE_BYTE_F(adr, res)
7884 READ_BYTE_F(adr, res)
7891 WRITE_BYTE_F(adr, res)
7905 READ_BYTE_F(adr, res)
7912 WRITE_BYTE_F(adr, res)
7926 READ_BYTE_F(adr, res)
7931 DREGu8((Opcode >> 9) & 7) = res;
7945 READ_BYTE_F(adr, res)
7950 adr = AREG((Opcode >> 9) & 7);
7951 WRITE_BYTE_F(adr, res)
7965 READ_BYTE_F(adr, res)
7970 adr = AREG((Opcode >> 9) & 7);
7971 AREG((Opcode >> 9) & 7) += 1;
7972 WRITE_BYTE_F(adr, res)
7986 READ_BYTE_F(adr, res)
7991 adr = AREG((Opcode >> 9) & 7) - 1;
7992 AREG((Opcode >> 9) & 7) = adr;
7993 WRITE_BYTE_F(adr, res)
8007 READ_BYTE_F(adr, res)
8013 adr += AREG((Opcode >> 9) & 7);
8014 WRITE_BYTE_F(adr, res)
8028 READ_BYTE_F(adr, res)
8033 adr = AREG((Opcode >> 9) & 7);
8035 WRITE_BYTE_F(adr, res)
8049 READ_BYTE_F(adr, res)
8055 WRITE_BYTE_F(adr, res)
8069 READ_BYTE_F(adr, res)
8075 WRITE_BYTE_F(adr, res)
8089 READ_BYTE_F(adr, res)
8096 WRITE_BYTE_F(adr, res)
8110 READ_BYTE_F(adr, res)
8117 WRITE_BYTE_F(adr, res)
8128 res = DREGu32((Opcode >> 0) & 7);
8133 DREGu32((Opcode >> 9) & 7) = res;
8143 res = DREGu32((Opcode >> 0) & 7);
8148 adr = AREG((Opcode >> 9) & 7);
8150 WRITE_LONG_F(adr, res)
8161 res = DREGu32((Opcode >> 0) & 7);
8166 adr = AREG((Opcode >> 9) & 7);
8167 AREG((Opcode >> 9) & 7) += 4;
8169 WRITE_LONG_F(adr, res)
8180 res = DREGu32((Opcode >> 0) & 7);
8185 adr = AREG((Opcode >> 9) & 7) - 4;
8186 AREG((Opcode >> 9) & 7) = adr;
8188 WRITE_LONG_DEC_F(adr, res)
8199 res = DREGu32((Opcode >> 0) & 7);
8205 adr += AREG((Opcode >> 9) & 7);
8207 WRITE_LONG_F(adr, res)
8218 res = DREGu32((Opcode >> 0) & 7);
8223 adr = AREG((Opcode >> 9) & 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);
8262 WRITE_LONG_F(adr, res)
8273 res = DREGu32((Opcode >> 0) & 7);
8281 WRITE_LONG_F(adr, res)
8292 res = DREGu32((Opcode >> 0) & 7);
8300 WRITE_LONG_DEC_F(adr, res)
8311 res = AREGu32((Opcode >> 0) & 7);
8316 DREGu32((Opcode >> 9) & 7) = res;
8326 res = AREGu32((Opcode >> 0) & 7);
8331 adr = AREG((Opcode >> 9) & 7);
8333 WRITE_LONG_F(adr, res)
8344 res = AREGu32((Opcode >> 0) & 7);
8349 adr = AREG((Opcode >> 9) & 7);
8350 AREG((Opcode >> 9) & 7) += 4;
8352 WRITE_LONG_F(adr, res)
8363 res = AREGu32((Opcode >> 0) & 7);
8368 adr = AREG((Opcode >> 9) & 7) - 4;
8369 AREG((Opcode >> 9) & 7) = adr;
8371 WRITE_LONG_DEC_F(adr, res)
8382 res = AREGu32((Opcode >> 0) & 7);
8388 adr += AREG((Opcode >> 9) & 7);
8390 WRITE_LONG_F(adr, res)
8401 res = AREGu32((Opcode >> 0) & 7);
8406 adr = AREG((Opcode >> 9) & 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);
8445 WRITE_LONG_F(adr, res)
8456 res = AREGu32((Opcode >> 0) & 7);
8464 WRITE_LONG_F(adr, res)
8475 res = AREGu32((Opcode >> 0) & 7);
8483 WRITE_LONG_DEC_F(adr, res)
8494 adr = AREG((Opcode >> 0) & 7);
8496 READ_LONG_F(adr, res)
8501 DREGu32((Opcode >> 9) & 7) = res;
8512 adr = AREG((Opcode >> 0) & 7);
8514 READ_LONG_F(adr, res)
8519 adr = AREG((Opcode >> 9) & 7);
8520 WRITE_LONG_F(adr, res)
8531 adr = AREG((Opcode >> 0) & 7);
8533 READ_LONG_F(adr, res)
8538 adr = AREG((Opcode >> 9) & 7);
8539 AREG((Opcode >> 9) & 7) += 4;
8540 WRITE_LONG_F(adr, res)
8551 adr = AREG((Opcode >> 0) & 7);
8553 READ_LONG_F(adr, res)
8558 adr = AREG((Opcode >> 9) & 7) - 4;
8559 AREG((Opcode >> 9) & 7) = adr;
8560 WRITE_LONG_DEC_F(adr, res)
8571 adr = AREG((Opcode >> 0) & 7);
8573 READ_LONG_F(adr, res)
8579 adr += AREG((Opcode >> 9) & 7);
8580 WRITE_LONG_F(adr, res)
8591 adr = AREG((Opcode >> 0) & 7);
8593 READ_LONG_F(adr, res)
8598 adr = AREG((Opcode >> 9) & 7);
8600 WRITE_LONG_F(adr, res)
8611 adr = AREG((Opcode >> 0) & 7);
8613 READ_LONG_F(adr, res)
8619 WRITE_LONG_F(adr, res)
8630 adr = AREG((Opcode >> 0) & 7);
8632 READ_LONG_F(adr, res)
8638 WRITE_LONG_F(adr, res)
8649 adr = AREG((Opcode >> 0) & 7);
8651 READ_LONG_F(adr, res)
8658 WRITE_LONG_F(adr, res)
8669 adr = AREG((Opcode >> 0) & 7);
8671 READ_LONG_F(adr, res)
8678 WRITE_LONG_DEC_F(adr, res)
8689 adr = AREG((Opcode >> 0) & 7);
8690 AREG((Opcode >> 0) & 7) += 4;
8692 READ_LONG_F(adr, res)
8697 DREGu32((Opcode >> 9) & 7) = res;
8708 adr = AREG((Opcode >> 0) & 7);
8709 AREG((Opcode >> 0) & 7) += 4;
8711 READ_LONG_F(adr, res)
8716 adr = AREG((Opcode >> 9) & 7);
8717 WRITE_LONG_F(adr, res)
8728 adr = AREG((Opcode >> 0) & 7);
8729 AREG((Opcode >> 0) & 7) += 4;
8731 READ_LONG_F(adr, res)
8736 adr = AREG((Opcode >> 9) & 7);
8737 AREG((Opcode >> 9) & 7) += 4;
8738 WRITE_LONG_F(adr, res)
8749 adr = AREG((Opcode >> 0) & 7);
8750 AREG((Opcode >> 0) & 7) += 4;
8752 READ_LONG_F(adr, res)
8757 adr = AREG((Opcode >> 9) & 7) - 4;
8758 AREG((Opcode >> 9) & 7) = adr;
8759 WRITE_LONG_DEC_F(adr, res)
8770 adr = AREG((Opcode >> 0) & 7);
8771 AREG((Opcode >> 0) & 7) += 4;
8773 READ_LONG_F(adr, res)
8779 adr += AREG((Opcode >> 9) & 7);
8780 WRITE_LONG_F(adr, res)
8791 adr = AREG((Opcode >> 0) & 7);
8792 AREG((Opcode >> 0) & 7) += 4;
8794 READ_LONG_F(adr, res)
8799 adr = AREG((Opcode >> 9) & 7);
8801 WRITE_LONG_F(adr, res)
8812 adr = AREG((Opcode >> 0) & 7);
8813 AREG((Opcode >> 0) & 7) += 4;
8815 READ_LONG_F(adr, res)
8821 WRITE_LONG_F(adr, res)
8832 adr = AREG((Opcode >> 0) & 7);
8833 AREG((Opcode >> 0) & 7) += 4;
8835 READ_LONG_F(adr, res)
8841 WRITE_LONG_F(adr, res)
8852 adr = AREG((Opcode >> 0) & 7);
8853 AREG((Opcode >> 0) & 7) += 4;
8855 READ_LONG_F(adr, res)
8862 WRITE_LONG_F(adr, res)
8873 adr = AREG((Opcode >> 0) & 7);
8874 AREG((Opcode >> 0) & 7) += 4;
8876 READ_LONG_F(adr, res)
8883 WRITE_LONG_DEC_F(adr, res)
8894 adr = AREG((Opcode >> 0) & 7) - 4;
8895 AREG((Opcode >> 0) & 7) = adr;
8897 READ_LONG_F(adr, res)
8902 DREGu32((Opcode >> 9) & 7) = res;
8913 adr = AREG((Opcode >> 0) & 7) - 4;
8914 AREG((Opcode >> 0) & 7) = adr;
8916 READ_LONG_F(adr, res)
8921 adr = AREG((Opcode >> 9) & 7);
8922 WRITE_LONG_F(adr, res)
8933 adr = AREG((Opcode >> 0) & 7) - 4;
8934 AREG((Opcode >> 0) & 7) = adr;
8936 READ_LONG_F(adr, res)
8941 adr = AREG((Opcode >> 9) & 7);
8942 AREG((Opcode >> 9) & 7) += 4;
8943 WRITE_LONG_F(adr, res)
8954 adr = AREG((Opcode >> 0) & 7) - 4;
8955 AREG((Opcode >> 0) & 7) = adr;
8957 READ_LONG_F(adr, res)
8962 adr = AREG((Opcode >> 9) & 7) - 4;
8963 AREG((Opcode >> 9) & 7) = adr;
8964 WRITE_LONG_DEC_F(adr, res)
8975 adr = AREG((Opcode >> 0) & 7) - 4;
8976 AREG((Opcode >> 0) & 7) = adr;
8978 READ_LONG_F(adr, res)
8984 adr += AREG((Opcode >> 9) & 7);
8985 WRITE_LONG_F(adr, res)
8996 adr = AREG((Opcode >> 0) & 7) - 4;
8997 AREG((Opcode >> 0) & 7) = adr;
8999 READ_LONG_F(adr, res)
9004 adr = AREG((Opcode >> 9) & 7);
9006 WRITE_LONG_F(adr, res)
9017 adr = AREG((Opcode >> 0) & 7) - 4;
9018 AREG((Opcode >> 0) & 7) = adr;
9020 READ_LONG_F(adr, res)
9026 WRITE_LONG_F(adr, res)
9037 adr = AREG((Opcode >> 0) & 7) - 4;
9038 AREG((Opcode >> 0) & 7) = adr;
9040 READ_LONG_F(adr, res)
9046 WRITE_LONG_F(adr, res)
9057 adr = AREG((Opcode >> 0) & 7) - 4;
9058 AREG((Opcode >> 0) & 7) = adr;
9060 READ_LONG_F(adr, res)
9067 WRITE_LONG_F(adr, res)
9078 adr = AREG((Opcode >> 0) & 7) - 4;
9079 AREG((Opcode >> 0) & 7) = adr;
9081 READ_LONG_F(adr, res)
9088 WRITE_LONG_DEC_F(adr, res)
9100 adr += AREG((Opcode >> 0) & 7);
9102 READ_LONG_F(adr, res)
9107 DREGu32((Opcode >> 9) & 7) = res;
9119 adr += AREG((Opcode >> 0) & 7);
9121 READ_LONG_F(adr, res)
9126 adr = AREG((Opcode >> 9) & 7);
9127 WRITE_LONG_F(adr, res)
9139 adr += AREG((Opcode >> 0) & 7);
9141 READ_LONG_F(adr, res)
9146 adr = AREG((Opcode >> 9) & 7);
9147 AREG((Opcode >> 9) & 7) += 4;
9148 WRITE_LONG_F(adr, res)
9160 adr += AREG((Opcode >> 0) & 7);
9162 READ_LONG_F(adr, res)
9167 adr = AREG((Opcode >> 9) & 7) - 4;
9168 AREG((Opcode >> 9) & 7) = adr;
9169 WRITE_LONG_DEC_F(adr, res)
9181 adr += AREG((Opcode >> 0) & 7);
9183 READ_LONG_F(adr, res)
9189 adr += AREG((Opcode >> 9) & 7);
9190 WRITE_LONG_F(adr, res)
9202 adr += AREG((Opcode >> 0) & 7);
9204 READ_LONG_F(adr, res)
9209 adr = AREG((Opcode >> 9) & 7);
9211 WRITE_LONG_F(adr, res)
9223 adr += AREG((Opcode >> 0) & 7);
9225 READ_LONG_F(adr, res)
9231 WRITE_LONG_F(adr, res)
9243 adr += AREG((Opcode >> 0) & 7);
9245 READ_LONG_F(adr, res)
9251 WRITE_LONG_F(adr, res)
9263 adr += AREG((Opcode >> 0) & 7);
9265 READ_LONG_F(adr, res)
9272 WRITE_LONG_F(adr, res)
9284 adr += AREG((Opcode >> 0) & 7);
9286 READ_LONG_F(adr, res)
9293 WRITE_LONG_DEC_F(adr, res)
9304 adr = AREG((Opcode >> 0) & 7);
9307 READ_LONG_F(adr, res)
9312 DREGu32((Opcode >> 9) & 7) = res;
9323 adr = AREG((Opcode >> 0) & 7);
9326 READ_LONG_F(adr, res)
9331 adr = AREG((Opcode >> 9) & 7);
9332 WRITE_LONG_F(adr, res)
9343 adr = AREG((Opcode >> 0) & 7);
9346 READ_LONG_F(adr, res)
9351 adr = AREG((Opcode >> 9) & 7);
9352 AREG((Opcode >> 9) & 7) += 4;
9353 WRITE_LONG_F(adr, res)
9364 adr = AREG((Opcode >> 0) & 7);
9367 READ_LONG_F(adr, res)
9372 adr = AREG((Opcode >> 9) & 7) - 4;
9373 AREG((Opcode >> 9) & 7) = adr;
9374 WRITE_LONG_DEC_F(adr, res)
9385 adr = AREG((Opcode >> 0) & 7);
9388 READ_LONG_F(adr, res)
9394 adr += AREG((Opcode >> 9) & 7);
9395 WRITE_LONG_F(adr, res)
9406 adr = AREG((Opcode >> 0) & 7);
9409 READ_LONG_F(adr, res)
9414 adr = AREG((Opcode >> 9) & 7);
9416 WRITE_LONG_F(adr, res)
9427 adr = AREG((Opcode >> 0) & 7);
9430 READ_LONG_F(adr, res)
9436 WRITE_LONG_F(adr, res)
9447 adr = AREG((Opcode >> 0) & 7);
9450 READ_LONG_F(adr, res)
9456 WRITE_LONG_F(adr, res)
9467 adr = AREG((Opcode >> 0) & 7);
9470 READ_LONG_F(adr, res)
9477 WRITE_LONG_F(adr, res)
9488 adr = AREG((Opcode >> 0) & 7);
9491 READ_LONG_F(adr, res)
9498 WRITE_LONG_DEC_F(adr, res)
9511 READ_LONG_F(adr, res)
9516 DREGu32((Opcode >> 9) & 7) = res;
9529 READ_LONG_F(adr, res)
9534 adr = AREG((Opcode >> 9) & 7);
9535 WRITE_LONG_F(adr, res)
9548 READ_LONG_F(adr, res)
9553 adr = AREG((Opcode >> 9) & 7);
9554 AREG((Opcode >> 9) & 7) += 4;
9555 WRITE_LONG_F(adr, res)
9568 READ_LONG_F(adr, res)
9573 adr = AREG((Opcode >> 9) & 7) - 4;
9574 AREG((Opcode >> 9) & 7) = adr;
9575 WRITE_LONG_DEC_F(adr, res)
9588 READ_LONG_F(adr, res)
9594 adr += AREG((Opcode >> 9) & 7);
9595 WRITE_LONG_F(adr, res)
9608 READ_LONG_F(adr, res)
9613 adr = AREG((Opcode >> 9) & 7);
9615 WRITE_LONG_F(adr, res)
9628 READ_LONG_F(adr, res)
9634 WRITE_LONG_F(adr, res)
9647 READ_LONG_F(adr, res)
9653 WRITE_LONG_F(adr, res)
9666 READ_LONG_F(adr, res)
9673 WRITE_LONG_F(adr, res)
9686 READ_LONG_F(adr, res)
9693 WRITE_LONG_DEC_F(adr, res)
9706 READ_LONG_F(adr, res)
9711 DREGu32((Opcode >> 9) & 7) = res;
9724 READ_LONG_F(adr, res)
9729 adr = AREG((Opcode >> 9) & 7);
9730 WRITE_LONG_F(adr, res)
9743 READ_LONG_F(adr, res)
9748 adr = AREG((Opcode >> 9) & 7);
9749 AREG((Opcode >> 9) & 7) += 4;
9750 WRITE_LONG_F(adr, res)
9763 READ_LONG_F(adr, res)
9768 adr = AREG((Opcode >> 9) & 7) - 4;
9769 AREG((Opcode >> 9) & 7) = adr;
9770 WRITE_LONG_DEC_F(adr, res)
9783 READ_LONG_F(adr, res)
9789 adr += AREG((Opcode >> 9) & 7);
9790 WRITE_LONG_F(adr, res)
9803 READ_LONG_F(adr, res)
9808 adr = AREG((Opcode >> 9) & 7);
9810 WRITE_LONG_F(adr, res)
9823 READ_LONG_F(adr, res)
9829 WRITE_LONG_F(adr, res)
9842 READ_LONG_F(adr, res)
9848 WRITE_LONG_F(adr, res)
9861 READ_LONG_F(adr, res)
9868 WRITE_LONG_F(adr, res)
9881 READ_LONG_F(adr, res)
9888 WRITE_LONG_DEC_F(adr, res)
9899 adr = GET_SWORD + GET_PC;
9902 READ_LONG_F(adr, res)
9907 DREGu32((Opcode >> 9) & 7) = res;
9918 adr = GET_SWORD + GET_PC;
9921 READ_LONG_F(adr, res)
9926 adr = AREG((Opcode >> 9) & 7);
9927 WRITE_LONG_F(adr, res)
9938 adr = GET_SWORD + GET_PC;
9941 READ_LONG_F(adr, res)
9946 adr = AREG((Opcode >> 9) & 7);
9947 AREG((Opcode >> 9) & 7) += 4;
9948 WRITE_LONG_F(adr, res)
9959 adr = GET_SWORD + GET_PC;
9962 READ_LONG_F(adr, res)
9967 adr = AREG((Opcode >> 9) & 7) - 4;
9968 AREG((Opcode >> 9) & 7) = adr;
9969 WRITE_LONG_DEC_F(adr, res)
9980 adr = GET_SWORD + GET_PC;
9983 READ_LONG_F(adr, res)
9989 adr += AREG((Opcode >> 9) & 7);
9990 WRITE_LONG_F(adr, res)
10001 adr = GET_SWORD + GET_PC;
10004 READ_LONG_F(adr, res)
10008 flag_N = res >> 24;
10009 adr = AREG((Opcode >> 9) & 7);
10011 WRITE_LONG_F(adr, res)
10022 adr = GET_SWORD + GET_PC;
10025 READ_LONG_F(adr, res)
10029 flag_N = res >> 24;
10031 WRITE_LONG_F(adr, res)
10042 adr = GET_SWORD + GET_PC;
10045 READ_LONG_F(adr, res)
10049 flag_N = res >> 24;
10051 WRITE_LONG_F(adr, res)
10062 adr = GET_SWORD + GET_PC;
10065 READ_LONG_F(adr, res)
10069 flag_N = res >> 24;
10072 WRITE_LONG_F(adr, res)
10083 adr = GET_SWORD + GET_PC;
10086 READ_LONG_F(adr, res)
10090 flag_N = res >> 24;
10093 WRITE_LONG_DEC_F(adr, res)
10107 READ_LONG_F(adr, res)
10111 flag_N = res >> 24;
10112 DREGu32((Opcode >> 9) & 7) = res;
10126 READ_LONG_F(adr, res)
10130 flag_N = res >> 24;
10131 adr = AREG((Opcode >> 9) & 7);
10132 WRITE_LONG_F(adr, res)
10146 READ_LONG_F(adr, res)
10150 flag_N = res >> 24;
10151 adr = AREG((Opcode >> 9) & 7);
10152 AREG((Opcode >> 9) & 7) += 4;
10153 WRITE_LONG_F(adr, res)
10167 READ_LONG_F(adr, res)
10171 flag_N = res >> 24;
10172 adr = AREG((Opcode >> 9) & 7) - 4;
10173 AREG((Opcode >> 9) & 7) = adr;
10174 WRITE_LONG_DEC_F(adr, res)
10188 READ_LONG_F(adr, res)
10192 flag_N = res >> 24;
10194 adr += AREG((Opcode >> 9) & 7);
10195 WRITE_LONG_F(adr, res)
10209 READ_LONG_F(adr, res)
10213 flag_N = res >> 24;
10214 adr = AREG((Opcode >> 9) & 7);
10216 WRITE_LONG_F(adr, res)
10230 READ_LONG_F(adr, res)
10234 flag_N = res >> 24;
10236 WRITE_LONG_F(adr, res)
10250 READ_LONG_F(adr, res)
10254 flag_N = res >> 24;
10256 WRITE_LONG_F(adr, res)
10270 READ_LONG_F(adr, res)
10274 flag_N = res >> 24;
10277 WRITE_LONG_F(adr, res)
10291 READ_LONG_F(adr, res)
10295 flag_N = res >> 24;
10298 WRITE_LONG_DEC_F(adr, res)
10313 flag_N = res >> 24;
10314 DREGu32((Opcode >> 9) & 7) = res;
10328 flag_N = res >> 24;
10329 adr = AREG((Opcode >> 9) & 7);
10331 WRITE_LONG_F(adr, res)
10346 flag_N = res >> 24;
10347 adr = AREG((Opcode >> 9) & 7);
10348 AREG((Opcode >> 9) & 7) += 4;
10350 WRITE_LONG_F(adr, res)
10365 flag_N = res >> 24;
10366 adr = AREG((Opcode >> 9) & 7) - 4;
10367 AREG((Opcode >> 9) & 7) = adr;
10369 WRITE_LONG_DEC_F(adr, res)
10384 flag_N = res >> 24;
10386 adr += AREG((Opcode >> 9) & 7);
10388 WRITE_LONG_F(adr, res)
10403 flag_N = res >> 24;
10404 adr = AREG((Opcode >> 9) & 7);
10407 WRITE_LONG_F(adr, res)
10422 flag_N = res >> 24;
10425 WRITE_LONG_F(adr, res)
10440 flag_N = res >> 24;
10443 WRITE_LONG_F(adr, res)
10458 flag_N = res >> 24;
10462 WRITE_LONG_F(adr, res)
10477 flag_N = res >> 24;
10481 WRITE_LONG_DEC_F(adr, res)
10495 READ_LONG_F(adr, res)
10499 flag_N = res >> 24;
10500 DREGu32((Opcode >> 9) & 7) = res;
10514 READ_LONG_F(adr, res)
10518 flag_N = res >> 24;
10519 adr = AREG((Opcode >> 9) & 7);
10520 WRITE_LONG_F(adr, res)
10534 READ_LONG_F(adr, res)
10538 flag_N = res >> 24;
10539 adr = AREG((Opcode >> 9) & 7);
10540 AREG((Opcode >> 9) & 7) += 4;
10541 WRITE_LONG_F(adr, res)
10555 READ_LONG_F(adr, res)
10559 flag_N = res >> 24;
10560 adr = AREG((Opcode >> 9) & 7) - 4;
10561 AREG((Opcode >> 9) & 7) = adr;
10562 WRITE_LONG_DEC_F(adr, res)
10576 READ_LONG_F(adr, res)
10580 flag_N = res >> 24;
10582 adr += AREG((Opcode >> 9) & 7);
10583 WRITE_LONG_F(adr, res)
10597 READ_LONG_F(adr, res)
10601 flag_N = res >> 24;
10602 adr = AREG((Opcode >> 9) & 7);
10604 WRITE_LONG_F(adr, res)
10618 READ_LONG_F(adr, res)
10622 flag_N = res >> 24;
10624 WRITE_LONG_F(adr, res)
10638 READ_LONG_F(adr, res)
10642 flag_N = res >> 24;
10644 WRITE_LONG_F(adr, res)
10658 READ_LONG_F(adr, res)
10662 flag_N = res >> 24;
10665 WRITE_LONG_F(adr, res)
10679 READ_LONG_F(adr, res)
10683 flag_N = res >> 24;
10686 WRITE_LONG_DEC_F(adr, res)
10700 READ_LONG_F(adr, res)
10704 flag_N = res >> 24;
10705 DREGu32((Opcode >> 9) & 7) = res;
10719 READ_LONG_F(adr, res)
10723 flag_N = res >> 24;
10724 adr = AREG((Opcode >> 9) & 7);
10725 WRITE_LONG_F(adr, res)
10739 READ_LONG_F(adr, res)
10743 flag_N = res >> 24;
10744 adr = AREG((Opcode >> 9) & 7);
10745 AREG((Opcode >> 9) & 7) += 4;
10746 WRITE_LONG_F(adr, res)
10760 READ_LONG_F(adr, res)
10764 flag_N = res >> 24;
10765 adr = AREG((Opcode >> 9) & 7) - 4;
10766 AREG((Opcode >> 9) & 7) = adr;
10767 WRITE_LONG_DEC_F(adr, res)
10781 READ_LONG_F(adr, res)
10785 flag_N = res >> 24;
10787 adr += AREG((Opcode >> 9) & 7);
10788 WRITE_LONG_F(adr, res)
10802 READ_LONG_F(adr, res)
10806 flag_N = res >> 24;
10807 adr = AREG((Opcode >> 9) & 7);
10809 WRITE_LONG_F(adr, res)
10823 READ_LONG_F(adr, res)
10827 flag_N = res >> 24;
10829 WRITE_LONG_F(adr, res)
10843 READ_LONG_F(adr, res)
10847 flag_N = res >> 24;
10849 WRITE_LONG_F(adr, res)
10863 READ_LONG_F(adr, res)
10867 flag_N = res >> 24;
10870 WRITE_LONG_F(adr, res)
10884 READ_LONG_F(adr, res)
10888 flag_N = res >> 24;
10891 WRITE_LONG_DEC_F(adr, res)
10902 res = (s32)DREGs32((Opcode >> 0) & 7);
10903 AREG((Opcode >> 9) & 7) = res;
10913 res = (s32)AREGs32((Opcode >> 0) & 7);
10914 AREG((Opcode >> 9) & 7) = res;
10924 adr = AREG((Opcode >> 0) & 7);
10926 READSX_LONG_F(adr, res)
10927 AREG((Opcode >> 9) & 7) = res;
10938 adr = AREG((Opcode >> 0) & 7);
10939 AREG((Opcode >> 0) & 7) += 4;
10941 READSX_LONG_F(adr, res)
10942 AREG((Opcode >> 9) & 7) = res;
10953 adr = AREG((Opcode >> 0) & 7) - 4;
10954 AREG((Opcode >> 0) & 7) = adr;
10956 READSX_LONG_F(adr, res)
10957 AREG((Opcode >> 9) & 7) = res;
10969 adr += AREG((Opcode >> 0) & 7);
10971 READSX_LONG_F(adr, res)
10972 AREG((Opcode >> 9) & 7) = res;
10983 adr = AREG((Opcode >> 0) & 7);
10986 READSX_LONG_F(adr, res)
10987 AREG((Opcode >> 9) & 7) = res;
11000 READSX_LONG_F(adr, res)
11001 AREG((Opcode >> 9) & 7) = res;
11014 READSX_LONG_F(adr, res)
11015 AREG((Opcode >> 9) & 7) = res;
11026 adr = GET_SWORD + GET_PC;
11029 READSX_LONG_F(adr, res)
11030 AREG((Opcode >> 9) & 7) = res;
11044 READSX_LONG_F(adr, res)
11045 AREG((Opcode >> 9) & 7) = res;
11057 AREG((Opcode >> 9) & 7) = res;
11070 READSX_LONG_F(adr, res)
11071 AREG((Opcode >> 9) & 7) = res;
11085 READSX_LONG_F(adr, res)
11086 AREG((Opcode >> 9) & 7) = res;
11097 res = DREGu16((Opcode >> 0) & 7);
11102 DREGu16((Opcode >> 9) & 7) = res;
11112 res = DREGu16((Opcode >> 0) & 7);
11117 adr = AREG((Opcode >> 9) & 7);
11119 WRITE_WORD_F(adr, res)
11130 res = DREGu16((Opcode >> 0) & 7);
11135 adr = AREG((Opcode >> 9) & 7);
11136 AREG((Opcode >> 9) & 7) += 2;
11138 WRITE_WORD_F(adr, res)
11149 res = DREGu16((Opcode >> 0) & 7);
11154 adr = AREG((Opcode >> 9) & 7) - 2;
11155 AREG((Opcode >> 9) & 7) = adr;
11157 WRITE_WORD_F(adr, res)
11168 res = DREGu16((Opcode >> 0) & 7);
11174 adr += AREG((Opcode >> 9) & 7);
11176 WRITE_WORD_F(adr, res)
11187 res = DREGu16((Opcode >> 0) & 7);
11192 adr = AREG((Opcode >> 9) & 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);
11231 WRITE_WORD_F(adr, res)
11242 res = DREGu16((Opcode >> 0) & 7);
11250 WRITE_WORD_F(adr, res)
11261 res = DREGu16((Opcode >> 0) & 7);
11269 WRITE_WORD_F(adr, res)
11280 res = AREGu16((Opcode >> 0) & 7);
11285 DREGu16((Opcode >> 9) & 7) = res;
11295 res = AREGu16((Opcode >> 0) & 7);
11300 adr = AREG((Opcode >> 9) & 7);
11302 WRITE_WORD_F(adr, res)
11313 res = AREGu16((Opcode >> 0) & 7);
11318 adr = AREG((Opcode >> 9) & 7);
11319 AREG((Opcode >> 9) & 7) += 2;
11321 WRITE_WORD_F(adr, res)
11332 res = AREGu16((Opcode >> 0) & 7);
11337 adr = AREG((Opcode >> 9) & 7) - 2;
11338 AREG((Opcode >> 9) & 7) = adr;
11340 WRITE_WORD_F(adr, res)
11351 res = AREGu16((Opcode >> 0) & 7);
11357 adr += AREG((Opcode >> 9) & 7);
11359 WRITE_WORD_F(adr, res)
11370 res = AREGu16((Opcode >> 0) & 7);
11375 adr = AREG((Opcode >> 9) & 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);
11414 WRITE_WORD_F(adr, res)
11425 res = AREGu16((Opcode >> 0) & 7);
11433 WRITE_WORD_F(adr, res)
11444 res = AREGu16((Opcode >> 0) & 7);
11452 WRITE_WORD_F(adr, res)
11463 adr = AREG((Opcode >> 0) & 7);
11465 READ_WORD_F(adr, res)
11470 DREGu16((Opcode >> 9) & 7) = res;
11481 adr = AREG((Opcode >> 0) & 7);
11483 READ_WORD_F(adr, res)
11488 adr = AREG((Opcode >> 9) & 7);
11489 WRITE_WORD_F(adr, res)
11500 adr = AREG((Opcode >> 0) & 7);
11502 READ_WORD_F(adr, res)
11507 adr = AREG((Opcode >> 9) & 7);
11508 AREG((Opcode >> 9) & 7) += 2;
11509 WRITE_WORD_F(adr, res)
11520 adr = AREG((Opcode >> 0) & 7);
11522 READ_WORD_F(adr, res)
11527 adr = AREG((Opcode >> 9) & 7) - 2;
11528 AREG((Opcode >> 9) & 7) = adr;
11529 WRITE_WORD_F(adr, res)
11540 adr = AREG((Opcode >> 0) & 7);
11542 READ_WORD_F(adr, res)
11548 adr += AREG((Opcode >> 9) & 7);
11549 WRITE_WORD_F(adr, res)
11560 adr = AREG((Opcode >> 0) & 7);
11562 READ_WORD_F(adr, res)
11567 adr = AREG((Opcode >> 9) & 7);
11569 WRITE_WORD_F(adr, res)
11580 adr = AREG((Opcode >> 0) & 7);
11582 READ_WORD_F(adr, res)
11588 WRITE_WORD_F(adr, res)
11599 adr = AREG((Opcode >> 0) & 7);
11601 READ_WORD_F(adr, res)
11607 WRITE_WORD_F(adr, res)
11618 adr = AREG((Opcode >> 0) & 7);
11620 READ_WORD_F(adr, res)
11627 WRITE_WORD_F(adr, res)
11638 adr = AREG((Opcode >> 0) & 7);
11640 READ_WORD_F(adr, res)
11647 WRITE_WORD_F(adr, res)
11658 adr = AREG((Opcode >> 0) & 7);
11659 AREG((Opcode >> 0) & 7) += 2;
11661 READ_WORD_F(adr, res)
11666 DREGu16((Opcode >> 9) & 7) = res;
11677 adr = AREG((Opcode >> 0) & 7);
11678 AREG((Opcode >> 0) & 7) += 2;
11680 READ_WORD_F(adr, res)
11685 adr = AREG((Opcode >> 9) & 7);
11686 WRITE_WORD_F(adr, res)
11697 adr = AREG((Opcode >> 0) & 7);
11698 AREG((Opcode >> 0) & 7) += 2;
11700 READ_WORD_F(adr, res)
11705 adr = AREG((Opcode >> 9) & 7);
11706 AREG((Opcode >> 9) & 7) += 2;
11707 WRITE_WORD_F(adr, res)
11718 adr = AREG((Opcode >> 0) & 7);
11719 AREG((Opcode >> 0) & 7) += 2;
11721 READ_WORD_F(adr, res)
11726 adr = AREG((Opcode >> 9) & 7) - 2;
11727 AREG((Opcode >> 9) & 7) = adr;
11728 WRITE_WORD_F(adr, res)
11739 adr = AREG((Opcode >> 0) & 7);
11740 AREG((Opcode >> 0) & 7) += 2;
11742 READ_WORD_F(adr, res)
11748 adr += AREG((Opcode >> 9) & 7);
11749 WRITE_WORD_F(adr, res)
11760 adr = AREG((Opcode >> 0) & 7);
11761 AREG((Opcode >> 0) & 7) += 2;
11763 READ_WORD_F(adr, res)
11768 adr = AREG((Opcode >> 9) & 7);
11770 WRITE_WORD_F(adr, res)
11781 adr = AREG((Opcode >> 0) & 7);
11782 AREG((Opcode >> 0) & 7) += 2;
11784 READ_WORD_F(adr, res)
11790 WRITE_WORD_F(adr, res)
11801 adr = AREG((Opcode >> 0) & 7);
11802 AREG((Opcode >> 0) & 7) += 2;
11804 READ_WORD_F(adr, res)
11810 WRITE_WORD_F(adr, res)
11821 adr = AREG((Opcode >> 0) & 7);
11822 AREG((Opcode >> 0) & 7) += 2;
11824 READ_WORD_F(adr, res)
11831 WRITE_WORD_F(adr, res)
11842 adr = AREG((Opcode >> 0) & 7);
11843 AREG((Opcode >> 0) & 7) += 2;
11845 READ_WORD_F(adr, res)
11852 WRITE_WORD_F(adr, res)
11863 adr = AREG((Opcode >> 0) & 7) - 2;
11864 AREG((Opcode >> 0) & 7) = adr;
11866 READ_WORD_F(adr, res)
11871 DREGu16((Opcode >> 9) & 7) = res;
11882 adr = AREG((Opcode >> 0) & 7) - 2;
11883 AREG((Opcode >> 0) & 7) = adr;
11885 READ_WORD_F(adr, res)
11890 adr = AREG((Opcode >> 9) & 7);
11891 WRITE_WORD_F(adr, res)
11902 adr = AREG((Opcode >> 0) & 7) - 2;
11903 AREG((Opcode >> 0) & 7) = adr;
11905 READ_WORD_F(adr, res)
11910 adr = AREG((Opcode >> 9) & 7);
11911 AREG((Opcode >> 9) & 7) += 2;
11912 WRITE_WORD_F(adr, res)
11923 adr = AREG((Opcode >> 0) & 7) - 2;
11924 AREG((Opcode >> 0) & 7) = adr;
11926 READ_WORD_F(adr, res)
11931 adr = AREG((Opcode >> 9) & 7) - 2;
11932 AREG((Opcode >> 9) & 7) = adr;
11933 WRITE_WORD_F(adr, res)
11944 adr = AREG((Opcode >> 0) & 7) - 2;
11945 AREG((Opcode >> 0) & 7) = adr;
11947 READ_WORD_F(adr, res)
11953 adr += AREG((Opcode >> 9) & 7);
11954 WRITE_WORD_F(adr, res)
11965 adr = AREG((Opcode >> 0) & 7) - 2;
11966 AREG((Opcode >> 0) & 7) = adr;
11968 READ_WORD_F(adr, res)
11973 adr = AREG((Opcode >> 9) & 7);
11975 WRITE_WORD_F(adr, res)
11986 adr = AREG((Opcode >> 0) & 7) - 2;
11987 AREG((Opcode >> 0) & 7) = adr;
11989 READ_WORD_F(adr, res)
11995 WRITE_WORD_F(adr, res)
12006 adr = AREG((Opcode >> 0) & 7) - 2;
12007 AREG((Opcode >> 0) & 7) = adr;
12009 READ_WORD_F(adr, res)
12015 WRITE_WORD_F(adr, res)
12026 adr = AREG((Opcode >> 0) & 7) - 2;
12027 AREG((Opcode >> 0) & 7) = adr;
12029 READ_WORD_F(adr, res)
12036 WRITE_WORD_F(adr, res)
12047 adr = AREG((Opcode >> 0) & 7) - 2;
12048 AREG((Opcode >> 0) & 7) = adr;
12050 READ_WORD_F(adr, res)
12057 WRITE_WORD_F(adr, res)
12069 adr += AREG((Opcode >> 0) & 7);
12071 READ_WORD_F(adr, res)
12076 DREGu16((Opcode >> 9) & 7) = res;
12088 adr += AREG((Opcode >> 0) & 7);
12090 READ_WORD_F(adr, res)
12095 adr = AREG((Opcode >> 9) & 7);
12096 WRITE_WORD_F(adr, res)
12108 adr += AREG((Opcode >> 0) & 7);
12110 READ_WORD_F(adr, res)
12115 adr = AREG((Opcode >> 9) & 7);
12116 AREG((Opcode >> 9) & 7) += 2;
12117 WRITE_WORD_F(adr, res)
12129 adr += AREG((Opcode >> 0) & 7);
12131 READ_WORD_F(adr, res)
12136 adr = AREG((Opcode >> 9) & 7) - 2;
12137 AREG((Opcode >> 9) & 7) = adr;
12138 WRITE_WORD_F(adr, res)
12150 adr += AREG((Opcode >> 0) & 7);
12152 READ_WORD_F(adr, res)
12158 adr += AREG((Opcode >> 9) & 7);
12159 WRITE_WORD_F(adr, res)
12171 adr += AREG((Opcode >> 0) & 7);
12173 READ_WORD_F(adr, res)
12178 adr = AREG((Opcode >> 9) & 7);
12180 WRITE_WORD_F(adr, res)
12192 adr += AREG((Opcode >> 0) & 7);
12194 READ_WORD_F(adr, res)
12200 WRITE_WORD_F(adr, res)
12212 adr += AREG((Opcode >> 0) & 7);
12214 READ_WORD_F(adr, res)
12220 WRITE_WORD_F(adr, res)
12232 adr += AREG((Opcode >> 0) & 7);
12234 READ_WORD_F(adr, res)
12241 WRITE_WORD_F(adr, res)
12253 adr += AREG((Opcode >> 0) & 7);
12255 READ_WORD_F(adr, res)
12262 WRITE_WORD_F(adr, res)
12273 adr = AREG((Opcode >> 0) & 7);
12276 READ_WORD_F(adr, res)
12281 DREGu16((Opcode >> 9) & 7) = res;
12292 adr = AREG((Opcode >> 0) & 7);
12295 READ_WORD_F(adr, res)
12300 adr = AREG((Opcode >> 9) & 7);
12301 WRITE_WORD_F(adr, res)
12312 adr = AREG((Opcode >> 0) & 7);
12315 READ_WORD_F(adr, res)
12320 adr = AREG((Opcode >> 9) & 7);
12321 AREG((Opcode >> 9) & 7) += 2;
12322 WRITE_WORD_F(adr, res)
12333 adr = AREG((Opcode >> 0) & 7);
12336 READ_WORD_F(adr, res)
12341 adr = AREG((Opcode >> 9) & 7) - 2;
12342 AREG((Opcode >> 9) & 7) = adr;
12343 WRITE_WORD_F(adr, res)
12354 adr = AREG((Opcode >> 0) & 7);
12357 READ_WORD_F(adr, res)
12363 adr += AREG((Opcode >> 9) & 7);
12364 WRITE_WORD_F(adr, res)
12375 adr = AREG((Opcode >> 0) & 7);
12378 READ_WORD_F(adr, res)
12383 adr = AREG((Opcode >> 9) & 7);
12385 WRITE_WORD_F(adr, res)
12396 adr = AREG((Opcode >> 0) & 7);
12399 READ_WORD_F(adr, res)
12405 WRITE_WORD_F(adr, res)
12416 adr = AREG((Opcode >> 0) & 7);
12419 READ_WORD_F(adr, res)
12425 WRITE_WORD_F(adr, res)
12436 adr = AREG((Opcode >> 0) & 7);
12439 READ_WORD_F(adr, res)
12446 WRITE_WORD_F(adr, res)
12457 adr = AREG((Opcode >> 0) & 7);
12460 READ_WORD_F(adr, res)
12467 WRITE_WORD_F(adr, res)
12480 READ_WORD_F(adr, res)
12485 DREGu16((Opcode >> 9) & 7) = res;
12498 READ_WORD_F(adr, res)
12503 adr = AREG((Opcode >> 9) & 7);
12504 WRITE_WORD_F(adr, res)
12517 READ_WORD_F(adr, res)
12522 adr = AREG((Opcode >> 9) & 7);
12523 AREG((Opcode >> 9) & 7) += 2;
12524 WRITE_WORD_F(adr, res)
12537 READ_WORD_F(adr, res)
12542 adr = AREG((Opcode >> 9) & 7) - 2;
12543 AREG((Opcode >> 9) & 7) = adr;
12544 WRITE_WORD_F(adr, res)
12557 READ_WORD_F(adr, res)
12563 adr += AREG((Opcode >> 9) & 7);
12564 WRITE_WORD_F(adr, res)
12577 READ_WORD_F(adr, res)
12582 adr = AREG((Opcode >> 9) & 7);
12584 WRITE_WORD_F(adr, res)
12597 READ_WORD_F(adr, res)
12603 WRITE_WORD_F(adr, res)
12616 READ_WORD_F(adr, res)
12622 WRITE_WORD_F(adr, res)
12635 READ_WORD_F(adr, res)
12642 WRITE_WORD_F(adr, res)
12655 READ_WORD_F(adr, res)
12662 WRITE_WORD_F(adr, res)
12675 READ_WORD_F(adr, res)
12680 DREGu16((Opcode >> 9) & 7) = res;
12693 READ_WORD_F(adr, res)
12698 adr = AREG((Opcode >> 9) & 7);
12699 WRITE_WORD_F(adr, res)
12712 READ_WORD_F(adr, res)
12717 adr = AREG((Opcode >> 9) & 7);
12718 AREG((Opcode >> 9) & 7) += 2;
12719 WRITE_WORD_F(adr, res)
12732 READ_WORD_F(adr, res)
12737 adr = AREG((Opcode >> 9) & 7) - 2;
12738 AREG((Opcode >> 9) & 7) = adr;
12739 WRITE_WORD_F(adr, res)
12752 READ_WORD_F(adr, res)
12758 adr += AREG((Opcode >> 9) & 7);
12759 WRITE_WORD_F(adr, res)
12772 READ_WORD_F(adr, res)
12777 adr = AREG((Opcode >> 9) & 7);
12779 WRITE_WORD_F(adr, res)
12792 READ_WORD_F(adr, res)
12798 WRITE_WORD_F(adr, res)
12811 READ_WORD_F(adr, res)
12817 WRITE_WORD_F(adr, res)
12830 READ_WORD_F(adr, res)
12837 WRITE_WORD_F(adr, res)
12850 READ_WORD_F(adr, res)
12857 WRITE_WORD_F(adr, res)
12868 adr = GET_SWORD + GET_PC;
12871 READ_WORD_F(adr, res)
12876 DREGu16((Opcode >> 9) & 7) = res;
12887 adr = GET_SWORD + GET_PC;
12890 READ_WORD_F(adr, res)
12895 adr = AREG((Opcode >> 9) & 7);
12896 WRITE_WORD_F(adr, res)
12907 adr = GET_SWORD + GET_PC;
12910 READ_WORD_F(adr, res)
12915 adr = AREG((Opcode >> 9) & 7);
12916 AREG((Opcode >> 9) & 7) += 2;
12917 WRITE_WORD_F(adr, res)
12928 adr = GET_SWORD + GET_PC;
12931 READ_WORD_F(adr, res)
12936 adr = AREG((Opcode >> 9) & 7) - 2;
12937 AREG((Opcode >> 9) & 7) = adr;
12938 WRITE_WORD_F(adr, res)
12949 adr = GET_SWORD + GET_PC;
12952 READ_WORD_F(adr, res)
12958 adr += AREG((Opcode >> 9) & 7);
12959 WRITE_WORD_F(adr, res)
12970 adr = GET_SWORD + GET_PC;
12973 READ_WORD_F(adr, res)
12978 adr = AREG((Opcode >> 9) & 7);
12980 WRITE_WORD_F(adr, res)
12991 adr = GET_SWORD + GET_PC;
12994 READ_WORD_F(adr, res)
13000 WRITE_WORD_F(adr, res)
13011 adr = GET_SWORD + GET_PC;
13014 READ_WORD_F(adr, res)
13020 WRITE_WORD_F(adr, res)
13031 adr = GET_SWORD + GET_PC;
13034 READ_WORD_F(adr, res)
13041 WRITE_WORD_F(adr, res)
13052 adr = GET_SWORD + GET_PC;
13055 READ_WORD_F(adr, res)
13062 WRITE_WORD_F(adr, res)
13076 READ_WORD_F(adr, res)
13081 DREGu16((Opcode >> 9) & 7) = res;
13095 READ_WORD_F(adr, res)
13100 adr = AREG((Opcode >> 9) & 7);
13101 WRITE_WORD_F(adr, res)
13115 READ_WORD_F(adr, res)
13120 adr = AREG((Opcode >> 9) & 7);
13121 AREG((Opcode >> 9) & 7) += 2;
13122 WRITE_WORD_F(adr, res)
13136 READ_WORD_F(adr, res)
13141 adr = AREG((Opcode >> 9) & 7) - 2;
13142 AREG((Opcode >> 9) & 7) = adr;
13143 WRITE_WORD_F(adr, res)
13157 READ_WORD_F(adr, res)
13163 adr += AREG((Opcode >> 9) & 7);
13164 WRITE_WORD_F(adr, res)
13178 READ_WORD_F(adr, res)
13183 adr = AREG((Opcode >> 9) & 7);
13185 WRITE_WORD_F(adr, res)
13199 READ_WORD_F(adr, res)
13205 WRITE_WORD_F(adr, res)
13219 READ_WORD_F(adr, res)
13225 WRITE_WORD_F(adr, res)
13239 READ_WORD_F(adr, res)
13246 WRITE_WORD_F(adr, res)
13260 READ_WORD_F(adr, res)
13267 WRITE_WORD_F(adr, res)
13283 DREGu16((Opcode >> 9) & 7) = res;
13298 adr = AREG((Opcode >> 9) & 7);
13300 WRITE_WORD_F(adr, res)
13316 adr = AREG((Opcode >> 9) & 7);
13317 AREG((Opcode >> 9) & 7) += 2;
13319 WRITE_WORD_F(adr, res)
13335 adr = AREG((Opcode >> 9) & 7) - 2;
13336 AREG((Opcode >> 9) & 7) = adr;
13338 WRITE_WORD_F(adr, res)
13355 adr += AREG((Opcode >> 9) & 7);
13357 WRITE_WORD_F(adr, res)
13373 adr = AREG((Opcode >> 9) & 7);
13376 WRITE_WORD_F(adr, res)
13394 WRITE_WORD_F(adr, res)
13412 WRITE_WORD_F(adr, res)
13431 WRITE_WORD_F(adr, res)
13450 WRITE_WORD_F(adr, res)
13464 READ_WORD_F(adr, res)
13469 DREGu16((Opcode >> 9) & 7) = res;
13483 READ_WORD_F(adr, res)
13488 adr = AREG((Opcode >> 9) & 7);
13489 WRITE_WORD_F(adr, res)
13503 READ_WORD_F(adr, res)
13508 adr = AREG((Opcode >> 9) & 7);
13509 AREG((Opcode >> 9) & 7) += 2;
13510 WRITE_WORD_F(adr, res)
13524 READ_WORD_F(adr, res)
13529 adr = AREG((Opcode >> 9) & 7) - 2;
13530 AREG((Opcode >> 9) & 7) = adr;
13531 WRITE_WORD_F(adr, res)
13545 READ_WORD_F(adr, res)
13551 adr += AREG((Opcode >> 9) & 7);
13552 WRITE_WORD_F(adr, res)
13566 READ_WORD_F(adr, res)
13571 adr = AREG((Opcode >> 9) & 7);
13573 WRITE_WORD_F(adr, res)
13587 READ_WORD_F(adr, res)
13593 WRITE_WORD_F(adr, res)
13607 READ_WORD_F(adr, res)
13613 WRITE_WORD_F(adr, res)
13627 READ_WORD_F(adr, res)
13634 WRITE_WORD_F(adr, res)
13648 READ_WORD_F(adr, res)
13655 WRITE_WORD_F(adr, res)
13669 READ_WORD_F(adr, res)
13674 DREGu16((Opcode >> 9) & 7) = res;
13688 READ_WORD_F(adr, res)
13693 adr = AREG((Opcode >> 9) & 7);
13694 WRITE_WORD_F(adr, res)
13708 READ_WORD_F(adr, res)
13713 adr = AREG((Opcode >> 9) & 7);
13714 AREG((Opcode >> 9) & 7) += 2;
13715 WRITE_WORD_F(adr, res)
13729 READ_WORD_F(adr, res)
13734 adr = AREG((Opcode >> 9) & 7) - 2;
13735 AREG((Opcode >> 9) & 7) = adr;
13736 WRITE_WORD_F(adr, res)
13750 READ_WORD_F(adr, res)
13756 adr += AREG((Opcode >> 9) & 7);
13757 WRITE_WORD_F(adr, res)
13771 READ_WORD_F(adr, res)
13776 adr = AREG((Opcode >> 9) & 7);
13778 WRITE_WORD_F(adr, res)
13792 READ_WORD_F(adr, res)
13798 WRITE_WORD_F(adr, res)
13812 READ_WORD_F(adr, res)
13818 WRITE_WORD_F(adr, res)
13832 READ_WORD_F(adr, res)
13839 WRITE_WORD_F(adr, res)
13853 READ_WORD_F(adr, res)
13860 WRITE_WORD_F(adr, res)
13871 res = (s32)DREGs16((Opcode >> 0) & 7);
13872 AREG((Opcode >> 9) & 7) = res;
13882 res = (s32)AREGs16((Opcode >> 0) & 7);
13883 AREG((Opcode >> 9) & 7) = res;
13893 adr = AREG((Opcode >> 0) & 7);
13895 READSX_WORD_F(adr, res)
13896 AREG((Opcode >> 9) & 7) = res;
13907 adr = AREG((Opcode >> 0) & 7);
13908 AREG((Opcode >> 0) & 7) += 2;
13910 READSX_WORD_F(adr, res)
13911 AREG((Opcode >> 9) & 7) = res;
13922 adr = AREG((Opcode >> 0) & 7) - 2;
13923 AREG((Opcode >> 0) & 7) = adr;
13925 READSX_WORD_F(adr, res)
13926 AREG((Opcode >> 9) & 7) = res;
13938 adr += AREG((Opcode >> 0) & 7);
13940 READSX_WORD_F(adr, res)
13941 AREG((Opcode >> 9) & 7) = res;
13952 adr = AREG((Opcode >> 0) & 7);
13955 READSX_WORD_F(adr, res)
13956 AREG((Opcode >> 9) & 7) = res;
13969 READSX_WORD_F(adr, res)
13970 AREG((Opcode >> 9) & 7) = res;
13983 READSX_WORD_F(adr, res)
13984 AREG((Opcode >> 9) & 7) = res;
13995 adr = GET_SWORD + GET_PC;
13998 READSX_WORD_F(adr, res)
13999 AREG((Opcode >> 9) & 7) = res;
14013 READSX_WORD_F(adr, res)
14014 AREG((Opcode >> 9) & 7) = res;
14026 AREG((Opcode >> 9) & 7) = res;
14039 READSX_WORD_F(adr, res)
14040 AREG((Opcode >> 9) & 7) = res;
14054 READSX_WORD_F(adr, res)
14055 AREG((Opcode >> 9) & 7) = res;
14066 src = DREGu8((Opcode >> 0) & 7);
14067 res = -src - ((flag_X >> 8) & 1);
14068 flag_V = res & src;
14069 flag_N = flag_X = flag_C = res;
14070 flag_NotZ |= res & 0xFF;
14071 DREGu8((Opcode >> 0) & 7) = res;
14081 adr = AREG((Opcode >> 0) & 7);
14083 READ_BYTE_F(adr, src)
14084 res = -src - ((flag_X >> 8) & 1);
14085 flag_V = res & src;
14086 flag_N = flag_X = flag_C = res;
14087 flag_NotZ |= res & 0xFF;
14088 WRITE_BYTE_F(adr, res)
14099 adr = AREG((Opcode >> 0) & 7);
14100 AREG((Opcode >> 0) & 7) += 1;
14102 READ_BYTE_F(adr, src)
14103 res = -src - ((flag_X >> 8) & 1);
14104 flag_V = res & src;
14105 flag_N = flag_X = flag_C = res;
14106 flag_NotZ |= res & 0xFF;
14107 WRITE_BYTE_F(adr, res)
14118 adr = AREG((Opcode >> 0) & 7) - 1;
14119 AREG((Opcode >> 0) & 7) = adr;
14121 READ_BYTE_F(adr, src)
14122 res = -src - ((flag_X >> 8) & 1);
14123 flag_V = res & src;
14124 flag_N = flag_X = flag_C = res;
14125 flag_NotZ |= res & 0xFF;
14126 WRITE_BYTE_F(adr, res)
14138 adr += AREG((Opcode >> 0) & 7);
14140 READ_BYTE_F(adr, src)
14141 res = -src - ((flag_X >> 8) & 1);
14142 flag_V = res & src;
14143 flag_N = flag_X = flag_C = res;
14144 flag_NotZ |= res & 0xFF;
14145 WRITE_BYTE_F(adr, res)
14156 adr = AREG((Opcode >> 0) & 7);
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)
14195 READ_BYTE_F(adr, src)
14196 res = -src - ((flag_X >> 8) & 1);
14197 flag_V = res & src;
14198 flag_N = flag_X = flag_C = res;
14199 flag_NotZ |= res & 0xFF;
14200 WRITE_BYTE_F(adr, res)
14214 READ_BYTE_F(adr, src)
14215 res = -src - ((flag_X >> 8) & 1);
14216 flag_V = res & src;
14217 flag_N = flag_X = flag_C = res;
14218 flag_NotZ |= res & 0xFF;
14219 WRITE_BYTE_F(adr, res)
14233 READ_BYTE_F(adr, src)
14234 res = -src - ((flag_X >> 8) & 1);
14235 flag_V = res & src;
14236 flag_N = flag_X = flag_C = res;
14237 flag_NotZ |= res & 0xFF;
14238 WRITE_BYTE_F(adr, res)
14249 src = DREGu16((Opcode >> 0) & 7);
14250 res = -src - ((flag_X >> 8) & 1);
14251 flag_V = (res & src) >> 8;
14252 flag_N = flag_X = flag_C = res >> 8;
14253 flag_NotZ |= res & 0xFFFF;
14254 DREGu16((Opcode >> 0) & 7) = res;
14264 adr = AREG((Opcode >> 0) & 7);
14266 READ_WORD_F(adr, src)
14267 res = -src - ((flag_X >> 8) & 1);
14268 flag_V = (res & src) >> 8;
14269 flag_N = flag_X = flag_C = res >> 8;
14270 flag_NotZ |= res & 0xFFFF;
14271 WRITE_WORD_F(adr, res)
14282 adr = AREG((Opcode >> 0) & 7);
14283 AREG((Opcode >> 0) & 7) += 2;
14285 READ_WORD_F(adr, src)
14286 res = -src - ((flag_X >> 8) & 1);
14287 flag_V = (res & src) >> 8;
14288 flag_N = flag_X = flag_C = res >> 8;
14289 flag_NotZ |= res & 0xFFFF;
14290 WRITE_WORD_F(adr, res)
14301 adr = AREG((Opcode >> 0) & 7) - 2;
14302 AREG((Opcode >> 0) & 7) = adr;
14304 READ_WORD_F(adr, src)
14305 res = -src - ((flag_X >> 8) & 1);
14306 flag_V = (res & src) >> 8;
14307 flag_N = flag_X = flag_C = res >> 8;
14308 flag_NotZ |= res & 0xFFFF;
14309 WRITE_WORD_F(adr, res)
14321 adr += AREG((Opcode >> 0) & 7);
14323 READ_WORD_F(adr, src)
14324 res = -src - ((flag_X >> 8) & 1);
14325 flag_V = (res & src) >> 8;
14326 flag_N = flag_X = flag_C = res >> 8;
14327 flag_NotZ |= res & 0xFFFF;
14328 WRITE_WORD_F(adr, res)
14339 adr = AREG((Opcode >> 0) & 7);
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)
14378 READ_WORD_F(adr, src)
14379 res = -src - ((flag_X >> 8) & 1);
14380 flag_V = (res & src) >> 8;
14381 flag_N = flag_X = flag_C = res >> 8;
14382 flag_NotZ |= res & 0xFFFF;
14383 WRITE_WORD_F(adr, res)
14397 READ_WORD_F(adr, src)
14398 res = -src - ((flag_X >> 8) & 1);
14399 flag_V = (res & src) >> 8;
14400 flag_N = flag_X = flag_C = res >> 8;
14401 flag_NotZ |= res & 0xFFFF;
14402 WRITE_WORD_F(adr, res)
14416 READ_WORD_F(adr, src)
14417 res = -src - ((flag_X >> 8) & 1);
14418 flag_V = (res & src) >> 8;
14419 flag_N = flag_X = flag_C = res >> 8;
14420 flag_NotZ |= res & 0xFFFF;
14421 WRITE_WORD_F(adr, res)
14432 src = DREGu32((Opcode >> 0) & 7);
14433 res = -src - ((flag_X >> 8) & 1);
14435 flag_V = (res & src) >> 24;
14436 flag_X = flag_C = (res?1:0)<<8;
14437 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14438 flag_N = res >> 24;
14439 DREGu32((Opcode >> 0) & 7) = res;
14449 adr = AREG((Opcode >> 0) & 7);
14451 READ_LONG_F(adr, src)
14452 res = -src - ((flag_X >> 8) & 1);
14454 flag_V = (res & src) >> 24;
14455 flag_X = flag_C = (res?1:0)<<8;
14456 // flag_X = flag_C = ((src & res & 1) | (src >> 1) | (res >> 1)) >> 23;
14457 flag_N = res >> 24;
14458 WRITE_LONG_F(adr, res)
14469 adr = AREG((Opcode >> 0) & 7);
14470 AREG((Opcode >> 0) & 7) += 4;
14472 READ_LONG_F(adr, src)
14473 res = -src - ((flag_X >> 8) & 1);
14475 flag_V = (res & src) >> 24;
14476 flag_X = flag_C = (res?1:0)<<8;
14477 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14478 flag_N = res >> 24;
14479 WRITE_LONG_F(adr, res)
14490 adr = AREG((Opcode >> 0) & 7) - 4;
14491 AREG((Opcode >> 0) & 7) = adr;
14493 READ_LONG_F(adr, src)
14494 res = -src - ((flag_X >> 8) & 1);
14496 flag_V = (res & src) >> 24;
14497 flag_X = flag_C = (res?1:0)<<8;
14498 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14499 flag_N = res >> 24;
14500 WRITE_LONG_F(adr, res)
14512 adr += AREG((Opcode >> 0) & 7);
14514 READ_LONG_F(adr, src)
14515 res = -src - ((flag_X >> 8) & 1);
14517 flag_V = (res & src) >> 24;
14518 flag_X = flag_C = (res?1:0)<<8;
14519 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14520 flag_N = res >> 24;
14521 WRITE_LONG_F(adr, res)
14532 adr = AREG((Opcode >> 0) & 7);
14535 READ_LONG_F(adr, src)
14536 res = -src - ((flag_X >> 8) & 1);
14538 flag_V = (res & src) >> 24;
14539 flag_X = flag_C = (res?1:0)<<8;
14540 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14541 flag_N = res >> 24;
14542 WRITE_LONG_F(adr, res)
14555 READ_LONG_F(adr, src)
14556 res = -src - ((flag_X >> 8) & 1);
14558 flag_V = (res & src) >> 24;
14559 flag_X = flag_C = (res?1:0)<<8;
14560 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14561 flag_N = res >> 24;
14562 WRITE_LONG_F(adr, res)
14575 READ_LONG_F(adr, src)
14576 res = -src - ((flag_X >> 8) & 1);
14578 flag_V = (res & src) >> 24;
14579 flag_X = flag_C = (res?1:0)<<8;
14580 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14581 flag_N = res >> 24;
14582 WRITE_LONG_F(adr, res)
14596 READ_LONG_F(adr, src)
14597 res = -src - ((flag_X >> 8) & 1);
14599 flag_V = (res & src) >> 24;
14600 flag_X = flag_C = (res?1:0)<<8;
14601 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14602 flag_N = res >> 24;
14603 WRITE_LONG_F(adr, res)
14617 READ_LONG_F(adr, src)
14618 res = -src - ((flag_X >> 8) & 1);
14620 flag_V = (res & src) >> 24;
14621 flag_X = flag_C = (res?1:0)<<8;
14622 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14623 flag_N = res >> 24;
14624 WRITE_LONG_F(adr, res)
14636 flag_N = flag_NotZ = flag_V = flag_C = 0;
14637 DREGu8((Opcode >> 0) & 7) = res;
14647 adr = AREG((Opcode >> 0) & 7);
14649 flag_N = flag_NotZ = flag_V = flag_C = 0;
14651 WRITE_BYTE_F(adr, res)
14662 adr = AREG((Opcode >> 0) & 7);
14663 AREG((Opcode >> 0) & 7) += 1;
14665 flag_N = flag_NotZ = flag_V = flag_C = 0;
14667 WRITE_BYTE_F(adr, res)
14678 adr = AREG((Opcode >> 0) & 7) - 1;
14679 AREG((Opcode >> 0) & 7) = adr;
14681 flag_N = flag_NotZ = flag_V = flag_C = 0;
14683 WRITE_BYTE_F(adr, res)
14695 adr += AREG((Opcode >> 0) & 7);
14697 flag_N = flag_NotZ = flag_V = flag_C = 0;
14699 WRITE_BYTE_F(adr, res)
14710 adr = AREG((Opcode >> 0) & 7);
14713 flag_N = flag_NotZ = flag_V = flag_C = 0;
14715 WRITE_BYTE_F(adr, res)
14728 flag_N = flag_NotZ = flag_V = flag_C = 0;
14730 WRITE_BYTE_F(adr, res)
14743 flag_N = flag_NotZ = flag_V = flag_C = 0;
14745 WRITE_BYTE_F(adr, res)
14759 flag_N = flag_NotZ = flag_V = flag_C = 0;
14761 WRITE_BYTE_F(adr, res)
14775 flag_N = flag_NotZ = flag_V = flag_C = 0;
14777 WRITE_BYTE_F(adr, res)
14789 flag_N = flag_NotZ = flag_V = flag_C = 0;
14790 DREGu16((Opcode >> 0) & 7) = res;
14800 adr = AREG((Opcode >> 0) & 7);
14802 flag_N = flag_NotZ = flag_V = flag_C = 0;
14804 WRITE_WORD_F(adr, res)
14815 adr = AREG((Opcode >> 0) & 7);
14816 AREG((Opcode >> 0) & 7) += 2;
14818 flag_N = flag_NotZ = flag_V = flag_C = 0;
14820 WRITE_WORD_F(adr, res)
14831 adr = AREG((Opcode >> 0) & 7) - 2;
14832 AREG((Opcode >> 0) & 7) = adr;
14834 flag_N = flag_NotZ = flag_V = flag_C = 0;
14836 WRITE_WORD_F(adr, res)
14848 adr += AREG((Opcode >> 0) & 7);
14850 flag_N = flag_NotZ = flag_V = flag_C = 0;
14852 WRITE_WORD_F(adr, res)
14863 adr = AREG((Opcode >> 0) & 7);
14866 flag_N = flag_NotZ = flag_V = flag_C = 0;
14868 WRITE_WORD_F(adr, res)
14881 flag_N = flag_NotZ = flag_V = flag_C = 0;
14883 WRITE_WORD_F(adr, res)
14896 flag_N = flag_NotZ = flag_V = flag_C = 0;
14898 WRITE_WORD_F(adr, res)
14912 flag_N = flag_NotZ = flag_V = flag_C = 0;
14914 WRITE_WORD_F(adr, res)
14928 flag_N = flag_NotZ = flag_V = flag_C = 0;
14930 WRITE_WORD_F(adr, res)
14942 flag_N = flag_NotZ = flag_V = flag_C = 0;
14943 DREGu32((Opcode >> 0) & 7) = res;
14953 adr = AREG((Opcode >> 0) & 7);
14955 flag_N = flag_NotZ = flag_V = flag_C = 0;
14957 WRITE_LONG_F(adr, res)
14968 adr = AREG((Opcode >> 0) & 7);
14969 AREG((Opcode >> 0) & 7) += 4;
14971 flag_N = flag_NotZ = flag_V = flag_C = 0;
14973 WRITE_LONG_F(adr, res)
14984 adr = AREG((Opcode >> 0) & 7) - 4;
14985 AREG((Opcode >> 0) & 7) = adr;
14987 flag_N = flag_NotZ = flag_V = flag_C = 0;
14989 WRITE_LONG_F(adr, res)
15001 adr += AREG((Opcode >> 0) & 7);
15003 flag_N = flag_NotZ = flag_V = flag_C = 0;
15005 WRITE_LONG_F(adr, res)
15016 adr = AREG((Opcode >> 0) & 7);
15019 flag_N = flag_NotZ = flag_V = flag_C = 0;
15021 WRITE_LONG_F(adr, res)
15034 flag_N = flag_NotZ = flag_V = flag_C = 0;
15036 WRITE_LONG_F(adr, res)
15049 flag_N = flag_NotZ = flag_V = flag_C = 0;
15051 WRITE_LONG_F(adr, res)
15065 flag_N = flag_NotZ = flag_V = flag_C = 0;
15067 WRITE_LONG_F(adr, res)
15081 flag_N = flag_NotZ = flag_V = flag_C = 0;
15083 WRITE_LONG_F(adr, res)
15094 src = DREGu8((Opcode >> 0) & 7);
15096 flag_V = res & src;
15097 flag_N = flag_X = flag_C = res;
15098 flag_NotZ = res & 0xFF;
15099 DREGu8((Opcode >> 0) & 7) = res;
15109 adr = AREG((Opcode >> 0) & 7);
15111 READ_BYTE_F(adr, src)
15113 flag_V = res & src;
15114 flag_N = flag_X = flag_C = res;
15115 flag_NotZ = res & 0xFF;
15116 WRITE_BYTE_F(adr, res)
15127 adr = AREG((Opcode >> 0) & 7);
15128 AREG((Opcode >> 0) & 7) += 1;
15130 READ_BYTE_F(adr, src)
15132 flag_V = res & src;
15133 flag_N = flag_X = flag_C = res;
15134 flag_NotZ = res & 0xFF;
15135 WRITE_BYTE_F(adr, res)
15146 adr = AREG((Opcode >> 0) & 7) - 1;
15147 AREG((Opcode >> 0) & 7) = adr;
15149 READ_BYTE_F(adr, src)
15151 flag_V = res & src;
15152 flag_N = flag_X = flag_C = res;
15153 flag_NotZ = res & 0xFF;
15154 WRITE_BYTE_F(adr, res)
15166 adr += AREG((Opcode >> 0) & 7);
15168 READ_BYTE_F(adr, src)
15170 flag_V = res & src;
15171 flag_N = flag_X = flag_C = res;
15172 flag_NotZ = res & 0xFF;
15173 WRITE_BYTE_F(adr, res)
15184 adr = AREG((Opcode >> 0) & 7);
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)
15223 READ_BYTE_F(adr, src)
15225 flag_V = res & src;
15226 flag_N = flag_X = flag_C = res;
15227 flag_NotZ = res & 0xFF;
15228 WRITE_BYTE_F(adr, res)
15242 READ_BYTE_F(adr, src)
15244 flag_V = res & src;
15245 flag_N = flag_X = flag_C = res;
15246 flag_NotZ = res & 0xFF;
15247 WRITE_BYTE_F(adr, res)
15261 READ_BYTE_F(adr, src)
15263 flag_V = res & src;
15264 flag_N = flag_X = flag_C = res;
15265 flag_NotZ = res & 0xFF;
15266 WRITE_BYTE_F(adr, res)
15277 src = DREGu16((Opcode >> 0) & 7);
15279 flag_V = (res & src) >> 8;
15280 flag_N = flag_X = flag_C = res >> 8;
15281 flag_NotZ = res & 0xFFFF;
15282 DREGu16((Opcode >> 0) & 7) = res;
15292 adr = AREG((Opcode >> 0) & 7);
15294 READ_WORD_F(adr, src)
15296 flag_V = (res & src) >> 8;
15297 flag_N = flag_X = flag_C = res >> 8;
15298 flag_NotZ = res & 0xFFFF;
15299 WRITE_WORD_F(adr, res)
15310 adr = AREG((Opcode >> 0) & 7);
15311 AREG((Opcode >> 0) & 7) += 2;
15313 READ_WORD_F(adr, src)
15315 flag_V = (res & src) >> 8;
15316 flag_N = flag_X = flag_C = res >> 8;
15317 flag_NotZ = res & 0xFFFF;
15318 WRITE_WORD_F(adr, res)
15329 adr = AREG((Opcode >> 0) & 7) - 2;
15330 AREG((Opcode >> 0) & 7) = adr;
15332 READ_WORD_F(adr, src)
15334 flag_V = (res & src) >> 8;
15335 flag_N = flag_X = flag_C = res >> 8;
15336 flag_NotZ = res & 0xFFFF;
15337 WRITE_WORD_F(adr, res)
15349 adr += AREG((Opcode >> 0) & 7);
15351 READ_WORD_F(adr, src)
15353 flag_V = (res & src) >> 8;
15354 flag_N = flag_X = flag_C = res >> 8;
15355 flag_NotZ = res & 0xFFFF;
15356 WRITE_WORD_F(adr, res)
15367 adr = AREG((Opcode >> 0) & 7);
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)
15406 READ_WORD_F(adr, src)
15408 flag_V = (res & src) >> 8;
15409 flag_N = flag_X = flag_C = res >> 8;
15410 flag_NotZ = res & 0xFFFF;
15411 WRITE_WORD_F(adr, res)
15425 READ_WORD_F(adr, src)
15427 flag_V = (res & src) >> 8;
15428 flag_N = flag_X = flag_C = res >> 8;
15429 flag_NotZ = res & 0xFFFF;
15430 WRITE_WORD_F(adr, res)
15444 READ_WORD_F(adr, src)
15446 flag_V = (res & src) >> 8;
15447 flag_N = flag_X = flag_C = res >> 8;
15448 flag_NotZ = res & 0xFFFF;
15449 WRITE_WORD_F(adr, res)
15460 src = DREGu32((Opcode >> 0) & 7);
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 DREGu32((Opcode >> 0) & 7) = res;
15476 adr = AREG((Opcode >> 0) & 7);
15478 READ_LONG_F(adr, src)
15481 flag_V = (res & src) >> 24;
15482 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15483 flag_N = res >> 24;
15484 WRITE_LONG_F(adr, res)
15495 adr = AREG((Opcode >> 0) & 7);
15496 AREG((Opcode >> 0) & 7) += 4;
15498 READ_LONG_F(adr, src)
15501 flag_V = (res & src) >> 24;
15502 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15503 flag_N = res >> 24;
15504 WRITE_LONG_F(adr, res)
15515 adr = AREG((Opcode >> 0) & 7) - 4;
15516 AREG((Opcode >> 0) & 7) = adr;
15518 READ_LONG_F(adr, src)
15521 flag_V = (res & src) >> 24;
15522 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15523 flag_N = res >> 24;
15524 WRITE_LONG_F(adr, res)
15536 adr += AREG((Opcode >> 0) & 7);
15538 READ_LONG_F(adr, src)
15541 flag_V = (res & src) >> 24;
15542 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15543 flag_N = res >> 24;
15544 WRITE_LONG_F(adr, res)
15555 adr = AREG((Opcode >> 0) & 7);
15558 READ_LONG_F(adr, src)
15561 flag_V = (res & src) >> 24;
15562 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15563 flag_N = res >> 24;
15564 WRITE_LONG_F(adr, res)
15577 READ_LONG_F(adr, src)
15580 flag_V = (res & src) >> 24;
15581 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15582 flag_N = res >> 24;
15583 WRITE_LONG_F(adr, res)
15596 READ_LONG_F(adr, src)
15599 flag_V = (res & src) >> 24;
15600 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15601 flag_N = res >> 24;
15602 WRITE_LONG_F(adr, res)
15616 READ_LONG_F(adr, src)
15619 flag_V = (res & src) >> 24;
15620 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15621 flag_N = res >> 24;
15622 WRITE_LONG_F(adr, res)
15636 READ_LONG_F(adr, src)
15639 flag_V = (res & src) >> 24;
15640 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15641 flag_N = res >> 24;
15642 WRITE_LONG_F(adr, res)
15653 src = DREGu8((Opcode >> 0) & 7);
15658 flag_NotZ = res & 0xFF;
15659 DREGu8((Opcode >> 0) & 7) = res;
15669 adr = AREG((Opcode >> 0) & 7);
15671 READ_BYTE_F(adr, src)
15676 flag_NotZ = res & 0xFF;
15677 WRITE_BYTE_F(adr, res)
15688 adr = AREG((Opcode >> 0) & 7);
15689 AREG((Opcode >> 0) & 7) += 1;
15691 READ_BYTE_F(adr, src)
15696 flag_NotZ = res & 0xFF;
15697 WRITE_BYTE_F(adr, res)
15708 adr = AREG((Opcode >> 0) & 7) - 1;
15709 AREG((Opcode >> 0) & 7) = adr;
15711 READ_BYTE_F(adr, src)
15716 flag_NotZ = res & 0xFF;
15717 WRITE_BYTE_F(adr, res)
15729 adr += AREG((Opcode >> 0) & 7);
15731 READ_BYTE_F(adr, src)
15736 flag_NotZ = res & 0xFF;
15737 WRITE_BYTE_F(adr, res)
15748 adr = AREG((Opcode >> 0) & 7);
15751 READ_BYTE_F(adr, src)
15756 flag_NotZ = res & 0xFF;
15757 WRITE_BYTE_F(adr, res)
15770 READ_BYTE_F(adr, src)
15775 flag_NotZ = res & 0xFF;
15776 WRITE_BYTE_F(adr, res)
15789 READ_BYTE_F(adr, src)
15794 flag_NotZ = res & 0xFF;
15795 WRITE_BYTE_F(adr, res)
15809 READ_BYTE_F(adr, src)
15814 flag_NotZ = res & 0xFF;
15815 WRITE_BYTE_F(adr, res)
15829 READ_BYTE_F(adr, src)
15834 flag_NotZ = res & 0xFF;
15835 WRITE_BYTE_F(adr, res)
15846 src = DREGu16((Opcode >> 0) & 7);
15850 flag_NotZ = res & 0xFFFF;
15852 DREGu16((Opcode >> 0) & 7) = res;
15862 adr = AREG((Opcode >> 0) & 7);
15864 READ_WORD_F(adr, src)
15868 flag_NotZ = res & 0xFFFF;
15870 WRITE_WORD_F(adr, res)
15881 adr = AREG((Opcode >> 0) & 7);
15882 AREG((Opcode >> 0) & 7) += 2;
15884 READ_WORD_F(adr, src)
15888 flag_NotZ = res & 0xFFFF;
15890 WRITE_WORD_F(adr, res)
15901 adr = AREG((Opcode >> 0) & 7) - 2;
15902 AREG((Opcode >> 0) & 7) = adr;
15904 READ_WORD_F(adr, src)
15908 flag_NotZ = res & 0xFFFF;
15910 WRITE_WORD_F(adr, res)
15922 adr += AREG((Opcode >> 0) & 7);
15924 READ_WORD_F(adr, src)
15928 flag_NotZ = res & 0xFFFF;
15930 WRITE_WORD_F(adr, res)
15941 adr = AREG((Opcode >> 0) & 7);
15944 READ_WORD_F(adr, src)
15948 flag_NotZ = res & 0xFFFF;
15950 WRITE_WORD_F(adr, res)
15963 READ_WORD_F(adr, src)
15967 flag_NotZ = res & 0xFFFF;
15969 WRITE_WORD_F(adr, res)
15982 READ_WORD_F(adr, src)
15986 flag_NotZ = res & 0xFFFF;
15988 WRITE_WORD_F(adr, res)
16002 READ_WORD_F(adr, src)
16006 flag_NotZ = res & 0xFFFF;
16008 WRITE_WORD_F(adr, res)
16022 READ_WORD_F(adr, src)
16026 flag_NotZ = res & 0xFFFF;
16028 WRITE_WORD_F(adr, res)
16039 src = DREGu32((Opcode >> 0) & 7);
16044 flag_N = res >> 24;
16045 DREGu32((Opcode >> 0) & 7) = res;
16055 adr = AREG((Opcode >> 0) & 7);
16057 READ_LONG_F(adr, src)
16062 flag_N = res >> 24;
16063 WRITE_LONG_F(adr, res)
16074 adr = AREG((Opcode >> 0) & 7);
16075 AREG((Opcode >> 0) & 7) += 4;
16077 READ_LONG_F(adr, src)
16082 flag_N = res >> 24;
16083 WRITE_LONG_F(adr, res)
16094 adr = AREG((Opcode >> 0) & 7) - 4;
16095 AREG((Opcode >> 0) & 7) = adr;
16097 READ_LONG_F(adr, src)
16102 flag_N = res >> 24;
16103 WRITE_LONG_F(adr, res)
16115 adr += AREG((Opcode >> 0) & 7);
16117 READ_LONG_F(adr, src)
16122 flag_N = res >> 24;
16123 WRITE_LONG_F(adr, res)
16134 adr = AREG((Opcode >> 0) & 7);
16137 READ_LONG_F(adr, src)
16142 flag_N = res >> 24;
16143 WRITE_LONG_F(adr, res)
16156 READ_LONG_F(adr, src)
16161 flag_N = res >> 24;
16162 WRITE_LONG_F(adr, res)
16175 READ_LONG_F(adr, src)
16180 flag_N = res >> 24;
16181 WRITE_LONG_F(adr, res)
16195 READ_LONG_F(adr, src)
16200 flag_N = res >> 24;
16201 WRITE_LONG_F(adr, res)
16215 READ_LONG_F(adr, src)
16220 flag_N = res >> 24;
16221 WRITE_LONG_F(adr, res)
16233 DREGu16((Opcode >> 0) & 7) = res;
16244 adr = AREG((Opcode >> 0) & 7);
16246 WRITE_WORD_F(adr, res)
16258 adr = AREG((Opcode >> 0) & 7);
16259 AREG((Opcode >> 0) & 7) += 2;
16261 WRITE_WORD_F(adr, res)
16273 adr = AREG((Opcode >> 0) & 7) - 2;
16274 AREG((Opcode >> 0) & 7) = adr;
16276 WRITE_WORD_F(adr, res)
16289 adr += AREG((Opcode >> 0) & 7);
16291 WRITE_WORD_F(adr, res)
16303 adr = AREG((Opcode >> 0) & 7);
16306 WRITE_WORD_F(adr, res)
16320 WRITE_WORD_F(adr, res)
16334 WRITE_WORD_F(adr, res)
16349 WRITE_WORD_F(adr, res)
16364 WRITE_WORD_F(adr, res)
16375 res = DREGu16((Opcode >> 0) & 7);
16386 adr = AREG((Opcode >> 0) & 7);
16388 READ_WORD_F(adr, res)
16400 adr = AREG((Opcode >> 0) & 7);
16401 AREG((Opcode >> 0) & 7) += 2;
16403 READ_WORD_F(adr, res)
16415 adr = AREG((Opcode >> 0) & 7) - 2;
16416 AREG((Opcode >> 0) & 7) = adr;
16418 READ_WORD_F(adr, res)
16431 adr += AREG((Opcode >> 0) & 7);
16433 READ_WORD_F(adr, res)
16445 adr = AREG((Opcode >> 0) & 7);
16448 READ_WORD_F(adr, res)
16462 READ_WORD_F(adr, res)
16476 READ_WORD_F(adr, res)
16488 adr = GET_SWORD + GET_PC;
16491 READ_WORD_F(adr, res)
16506 READ_WORD_F(adr, res)
16532 READ_WORD_F(adr, res)
16547 READ_WORD_F(adr, res)
16561 res = DREGu16((Opcode >> 0) & 7);
16569 CHECK_INT_TO_JUMP(12)
16573 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16587 adr = AREG((Opcode >> 0) & 7);
16589 READ_WORD_F(adr, res)
16598 CHECK_INT_TO_JUMP(16)
16602 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16616 adr = AREG((Opcode >> 0) & 7);
16617 AREG((Opcode >> 0) & 7) += 2;
16619 READ_WORD_F(adr, res)
16628 CHECK_INT_TO_JUMP(16)
16632 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16646 adr = AREG((Opcode >> 0) & 7) - 2;
16647 AREG((Opcode >> 0) & 7) = adr;
16649 READ_WORD_F(adr, res)
16658 CHECK_INT_TO_JUMP(18)
16662 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16677 adr += AREG((Opcode >> 0) & 7);
16679 READ_WORD_F(adr, res)
16688 CHECK_INT_TO_JUMP(20)
16692 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16706 adr = AREG((Opcode >> 0) & 7);
16709 READ_WORD_F(adr, res)
16718 CHECK_INT_TO_JUMP(22)
16722 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16739 READ_WORD_F(adr, res)
16748 CHECK_INT_TO_JUMP(20)
16752 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16768 READ_WORD_F(adr, res)
16777 CHECK_INT_TO_JUMP(24)
16781 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16795 adr = GET_SWORD + GET_PC;
16798 READ_WORD_F(adr, res)
16807 CHECK_INT_TO_JUMP(20)
16811 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16828 READ_WORD_F(adr, res)
16837 CHECK_INT_TO_JUMP(22)
16841 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16863 CHECK_INT_TO_JUMP(16)
16867 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16884 READ_WORD_F(adr, res)
16893 CHECK_INT_TO_JUMP(16)
16897 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16914 READ_WORD_F(adr, res)
16923 CHECK_INT_TO_JUMP(18)
16927 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16939 dst = DREGu8((Opcode >> 0) & 7);
16940 res = -dst - ((flag_X >> M68K_SR_X_SFT) & 1);
16945 if (((res|dst) & 0x0f) == 0) res = (res & 0xf0) + 6;
16946 res = (res + 0x9a) & 0xFF;
16947 DREGu8((Opcode >> 0) & 7) = res;
16950 flag_X = flag_C = M68K_SR_C;
16952 else flag_V = flag_X = flag_C = 0;
16963 adr = AREG((Opcode >> 0) & 7);
16965 READ_BYTE_F(adr, dst)
16966 res = -dst - ((flag_X >> M68K_SR_X_SFT) & 1);
16971 if (((res|dst) & 0x0f) == 0) res = (res & 0xf0) + 6;
16972 res = (res + 0x9a) & 0xFF;
16973 WRITE_BYTE_F(adr, res)
16976 flag_X = flag_C = M68K_SR_C;
16978 else flag_V = flag_X = flag_C = 0;
16990 adr = AREG((Opcode >> 0) & 7);
16991 AREG((Opcode >> 0) & 7) += 1;
16993 READ_BYTE_F(adr, dst)
16994 res = -dst - ((flag_X >> M68K_SR_X_SFT) & 1);
16999 if (((res|dst) & 0x0f) == 0) res = (res & 0xf0) + 6;
17000 res = (res + 0x9a) & 0xFF;
17001 WRITE_BYTE_F(adr, res)
17004 flag_X = flag_C = M68K_SR_C;
17006 else flag_V = flag_X = flag_C = 0;
17018 adr = AREG((Opcode >> 0) & 7) - 1;
17019 AREG((Opcode >> 0) & 7) = adr;
17021 READ_BYTE_F(adr, dst)
17022 res = -dst - ((flag_X >> M68K_SR_X_SFT) & 1);
17027 if (((res|dst) & 0x0f) == 0) res = (res & 0xf0) + 6;
17028 res = (res + 0x9a) & 0xFF;
17029 WRITE_BYTE_F(adr, res)
17032 flag_X = flag_C = M68K_SR_C;
17034 else flag_V = flag_X = flag_C = 0;
17047 adr += AREG((Opcode >> 0) & 7);
17049 READ_BYTE_F(adr, dst)
17050 res = -dst - ((flag_X >> M68K_SR_X_SFT) & 1);
17055 if (((res|dst) & 0x0f) == 0) res = (res & 0xf0) + 6;
17056 res = (res + 0x9a) & 0xFF;
17057 WRITE_BYTE_F(adr, res)
17060 flag_X = flag_C = M68K_SR_C;
17062 else flag_V = flag_X = flag_C = 0;
17074 adr = AREG((Opcode >> 0) & 7);
17077 READ_BYTE_F(adr, dst)
17078 res = -dst - ((flag_X >> M68K_SR_X_SFT) & 1);
17083 if (((res|dst) & 0x0f) == 0) res = (res & 0xf0) + 6;
17084 res = (res + 0x9a) & 0xFF;
17085 WRITE_BYTE_F(adr, res)
17088 flag_X = flag_C = M68K_SR_C;
17090 else flag_V = flag_X = flag_C = 0;
17104 READ_BYTE_F(adr, dst)
17105 res = -dst - ((flag_X >> M68K_SR_X_SFT) & 1);
17110 if (((res|dst) & 0x0f) == 0) res = (res & 0xf0) + 6;
17111 res = (res + 0x9a) & 0xFF;
17112 WRITE_BYTE_F(adr, res)
17115 flag_X = flag_C = M68K_SR_C;
17117 else flag_V = flag_X = flag_C = 0;
17131 READ_BYTE_F(adr, dst)
17132 res = -dst - ((flag_X >> M68K_SR_X_SFT) & 1);
17137 if (((res|dst) & 0x0f) == 0) res = (res & 0xf0) + 6;
17138 res = (res + 0x9a) & 0xFF;
17139 WRITE_BYTE_F(adr, res)
17142 flag_X = flag_C = M68K_SR_C;
17144 else flag_V = flag_X = flag_C = 0;
17159 READ_BYTE_F(adr, dst)
17160 res = -dst - ((flag_X >> M68K_SR_X_SFT) & 1);
17165 if (((res|dst) & 0x0f) == 0) res = (res & 0xf0) + 6;
17166 res = (res + 0x9a) & 0xFF;
17167 WRITE_BYTE_F(adr, res)
17170 flag_X = flag_C = M68K_SR_C;
17172 else flag_V = flag_X = flag_C = 0;
17187 READ_BYTE_F(adr, dst)
17188 res = -dst - ((flag_X >> M68K_SR_X_SFT) & 1);
17193 if (((res|dst) & 0x0f) == 0) res = (res & 0xf0) + 6;
17194 res = (res + 0x9a) & 0xFF;
17195 WRITE_BYTE_F(adr, res)
17198 flag_X = flag_C = M68K_SR_C;
17200 else flag_V = flag_X = flag_C = 0;
17212 adr = AREG((Opcode >> 0) & 7);
17226 adr += AREG((Opcode >> 0) & 7);
17239 adr = AREG((Opcode >> 0) & 7);
17279 adr = GET_SWORD + GET_PC;
17307 res = DREGu32((Opcode >> 0) & 7);
17308 res = (res >> 16) | (res << 16);
17312 flag_N = res >> 24;
17313 DREGu32((Opcode >> 0) & 7) = res;
17326 adr = AREG((Opcode >> 0) & 7);
17327 psrc = &DREGu32(0);
17334 WRITE_WORD_F(adr, *psrc)
17338 } while (res >>= 1);
17340 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17341 #ifdef USE_CYCLONE_TIMING
17357 adr = AREG((Opcode >> 0) & 7);
17358 psrc = &AREGu32(7);
17366 WRITE_WORD_F(adr, *psrc)
17369 } while (res >>= 1);
17370 AREG((Opcode >> 0) & 7) = adr;
17372 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17386 adr += AREG((Opcode >> 0) & 7);
17387 psrc = &DREGu32(0);
17394 WRITE_WORD_F(adr, *psrc)
17398 } while (res >>= 1);
17400 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17401 #ifdef USE_CYCLONE_TIMING
17417 adr = AREG((Opcode >> 0) & 7);
17419 psrc = &DREGu32(0);
17426 WRITE_WORD_F(adr, *psrc)
17430 } while (res >>= 1);
17432 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17433 #ifdef USE_CYCLONE_TIMING
17450 psrc = &DREGu32(0);
17457 WRITE_WORD_F(adr, *psrc)
17461 } while (res >>= 1);
17463 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17464 #ifdef USE_CYCLONE_TIMING
17481 psrc = &DREGu32(0);
17488 WRITE_WORD_F(adr, *psrc)
17492 } while (res >>= 1);
17494 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17495 #ifdef USE_CYCLONE_TIMING
17512 psrc = &AREGu32(7);
17520 WRITE_WORD_F(adr, *psrc)
17523 } while (res >>= 1);
17526 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17539 adr = AREG((Opcode >> 0) & 7);
17540 psrc = &DREGu32(0);
17547 WRITE_LONG_F(adr, *psrc)
17551 } while (res >>= 1);
17553 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17554 #ifdef USE_CYCLONE_TIMING
17570 adr = AREG((Opcode >> 0) & 7);
17571 psrc = &AREGu32(7);
17579 WRITE_LONG_DEC_F(adr, *psrc)
17582 } while (res >>= 1);
17583 AREG((Opcode >> 0) & 7) = adr;
17585 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17599 adr += AREG((Opcode >> 0) & 7);
17600 psrc = &DREGu32(0);
17607 WRITE_LONG_F(adr, *psrc)
17611 } while (res >>= 1);
17613 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17614 #ifdef USE_CYCLONE_TIMING
17630 adr = AREG((Opcode >> 0) & 7);
17632 psrc = &DREGu32(0);
17639 WRITE_LONG_F(adr, *psrc)
17643 } while (res >>= 1);
17645 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17646 #ifdef USE_CYCLONE_TIMING
17663 psrc = &DREGu32(0);
17670 WRITE_LONG_F(adr, *psrc)
17674 } while (res >>= 1);
17676 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17677 #ifdef USE_CYCLONE_TIMING
17694 psrc = &DREGu32(0);
17701 WRITE_LONG_F(adr, *psrc)
17705 } while (res >>= 1);
17707 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17708 #ifdef USE_CYCLONE_TIMING
17725 psrc = &AREGu32(7);
17733 WRITE_LONG_DEC_F(adr, *psrc)
17736 } while (res >>= 1);
17739 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17749 res = (s32)DREGs8((Opcode >> 0) & 7);
17754 DREGu16((Opcode >> 0) & 7) = res;
17764 res = (s32)DREGs16((Opcode >> 0) & 7);
17769 DREGu32((Opcode >> 0) & 7) = res;
17779 res = DREGu8((Opcode >> 0) & 7);
17793 adr = AREG((Opcode >> 0) & 7);
17795 READ_BYTE_F(adr, res)
17810 adr = AREG((Opcode >> 0) & 7);
17811 AREG((Opcode >> 0) & 7) += 1;
17813 READ_BYTE_F(adr, res)
17828 adr = AREG((Opcode >> 0) & 7) - 1;
17829 AREG((Opcode >> 0) & 7) = adr;
17831 READ_BYTE_F(adr, res)
17847 adr += AREG((Opcode >> 0) & 7);
17849 READ_BYTE_F(adr, res)
17864 adr = AREG((Opcode >> 0) & 7);
17867 READ_BYTE_F(adr, res)
17884 READ_BYTE_F(adr, res)
17901 READ_BYTE_F(adr, res)
17919 READ_BYTE_F(adr, res)
17937 READ_BYTE_F(adr, res)
17952 res = DREGu16((Opcode >> 0) & 7);
17966 adr = AREG((Opcode >> 0) & 7);
17968 READ_WORD_F(adr, res)
17983 adr = AREG((Opcode >> 0) & 7);
17984 AREG((Opcode >> 0) & 7) += 2;
17986 READ_WORD_F(adr, res)
18001 adr = AREG((Opcode >> 0) & 7) - 2;
18002 AREG((Opcode >> 0) & 7) = adr;
18004 READ_WORD_F(adr, res)
18020 adr += AREG((Opcode >> 0) & 7);
18022 READ_WORD_F(adr, res)
18037 adr = AREG((Opcode >> 0) & 7);
18040 READ_WORD_F(adr, res)
18057 READ_WORD_F(adr, res)
18074 READ_WORD_F(adr, res)
18092 READ_WORD_F(adr, res)
18110 READ_WORD_F(adr, res)
18125 res = DREGu32((Opcode >> 0) & 7);
18129 flag_N = res >> 24;
18139 adr = AREG((Opcode >> 0) & 7);
18141 READ_LONG_F(adr, res)
18145 flag_N = res >> 24;
18156 adr = AREG((Opcode >> 0) & 7);
18157 AREG((Opcode >> 0) & 7) += 4;
18159 READ_LONG_F(adr, res)
18163 flag_N = res >> 24;
18174 adr = AREG((Opcode >> 0) & 7) - 4;
18175 AREG((Opcode >> 0) & 7) = adr;
18177 READ_LONG_F(adr, res)
18181 flag_N = res >> 24;
18193 adr += AREG((Opcode >> 0) & 7);
18195 READ_LONG_F(adr, res)
18199 flag_N = res >> 24;
18210 adr = AREG((Opcode >> 0) & 7);
18213 READ_LONG_F(adr, res)
18217 flag_N = res >> 24;
18230 READ_LONG_F(adr, res)
18234 flag_N = res >> 24;
18247 READ_LONG_F(adr, res)
18251 flag_N = res >> 24;
18265 READ_LONG_F(adr, res)
18269 flag_N = res >> 24;
18283 READ_LONG_F(adr, res)
18287 flag_N = res >> 24;
18298 res = DREGu8((Opcode >> 0) & 7);
18304 DREGu8((Opcode >> 0) & 7) = res;
18314 adr = AREG((Opcode >> 0) & 7);
18316 READ_BYTE_F(adr, res)
18321 #ifdef PICODRIVE_HACK
18322 if (g_m68kcontext == &PicoCpuFS68k) {
18324 WRITE_BYTE_F(adr, res);
18329 #ifdef USE_CYCLONE_TIMING
18342 adr = AREG((Opcode >> 0) & 7);
18343 AREG((Opcode >> 0) & 7) += 1;
18345 READ_BYTE_F(adr, res)
18351 #ifdef PICODRIVE_HACK
18352 if (g_m68kcontext == &PicoCpuFS68k) {
18354 WRITE_BYTE_F(adr, res);
18359 #ifdef USE_CYCLONE_TIMING
18372 adr = AREG((Opcode >> 0) & 7) - 1;
18373 AREG((Opcode >> 0) & 7) = adr;
18375 READ_BYTE_F(adr, res)
18381 #ifdef PICODRIVE_HACK
18382 if (g_m68kcontext == &PicoCpuFS68k) {
18384 WRITE_BYTE_F(adr, res);
18389 #ifdef USE_CYCLONE_TIMING
18403 adr += AREG((Opcode >> 0) & 7);
18405 READ_BYTE_F(adr, res)
18411 #ifdef PICODRIVE_HACK
18412 if (g_m68kcontext == &PicoCpuFS68k) {
18414 WRITE_BYTE_F(adr, res);
18419 #ifdef USE_CYCLONE_TIMING
18432 adr = AREG((Opcode >> 0) & 7);
18435 READ_BYTE_F(adr, res)
18441 #ifdef PICODRIVE_HACK
18442 if (g_m68kcontext == &PicoCpuFS68k) {
18444 WRITE_BYTE_F(adr, res);
18449 #ifdef USE_CYCLONE_TIMING
18464 READ_BYTE_F(adr, res)
18470 #ifdef PICODRIVE_HACK
18471 if (g_m68kcontext == &PicoCpuFS68k) {
18473 WRITE_BYTE_F(adr, res);
18478 #ifdef USE_CYCLONE_TIMING
18493 READ_BYTE_F(adr, res)
18499 #ifdef PICODRIVE_HACK
18500 if (g_m68kcontext == &PicoCpuFS68k) {
18502 WRITE_BYTE_F(adr, res);
18507 #ifdef USE_CYCLONE_TIMING
18523 READ_BYTE_F(adr, res)
18529 #ifdef PICODRIVE_HACK
18530 if (g_m68kcontext == &PicoCpuFS68k) {
18532 WRITE_BYTE_F(adr, res);
18537 #ifdef USE_CYCLONE_TIMING
18553 READ_BYTE_F(adr, res)
18559 #ifdef PICODRIVE_HACK
18560 if (g_m68kcontext == &PicoCpuFS68k) {
18562 WRITE_BYTE_F(adr, res);
18567 #ifdef USE_CYCLONE_TIMING
18577 #ifdef PICODRIVE_HACK
18578 extern void SekFinishIdleDet(void);
18579 SekFinishIdleDet();
18581 SET_PC(execute_exception(M68K_ILLEGAL_INSTRUCTION_EX, GET_PC-2, GET_SR));
18585 // ILLEGAL A000-AFFF
18588 SET_PC(execute_exception(M68K_1010_EX, GET_PC-2, GET_SR));
18592 // ILLEGAL F000-FFFF
18595 SET_PC(execute_exception(M68K_1111_EX, GET_PC-2, GET_SR));
18596 RET(0) // 4 already taken by exc. handler
18608 adr = AREG((Opcode >> 0) & 7);
18609 psrc = &DREGs32(0);
18616 READSX_WORD_F(adr, *psrc)
18620 } while (res >>= 1);
18622 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18623 #ifdef USE_CYCLONE_TIMING
18639 adr = AREG((Opcode >> 0) & 7);
18640 psrc = &DREGs32(0);
18647 READSX_WORD_F(adr, *psrc)
18651 } while (res >>= 1);
18652 AREG((Opcode >> 0) & 7) = adr;
18654 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18668 adr += AREG((Opcode >> 0) & 7);
18669 psrc = &DREGs32(0);
18676 READSX_WORD_F(adr, *psrc)
18680 } while (res >>= 1);
18682 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18683 #ifdef USE_CYCLONE_TIMING
18699 adr = AREG((Opcode >> 0) & 7);
18701 psrc = &DREGs32(0);
18708 READSX_WORD_F(adr, *psrc)
18712 } while (res >>= 1);
18714 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18715 #ifdef USE_CYCLONE_TIMING
18732 psrc = &DREGs32(0);
18739 READSX_WORD_F(adr, *psrc)
18743 } while (res >>= 1);
18745 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18746 #ifdef USE_CYCLONE_TIMING
18763 psrc = &DREGs32(0);
18770 READSX_WORD_F(adr, *psrc)
18774 } while (res >>= 1);
18776 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18777 #ifdef USE_CYCLONE_TIMING
18793 adr = GET_SWORD + GET_PC;
18795 psrc = &DREGs32(0);
18802 READSX_WORD_F(adr, *psrc)
18806 } while (res >>= 1);
18808 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18809 #ifdef USE_CYCLONE_TIMING
18827 psrc = &DREGs32(0);
18834 READSX_WORD_F(adr, *psrc)
18838 } while (res >>= 1);
18840 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18841 #ifdef USE_CYCLONE_TIMING
18858 psrc = &DREGs32(0);
18865 READSX_WORD_F(adr, *psrc)
18869 } while (res >>= 1);
18872 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18885 adr = AREG((Opcode >> 0) & 7);
18886 psrc = &DREGu32(0);
18893 READ_LONG_F(adr, *psrc)
18897 } while (res >>= 1);
18899 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18900 #ifdef USE_CYCLONE_TIMING
18916 adr = AREG((Opcode >> 0) & 7);
18917 psrc = &DREGu32(0);
18924 READ_LONG_F(adr, *psrc)
18928 } while (res >>= 1);
18929 AREG((Opcode >> 0) & 7) = adr;
18931 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18945 adr += AREG((Opcode >> 0) & 7);
18946 psrc = &DREGu32(0);
18953 READ_LONG_F(adr, *psrc)
18957 } while (res >>= 1);
18959 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18960 #ifdef USE_CYCLONE_TIMING
18976 adr = AREG((Opcode >> 0) & 7);
18978 psrc = &DREGu32(0);
18985 READ_LONG_F(adr, *psrc)
18989 } while (res >>= 1);
18991 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18992 #ifdef USE_CYCLONE_TIMING
19009 psrc = &DREGu32(0);
19016 READ_LONG_F(adr, *psrc)
19020 } while (res >>= 1);
19022 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
19023 #ifdef USE_CYCLONE_TIMING
19040 psrc = &DREGu32(0);
19047 READ_LONG_F(adr, *psrc)
19051 } while (res >>= 1);
19053 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
19054 #ifdef USE_CYCLONE_TIMING
19070 adr = GET_SWORD + GET_PC;
19072 psrc = &DREGu32(0);
19079 READ_LONG_F(adr, *psrc)
19083 } while (res >>= 1);
19085 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
19086 #ifdef USE_CYCLONE_TIMING
19104 psrc = &DREGu32(0);
19111 READ_LONG_F(adr, *psrc)
19115 } while (res >>= 1);
19117 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
19118 #ifdef USE_CYCLONE_TIMING
19135 psrc = &DREGu32(0);
19142 READ_LONG_F(adr, *psrc)
19146 } while (res >>= 1);
19149 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
19156 SET_PC(execute_exception(M68K_TRAP_BASE_EX + (Opcode & 0xF), GET_PC, GET_SR));
19166 res = AREGu32((Opcode >> 0) & 7);
19170 AREG((Opcode >> 0) & 7) = res;
19185 WRITE_LONG_DEC_F(AREG(7), AREG(7))
19198 src = AREGu32((Opcode >> 0) & 7);
19201 READ_LONG_F(src, res)
19202 AREG((Opcode >> 0) & 7) = res;
19214 READ_LONG_F(AREG(7), AREG(7))
19227 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19230 res = AREGu32((Opcode >> 0) & 7);
19243 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19247 AREG((Opcode >> 0) & 7) = res;
19259 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19263 if (m68kcontext.reset_handler) m68kcontext.reset_handler();
19264 // CPU->Reset_CallBack();
19283 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19287 res &= M68K_SR_MASK;
19295 m68kcontext.execinfo |= FM68K_HALTED;
19307 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19322 m68kcontext.execinfo &= ~(FM68K_EMULATE_GROUP_0|FM68K_EMULATE_TRACE|FM68K_DO_TRACE);
19323 CHECK_INT_TO_JUMP(20)
19336 CHECK_BRANCH_EXCEPTION(res)
19345 SET_PC(execute_exception(M68K_TRAPV_EX, GET_PC, GET_SR));
19360 CHECK_BRANCH_EXCEPTION(res)
19371 adr = AREG((Opcode >> 0) & 7);
19380 CHECK_BRANCH_EXCEPTION(adr)
19392 adr += AREG((Opcode >> 0) & 7);
19401 CHECK_BRANCH_EXCEPTION(adr)
19412 adr = AREG((Opcode >> 0) & 7);
19422 CHECK_BRANCH_EXCEPTION(adr)
19442 CHECK_BRANCH_EXCEPTION(adr)
19462 CHECK_BRANCH_EXCEPTION(adr)
19473 adr = GET_SWORD + GET_PC;
19483 CHECK_BRANCH_EXCEPTION(adr)
19504 CHECK_BRANCH_EXCEPTION(adr)
19515 adr = AREG((Opcode >> 0) & 7);
19517 CHECK_BRANCH_EXCEPTION(adr)
19528 adr += AREG((Opcode >> 0) & 7);
19530 CHECK_BRANCH_EXCEPTION(adr)
19540 adr = AREG((Opcode >> 0) & 7);
19543 CHECK_BRANCH_EXCEPTION(adr)
19555 CHECK_BRANCH_EXCEPTION(adr)
19567 CHECK_BRANCH_EXCEPTION(adr)
19577 adr = GET_SWORD + GET_PC;
19580 CHECK_BRANCH_EXCEPTION(adr)
19593 CHECK_BRANCH_EXCEPTION(adr)
19602 src = DREGs16((Opcode >> 0) & 7);
19603 res = DREGs16((Opcode >> 9) & 7);
19604 if ((res < 0) || (res > src))
19607 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19618 adr = AREG((Opcode >> 0) & 7);
19620 READSX_WORD_F(adr, src)
19621 res = DREGs16((Opcode >> 9) & 7);
19622 if ((res < 0) || (res > src))
19625 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19637 adr = AREG((Opcode >> 0) & 7);
19638 AREG((Opcode >> 0) & 7) += 2;
19640 READSX_WORD_F(adr, src)
19641 res = DREGs16((Opcode >> 9) & 7);
19642 if ((res < 0) || (res > src))
19645 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19657 adr = AREG((Opcode >> 0) & 7) - 2;
19658 AREG((Opcode >> 0) & 7) = adr;
19660 READSX_WORD_F(adr, src)
19661 res = DREGs16((Opcode >> 9) & 7);
19662 if ((res < 0) || (res > src))
19665 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19678 adr += AREG((Opcode >> 0) & 7);
19680 READSX_WORD_F(adr, src)
19681 res = DREGs16((Opcode >> 9) & 7);
19682 if ((res < 0) || (res > src))
19685 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19697 adr = AREG((Opcode >> 0) & 7);
19700 READSX_WORD_F(adr, src)
19701 res = DREGs16((Opcode >> 9) & 7);
19702 if ((res < 0) || (res > src))
19705 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19719 READSX_WORD_F(adr, src)
19720 res = DREGs16((Opcode >> 9) & 7);
19721 if ((res < 0) || (res > src))
19724 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19738 READSX_WORD_F(adr, src)
19739 res = DREGs16((Opcode >> 9) & 7);
19740 if ((res < 0) || (res > src))
19743 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19755 adr = GET_SWORD + GET_PC;
19758 READSX_WORD_F(adr, src)
19759 res = DREGs16((Opcode >> 9) & 7);
19760 if ((res < 0) || (res > src))
19763 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19778 READSX_WORD_F(adr, src)
19779 res = DREGs16((Opcode >> 9) & 7);
19780 if ((res < 0) || (res > src))
19783 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19796 res = DREGs16((Opcode >> 9) & 7);
19797 if ((res < 0) || (res > src))
19800 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19815 READSX_WORD_F(adr, src)
19816 res = DREGs16((Opcode >> 9) & 7);
19817 if ((res < 0) || (res > src))
19820 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19835 READSX_WORD_F(adr, src)
19836 res = DREGs16((Opcode >> 9) & 7);
19837 if ((res < 0) || (res > src))
19840 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19852 adr = AREG((Opcode >> 0) & 7);
19854 AREG((Opcode >> 9) & 7) = res;
19865 adr += AREG((Opcode >> 0) & 7);
19867 AREG((Opcode >> 9) & 7) = res;
19877 adr = AREG((Opcode >> 0) & 7);
19880 AREG((Opcode >> 9) & 7) = res;
19892 AREG((Opcode >> 9) & 7) = res;
19904 AREG((Opcode >> 9) & 7) = res;
19914 adr = GET_SWORD + GET_PC;
19917 AREG((Opcode >> 9) & 7) = res;
19930 AREG((Opcode >> 9) & 7) = res;
19941 DREGu8((Opcode >> 0) & 7) = res;
19952 DREGu8((Opcode >> 0) & 7) = res;
19962 if (flag_NotZ && (!(flag_C & 0x100)))
19965 DREGu8((Opcode >> 0) & 7) = res;
19969 DREGu8((Opcode >> 0) & 7) = res;
19979 if ((!flag_NotZ) || (flag_C & 0x100))
19982 DREGu8((Opcode >> 0) & 7) = res;
19986 DREGu8((Opcode >> 0) & 7) = res;
19996 if (!(flag_C & 0x100))
19999 DREGu8((Opcode >> 0) & 7) = res;
20003 DREGu8((Opcode >> 0) & 7) = res;
20013 if (flag_C & 0x100)
20016 DREGu8((Opcode >> 0) & 7) = res;
20020 DREGu8((Opcode >> 0) & 7) = res;
20033 DREGu8((Opcode >> 0) & 7) = res;
20037 DREGu8((Opcode >> 0) & 7) = res;
20050 DREGu8((Opcode >> 0) & 7) = res;
20054 DREGu8((Opcode >> 0) & 7) = res;
20064 if (!(flag_V & 0x80))
20067 DREGu8((Opcode >> 0) & 7) = res;
20071 DREGu8((Opcode >> 0) & 7) = res;
20084 DREGu8((Opcode >> 0) & 7) = res;
20088 DREGu8((Opcode >> 0) & 7) = res;
20098 if (!(flag_N & 0x80))
20101 DREGu8((Opcode >> 0) & 7) = res;
20105 DREGu8((Opcode >> 0) & 7) = res;
20118 DREGu8((Opcode >> 0) & 7) = res;
20122 DREGu8((Opcode >> 0) & 7) = res;
20132 if (!((flag_N ^ flag_V) & 0x80))
20135 DREGu8((Opcode >> 0) & 7) = res;
20139 DREGu8((Opcode >> 0) & 7) = res;
20149 if ((flag_N ^ flag_V) & 0x80)
20152 DREGu8((Opcode >> 0) & 7) = res;
20156 DREGu8((Opcode >> 0) & 7) = res;
20166 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20169 DREGu8((Opcode >> 0) & 7) = res;
20173 DREGu8((Opcode >> 0) & 7) = res;
20183 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20186 DREGu8((Opcode >> 0) & 7) = res;
20190 DREGu8((Opcode >> 0) & 7) = res;
20200 adr = AREG((Opcode >> 0) & 7);
20203 WRITE_BYTE_F(adr, res)
20214 adr = AREG((Opcode >> 0) & 7);
20217 WRITE_BYTE_F(adr, res)
20228 adr = AREG((Opcode >> 0) & 7);
20229 if (flag_NotZ && (!(flag_C & 0x100)))
20233 WRITE_BYTE_F(adr, res)
20239 WRITE_BYTE_F(adr, res)
20250 adr = AREG((Opcode >> 0) & 7);
20251 if ((!flag_NotZ) || (flag_C & 0x100))
20255 WRITE_BYTE_F(adr, res)
20261 WRITE_BYTE_F(adr, res)
20272 adr = AREG((Opcode >> 0) & 7);
20273 if (!(flag_C & 0x100))
20277 WRITE_BYTE_F(adr, res)
20283 WRITE_BYTE_F(adr, res)
20294 adr = AREG((Opcode >> 0) & 7);
20295 if (flag_C & 0x100)
20299 WRITE_BYTE_F(adr, res)
20305 WRITE_BYTE_F(adr, res)
20316 adr = AREG((Opcode >> 0) & 7);
20321 WRITE_BYTE_F(adr, res)
20327 WRITE_BYTE_F(adr, res)
20338 adr = AREG((Opcode >> 0) & 7);
20343 WRITE_BYTE_F(adr, res)
20349 WRITE_BYTE_F(adr, res)
20360 adr = AREG((Opcode >> 0) & 7);
20361 if (!(flag_V & 0x80))
20365 WRITE_BYTE_F(adr, res)
20371 WRITE_BYTE_F(adr, res)
20382 adr = AREG((Opcode >> 0) & 7);
20387 WRITE_BYTE_F(adr, res)
20393 WRITE_BYTE_F(adr, res)
20404 adr = AREG((Opcode >> 0) & 7);
20405 if (!(flag_N & 0x80))
20409 WRITE_BYTE_F(adr, res)
20415 WRITE_BYTE_F(adr, res)
20426 adr = AREG((Opcode >> 0) & 7);
20431 WRITE_BYTE_F(adr, res)
20437 WRITE_BYTE_F(adr, res)
20448 adr = AREG((Opcode >> 0) & 7);
20449 if (!((flag_N ^ flag_V) & 0x80))
20453 WRITE_BYTE_F(adr, res)
20459 WRITE_BYTE_F(adr, res)
20470 adr = AREG((Opcode >> 0) & 7);
20471 if ((flag_N ^ flag_V) & 0x80)
20475 WRITE_BYTE_F(adr, res)
20481 WRITE_BYTE_F(adr, res)
20492 adr = AREG((Opcode >> 0) & 7);
20493 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20497 WRITE_BYTE_F(adr, res)
20503 WRITE_BYTE_F(adr, res)
20514 adr = AREG((Opcode >> 0) & 7);
20515 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20519 WRITE_BYTE_F(adr, res)
20525 WRITE_BYTE_F(adr, res)
20536 adr = AREG((Opcode >> 0) & 7);
20537 AREG((Opcode >> 0) & 7) += 1;
20540 WRITE_BYTE_F(adr, res)
20551 adr = AREG((Opcode >> 0) & 7);
20552 AREG((Opcode >> 0) & 7) += 1;
20555 WRITE_BYTE_F(adr, res)
20566 adr = AREG((Opcode >> 0) & 7);
20567 AREG((Opcode >> 0) & 7) += 1;
20568 if (flag_NotZ && (!(flag_C & 0x100)))
20572 WRITE_BYTE_F(adr, res)
20578 WRITE_BYTE_F(adr, res)
20589 adr = AREG((Opcode >> 0) & 7);
20590 AREG((Opcode >> 0) & 7) += 1;
20591 if ((!flag_NotZ) || (flag_C & 0x100))
20595 WRITE_BYTE_F(adr, res)
20601 WRITE_BYTE_F(adr, res)
20612 adr = AREG((Opcode >> 0) & 7);
20613 AREG((Opcode >> 0) & 7) += 1;
20614 if (!(flag_C & 0x100))
20618 WRITE_BYTE_F(adr, res)
20624 WRITE_BYTE_F(adr, res)
20635 adr = AREG((Opcode >> 0) & 7);
20636 AREG((Opcode >> 0) & 7) += 1;
20637 if (flag_C & 0x100)
20641 WRITE_BYTE_F(adr, res)
20647 WRITE_BYTE_F(adr, res)
20658 adr = AREG((Opcode >> 0) & 7);
20659 AREG((Opcode >> 0) & 7) += 1;
20664 WRITE_BYTE_F(adr, res)
20670 WRITE_BYTE_F(adr, res)
20681 adr = AREG((Opcode >> 0) & 7);
20682 AREG((Opcode >> 0) & 7) += 1;
20687 WRITE_BYTE_F(adr, res)
20693 WRITE_BYTE_F(adr, res)
20704 adr = AREG((Opcode >> 0) & 7);
20705 AREG((Opcode >> 0) & 7) += 1;
20706 if (!(flag_V & 0x80))
20710 WRITE_BYTE_F(adr, res)
20716 WRITE_BYTE_F(adr, res)
20727 adr = AREG((Opcode >> 0) & 7);
20728 AREG((Opcode >> 0) & 7) += 1;
20733 WRITE_BYTE_F(adr, res)
20739 WRITE_BYTE_F(adr, res)
20750 adr = AREG((Opcode >> 0) & 7);
20751 AREG((Opcode >> 0) & 7) += 1;
20752 if (!(flag_N & 0x80))
20756 WRITE_BYTE_F(adr, res)
20762 WRITE_BYTE_F(adr, res)
20773 adr = AREG((Opcode >> 0) & 7);
20774 AREG((Opcode >> 0) & 7) += 1;
20779 WRITE_BYTE_F(adr, res)
20785 WRITE_BYTE_F(adr, res)
20796 adr = AREG((Opcode >> 0) & 7);
20797 AREG((Opcode >> 0) & 7) += 1;
20798 if (!((flag_N ^ flag_V) & 0x80))
20802 WRITE_BYTE_F(adr, res)
20808 WRITE_BYTE_F(adr, res)
20819 adr = AREG((Opcode >> 0) & 7);
20820 AREG((Opcode >> 0) & 7) += 1;
20821 if ((flag_N ^ flag_V) & 0x80)
20825 WRITE_BYTE_F(adr, res)
20831 WRITE_BYTE_F(adr, res)
20842 adr = AREG((Opcode >> 0) & 7);
20843 AREG((Opcode >> 0) & 7) += 1;
20844 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20848 WRITE_BYTE_F(adr, res)
20854 WRITE_BYTE_F(adr, res)
20865 adr = AREG((Opcode >> 0) & 7);
20866 AREG((Opcode >> 0) & 7) += 1;
20867 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20871 WRITE_BYTE_F(adr, res)
20877 WRITE_BYTE_F(adr, res)
20888 adr = AREG((Opcode >> 0) & 7) - 1;
20889 AREG((Opcode >> 0) & 7) = adr;
20892 WRITE_BYTE_F(adr, res)
20903 adr = AREG((Opcode >> 0) & 7) - 1;
20904 AREG((Opcode >> 0) & 7) = adr;
20907 WRITE_BYTE_F(adr, res)
20918 adr = AREG((Opcode >> 0) & 7) - 1;
20919 AREG((Opcode >> 0) & 7) = adr;
20920 if (flag_NotZ && (!(flag_C & 0x100)))
20924 WRITE_BYTE_F(adr, res)
20930 WRITE_BYTE_F(adr, res)
20941 adr = AREG((Opcode >> 0) & 7) - 1;
20942 AREG((Opcode >> 0) & 7) = adr;
20943 if ((!flag_NotZ) || (flag_C & 0x100))
20947 WRITE_BYTE_F(adr, res)
20953 WRITE_BYTE_F(adr, res)
20964 adr = AREG((Opcode >> 0) & 7) - 1;
20965 AREG((Opcode >> 0) & 7) = adr;
20966 if (!(flag_C & 0x100))
20970 WRITE_BYTE_F(adr, res)
20976 WRITE_BYTE_F(adr, res)
20987 adr = AREG((Opcode >> 0) & 7) - 1;
20988 AREG((Opcode >> 0) & 7) = adr;
20989 if (flag_C & 0x100)
20993 WRITE_BYTE_F(adr, res)
20999 WRITE_BYTE_F(adr, res)
21010 adr = AREG((Opcode >> 0) & 7) - 1;
21011 AREG((Opcode >> 0) & 7) = adr;
21016 WRITE_BYTE_F(adr, res)
21022 WRITE_BYTE_F(adr, res)
21033 adr = AREG((Opcode >> 0) & 7) - 1;
21034 AREG((Opcode >> 0) & 7) = adr;
21039 WRITE_BYTE_F(adr, res)
21045 WRITE_BYTE_F(adr, res)
21056 adr = AREG((Opcode >> 0) & 7) - 1;
21057 AREG((Opcode >> 0) & 7) = adr;
21058 if (!(flag_V & 0x80))
21062 WRITE_BYTE_F(adr, res)
21068 WRITE_BYTE_F(adr, res)
21079 adr = AREG((Opcode >> 0) & 7) - 1;
21080 AREG((Opcode >> 0) & 7) = adr;
21085 WRITE_BYTE_F(adr, res)
21091 WRITE_BYTE_F(adr, res)
21102 adr = AREG((Opcode >> 0) & 7) - 1;
21103 AREG((Opcode >> 0) & 7) = adr;
21104 if (!(flag_N & 0x80))
21108 WRITE_BYTE_F(adr, res)
21114 WRITE_BYTE_F(adr, res)
21125 adr = AREG((Opcode >> 0) & 7) - 1;
21126 AREG((Opcode >> 0) & 7) = adr;
21131 WRITE_BYTE_F(adr, res)
21137 WRITE_BYTE_F(adr, res)
21148 adr = AREG((Opcode >> 0) & 7) - 1;
21149 AREG((Opcode >> 0) & 7) = adr;
21150 if (!((flag_N ^ flag_V) & 0x80))
21154 WRITE_BYTE_F(adr, res)
21160 WRITE_BYTE_F(adr, res)
21171 adr = AREG((Opcode >> 0) & 7) - 1;
21172 AREG((Opcode >> 0) & 7) = adr;
21173 if ((flag_N ^ flag_V) & 0x80)
21177 WRITE_BYTE_F(adr, res)
21183 WRITE_BYTE_F(adr, res)
21194 adr = AREG((Opcode >> 0) & 7) - 1;
21195 AREG((Opcode >> 0) & 7) = adr;
21196 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21200 WRITE_BYTE_F(adr, res)
21206 WRITE_BYTE_F(adr, res)
21217 adr = AREG((Opcode >> 0) & 7) - 1;
21218 AREG((Opcode >> 0) & 7) = adr;
21219 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21223 WRITE_BYTE_F(adr, res)
21229 WRITE_BYTE_F(adr, res)
21241 adr += AREG((Opcode >> 0) & 7);
21244 WRITE_BYTE_F(adr, res)
21256 adr += AREG((Opcode >> 0) & 7);
21259 WRITE_BYTE_F(adr, res)
21271 adr += AREG((Opcode >> 0) & 7);
21272 if (flag_NotZ && (!(flag_C & 0x100)))
21276 WRITE_BYTE_F(adr, res)
21282 WRITE_BYTE_F(adr, res)
21294 adr += AREG((Opcode >> 0) & 7);
21295 if ((!flag_NotZ) || (flag_C & 0x100))
21299 WRITE_BYTE_F(adr, res)
21305 WRITE_BYTE_F(adr, res)
21317 adr += AREG((Opcode >> 0) & 7);
21318 if (!(flag_C & 0x100))
21322 WRITE_BYTE_F(adr, res)
21328 WRITE_BYTE_F(adr, res)
21340 adr += AREG((Opcode >> 0) & 7);
21341 if (flag_C & 0x100)
21345 WRITE_BYTE_F(adr, res)
21351 WRITE_BYTE_F(adr, res)
21363 adr += AREG((Opcode >> 0) & 7);
21368 WRITE_BYTE_F(adr, res)
21374 WRITE_BYTE_F(adr, res)
21386 adr += AREG((Opcode >> 0) & 7);
21391 WRITE_BYTE_F(adr, res)
21397 WRITE_BYTE_F(adr, res)
21409 adr += AREG((Opcode >> 0) & 7);
21410 if (!(flag_V & 0x80))
21414 WRITE_BYTE_F(adr, res)
21420 WRITE_BYTE_F(adr, res)
21432 adr += AREG((Opcode >> 0) & 7);
21437 WRITE_BYTE_F(adr, res)
21443 WRITE_BYTE_F(adr, res)
21455 adr += AREG((Opcode >> 0) & 7);
21456 if (!(flag_N & 0x80))
21460 WRITE_BYTE_F(adr, res)
21466 WRITE_BYTE_F(adr, res)
21478 adr += AREG((Opcode >> 0) & 7);
21483 WRITE_BYTE_F(adr, res)
21489 WRITE_BYTE_F(adr, res)
21501 adr += AREG((Opcode >> 0) & 7);
21502 if (!((flag_N ^ flag_V) & 0x80))
21506 WRITE_BYTE_F(adr, res)
21512 WRITE_BYTE_F(adr, res)
21524 adr += AREG((Opcode >> 0) & 7);
21525 if ((flag_N ^ flag_V) & 0x80)
21529 WRITE_BYTE_F(adr, res)
21535 WRITE_BYTE_F(adr, res)
21547 adr += AREG((Opcode >> 0) & 7);
21548 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21552 WRITE_BYTE_F(adr, res)
21558 WRITE_BYTE_F(adr, res)
21570 adr += AREG((Opcode >> 0) & 7);
21571 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21575 WRITE_BYTE_F(adr, res)
21581 WRITE_BYTE_F(adr, res)
21592 adr = AREG((Opcode >> 0) & 7);
21596 WRITE_BYTE_F(adr, res)
21607 adr = AREG((Opcode >> 0) & 7);
21611 WRITE_BYTE_F(adr, res)
21622 adr = AREG((Opcode >> 0) & 7);
21624 if (flag_NotZ && (!(flag_C & 0x100)))
21628 WRITE_BYTE_F(adr, res)
21634 WRITE_BYTE_F(adr, res)
21645 adr = AREG((Opcode >> 0) & 7);
21647 if ((!flag_NotZ) || (flag_C & 0x100))
21651 WRITE_BYTE_F(adr, res)
21657 WRITE_BYTE_F(adr, res)
21668 adr = AREG((Opcode >> 0) & 7);
21670 if (!(flag_C & 0x100))
21674 WRITE_BYTE_F(adr, res)
21680 WRITE_BYTE_F(adr, res)
21691 adr = AREG((Opcode >> 0) & 7);
21693 if (flag_C & 0x100)
21697 WRITE_BYTE_F(adr, res)
21703 WRITE_BYTE_F(adr, res)
21714 adr = AREG((Opcode >> 0) & 7);
21720 WRITE_BYTE_F(adr, res)
21726 WRITE_BYTE_F(adr, res)
21737 adr = AREG((Opcode >> 0) & 7);
21743 WRITE_BYTE_F(adr, res)
21749 WRITE_BYTE_F(adr, res)
21760 adr = AREG((Opcode >> 0) & 7);
21762 if (!(flag_V & 0x80))
21766 WRITE_BYTE_F(adr, res)
21772 WRITE_BYTE_F(adr, res)
21783 adr = AREG((Opcode >> 0) & 7);
21789 WRITE_BYTE_F(adr, res)
21795 WRITE_BYTE_F(adr, res)
21806 adr = AREG((Opcode >> 0) & 7);
21808 if (!(flag_N & 0x80))
21812 WRITE_BYTE_F(adr, res)
21818 WRITE_BYTE_F(adr, res)
21829 adr = AREG((Opcode >> 0) & 7);
21835 WRITE_BYTE_F(adr, res)
21841 WRITE_BYTE_F(adr, res)
21852 adr = AREG((Opcode >> 0) & 7);
21854 if (!((flag_N ^ flag_V) & 0x80))
21858 WRITE_BYTE_F(adr, res)
21864 WRITE_BYTE_F(adr, res)
21875 adr = AREG((Opcode >> 0) & 7);
21877 if ((flag_N ^ flag_V) & 0x80)
21881 WRITE_BYTE_F(adr, res)
21887 WRITE_BYTE_F(adr, res)
21898 adr = AREG((Opcode >> 0) & 7);
21900 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21904 WRITE_BYTE_F(adr, res)
21910 WRITE_BYTE_F(adr, res)
21921 adr = AREG((Opcode >> 0) & 7);
21923 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21927 WRITE_BYTE_F(adr, res)
21933 WRITE_BYTE_F(adr, res)
21947 WRITE_BYTE_F(adr, res)
21961 WRITE_BYTE_F(adr, res)
21973 if (flag_NotZ && (!(flag_C & 0x100)))
21977 WRITE_BYTE_F(adr, res)
21983 WRITE_BYTE_F(adr, res)
21995 if ((!flag_NotZ) || (flag_C & 0x100))
21999 WRITE_BYTE_F(adr, res)
22005 WRITE_BYTE_F(adr, res)
22017 if (!(flag_C & 0x100))
22021 WRITE_BYTE_F(adr, res)
22027 WRITE_BYTE_F(adr, res)
22039 if (flag_C & 0x100)
22043 WRITE_BYTE_F(adr, res)
22049 WRITE_BYTE_F(adr, res)
22065 WRITE_BYTE_F(adr, res)
22071 WRITE_BYTE_F(adr, res)
22087 WRITE_BYTE_F(adr, res)
22093 WRITE_BYTE_F(adr, res)
22105 if (!(flag_V & 0x80))
22109 WRITE_BYTE_F(adr, res)
22115 WRITE_BYTE_F(adr, res)
22131 WRITE_BYTE_F(adr, res)
22137 WRITE_BYTE_F(adr, res)
22149 if (!(flag_N & 0x80))
22153 WRITE_BYTE_F(adr, res)
22159 WRITE_BYTE_F(adr, res)
22175 WRITE_BYTE_F(adr, res)
22181 WRITE_BYTE_F(adr, res)
22193 if (!((flag_N ^ flag_V) & 0x80))
22197 WRITE_BYTE_F(adr, res)
22203 WRITE_BYTE_F(adr, res)
22215 if ((flag_N ^ flag_V) & 0x80)
22219 WRITE_BYTE_F(adr, res)
22225 WRITE_BYTE_F(adr, res)
22237 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22241 WRITE_BYTE_F(adr, res)
22247 WRITE_BYTE_F(adr, res)
22259 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22263 WRITE_BYTE_F(adr, res)
22269 WRITE_BYTE_F(adr, res)
22283 WRITE_BYTE_F(adr, res)
22297 WRITE_BYTE_F(adr, res)
22309 if (flag_NotZ && (!(flag_C & 0x100)))
22313 WRITE_BYTE_F(adr, res)
22319 WRITE_BYTE_F(adr, res)
22331 if ((!flag_NotZ) || (flag_C & 0x100))
22335 WRITE_BYTE_F(adr, res)
22341 WRITE_BYTE_F(adr, res)
22353 if (!(flag_C & 0x100))
22357 WRITE_BYTE_F(adr, res)
22363 WRITE_BYTE_F(adr, res)
22375 if (flag_C & 0x100)
22379 WRITE_BYTE_F(adr, res)
22385 WRITE_BYTE_F(adr, res)
22401 WRITE_BYTE_F(adr, res)
22407 WRITE_BYTE_F(adr, res)
22423 WRITE_BYTE_F(adr, res)
22429 WRITE_BYTE_F(adr, res)
22441 if (!(flag_V & 0x80))
22445 WRITE_BYTE_F(adr, res)
22451 WRITE_BYTE_F(adr, res)
22467 WRITE_BYTE_F(adr, res)
22473 WRITE_BYTE_F(adr, res)
22485 if (!(flag_N & 0x80))
22489 WRITE_BYTE_F(adr, res)
22495 WRITE_BYTE_F(adr, res)
22511 WRITE_BYTE_F(adr, res)
22517 WRITE_BYTE_F(adr, res)
22529 if (!((flag_N ^ flag_V) & 0x80))
22533 WRITE_BYTE_F(adr, res)
22539 WRITE_BYTE_F(adr, res)
22551 if ((flag_N ^ flag_V) & 0x80)
22555 WRITE_BYTE_F(adr, res)
22561 WRITE_BYTE_F(adr, res)
22573 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22577 WRITE_BYTE_F(adr, res)
22583 WRITE_BYTE_F(adr, res)
22595 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22599 WRITE_BYTE_F(adr, res)
22605 WRITE_BYTE_F(adr, res)
22620 WRITE_BYTE_F(adr, res)
22635 WRITE_BYTE_F(adr, res)
22648 if (flag_NotZ && (!(flag_C & 0x100)))
22652 WRITE_BYTE_F(adr, res)
22658 WRITE_BYTE_F(adr, res)
22671 if ((!flag_NotZ) || (flag_C & 0x100))
22675 WRITE_BYTE_F(adr, res)
22681 WRITE_BYTE_F(adr, res)
22694 if (!(flag_C & 0x100))
22698 WRITE_BYTE_F(adr, res)
22704 WRITE_BYTE_F(adr, res)
22717 if (flag_C & 0x100)
22721 WRITE_BYTE_F(adr, res)
22727 WRITE_BYTE_F(adr, res)
22744 WRITE_BYTE_F(adr, res)
22750 WRITE_BYTE_F(adr, res)
22767 WRITE_BYTE_F(adr, res)
22773 WRITE_BYTE_F(adr, res)
22786 if (!(flag_V & 0x80))
22790 WRITE_BYTE_F(adr, res)
22796 WRITE_BYTE_F(adr, res)
22813 WRITE_BYTE_F(adr, res)
22819 WRITE_BYTE_F(adr, res)
22832 if (!(flag_N & 0x80))
22836 WRITE_BYTE_F(adr, res)
22842 WRITE_BYTE_F(adr, res)
22859 WRITE_BYTE_F(adr, res)
22865 WRITE_BYTE_F(adr, res)
22878 if (!((flag_N ^ flag_V) & 0x80))
22882 WRITE_BYTE_F(adr, res)
22888 WRITE_BYTE_F(adr, res)
22901 if ((flag_N ^ flag_V) & 0x80)
22905 WRITE_BYTE_F(adr, res)
22911 WRITE_BYTE_F(adr, res)
22924 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22928 WRITE_BYTE_F(adr, res)
22934 WRITE_BYTE_F(adr, res)
22947 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22951 WRITE_BYTE_F(adr, res)
22957 WRITE_BYTE_F(adr, res)
22972 WRITE_BYTE_F(adr, res)
22987 WRITE_BYTE_F(adr, res)
23000 if (flag_NotZ && (!(flag_C & 0x100)))
23004 WRITE_BYTE_F(adr, res)
23010 WRITE_BYTE_F(adr, res)
23023 if ((!flag_NotZ) || (flag_C & 0x100))
23027 WRITE_BYTE_F(adr, res)
23033 WRITE_BYTE_F(adr, res)
23046 if (!(flag_C & 0x100))
23050 WRITE_BYTE_F(adr, res)
23056 WRITE_BYTE_F(adr, res)
23069 if (flag_C & 0x100)
23073 WRITE_BYTE_F(adr, res)
23079 WRITE_BYTE_F(adr, res)
23096 WRITE_BYTE_F(adr, res)
23102 WRITE_BYTE_F(adr, res)
23119 WRITE_BYTE_F(adr, res)
23125 WRITE_BYTE_F(adr, res)
23138 if (!(flag_V & 0x80))
23142 WRITE_BYTE_F(adr, res)
23148 WRITE_BYTE_F(adr, res)
23165 WRITE_BYTE_F(adr, res)
23171 WRITE_BYTE_F(adr, res)
23184 if (!(flag_N & 0x80))
23188 WRITE_BYTE_F(adr, res)
23194 WRITE_BYTE_F(adr, res)
23211 WRITE_BYTE_F(adr, res)
23217 WRITE_BYTE_F(adr, res)
23230 if (!((flag_N ^ flag_V) & 0x80))
23234 WRITE_BYTE_F(adr, res)
23240 WRITE_BYTE_F(adr, res)
23253 if ((flag_N ^ flag_V) & 0x80)
23257 WRITE_BYTE_F(adr, res)
23263 WRITE_BYTE_F(adr, res)
23276 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
23280 WRITE_BYTE_F(adr, res)
23286 WRITE_BYTE_F(adr, res)
23299 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
23303 WRITE_BYTE_F(adr, res)
23309 WRITE_BYTE_F(adr, res)
23332 res = DREGu16((Opcode >> 0) & 7);
23334 DREGu16((Opcode >> 0) & 7) = res;
23335 if ((s32)res != -1)
23340 newPC += GET_SWORD;
23342 CHECK_BRANCH_EXCEPTION(newPC)
23357 if ((!flag_NotZ) || (flag_C & 0x100))
23359 res = DREGu16((Opcode >> 0) & 7);
23361 DREGu16((Opcode >> 0) & 7) = res;
23362 if ((s32)res != -1)
23367 newPC += GET_SWORD;
23369 CHECK_BRANCH_EXCEPTION(newPC)
23390 if (flag_NotZ && (!(flag_C & 0x100)))
23392 res = DREGu16((Opcode >> 0) & 7);
23394 DREGu16((Opcode >> 0) & 7) = res;
23395 if ((s32)res != -1)
23400 newPC += GET_SWORD;
23402 CHECK_BRANCH_EXCEPTION(newPC)
23423 if (flag_C & 0x100)
23425 res = DREGu16((Opcode >> 0) & 7);
23427 DREGu16((Opcode >> 0) & 7) = res;
23428 if ((s32)res != -1)
23433 newPC += GET_SWORD;
23435 CHECK_BRANCH_EXCEPTION(newPC)
23456 if (!(flag_C & 0x100))
23458 res = DREGu16((Opcode >> 0) & 7);
23460 DREGu16((Opcode >> 0) & 7) = res;
23461 if ((s32)res != -1)
23466 newPC += GET_SWORD;
23468 CHECK_BRANCH_EXCEPTION(newPC)
23491 res = DREGu16((Opcode >> 0) & 7);
23493 DREGu16((Opcode >> 0) & 7) = res;
23494 if ((s32)res != -1)
23499 newPC += GET_SWORD;
23501 CHECK_BRANCH_EXCEPTION(newPC)
23524 res = DREGu16((Opcode >> 0) & 7);
23526 DREGu16((Opcode >> 0) & 7) = res;
23527 if ((s32)res != -1)
23532 newPC += GET_SWORD;
23534 CHECK_BRANCH_EXCEPTION(newPC)
23557 res = DREGu16((Opcode >> 0) & 7);
23559 DREGu16((Opcode >> 0) & 7) = res;
23560 if ((s32)res != -1)
23565 newPC += GET_SWORD;
23567 CHECK_BRANCH_EXCEPTION(newPC)
23588 if (!(flag_V & 0x80))
23590 res = DREGu16((Opcode >> 0) & 7);
23592 DREGu16((Opcode >> 0) & 7) = res;
23593 if ((s32)res != -1)
23598 newPC += GET_SWORD;
23600 CHECK_BRANCH_EXCEPTION(newPC)
23623 res = DREGu16((Opcode >> 0) & 7);
23625 DREGu16((Opcode >> 0) & 7) = res;
23626 if ((s32)res != -1)
23631 newPC += GET_SWORD;
23633 CHECK_BRANCH_EXCEPTION(newPC)
23654 if (!(flag_N & 0x80))
23656 res = DREGu16((Opcode >> 0) & 7);
23658 DREGu16((Opcode >> 0) & 7) = res;
23659 if ((s32)res != -1)
23664 newPC += GET_SWORD;
23666 CHECK_BRANCH_EXCEPTION(newPC)
23687 if ((flag_N ^ flag_V) & 0x80)
23689 res = DREGu16((Opcode >> 0) & 7);
23691 DREGu16((Opcode >> 0) & 7) = res;
23692 if ((s32)res != -1)
23697 newPC += GET_SWORD;
23699 CHECK_BRANCH_EXCEPTION(newPC)
23720 if (!((flag_N ^ flag_V) & 0x80))
23722 res = DREGu16((Opcode >> 0) & 7);
23724 DREGu16((Opcode >> 0) & 7) = res;
23725 if ((s32)res != -1)
23730 newPC += GET_SWORD;
23732 CHECK_BRANCH_EXCEPTION(newPC)
23753 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
23755 res = DREGu16((Opcode >> 0) & 7);
23757 DREGu16((Opcode >> 0) & 7) = res;
23758 if ((s32)res != -1)
23763 newPC += GET_SWORD;
23765 CHECK_BRANCH_EXCEPTION(newPC)
23786 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
23788 res = DREGu16((Opcode >> 0) & 7);
23790 DREGu16((Opcode >> 0) & 7) = res;
23791 if ((s32)res != -1)
23796 newPC += GET_SWORD;
23798 CHECK_BRANCH_EXCEPTION(newPC)
23817 src = (((Opcode >> 9) - 1) & 7) + 1;
23818 dst = DREGu8((Opcode >> 0) & 7);
23820 flag_N = flag_X = flag_C = res;
23821 flag_V = (src ^ res) & (dst ^ res);
23822 flag_NotZ = res & 0xFF;
23823 DREGu8((Opcode >> 0) & 7) = res;
23833 src = (((Opcode >> 9) - 1) & 7) + 1;
23834 adr = AREG((Opcode >> 0) & 7);
23836 READ_BYTE_F(adr, dst)
23838 flag_N = flag_X = flag_C = res;
23839 flag_V = (src ^ res) & (dst ^ res);
23840 flag_NotZ = res & 0xFF;
23841 WRITE_BYTE_F(adr, res)
23852 src = (((Opcode >> 9) - 1) & 7) + 1;
23853 adr = AREG((Opcode >> 0) & 7);
23854 AREG((Opcode >> 0) & 7) += 1;
23856 READ_BYTE_F(adr, dst)
23858 flag_N = flag_X = flag_C = res;
23859 flag_V = (src ^ res) & (dst ^ res);
23860 flag_NotZ = res & 0xFF;
23861 WRITE_BYTE_F(adr, res)
23872 src = (((Opcode >> 9) - 1) & 7) + 1;
23873 adr = AREG((Opcode >> 0) & 7) - 1;
23874 AREG((Opcode >> 0) & 7) = adr;
23876 READ_BYTE_F(adr, dst)
23878 flag_N = flag_X = flag_C = res;
23879 flag_V = (src ^ res) & (dst ^ res);
23880 flag_NotZ = res & 0xFF;
23881 WRITE_BYTE_F(adr, res)
23892 src = (((Opcode >> 9) - 1) & 7) + 1;
23894 adr += AREG((Opcode >> 0) & 7);
23896 READ_BYTE_F(adr, dst)
23898 flag_N = flag_X = flag_C = res;
23899 flag_V = (src ^ res) & (dst ^ res);
23900 flag_NotZ = res & 0xFF;
23901 WRITE_BYTE_F(adr, res)
23912 src = (((Opcode >> 9) - 1) & 7) + 1;
23913 adr = AREG((Opcode >> 0) & 7);
23916 READ_BYTE_F(adr, dst)
23918 flag_N = flag_X = flag_C = res;
23919 flag_V = (src ^ res) & (dst ^ res);
23920 flag_NotZ = res & 0xFF;
23921 WRITE_BYTE_F(adr, res)
23932 src = (((Opcode >> 9) - 1) & 7) + 1;
23935 READ_BYTE_F(adr, dst)
23937 flag_N = flag_X = flag_C = res;
23938 flag_V = (src ^ res) & (dst ^ res);
23939 flag_NotZ = res & 0xFF;
23940 WRITE_BYTE_F(adr, res)
23951 src = (((Opcode >> 9) - 1) & 7) + 1;
23954 READ_BYTE_F(adr, dst)
23956 flag_N = flag_X = flag_C = res;
23957 flag_V = (src ^ res) & (dst ^ res);
23958 flag_NotZ = res & 0xFF;
23959 WRITE_BYTE_F(adr, res)
23970 src = (((Opcode >> 9) - 1) & 7) + 1;
23974 READ_BYTE_F(adr, dst)
23976 flag_N = flag_X = flag_C = res;
23977 flag_V = (src ^ res) & (dst ^ res);
23978 flag_NotZ = res & 0xFF;
23979 WRITE_BYTE_F(adr, res)
23990 src = (((Opcode >> 9) - 1) & 7) + 1;
23994 READ_BYTE_F(adr, dst)
23996 flag_N = flag_X = flag_C = res;
23997 flag_V = (src ^ res) & (dst ^ res);
23998 flag_NotZ = res & 0xFF;
23999 WRITE_BYTE_F(adr, res)
24010 src = (((Opcode >> 9) - 1) & 7) + 1;
24011 dst = DREGu16((Opcode >> 0) & 7);
24013 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24014 flag_N = flag_X = flag_C = res >> 8;
24015 flag_NotZ = res & 0xFFFF;
24016 DREGu16((Opcode >> 0) & 7) = res;
24026 src = (((Opcode >> 9) - 1) & 7) + 1;
24027 dst = AREGu32((Opcode >> 0) & 7);
24029 AREG((Opcode >> 0) & 7) = res;
24030 #ifdef USE_CYCLONE_TIMING
24043 src = (((Opcode >> 9) - 1) & 7) + 1;
24044 adr = AREG((Opcode >> 0) & 7);
24046 READ_WORD_F(adr, dst)
24048 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24049 flag_N = flag_X = flag_C = res >> 8;
24050 flag_NotZ = res & 0xFFFF;
24051 WRITE_WORD_F(adr, res)
24062 src = (((Opcode >> 9) - 1) & 7) + 1;
24063 adr = AREG((Opcode >> 0) & 7);
24064 AREG((Opcode >> 0) & 7) += 2;
24066 READ_WORD_F(adr, dst)
24068 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24069 flag_N = flag_X = flag_C = res >> 8;
24070 flag_NotZ = res & 0xFFFF;
24071 WRITE_WORD_F(adr, res)
24082 src = (((Opcode >> 9) - 1) & 7) + 1;
24083 adr = AREG((Opcode >> 0) & 7) - 2;
24084 AREG((Opcode >> 0) & 7) = adr;
24086 READ_WORD_F(adr, dst)
24088 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24089 flag_N = flag_X = flag_C = res >> 8;
24090 flag_NotZ = res & 0xFFFF;
24091 WRITE_WORD_F(adr, res)
24102 src = (((Opcode >> 9) - 1) & 7) + 1;
24104 adr += AREG((Opcode >> 0) & 7);
24106 READ_WORD_F(adr, dst)
24108 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24109 flag_N = flag_X = flag_C = res >> 8;
24110 flag_NotZ = res & 0xFFFF;
24111 WRITE_WORD_F(adr, res)
24122 src = (((Opcode >> 9) - 1) & 7) + 1;
24123 adr = AREG((Opcode >> 0) & 7);
24126 READ_WORD_F(adr, dst)
24128 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24129 flag_N = flag_X = flag_C = res >> 8;
24130 flag_NotZ = res & 0xFFFF;
24131 WRITE_WORD_F(adr, res)
24142 src = (((Opcode >> 9) - 1) & 7) + 1;
24145 READ_WORD_F(adr, dst)
24147 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24148 flag_N = flag_X = flag_C = res >> 8;
24149 flag_NotZ = res & 0xFFFF;
24150 WRITE_WORD_F(adr, res)
24161 src = (((Opcode >> 9) - 1) & 7) + 1;
24164 READ_WORD_F(adr, dst)
24166 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24167 flag_N = flag_X = flag_C = res >> 8;
24168 flag_NotZ = res & 0xFFFF;
24169 WRITE_WORD_F(adr, res)
24180 src = (((Opcode >> 9) - 1) & 7) + 1;
24184 READ_WORD_F(adr, dst)
24186 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24187 flag_N = flag_X = flag_C = res >> 8;
24188 flag_NotZ = res & 0xFFFF;
24189 WRITE_WORD_F(adr, res)
24200 src = (((Opcode >> 9) - 1) & 7) + 1;
24204 READ_WORD_F(adr, dst)
24206 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24207 flag_N = flag_X = flag_C = res >> 8;
24208 flag_NotZ = res & 0xFFFF;
24209 WRITE_WORD_F(adr, res)
24220 src = (((Opcode >> 9) - 1) & 7) + 1;
24221 dst = DREGu32((Opcode >> 0) & 7);
24224 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24225 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24226 flag_N = res >> 24;
24227 DREGu32((Opcode >> 0) & 7) = res;
24237 src = (((Opcode >> 9) - 1) & 7) + 1;
24238 dst = AREGu32((Opcode >> 0) & 7);
24240 AREG((Opcode >> 0) & 7) = res;
24250 src = (((Opcode >> 9) - 1) & 7) + 1;
24251 adr = AREG((Opcode >> 0) & 7);
24253 READ_LONG_F(adr, dst)
24256 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24257 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24258 flag_N = res >> 24;
24259 WRITE_LONG_F(adr, res)
24270 src = (((Opcode >> 9) - 1) & 7) + 1;
24271 adr = AREG((Opcode >> 0) & 7);
24272 AREG((Opcode >> 0) & 7) += 4;
24274 READ_LONG_F(adr, dst)
24277 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24278 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24279 flag_N = res >> 24;
24280 WRITE_LONG_F(adr, res)
24291 src = (((Opcode >> 9) - 1) & 7) + 1;
24292 adr = AREG((Opcode >> 0) & 7) - 4;
24293 AREG((Opcode >> 0) & 7) = adr;
24295 READ_LONG_F(adr, dst)
24298 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24299 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24300 flag_N = res >> 24;
24301 WRITE_LONG_F(adr, res)
24312 src = (((Opcode >> 9) - 1) & 7) + 1;
24314 adr += AREG((Opcode >> 0) & 7);
24316 READ_LONG_F(adr, dst)
24319 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24320 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24321 flag_N = res >> 24;
24322 WRITE_LONG_F(adr, res)
24333 src = (((Opcode >> 9) - 1) & 7) + 1;
24334 adr = AREG((Opcode >> 0) & 7);
24337 READ_LONG_F(adr, dst)
24340 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24341 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24342 flag_N = res >> 24;
24343 WRITE_LONG_F(adr, res)
24354 src = (((Opcode >> 9) - 1) & 7) + 1;
24357 READ_LONG_F(adr, dst)
24360 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24361 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24362 flag_N = res >> 24;
24363 WRITE_LONG_F(adr, res)
24374 src = (((Opcode >> 9) - 1) & 7) + 1;
24377 READ_LONG_F(adr, dst)
24380 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24381 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24382 flag_N = res >> 24;
24383 WRITE_LONG_F(adr, res)
24394 src = (((Opcode >> 9) - 1) & 7) + 1;
24398 READ_LONG_F(adr, dst)
24401 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24402 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24403 flag_N = res >> 24;
24404 WRITE_LONG_F(adr, res)
24415 src = (((Opcode >> 9) - 1) & 7) + 1;
24419 READ_LONG_F(adr, dst)
24422 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24423 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24424 flag_N = res >> 24;
24425 WRITE_LONG_F(adr, res)
24436 src = (((Opcode >> 9) - 1) & 7) + 1;
24437 dst = DREGu8((Opcode >> 0) & 7);
24439 flag_N = flag_X = flag_C = res;
24440 flag_V = (src ^ dst) & (res ^ dst);
24441 flag_NotZ = res & 0xFF;
24442 DREGu8((Opcode >> 0) & 7) = res;
24452 src = (((Opcode >> 9) - 1) & 7) + 1;
24453 adr = AREG((Opcode >> 0) & 7);
24455 READ_BYTE_F(adr, dst)
24457 flag_N = flag_X = flag_C = res;
24458 flag_V = (src ^ dst) & (res ^ dst);
24459 flag_NotZ = res & 0xFF;
24460 WRITE_BYTE_F(adr, res)
24471 src = (((Opcode >> 9) - 1) & 7) + 1;
24472 adr = AREG((Opcode >> 0) & 7);
24473 AREG((Opcode >> 0) & 7) += 1;
24475 READ_BYTE_F(adr, dst)
24477 flag_N = flag_X = flag_C = res;
24478 flag_V = (src ^ dst) & (res ^ dst);
24479 flag_NotZ = res & 0xFF;
24480 WRITE_BYTE_F(adr, res)
24491 src = (((Opcode >> 9) - 1) & 7) + 1;
24492 adr = AREG((Opcode >> 0) & 7) - 1;
24493 AREG((Opcode >> 0) & 7) = adr;
24495 READ_BYTE_F(adr, dst)
24497 flag_N = flag_X = flag_C = res;
24498 flag_V = (src ^ dst) & (res ^ dst);
24499 flag_NotZ = res & 0xFF;
24500 WRITE_BYTE_F(adr, res)
24511 src = (((Opcode >> 9) - 1) & 7) + 1;
24513 adr += AREG((Opcode >> 0) & 7);
24515 READ_BYTE_F(adr, dst)
24517 flag_N = flag_X = flag_C = res;
24518 flag_V = (src ^ dst) & (res ^ dst);
24519 flag_NotZ = res & 0xFF;
24520 WRITE_BYTE_F(adr, res)
24531 src = (((Opcode >> 9) - 1) & 7) + 1;
24532 adr = AREG((Opcode >> 0) & 7);
24535 READ_BYTE_F(adr, dst)
24537 flag_N = flag_X = flag_C = res;
24538 flag_V = (src ^ dst) & (res ^ dst);
24539 flag_NotZ = res & 0xFF;
24540 WRITE_BYTE_F(adr, res)
24551 src = (((Opcode >> 9) - 1) & 7) + 1;
24554 READ_BYTE_F(adr, dst)
24556 flag_N = flag_X = flag_C = res;
24557 flag_V = (src ^ dst) & (res ^ dst);
24558 flag_NotZ = res & 0xFF;
24559 WRITE_BYTE_F(adr, res)
24570 src = (((Opcode >> 9) - 1) & 7) + 1;
24573 READ_BYTE_F(adr, dst)
24575 flag_N = flag_X = flag_C = res;
24576 flag_V = (src ^ dst) & (res ^ dst);
24577 flag_NotZ = res & 0xFF;
24578 WRITE_BYTE_F(adr, res)
24589 src = (((Opcode >> 9) - 1) & 7) + 1;
24593 READ_BYTE_F(adr, dst)
24595 flag_N = flag_X = flag_C = res;
24596 flag_V = (src ^ dst) & (res ^ dst);
24597 flag_NotZ = res & 0xFF;
24598 WRITE_BYTE_F(adr, res)
24609 src = (((Opcode >> 9) - 1) & 7) + 1;
24613 READ_BYTE_F(adr, dst)
24615 flag_N = flag_X = flag_C = res;
24616 flag_V = (src ^ dst) & (res ^ dst);
24617 flag_NotZ = res & 0xFF;
24618 WRITE_BYTE_F(adr, res)
24629 src = (((Opcode >> 9) - 1) & 7) + 1;
24630 dst = DREGu16((Opcode >> 0) & 7);
24632 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24633 flag_N = flag_X = flag_C = res >> 8;
24634 flag_NotZ = res & 0xFFFF;
24635 DREGu16((Opcode >> 0) & 7) = res;
24645 src = (((Opcode >> 9) - 1) & 7) + 1;
24646 dst = AREGu32((Opcode >> 0) & 7);
24648 AREG((Opcode >> 0) & 7) = res;
24658 src = (((Opcode >> 9) - 1) & 7) + 1;
24659 adr = AREG((Opcode >> 0) & 7);
24661 READ_WORD_F(adr, dst)
24663 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24664 flag_N = flag_X = flag_C = res >> 8;
24665 flag_NotZ = res & 0xFFFF;
24666 WRITE_WORD_F(adr, res)
24677 src = (((Opcode >> 9) - 1) & 7) + 1;
24678 adr = AREG((Opcode >> 0) & 7);
24679 AREG((Opcode >> 0) & 7) += 2;
24681 READ_WORD_F(adr, dst)
24683 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24684 flag_N = flag_X = flag_C = res >> 8;
24685 flag_NotZ = res & 0xFFFF;
24686 WRITE_WORD_F(adr, res)
24697 src = (((Opcode >> 9) - 1) & 7) + 1;
24698 adr = AREG((Opcode >> 0) & 7) - 2;
24699 AREG((Opcode >> 0) & 7) = adr;
24701 READ_WORD_F(adr, dst)
24703 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24704 flag_N = flag_X = flag_C = res >> 8;
24705 flag_NotZ = res & 0xFFFF;
24706 WRITE_WORD_F(adr, res)
24717 src = (((Opcode >> 9) - 1) & 7) + 1;
24719 adr += AREG((Opcode >> 0) & 7);
24721 READ_WORD_F(adr, dst)
24723 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24724 flag_N = flag_X = flag_C = res >> 8;
24725 flag_NotZ = res & 0xFFFF;
24726 WRITE_WORD_F(adr, res)
24737 src = (((Opcode >> 9) - 1) & 7) + 1;
24738 adr = AREG((Opcode >> 0) & 7);
24741 READ_WORD_F(adr, dst)
24743 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24744 flag_N = flag_X = flag_C = res >> 8;
24745 flag_NotZ = res & 0xFFFF;
24746 WRITE_WORD_F(adr, res)
24757 src = (((Opcode >> 9) - 1) & 7) + 1;
24760 READ_WORD_F(adr, dst)
24762 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24763 flag_N = flag_X = flag_C = res >> 8;
24764 flag_NotZ = res & 0xFFFF;
24765 WRITE_WORD_F(adr, res)
24776 src = (((Opcode >> 9) - 1) & 7) + 1;
24779 READ_WORD_F(adr, dst)
24781 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24782 flag_N = flag_X = flag_C = res >> 8;
24783 flag_NotZ = res & 0xFFFF;
24784 WRITE_WORD_F(adr, res)
24795 src = (((Opcode >> 9) - 1) & 7) + 1;
24799 READ_WORD_F(adr, dst)
24801 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24802 flag_N = flag_X = flag_C = res >> 8;
24803 flag_NotZ = res & 0xFFFF;
24804 WRITE_WORD_F(adr, res)
24815 src = (((Opcode >> 9) - 1) & 7) + 1;
24819 READ_WORD_F(adr, dst)
24821 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24822 flag_N = flag_X = flag_C = res >> 8;
24823 flag_NotZ = res & 0xFFFF;
24824 WRITE_WORD_F(adr, res)
24835 src = (((Opcode >> 9) - 1) & 7) + 1;
24836 dst = DREGu32((Opcode >> 0) & 7);
24839 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24840 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24841 flag_N = res >> 24;
24842 DREGu32((Opcode >> 0) & 7) = res;
24852 src = (((Opcode >> 9) - 1) & 7) + 1;
24853 dst = AREGu32((Opcode >> 0) & 7);
24855 AREG((Opcode >> 0) & 7) = res;
24865 src = (((Opcode >> 9) - 1) & 7) + 1;
24866 adr = AREG((Opcode >> 0) & 7);
24868 READ_LONG_F(adr, dst)
24871 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24872 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24873 flag_N = res >> 24;
24874 WRITE_LONG_F(adr, res)
24885 src = (((Opcode >> 9) - 1) & 7) + 1;
24886 adr = AREG((Opcode >> 0) & 7);
24887 AREG((Opcode >> 0) & 7) += 4;
24889 READ_LONG_F(adr, dst)
24892 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24893 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24894 flag_N = res >> 24;
24895 WRITE_LONG_F(adr, res)
24906 src = (((Opcode >> 9) - 1) & 7) + 1;
24907 adr = AREG((Opcode >> 0) & 7) - 4;
24908 AREG((Opcode >> 0) & 7) = adr;
24910 READ_LONG_F(adr, dst)
24913 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24914 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24915 flag_N = res >> 24;
24916 WRITE_LONG_F(adr, res)
24927 src = (((Opcode >> 9) - 1) & 7) + 1;
24929 adr += AREG((Opcode >> 0) & 7);
24931 READ_LONG_F(adr, dst)
24934 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24935 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24936 flag_N = res >> 24;
24937 WRITE_LONG_F(adr, res)
24948 src = (((Opcode >> 9) - 1) & 7) + 1;
24949 adr = AREG((Opcode >> 0) & 7);
24952 READ_LONG_F(adr, dst)
24955 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24956 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24957 flag_N = res >> 24;
24958 WRITE_LONG_F(adr, res)
24969 src = (((Opcode >> 9) - 1) & 7) + 1;
24972 READ_LONG_F(adr, dst)
24975 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24976 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24977 flag_N = res >> 24;
24978 WRITE_LONG_F(adr, res)
24989 src = (((Opcode >> 9) - 1) & 7) + 1;
24992 READ_LONG_F(adr, dst)
24995 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24996 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24997 flag_N = res >> 24;
24998 WRITE_LONG_F(adr, res)
25009 src = (((Opcode >> 9) - 1) & 7) + 1;
25013 READ_LONG_F(adr, dst)
25016 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
25017 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
25018 flag_N = res >> 24;
25019 WRITE_LONG_F(adr, res)
25030 src = (((Opcode >> 9) - 1) & 7) + 1;
25034 READ_LONG_F(adr, dst)
25037 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
25038 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
25039 flag_N = res >> 24;
25040 WRITE_LONG_F(adr, res)
25051 if (flag_NotZ && (!(flag_C & 0x100)))
25053 PC += ((s8)(Opcode & 0xFE)) >> 1;
25054 m68kcontext.io_cycle_counter -= 2;
25065 if ((!flag_NotZ) || (flag_C & 0x100))
25067 PC += ((s8)(Opcode & 0xFE)) >> 1;
25068 m68kcontext.io_cycle_counter -= 2;
25079 if (!(flag_C & 0x100))
25081 PC += ((s8)(Opcode & 0xFE)) >> 1;
25082 m68kcontext.io_cycle_counter -= 2;
25093 if (flag_C & 0x100)
25095 PC += ((s8)(Opcode & 0xFE)) >> 1;
25096 m68kcontext.io_cycle_counter -= 2;
25109 PC += ((s8)(Opcode & 0xFE)) >> 1;
25110 m68kcontext.io_cycle_counter -= 2;
25123 PC += ((s8)(Opcode & 0xFE)) >> 1;
25124 m68kcontext.io_cycle_counter -= 2;
25135 if (!(flag_V & 0x80))
25137 PC += ((s8)(Opcode & 0xFE)) >> 1;
25138 m68kcontext.io_cycle_counter -= 2;
25151 PC += ((s8)(Opcode & 0xFE)) >> 1;
25152 m68kcontext.io_cycle_counter -= 2;
25163 if (!(flag_N & 0x80))
25165 PC += ((s8)(Opcode & 0xFE)) >> 1;
25166 m68kcontext.io_cycle_counter -= 2;
25179 PC += ((s8)(Opcode & 0xFE)) >> 1;
25180 m68kcontext.io_cycle_counter -= 2;
25191 if (!((flag_N ^ flag_V) & 0x80))
25193 PC += ((s8)(Opcode & 0xFE)) >> 1;
25194 m68kcontext.io_cycle_counter -= 2;
25205 if ((flag_N ^ flag_V) & 0x80)
25207 PC += ((s8)(Opcode & 0xFE)) >> 1;
25208 m68kcontext.io_cycle_counter -= 2;
25219 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
25221 PC += ((s8)(Opcode & 0xFE)) >> 1;
25222 m68kcontext.io_cycle_counter -= 2;
25233 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
25235 PC += ((s8)(Opcode & 0xFE)) >> 1;
25236 m68kcontext.io_cycle_counter -= 2;
25247 if (flag_NotZ && (!(flag_C & 0x100)))
25252 newPC += GET_SWORD;
25254 CHECK_BRANCH_EXCEPTION(newPC)
25267 if ((!flag_NotZ) || (flag_C & 0x100))
25272 newPC += GET_SWORD;
25274 CHECK_BRANCH_EXCEPTION(newPC)
25287 if (!(flag_C & 0x100))
25292 newPC += GET_SWORD;
25294 CHECK_BRANCH_EXCEPTION(newPC)
25307 if (flag_C & 0x100)
25312 newPC += GET_SWORD;
25314 CHECK_BRANCH_EXCEPTION(newPC)
25332 newPC += GET_SWORD;
25334 CHECK_BRANCH_EXCEPTION(newPC)
25352 newPC += GET_SWORD;
25354 CHECK_BRANCH_EXCEPTION(newPC)
25367 if (!(flag_V & 0x80))
25372 newPC += GET_SWORD;
25374 CHECK_BRANCH_EXCEPTION(newPC)
25392 newPC += GET_SWORD;
25394 CHECK_BRANCH_EXCEPTION(newPC)
25407 if (!(flag_N & 0x80))
25412 newPC += GET_SWORD;
25414 CHECK_BRANCH_EXCEPTION(newPC)
25432 newPC += GET_SWORD;
25434 CHECK_BRANCH_EXCEPTION(newPC)
25447 if (!((flag_N ^ flag_V) & 0x80))
25452 newPC += GET_SWORD;
25454 CHECK_BRANCH_EXCEPTION(newPC)
25467 if ((flag_N ^ flag_V) & 0x80)
25472 newPC += GET_SWORD;
25474 CHECK_BRANCH_EXCEPTION(newPC)
25487 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
25492 newPC += GET_SWORD;
25494 CHECK_BRANCH_EXCEPTION(newPC)
25507 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
25512 newPC += GET_SWORD;
25514 CHECK_BRANCH_EXCEPTION(newPC)
25524 #ifdef FAMEC_CHECK_BRANCHES
25525 u32 newPC = GET_PC;
25529 CHECK_BRANCH_EXCEPTION(offs)
25531 PC += ((s8)(Opcode & 0xFE)) >> 1;
25546 newPC += GET_SWORD;
25548 CHECK_BRANCH_EXCEPTION(newPC)
25565 #ifdef FAMEC_CHECK_BRANCHES
25569 CHECK_BRANCH_EXCEPTION(offs)
25571 PC += ((s8)(Opcode & 0xFE)) >> 1;
25590 newPC += GET_SWORD;
25592 CHECK_BRANCH_EXCEPTION(newPC)
25604 res = (s32)(s8)Opcode;
25605 flag_C = flag_V = 0;
25606 flag_N = flag_NotZ = res;
25607 DREGu32((Opcode >> 9) & 7) = res;
25617 src = DREGu8((Opcode >> 0) & 7);
25618 res = DREGu8((Opcode >> 9) & 7);
25624 DREGu8((Opcode >> 9) & 7) = res;
25634 adr = AREG((Opcode >> 0) & 7);
25636 READ_BYTE_F(adr, src)
25637 res = DREGu8((Opcode >> 9) & 7);
25643 DREGu8((Opcode >> 9) & 7) = res;
25654 adr = AREG((Opcode >> 0) & 7);
25655 AREG((Opcode >> 0) & 7) += 1;
25657 READ_BYTE_F(adr, src)
25658 res = DREGu8((Opcode >> 9) & 7);
25664 DREGu8((Opcode >> 9) & 7) = res;
25675 adr = AREG((Opcode >> 0) & 7) - 1;
25676 AREG((Opcode >> 0) & 7) = adr;
25678 READ_BYTE_F(adr, src)
25679 res = DREGu8((Opcode >> 9) & 7);
25685 DREGu8((Opcode >> 9) & 7) = res;
25697 adr += AREG((Opcode >> 0) & 7);
25699 READ_BYTE_F(adr, src)
25700 res = DREGu8((Opcode >> 9) & 7);
25706 DREGu8((Opcode >> 9) & 7) = res;
25717 adr = AREG((Opcode >> 0) & 7);
25720 READ_BYTE_F(adr, src)
25721 res = DREGu8((Opcode >> 9) & 7);
25727 DREGu8((Opcode >> 9) & 7) = res;
25740 READ_BYTE_F(adr, src)
25741 res = DREGu8((Opcode >> 9) & 7);
25747 DREGu8((Opcode >> 9) & 7) = res;
25760 READ_BYTE_F(adr, src)
25761 res = DREGu8((Opcode >> 9) & 7);
25767 DREGu8((Opcode >> 9) & 7) = res;
25778 adr = GET_SWORD + GET_PC;
25781 READ_BYTE_F(adr, src)
25782 res = DREGu8((Opcode >> 9) & 7);
25788 DREGu8((Opcode >> 9) & 7) = res;
25802 READ_BYTE_F(adr, src)
25803 res = DREGu8((Opcode >> 9) & 7);
25809 DREGu8((Opcode >> 9) & 7) = res;
25821 res = DREGu8((Opcode >> 9) & 7);
25827 DREGu8((Opcode >> 9) & 7) = res;
25840 READ_BYTE_F(adr, src)
25841 res = DREGu8((Opcode >> 9) & 7);
25847 DREGu8((Opcode >> 9) & 7) = res;
25861 READ_BYTE_F(adr, src)
25862 res = DREGu8((Opcode >> 9) & 7);
25868 DREGu8((Opcode >> 9) & 7) = res;
25879 src = DREGu16((Opcode >> 0) & 7);
25880 res = DREGu16((Opcode >> 9) & 7);
25886 DREGu16((Opcode >> 9) & 7) = res;
25896 adr = AREG((Opcode >> 0) & 7);
25898 READ_WORD_F(adr, src)
25899 res = DREGu16((Opcode >> 9) & 7);
25905 DREGu16((Opcode >> 9) & 7) = res;
25916 adr = AREG((Opcode >> 0) & 7);
25917 AREG((Opcode >> 0) & 7) += 2;
25919 READ_WORD_F(adr, src)
25920 res = DREGu16((Opcode >> 9) & 7);
25926 DREGu16((Opcode >> 9) & 7) = res;
25937 adr = AREG((Opcode >> 0) & 7) - 2;
25938 AREG((Opcode >> 0) & 7) = adr;
25940 READ_WORD_F(adr, src)
25941 res = DREGu16((Opcode >> 9) & 7);
25947 DREGu16((Opcode >> 9) & 7) = res;
25959 adr += AREG((Opcode >> 0) & 7);
25961 READ_WORD_F(adr, src)
25962 res = DREGu16((Opcode >> 9) & 7);
25968 DREGu16((Opcode >> 9) & 7) = res;
25979 adr = AREG((Opcode >> 0) & 7);
25982 READ_WORD_F(adr, src)
25983 res = DREGu16((Opcode >> 9) & 7);
25989 DREGu16((Opcode >> 9) & 7) = res;
26002 READ_WORD_F(adr, src)
26003 res = DREGu16((Opcode >> 9) & 7);
26009 DREGu16((Opcode >> 9) & 7) = res;
26022 READ_WORD_F(adr, src)
26023 res = DREGu16((Opcode >> 9) & 7);
26029 DREGu16((Opcode >> 9) & 7) = res;
26040 adr = GET_SWORD + GET_PC;
26043 READ_WORD_F(adr, src)
26044 res = DREGu16((Opcode >> 9) & 7);
26050 DREGu16((Opcode >> 9) & 7) = res;
26064 READ_WORD_F(adr, src)
26065 res = DREGu16((Opcode >> 9) & 7);
26071 DREGu16((Opcode >> 9) & 7) = res;
26083 res = DREGu16((Opcode >> 9) & 7);
26089 DREGu16((Opcode >> 9) & 7) = res;
26102 READ_WORD_F(adr, src)
26103 res = DREGu16((Opcode >> 9) & 7);
26109 DREGu16((Opcode >> 9) & 7) = res;
26123 READ_WORD_F(adr, src)
26124 res = DREGu16((Opcode >> 9) & 7);
26130 DREGu16((Opcode >> 9) & 7) = res;
26141 src = DREGu32((Opcode >> 0) & 7);
26142 res = DREGu32((Opcode >> 9) & 7);
26147 flag_N = res >> 24;
26148 DREGu32((Opcode >> 9) & 7) = res;
26158 adr = AREG((Opcode >> 0) & 7);
26160 READ_LONG_F(adr, src)
26161 res = DREGu32((Opcode >> 9) & 7);
26166 flag_N = res >> 24;
26167 DREGu32((Opcode >> 9) & 7) = res;
26178 adr = AREG((Opcode >> 0) & 7);
26179 AREG((Opcode >> 0) & 7) += 4;
26181 READ_LONG_F(adr, src)
26182 res = DREGu32((Opcode >> 9) & 7);
26187 flag_N = res >> 24;
26188 DREGu32((Opcode >> 9) & 7) = res;
26199 adr = AREG((Opcode >> 0) & 7) - 4;
26200 AREG((Opcode >> 0) & 7) = adr;
26202 READ_LONG_F(adr, src)
26203 res = DREGu32((Opcode >> 9) & 7);
26208 flag_N = res >> 24;
26209 DREGu32((Opcode >> 9) & 7) = res;
26221 adr += AREG((Opcode >> 0) & 7);
26223 READ_LONG_F(adr, src)
26224 res = DREGu32((Opcode >> 9) & 7);
26229 flag_N = res >> 24;
26230 DREGu32((Opcode >> 9) & 7) = res;
26241 adr = AREG((Opcode >> 0) & 7);
26244 READ_LONG_F(adr, src)
26245 res = DREGu32((Opcode >> 9) & 7);
26250 flag_N = res >> 24;
26251 DREGu32((Opcode >> 9) & 7) = res;
26264 READ_LONG_F(adr, src)
26265 res = DREGu32((Opcode >> 9) & 7);
26270 flag_N = res >> 24;
26271 DREGu32((Opcode >> 9) & 7) = res;
26284 READ_LONG_F(adr, src)
26285 res = DREGu32((Opcode >> 9) & 7);
26290 flag_N = res >> 24;
26291 DREGu32((Opcode >> 9) & 7) = res;
26302 adr = GET_SWORD + GET_PC;
26305 READ_LONG_F(adr, src)
26306 res = DREGu32((Opcode >> 9) & 7);
26311 flag_N = res >> 24;
26312 DREGu32((Opcode >> 9) & 7) = res;
26326 READ_LONG_F(adr, src)
26327 res = DREGu32((Opcode >> 9) & 7);
26332 flag_N = res >> 24;
26333 DREGu32((Opcode >> 9) & 7) = res;
26345 res = DREGu32((Opcode >> 9) & 7);
26350 flag_N = res >> 24;
26351 DREGu32((Opcode >> 9) & 7) = res;
26364 READ_LONG_F(adr, src)
26365 res = DREGu32((Opcode >> 9) & 7);
26370 flag_N = res >> 24;
26371 DREGu32((Opcode >> 9) & 7) = res;
26385 READ_LONG_F(adr, src)
26386 res = DREGu32((Opcode >> 9) & 7);
26391 flag_N = res >> 24;
26392 DREGu32((Opcode >> 9) & 7) = res;
26403 src = DREGu8((Opcode >> 9) & 7);
26404 adr = AREG((Opcode >> 0) & 7);
26406 READ_BYTE_F(adr, res)
26412 WRITE_BYTE_F(adr, res)
26423 src = DREGu8((Opcode >> 9) & 7);
26424 adr = AREG((Opcode >> 0) & 7);
26425 AREG((Opcode >> 0) & 7) += 1;
26427 READ_BYTE_F(adr, res)
26433 WRITE_BYTE_F(adr, res)
26444 src = DREGu8((Opcode >> 9) & 7);
26445 adr = AREG((Opcode >> 0) & 7) - 1;
26446 AREG((Opcode >> 0) & 7) = adr;
26448 READ_BYTE_F(adr, res)
26454 WRITE_BYTE_F(adr, res)
26465 src = DREGu8((Opcode >> 9) & 7);
26467 adr += AREG((Opcode >> 0) & 7);
26469 READ_BYTE_F(adr, res)
26475 WRITE_BYTE_F(adr, res)
26486 src = DREGu8((Opcode >> 9) & 7);
26487 adr = AREG((Opcode >> 0) & 7);
26490 READ_BYTE_F(adr, res)
26496 WRITE_BYTE_F(adr, res)
26507 src = DREGu8((Opcode >> 9) & 7);
26510 READ_BYTE_F(adr, res)
26516 WRITE_BYTE_F(adr, res)
26527 src = DREGu8((Opcode >> 9) & 7);
26530 READ_BYTE_F(adr, res)
26536 WRITE_BYTE_F(adr, res)
26547 src = DREGu8((Opcode >> 9) & 7);
26551 READ_BYTE_F(adr, res)
26557 WRITE_BYTE_F(adr, res)
26568 src = DREGu8((Opcode >> 9) & 7);
26572 READ_BYTE_F(adr, res)
26578 WRITE_BYTE_F(adr, res)
26589 src = DREGu16((Opcode >> 9) & 7);
26590 adr = AREG((Opcode >> 0) & 7);
26592 READ_WORD_F(adr, res)
26598 WRITE_WORD_F(adr, res)
26609 src = DREGu16((Opcode >> 9) & 7);
26610 adr = AREG((Opcode >> 0) & 7);
26611 AREG((Opcode >> 0) & 7) += 2;
26613 READ_WORD_F(adr, res)
26619 WRITE_WORD_F(adr, res)
26630 src = DREGu16((Opcode >> 9) & 7);
26631 adr = AREG((Opcode >> 0) & 7) - 2;
26632 AREG((Opcode >> 0) & 7) = adr;
26634 READ_WORD_F(adr, res)
26640 WRITE_WORD_F(adr, res)
26651 src = DREGu16((Opcode >> 9) & 7);
26653 adr += AREG((Opcode >> 0) & 7);
26655 READ_WORD_F(adr, res)
26661 WRITE_WORD_F(adr, res)
26672 src = DREGu16((Opcode >> 9) & 7);
26673 adr = AREG((Opcode >> 0) & 7);
26676 READ_WORD_F(adr, res)
26682 WRITE_WORD_F(adr, res)
26693 src = DREGu16((Opcode >> 9) & 7);
26696 READ_WORD_F(adr, res)
26702 WRITE_WORD_F(adr, res)
26713 src = DREGu16((Opcode >> 9) & 7);
26716 READ_WORD_F(adr, res)
26722 WRITE_WORD_F(adr, res)
26733 src = DREGu16((Opcode >> 9) & 7);
26737 READ_WORD_F(adr, res)
26743 WRITE_WORD_F(adr, res)
26754 src = DREGu16((Opcode >> 9) & 7);
26758 READ_WORD_F(adr, res)
26764 WRITE_WORD_F(adr, res)
26775 src = DREGu32((Opcode >> 9) & 7);
26776 adr = AREG((Opcode >> 0) & 7);
26778 READ_LONG_F(adr, res)
26783 flag_N = res >> 24;
26784 WRITE_LONG_F(adr, res)
26795 src = DREGu32((Opcode >> 9) & 7);
26796 adr = AREG((Opcode >> 0) & 7);
26797 AREG((Opcode >> 0) & 7) += 4;
26799 READ_LONG_F(adr, res)
26804 flag_N = res >> 24;
26805 WRITE_LONG_F(adr, res)
26816 src = DREGu32((Opcode >> 9) & 7);
26817 adr = AREG((Opcode >> 0) & 7) - 4;
26818 AREG((Opcode >> 0) & 7) = adr;
26820 READ_LONG_F(adr, res)
26825 flag_N = res >> 24;
26826 WRITE_LONG_F(adr, res)
26837 src = DREGu32((Opcode >> 9) & 7);
26839 adr += AREG((Opcode >> 0) & 7);
26841 READ_LONG_F(adr, res)
26846 flag_N = res >> 24;
26847 WRITE_LONG_F(adr, res)
26858 src = DREGu32((Opcode >> 9) & 7);
26859 adr = AREG((Opcode >> 0) & 7);
26862 READ_LONG_F(adr, res)
26867 flag_N = res >> 24;
26868 WRITE_LONG_F(adr, res)
26879 src = DREGu32((Opcode >> 9) & 7);
26882 READ_LONG_F(adr, res)
26887 flag_N = res >> 24;
26888 WRITE_LONG_F(adr, res)
26899 src = DREGu32((Opcode >> 9) & 7);
26902 READ_LONG_F(adr, res)
26907 flag_N = res >> 24;
26908 WRITE_LONG_F(adr, res)
26919 src = DREGu32((Opcode >> 9) & 7);
26923 READ_LONG_F(adr, res)
26928 flag_N = res >> 24;
26929 WRITE_LONG_F(adr, res)
26940 src = DREGu32((Opcode >> 9) & 7);
26944 READ_LONG_F(adr, res)
26949 flag_N = res >> 24;
26950 WRITE_LONG_F(adr, res)
26962 src = DREGu8((Opcode >> 0) & 7);
26963 dst = DREGu8((Opcode >> 9) & 7);
26964 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26965 if (res > 0xF) corf = 6;
26966 res += (dst & 0xF0) - (src & 0xF0);
26968 flag_X = flag_C = (s32)res < (s32)corf ? M68K_SR_C : 0;
26969 if (res > 0xff) res += 0xA0;
26970 res = (res - corf) & 0xFF;
26974 DREGu8((Opcode >> 9) & 7) = res;
26985 adr = AREG((Opcode >> 0) & 7) - 1;
26986 AREG((Opcode >> 0) & 7) = adr;
26988 READ_BYTE_F(adr, src)
26989 adr = AREG((Opcode >> 9) & 7) - 1;
26990 AREG((Opcode >> 9) & 7) = adr;
26991 READ_BYTE_F(adr, dst)
26992 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26993 if (res > 0xF) corf = 6;
26994 res += (dst & 0xF0) - (src & 0xF0);
26996 flag_X = flag_C = (s32)res < (s32)corf ? M68K_SR_C : 0;
26997 if (res > 0xff) res += 0xA0;
26998 res = (res - corf) & 0xFF;
27002 WRITE_BYTE_F(adr, res)
27017 READ_BYTE_F(adr, src)
27018 adr = AREG((Opcode >> 9) & 7) - 1;
27019 AREG((Opcode >> 9) & 7) = adr;
27020 READ_BYTE_F(adr, dst)
27021 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
27022 if (res > 0xF) corf = 6;
27023 res += (dst & 0xF0) - (src & 0xF0);
27025 flag_X = flag_C = (s32)res < (s32)corf ? M68K_SR_C : 0;
27026 if (res > 0xff) res += 0xA0;
27027 res = (res - corf) & 0xFF;
27031 WRITE_BYTE_F(adr, res)
27043 adr = AREG((Opcode >> 0) & 7) - 1;
27044 AREG((Opcode >> 0) & 7) = adr;
27046 READ_BYTE_F(adr, src)
27049 READ_BYTE_F(adr, dst)
27050 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
27051 if (res > 0xF) corf = 6;
27052 res += (dst & 0xF0) - (src & 0xF0);
27054 flag_X = flag_C = (s32)res < (s32)corf ? M68K_SR_C : 0;
27055 if (res > 0xff) res += 0xA0;
27056 res = (res - corf) & 0xFF;
27060 WRITE_BYTE_F(adr, res)
27075 READ_BYTE_F(adr, src)
27078 READ_BYTE_F(adr, dst)
27079 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
27080 if (res > 0xF) corf = 6;
27081 res += (dst & 0xF0) - (src & 0xF0);
27083 flag_X = flag_C = (s32)res < (s32)corf ? M68K_SR_C : 0;
27084 if (res > 0xff) res += 0xA0;
27085 res = (res - corf) & 0xFF;
27089 WRITE_BYTE_F(adr, res)
27100 src = DREGu16((Opcode >> 0) & 7);
27103 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27104 #ifdef USE_CYCLONE_TIMING_DIV
27110 dst = DREGu32((Opcode >> 9) & 7);
27117 if (q & 0xFFFF0000)
27119 flag_V = M68K_SR_V;
27120 #ifdef USE_CYCLONE_TIMING_DIV
27129 flag_V = flag_C = 0;
27130 res = q | (r << 16);
27131 DREGu32((Opcode >> 9) & 7) = res;
27133 #ifdef USE_CYCLONE_TIMING_DIV
27146 adr = AREG((Opcode >> 0) & 7);
27148 READ_WORD_F(adr, src)
27151 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27152 #ifdef USE_CYCLONE_TIMING_DIV
27158 dst = DREGu32((Opcode >> 9) & 7);
27165 if (q & 0xFFFF0000)
27167 flag_V = M68K_SR_V;
27168 #ifdef USE_CYCLONE_TIMING_DIV
27177 flag_V = flag_C = 0;
27178 res = q | (r << 16);
27179 DREGu32((Opcode >> 9) & 7) = res;
27181 #ifdef USE_CYCLONE_TIMING_DIV
27194 adr = AREG((Opcode >> 0) & 7);
27195 AREG((Opcode >> 0) & 7) += 2;
27197 READ_WORD_F(adr, src)
27200 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27201 #ifdef USE_CYCLONE_TIMING_DIV
27207 dst = DREGu32((Opcode >> 9) & 7);
27214 if (q & 0xFFFF0000)
27216 flag_V = M68K_SR_V;
27217 #ifdef USE_CYCLONE_TIMING_DIV
27226 flag_V = flag_C = 0;
27227 res = q | (r << 16);
27228 DREGu32((Opcode >> 9) & 7) = res;
27230 #ifdef USE_CYCLONE_TIMING_DIV
27243 adr = AREG((Opcode >> 0) & 7) - 2;
27244 AREG((Opcode >> 0) & 7) = adr;
27246 READ_WORD_F(adr, src)
27249 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27250 #ifdef USE_CYCLONE_TIMING_DIV
27256 dst = DREGu32((Opcode >> 9) & 7);
27263 if (q & 0xFFFF0000)
27265 flag_V = M68K_SR_V;
27266 #ifdef USE_CYCLONE_TIMING_DIV
27275 flag_V = flag_C = 0;
27276 res = q | (r << 16);
27277 DREGu32((Opcode >> 9) & 7) = res;
27279 #ifdef USE_CYCLONE_TIMING_DIV
27293 adr += AREG((Opcode >> 0) & 7);
27295 READ_WORD_F(adr, src)
27298 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27299 #ifdef USE_CYCLONE_TIMING_DIV
27305 dst = DREGu32((Opcode >> 9) & 7);
27312 if (q & 0xFFFF0000)
27314 flag_V = M68K_SR_V;
27315 #ifdef USE_CYCLONE_TIMING_DIV
27324 flag_V = flag_C = 0;
27325 res = q | (r << 16);
27326 DREGu32((Opcode >> 9) & 7) = res;
27328 #ifdef USE_CYCLONE_TIMING_DIV
27341 adr = AREG((Opcode >> 0) & 7);
27344 READ_WORD_F(adr, src)
27347 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27348 #ifdef USE_CYCLONE_TIMING_DIV
27354 dst = DREGu32((Opcode >> 9) & 7);
27361 if (q & 0xFFFF0000)
27363 flag_V = M68K_SR_V;
27364 #ifdef USE_CYCLONE_TIMING_DIV
27373 flag_V = flag_C = 0;
27374 res = q | (r << 16);
27375 DREGu32((Opcode >> 9) & 7) = res;
27377 #ifdef USE_CYCLONE_TIMING_DIV
27392 READ_WORD_F(adr, src)
27395 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27396 #ifdef USE_CYCLONE_TIMING_DIV
27402 dst = DREGu32((Opcode >> 9) & 7);
27409 if (q & 0xFFFF0000)
27411 flag_V = M68K_SR_V;
27412 #ifdef USE_CYCLONE_TIMING_DIV
27421 flag_V = flag_C = 0;
27422 res = q | (r << 16);
27423 DREGu32((Opcode >> 9) & 7) = res;
27425 #ifdef USE_CYCLONE_TIMING_DIV
27440 READ_WORD_F(adr, src)
27443 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27444 #ifdef USE_CYCLONE_TIMING_DIV
27450 dst = DREGu32((Opcode >> 9) & 7);
27457 if (q & 0xFFFF0000)
27459 flag_V = M68K_SR_V;
27460 #ifdef USE_CYCLONE_TIMING_DIV
27469 flag_V = flag_C = 0;
27470 res = q | (r << 16);
27471 DREGu32((Opcode >> 9) & 7) = res;
27473 #ifdef USE_CYCLONE_TIMING_DIV
27486 adr = GET_SWORD + GET_PC;
27489 READ_WORD_F(adr, src)
27492 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27493 #ifdef USE_CYCLONE_TIMING_DIV
27499 dst = DREGu32((Opcode >> 9) & 7);
27506 if (q & 0xFFFF0000)
27508 flag_V = M68K_SR_V;
27509 #ifdef USE_CYCLONE_TIMING_DIV
27518 flag_V = flag_C = 0;
27519 res = q | (r << 16);
27520 DREGu32((Opcode >> 9) & 7) = res;
27522 #ifdef USE_CYCLONE_TIMING_DIV
27538 READ_WORD_F(adr, src)
27541 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27542 #ifdef USE_CYCLONE_TIMING_DIV
27548 dst = DREGu32((Opcode >> 9) & 7);
27555 if (q & 0xFFFF0000)
27557 flag_V = M68K_SR_V;
27558 #ifdef USE_CYCLONE_TIMING_DIV
27567 flag_V = flag_C = 0;
27568 res = q | (r << 16);
27569 DREGu32((Opcode >> 9) & 7) = res;
27571 #ifdef USE_CYCLONE_TIMING_DIV
27587 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27588 #ifdef USE_CYCLONE_TIMING_DIV
27594 dst = DREGu32((Opcode >> 9) & 7);
27601 if (q & 0xFFFF0000)
27603 flag_V = M68K_SR_V;
27604 #ifdef USE_CYCLONE_TIMING_DIV
27613 flag_V = flag_C = 0;
27614 res = q | (r << 16);
27615 DREGu32((Opcode >> 9) & 7) = res;
27617 #ifdef USE_CYCLONE_TIMING_DIV
27633 READ_WORD_F(adr, src)
27636 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27637 #ifdef USE_CYCLONE_TIMING_DIV
27643 dst = DREGu32((Opcode >> 9) & 7);
27650 if (q & 0xFFFF0000)
27652 flag_V = M68K_SR_V;
27653 #ifdef USE_CYCLONE_TIMING_DIV
27662 flag_V = flag_C = 0;
27663 res = q | (r << 16);
27664 DREGu32((Opcode >> 9) & 7) = res;
27666 #ifdef USE_CYCLONE_TIMING_DIV
27682 READ_WORD_F(adr, src)
27685 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27686 #ifdef USE_CYCLONE_TIMING_DIV
27692 dst = DREGu32((Opcode >> 9) & 7);
27699 if (q & 0xFFFF0000)
27701 flag_V = M68K_SR_V;
27702 #ifdef USE_CYCLONE_TIMING_DIV
27711 flag_V = flag_C = 0;
27712 res = q | (r << 16);
27713 DREGu32((Opcode >> 9) & 7) = res;
27715 #ifdef USE_CYCLONE_TIMING_DIV
27728 src = (s32)DREGs16((Opcode >> 0) & 7);
27731 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27732 #ifdef USE_CYCLONE_TIMING_DIV
27737 dst = DREGu32((Opcode >> 9) & 7);
27738 if ((dst == 0x80000000) && (src == (u32)-1))
27740 flag_NotZ = flag_N = 0;
27741 flag_V = flag_C = 0;
27743 DREGu32((Opcode >> 9) & 7) = res;
27744 #ifdef USE_CYCLONE_TIMING_DIV
27752 q = (s32)dst / (s32)src;
27753 r = (s32)dst % (s32)src;
27755 if ((q > 0x7FFF) || (q < -0x8000))
27757 flag_V = M68K_SR_V;
27758 #ifdef USE_CYCLONE_TIMING_DIV
27766 flag_V = flag_C = 0;
27767 res = q | (r << 16);
27768 DREGu32((Opcode >> 9) & 7) = res;
27770 #ifdef USE_CYCLONE_TIMING_DIV
27771 end81C0: m68kcontext.io_cycle_counter -= 50;
27782 adr = AREG((Opcode >> 0) & 7);
27784 READSX_WORD_F(adr, src)
27787 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27788 #ifdef USE_CYCLONE_TIMING_DIV
27793 dst = DREGu32((Opcode >> 9) & 7);
27794 if ((dst == 0x80000000) && (src == (u32)-1))
27796 flag_NotZ = flag_N = 0;
27797 flag_V = flag_C = 0;
27799 DREGu32((Opcode >> 9) & 7) = res;
27800 #ifdef USE_CYCLONE_TIMING_DIV
27808 q = (s32)dst / (s32)src;
27809 r = (s32)dst % (s32)src;
27811 if ((q > 0x7FFF) || (q < -0x8000))
27813 flag_V = M68K_SR_V;
27814 #ifdef USE_CYCLONE_TIMING_DIV
27822 flag_V = flag_C = 0;
27823 res = q | (r << 16);
27824 DREGu32((Opcode >> 9) & 7) = res;
27826 #ifdef USE_CYCLONE_TIMING_DIV
27827 end81D0: m68kcontext.io_cycle_counter -= 50;
27838 adr = AREG((Opcode >> 0) & 7);
27839 AREG((Opcode >> 0) & 7) += 2;
27841 READSX_WORD_F(adr, src)
27844 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27845 #ifdef USE_CYCLONE_TIMING_DIV
27850 dst = DREGu32((Opcode >> 9) & 7);
27851 if ((dst == 0x80000000) && (src == (u32)-1))
27853 flag_NotZ = flag_N = 0;
27854 flag_V = flag_C = 0;
27856 DREGu32((Opcode >> 9) & 7) = res;
27857 #ifdef USE_CYCLONE_TIMING_DIV
27865 q = (s32)dst / (s32)src;
27866 r = (s32)dst % (s32)src;
27868 if ((q > 0x7FFF) || (q < -0x8000))
27870 flag_V = M68K_SR_V;
27871 #ifdef USE_CYCLONE_TIMING_DIV
27879 flag_V = flag_C = 0;
27880 res = q | (r << 16);
27881 DREGu32((Opcode >> 9) & 7) = res;
27883 #ifdef USE_CYCLONE_TIMING_DIV
27884 end81D8: m68kcontext.io_cycle_counter -= 50;
27895 adr = AREG((Opcode >> 0) & 7) - 2;
27896 AREG((Opcode >> 0) & 7) = adr;
27898 READSX_WORD_F(adr, src)
27901 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27902 #ifdef USE_CYCLONE_TIMING_DIV
27907 dst = DREGu32((Opcode >> 9) & 7);
27908 if ((dst == 0x80000000) && (src == (u32)-1))
27910 flag_NotZ = flag_N = 0;
27911 flag_V = flag_C = 0;
27913 DREGu32((Opcode >> 9) & 7) = res;
27914 #ifdef USE_CYCLONE_TIMING_DIV
27922 q = (s32)dst / (s32)src;
27923 r = (s32)dst % (s32)src;
27925 if ((q > 0x7FFF) || (q < -0x8000))
27927 flag_V = M68K_SR_V;
27928 #ifdef USE_CYCLONE_TIMING_DIV
27936 flag_V = flag_C = 0;
27937 res = q | (r << 16);
27938 DREGu32((Opcode >> 9) & 7) = res;
27940 #ifdef USE_CYCLONE_TIMING_DIV
27941 end81E0: m68kcontext.io_cycle_counter -= 50;
27953 adr += AREG((Opcode >> 0) & 7);
27955 READSX_WORD_F(adr, src)
27958 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27959 #ifdef USE_CYCLONE_TIMING_DIV
27964 dst = DREGu32((Opcode >> 9) & 7);
27965 if ((dst == 0x80000000) && (src == (u32)-1))
27967 flag_NotZ = flag_N = 0;
27968 flag_V = flag_C = 0;
27970 DREGu32((Opcode >> 9) & 7) = res;
27971 #ifdef USE_CYCLONE_TIMING_DIV
27979 q = (s32)dst / (s32)src;
27980 r = (s32)dst % (s32)src;
27982 if ((q > 0x7FFF) || (q < -0x8000))
27984 flag_V = M68K_SR_V;
27985 #ifdef USE_CYCLONE_TIMING_DIV
27993 flag_V = flag_C = 0;
27994 res = q | (r << 16);
27995 DREGu32((Opcode >> 9) & 7) = res;
27997 #ifdef USE_CYCLONE_TIMING_DIV
27998 end81E8: m68kcontext.io_cycle_counter -= 50;
28009 adr = AREG((Opcode >> 0) & 7);
28012 READSX_WORD_F(adr, src)
28015 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28016 #ifdef USE_CYCLONE_TIMING_DIV
28021 dst = DREGu32((Opcode >> 9) & 7);
28022 if ((dst == 0x80000000) && (src == (u32)-1))
28024 flag_NotZ = flag_N = 0;
28025 flag_V = flag_C = 0;
28027 DREGu32((Opcode >> 9) & 7) = res;
28028 #ifdef USE_CYCLONE_TIMING_DIV
28036 q = (s32)dst / (s32)src;
28037 r = (s32)dst % (s32)src;
28039 if ((q > 0x7FFF) || (q < -0x8000))
28041 flag_V = M68K_SR_V;
28042 #ifdef USE_CYCLONE_TIMING_DIV
28050 flag_V = flag_C = 0;
28051 res = q | (r << 16);
28052 DREGu32((Opcode >> 9) & 7) = res;
28054 #ifdef USE_CYCLONE_TIMING_DIV
28055 end81F0: m68kcontext.io_cycle_counter -= 50;
28068 READSX_WORD_F(adr, src)
28071 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28072 #ifdef USE_CYCLONE_TIMING_DIV
28077 dst = DREGu32((Opcode >> 9) & 7);
28078 if ((dst == 0x80000000) && (src == (u32)-1))
28080 flag_NotZ = flag_N = 0;
28081 flag_V = flag_C = 0;
28083 DREGu32((Opcode >> 9) & 7) = res;
28084 #ifdef USE_CYCLONE_TIMING_DIV
28092 q = (s32)dst / (s32)src;
28093 r = (s32)dst % (s32)src;
28095 if ((q > 0x7FFF) || (q < -0x8000))
28097 flag_V = M68K_SR_V;
28098 #ifdef USE_CYCLONE_TIMING_DIV
28106 flag_V = flag_C = 0;
28107 res = q | (r << 16);
28108 DREGu32((Opcode >> 9) & 7) = res;
28110 #ifdef USE_CYCLONE_TIMING_DIV
28111 end81F8: m68kcontext.io_cycle_counter -= 50;
28124 READSX_WORD_F(adr, src)
28127 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28128 #ifdef USE_CYCLONE_TIMING_DIV
28133 dst = DREGu32((Opcode >> 9) & 7);
28134 if ((dst == 0x80000000) && (src == (u32)-1))
28136 flag_NotZ = flag_N = 0;
28137 flag_V = flag_C = 0;
28139 DREGu32((Opcode >> 9) & 7) = res;
28140 #ifdef USE_CYCLONE_TIMING_DIV
28148 q = (s32)dst / (s32)src;
28149 r = (s32)dst % (s32)src;
28151 if ((q > 0x7FFF) || (q < -0x8000))
28153 flag_V = M68K_SR_V;
28154 #ifdef USE_CYCLONE_TIMING_DIV
28162 flag_V = flag_C = 0;
28163 res = q | (r << 16);
28164 DREGu32((Opcode >> 9) & 7) = res;
28166 #ifdef USE_CYCLONE_TIMING_DIV
28167 end81F9: m68kcontext.io_cycle_counter -= 50;
28178 adr = GET_SWORD + GET_PC;
28181 READSX_WORD_F(adr, src)
28184 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28185 #ifdef USE_CYCLONE_TIMING_DIV
28190 dst = DREGu32((Opcode >> 9) & 7);
28191 if ((dst == 0x80000000) && (src == (u32)-1))
28193 flag_NotZ = flag_N = 0;
28194 flag_V = flag_C = 0;
28196 DREGu32((Opcode >> 9) & 7) = res;
28197 #ifdef USE_CYCLONE_TIMING_DIV
28205 q = (s32)dst / (s32)src;
28206 r = (s32)dst % (s32)src;
28208 if ((q > 0x7FFF) || (q < -0x8000))
28210 flag_V = M68K_SR_V;
28211 #ifdef USE_CYCLONE_TIMING_DIV
28219 flag_V = flag_C = 0;
28220 res = q | (r << 16);
28221 DREGu32((Opcode >> 9) & 7) = res;
28223 #ifdef USE_CYCLONE_TIMING_DIV
28224 end81FA: m68kcontext.io_cycle_counter -= 50;
28238 READSX_WORD_F(adr, src)
28241 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28242 #ifdef USE_CYCLONE_TIMING_DIV
28247 dst = DREGu32((Opcode >> 9) & 7);
28248 if ((dst == 0x80000000) && (src == (u32)-1))
28250 flag_NotZ = flag_N = 0;
28251 flag_V = flag_C = 0;
28253 DREGu32((Opcode >> 9) & 7) = res;
28254 #ifdef USE_CYCLONE_TIMING_DIV
28262 q = (s32)dst / (s32)src;
28263 r = (s32)dst % (s32)src;
28265 if ((q > 0x7FFF) || (q < -0x8000))
28267 flag_V = M68K_SR_V;
28268 #ifdef USE_CYCLONE_TIMING_DIV
28276 flag_V = flag_C = 0;
28277 res = q | (r << 16);
28278 DREGu32((Opcode >> 9) & 7) = res;
28280 #ifdef USE_CYCLONE_TIMING_DIV
28281 end81FB: m68kcontext.io_cycle_counter -= 50;
28295 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28296 #ifdef USE_CYCLONE_TIMING_DIV
28301 dst = DREGu32((Opcode >> 9) & 7);
28302 if ((dst == 0x80000000) && (src == (u32)-1))
28304 flag_NotZ = flag_N = 0;
28305 flag_V = flag_C = 0;
28307 DREGu32((Opcode >> 9) & 7) = res;
28308 #ifdef USE_CYCLONE_TIMING_DIV
28316 q = (s32)dst / (s32)src;
28317 r = (s32)dst % (s32)src;
28319 if ((q > 0x7FFF) || (q < -0x8000))
28321 flag_V = M68K_SR_V;
28322 #ifdef USE_CYCLONE_TIMING_DIV
28330 flag_V = flag_C = 0;
28331 res = q | (r << 16);
28332 DREGu32((Opcode >> 9) & 7) = res;
28334 #ifdef USE_CYCLONE_TIMING_DIV
28335 end81FC: m68kcontext.io_cycle_counter -= 50;
28349 READSX_WORD_F(adr, src)
28352 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28353 #ifdef USE_CYCLONE_TIMING_DIV
28358 dst = DREGu32((Opcode >> 9) & 7);
28359 if ((dst == 0x80000000) && (src == (u32)-1))
28361 flag_NotZ = flag_N = 0;
28362 flag_V = flag_C = 0;
28364 DREGu32((Opcode >> 9) & 7) = res;
28365 #ifdef USE_CYCLONE_TIMING_DIV
28373 q = (s32)dst / (s32)src;
28374 r = (s32)dst % (s32)src;
28376 if ((q > 0x7FFF) || (q < -0x8000))
28378 flag_V = M68K_SR_V;
28379 #ifdef USE_CYCLONE_TIMING_DIV
28387 flag_V = flag_C = 0;
28388 res = q | (r << 16);
28389 DREGu32((Opcode >> 9) & 7) = res;
28391 #ifdef USE_CYCLONE_TIMING_DIV
28392 end81DF: m68kcontext.io_cycle_counter -= 50;
28406 READSX_WORD_F(adr, src)
28409 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28410 #ifdef USE_CYCLONE_TIMING_DIV
28415 dst = DREGu32((Opcode >> 9) & 7);
28416 if ((dst == 0x80000000) && (src == (u32)-1))
28418 flag_NotZ = flag_N = 0;
28419 flag_V = flag_C = 0;
28421 DREGu32((Opcode >> 9) & 7) = res;
28422 #ifdef USE_CYCLONE_TIMING_DIV
28430 q = (s32)dst / (s32)src;
28431 r = (s32)dst % (s32)src;
28433 if ((q > 0x7FFF) || (q < -0x8000))
28435 flag_V = M68K_SR_V;
28436 #ifdef USE_CYCLONE_TIMING_DIV
28444 flag_V = flag_C = 0;
28445 res = q | (r << 16);
28446 DREGu32((Opcode >> 9) & 7) = res;
28448 #ifdef USE_CYCLONE_TIMING_DIV
28449 end81E7: m68kcontext.io_cycle_counter -= 50;
28460 src = DREGu8((Opcode >> 0) & 7);
28461 dst = DREGu8((Opcode >> 9) & 7);
28463 flag_N = flag_X = flag_C = res;
28464 flag_V = (src ^ dst) & (res ^ dst);
28465 flag_NotZ = res & 0xFF;
28466 DREGu8((Opcode >> 9) & 7) = res;
28477 // can't read byte from Ax registers !
28478 m68kcontext.execinfo |= M68K_FAULTED;
28479 m68kcontext.io_cycle_counter = 0;
28481 goto famec_Exec_End;
28482 dst = DREGu8((Opcode >> 9) & 7);
28484 flag_N = flag_X = flag_C = res;
28485 flag_V = (src ^ dst) & (res ^ dst);
28486 flag_NotZ = res & 0xFF;
28487 DREGu8((Opcode >> 9) & 7) = res;
28499 adr = AREG((Opcode >> 0) & 7);
28501 READ_BYTE_F(adr, src)
28502 dst = DREGu8((Opcode >> 9) & 7);
28504 flag_N = flag_X = flag_C = res;
28505 flag_V = (src ^ dst) & (res ^ dst);
28506 flag_NotZ = res & 0xFF;
28507 DREGu8((Opcode >> 9) & 7) = res;
28518 adr = AREG((Opcode >> 0) & 7);
28519 AREG((Opcode >> 0) & 7) += 1;
28521 READ_BYTE_F(adr, src)
28522 dst = DREGu8((Opcode >> 9) & 7);
28524 flag_N = flag_X = flag_C = res;
28525 flag_V = (src ^ dst) & (res ^ dst);
28526 flag_NotZ = res & 0xFF;
28527 DREGu8((Opcode >> 9) & 7) = res;
28538 adr = AREG((Opcode >> 0) & 7) - 1;
28539 AREG((Opcode >> 0) & 7) = adr;
28541 READ_BYTE_F(adr, src)
28542 dst = DREGu8((Opcode >> 9) & 7);
28544 flag_N = flag_X = flag_C = res;
28545 flag_V = (src ^ dst) & (res ^ dst);
28546 flag_NotZ = res & 0xFF;
28547 DREGu8((Opcode >> 9) & 7) = res;
28559 adr += AREG((Opcode >> 0) & 7);
28561 READ_BYTE_F(adr, src)
28562 dst = DREGu8((Opcode >> 9) & 7);
28564 flag_N = flag_X = flag_C = res;
28565 flag_V = (src ^ dst) & (res ^ dst);
28566 flag_NotZ = res & 0xFF;
28567 DREGu8((Opcode >> 9) & 7) = res;
28578 adr = AREG((Opcode >> 0) & 7);
28581 READ_BYTE_F(adr, src)
28582 dst = DREGu8((Opcode >> 9) & 7);
28584 flag_N = flag_X = flag_C = res;
28585 flag_V = (src ^ dst) & (res ^ dst);
28586 flag_NotZ = res & 0xFF;
28587 DREGu8((Opcode >> 9) & 7) = res;
28600 READ_BYTE_F(adr, src)
28601 dst = DREGu8((Opcode >> 9) & 7);
28603 flag_N = flag_X = flag_C = res;
28604 flag_V = (src ^ dst) & (res ^ dst);
28605 flag_NotZ = res & 0xFF;
28606 DREGu8((Opcode >> 9) & 7) = res;
28619 READ_BYTE_F(adr, src)
28620 dst = DREGu8((Opcode >> 9) & 7);
28622 flag_N = flag_X = flag_C = res;
28623 flag_V = (src ^ dst) & (res ^ dst);
28624 flag_NotZ = res & 0xFF;
28625 DREGu8((Opcode >> 9) & 7) = res;
28636 adr = GET_SWORD + GET_PC;
28639 READ_BYTE_F(adr, src)
28640 dst = DREGu8((Opcode >> 9) & 7);
28642 flag_N = flag_X = flag_C = res;
28643 flag_V = (src ^ dst) & (res ^ dst);
28644 flag_NotZ = res & 0xFF;
28645 DREGu8((Opcode >> 9) & 7) = res;
28659 READ_BYTE_F(adr, src)
28660 dst = DREGu8((Opcode >> 9) & 7);
28662 flag_N = flag_X = flag_C = res;
28663 flag_V = (src ^ dst) & (res ^ dst);
28664 flag_NotZ = res & 0xFF;
28665 DREGu8((Opcode >> 9) & 7) = res;
28677 dst = DREGu8((Opcode >> 9) & 7);
28679 flag_N = flag_X = flag_C = res;
28680 flag_V = (src ^ dst) & (res ^ dst);
28681 flag_NotZ = res & 0xFF;
28682 DREGu8((Opcode >> 9) & 7) = res;
28695 READ_BYTE_F(adr, src)
28696 dst = DREGu8((Opcode >> 9) & 7);
28698 flag_N = flag_X = flag_C = res;
28699 flag_V = (src ^ dst) & (res ^ dst);
28700 flag_NotZ = res & 0xFF;
28701 DREGu8((Opcode >> 9) & 7) = res;
28715 READ_BYTE_F(adr, src)
28716 dst = DREGu8((Opcode >> 9) & 7);
28718 flag_N = flag_X = flag_C = res;
28719 flag_V = (src ^ dst) & (res ^ dst);
28720 flag_NotZ = res & 0xFF;
28721 DREGu8((Opcode >> 9) & 7) = res;
28732 src = DREGu16((Opcode >> 0) & 7);
28733 dst = DREGu16((Opcode >> 9) & 7);
28735 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28736 flag_N = flag_X = flag_C = res >> 8;
28737 flag_NotZ = res & 0xFFFF;
28738 DREGu16((Opcode >> 9) & 7) = res;
28748 src = AREGu16((Opcode >> 0) & 7);
28749 dst = DREGu16((Opcode >> 9) & 7);
28751 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28752 flag_N = flag_X = flag_C = res >> 8;
28753 flag_NotZ = res & 0xFFFF;
28754 DREGu16((Opcode >> 9) & 7) = res;
28764 adr = AREG((Opcode >> 0) & 7);
28766 READ_WORD_F(adr, src)
28767 dst = DREGu16((Opcode >> 9) & 7);
28769 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28770 flag_N = flag_X = flag_C = res >> 8;
28771 flag_NotZ = res & 0xFFFF;
28772 DREGu16((Opcode >> 9) & 7) = res;
28783 adr = AREG((Opcode >> 0) & 7);
28784 AREG((Opcode >> 0) & 7) += 2;
28786 READ_WORD_F(adr, src)
28787 dst = DREGu16((Opcode >> 9) & 7);
28789 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28790 flag_N = flag_X = flag_C = res >> 8;
28791 flag_NotZ = res & 0xFFFF;
28792 DREGu16((Opcode >> 9) & 7) = res;
28803 adr = AREG((Opcode >> 0) & 7) - 2;
28804 AREG((Opcode >> 0) & 7) = adr;
28806 READ_WORD_F(adr, src)
28807 dst = DREGu16((Opcode >> 9) & 7);
28809 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28810 flag_N = flag_X = flag_C = res >> 8;
28811 flag_NotZ = res & 0xFFFF;
28812 DREGu16((Opcode >> 9) & 7) = res;
28824 adr += AREG((Opcode >> 0) & 7);
28826 READ_WORD_F(adr, src)
28827 dst = DREGu16((Opcode >> 9) & 7);
28829 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28830 flag_N = flag_X = flag_C = res >> 8;
28831 flag_NotZ = res & 0xFFFF;
28832 DREGu16((Opcode >> 9) & 7) = res;
28843 adr = AREG((Opcode >> 0) & 7);
28846 READ_WORD_F(adr, src)
28847 dst = DREGu16((Opcode >> 9) & 7);
28849 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28850 flag_N = flag_X = flag_C = res >> 8;
28851 flag_NotZ = res & 0xFFFF;
28852 DREGu16((Opcode >> 9) & 7) = res;
28865 READ_WORD_F(adr, src)
28866 dst = DREGu16((Opcode >> 9) & 7);
28868 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28869 flag_N = flag_X = flag_C = res >> 8;
28870 flag_NotZ = res & 0xFFFF;
28871 DREGu16((Opcode >> 9) & 7) = res;
28884 READ_WORD_F(adr, src)
28885 dst = DREGu16((Opcode >> 9) & 7);
28887 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28888 flag_N = flag_X = flag_C = res >> 8;
28889 flag_NotZ = res & 0xFFFF;
28890 DREGu16((Opcode >> 9) & 7) = res;
28901 adr = GET_SWORD + GET_PC;
28904 READ_WORD_F(adr, src)
28905 dst = DREGu16((Opcode >> 9) & 7);
28907 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28908 flag_N = flag_X = flag_C = res >> 8;
28909 flag_NotZ = res & 0xFFFF;
28910 DREGu16((Opcode >> 9) & 7) = res;
28924 READ_WORD_F(adr, src)
28925 dst = DREGu16((Opcode >> 9) & 7);
28927 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28928 flag_N = flag_X = flag_C = res >> 8;
28929 flag_NotZ = res & 0xFFFF;
28930 DREGu16((Opcode >> 9) & 7) = res;
28942 dst = DREGu16((Opcode >> 9) & 7);
28944 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28945 flag_N = flag_X = flag_C = res >> 8;
28946 flag_NotZ = res & 0xFFFF;
28947 DREGu16((Opcode >> 9) & 7) = res;
28960 READ_WORD_F(adr, src)
28961 dst = DREGu16((Opcode >> 9) & 7);
28963 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28964 flag_N = flag_X = flag_C = res >> 8;
28965 flag_NotZ = res & 0xFFFF;
28966 DREGu16((Opcode >> 9) & 7) = res;
28980 READ_WORD_F(adr, src)
28981 dst = DREGu16((Opcode >> 9) & 7);
28983 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28984 flag_N = flag_X = flag_C = res >> 8;
28985 flag_NotZ = res & 0xFFFF;
28986 DREGu16((Opcode >> 9) & 7) = res;
28997 src = DREGu32((Opcode >> 0) & 7);
28998 dst = DREGu32((Opcode >> 9) & 7);
29001 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29002 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29003 flag_N = res >> 24;
29004 DREGu32((Opcode >> 9) & 7) = res;
29014 src = AREGu32((Opcode >> 0) & 7);
29015 dst = DREGu32((Opcode >> 9) & 7);
29018 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29019 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29020 flag_N = res >> 24;
29021 DREGu32((Opcode >> 9) & 7) = res;
29031 adr = AREG((Opcode >> 0) & 7);
29033 READ_LONG_F(adr, src)
29034 dst = DREGu32((Opcode >> 9) & 7);
29037 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29038 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29039 flag_N = res >> 24;
29040 DREGu32((Opcode >> 9) & 7) = res;
29051 adr = AREG((Opcode >> 0) & 7);
29052 AREG((Opcode >> 0) & 7) += 4;
29054 READ_LONG_F(adr, src)
29055 dst = DREGu32((Opcode >> 9) & 7);
29058 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29059 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29060 flag_N = res >> 24;
29061 DREGu32((Opcode >> 9) & 7) = res;
29072 adr = AREG((Opcode >> 0) & 7) - 4;
29073 AREG((Opcode >> 0) & 7) = adr;
29075 READ_LONG_F(adr, src)
29076 dst = DREGu32((Opcode >> 9) & 7);
29079 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29080 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29081 flag_N = res >> 24;
29082 DREGu32((Opcode >> 9) & 7) = res;
29094 adr += AREG((Opcode >> 0) & 7);
29096 READ_LONG_F(adr, src)
29097 dst = DREGu32((Opcode >> 9) & 7);
29100 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29101 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29102 flag_N = res >> 24;
29103 DREGu32((Opcode >> 9) & 7) = res;
29114 adr = AREG((Opcode >> 0) & 7);
29117 READ_LONG_F(adr, src)
29118 dst = DREGu32((Opcode >> 9) & 7);
29121 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29122 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29123 flag_N = res >> 24;
29124 DREGu32((Opcode >> 9) & 7) = res;
29137 READ_LONG_F(adr, src)
29138 dst = DREGu32((Opcode >> 9) & 7);
29141 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29142 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29143 flag_N = res >> 24;
29144 DREGu32((Opcode >> 9) & 7) = res;
29157 READ_LONG_F(adr, src)
29158 dst = DREGu32((Opcode >> 9) & 7);
29161 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29162 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29163 flag_N = res >> 24;
29164 DREGu32((Opcode >> 9) & 7) = res;
29175 adr = GET_SWORD + GET_PC;
29178 READ_LONG_F(adr, src)
29179 dst = DREGu32((Opcode >> 9) & 7);
29182 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29183 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29184 flag_N = res >> 24;
29185 DREGu32((Opcode >> 9) & 7) = res;
29199 READ_LONG_F(adr, src)
29200 dst = DREGu32((Opcode >> 9) & 7);
29203 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29204 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29205 flag_N = res >> 24;
29206 DREGu32((Opcode >> 9) & 7) = res;
29218 dst = DREGu32((Opcode >> 9) & 7);
29221 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29222 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29223 flag_N = res >> 24;
29224 DREGu32((Opcode >> 9) & 7) = res;
29237 READ_LONG_F(adr, src)
29238 dst = DREGu32((Opcode >> 9) & 7);
29241 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29242 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29243 flag_N = res >> 24;
29244 DREGu32((Opcode >> 9) & 7) = res;
29258 READ_LONG_F(adr, src)
29259 dst = DREGu32((Opcode >> 9) & 7);
29262 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29263 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29264 flag_N = res >> 24;
29265 DREGu32((Opcode >> 9) & 7) = res;
29276 src = DREGu8((Opcode >> 9) & 7);
29277 adr = AREG((Opcode >> 0) & 7);
29279 READ_BYTE_F(adr, dst)
29281 flag_N = flag_X = flag_C = res;
29282 flag_V = (src ^ dst) & (res ^ dst);
29283 flag_NotZ = res & 0xFF;
29284 WRITE_BYTE_F(adr, res)
29295 src = DREGu8((Opcode >> 9) & 7);
29296 adr = AREG((Opcode >> 0) & 7);
29297 AREG((Opcode >> 0) & 7) += 1;
29299 READ_BYTE_F(adr, dst)
29301 flag_N = flag_X = flag_C = res;
29302 flag_V = (src ^ dst) & (res ^ dst);
29303 flag_NotZ = res & 0xFF;
29304 WRITE_BYTE_F(adr, res)
29315 src = DREGu8((Opcode >> 9) & 7);
29316 adr = AREG((Opcode >> 0) & 7) - 1;
29317 AREG((Opcode >> 0) & 7) = adr;
29319 READ_BYTE_F(adr, dst)
29321 flag_N = flag_X = flag_C = res;
29322 flag_V = (src ^ dst) & (res ^ dst);
29323 flag_NotZ = res & 0xFF;
29324 WRITE_BYTE_F(adr, res)
29335 src = DREGu8((Opcode >> 9) & 7);
29337 adr += AREG((Opcode >> 0) & 7);
29339 READ_BYTE_F(adr, dst)
29341 flag_N = flag_X = flag_C = res;
29342 flag_V = (src ^ dst) & (res ^ dst);
29343 flag_NotZ = res & 0xFF;
29344 WRITE_BYTE_F(adr, res)
29355 src = DREGu8((Opcode >> 9) & 7);
29356 adr = AREG((Opcode >> 0) & 7);
29359 READ_BYTE_F(adr, dst)
29361 flag_N = flag_X = flag_C = res;
29362 flag_V = (src ^ dst) & (res ^ dst);
29363 flag_NotZ = res & 0xFF;
29364 WRITE_BYTE_F(adr, res)
29375 src = DREGu8((Opcode >> 9) & 7);
29378 READ_BYTE_F(adr, dst)
29380 flag_N = flag_X = flag_C = res;
29381 flag_V = (src ^ dst) & (res ^ dst);
29382 flag_NotZ = res & 0xFF;
29383 WRITE_BYTE_F(adr, res)
29394 src = DREGu8((Opcode >> 9) & 7);
29397 READ_BYTE_F(adr, dst)
29399 flag_N = flag_X = flag_C = res;
29400 flag_V = (src ^ dst) & (res ^ dst);
29401 flag_NotZ = res & 0xFF;
29402 WRITE_BYTE_F(adr, res)
29413 src = DREGu8((Opcode >> 9) & 7);
29417 READ_BYTE_F(adr, dst)
29419 flag_N = flag_X = flag_C = res;
29420 flag_V = (src ^ dst) & (res ^ dst);
29421 flag_NotZ = res & 0xFF;
29422 WRITE_BYTE_F(adr, res)
29433 src = DREGu8((Opcode >> 9) & 7);
29437 READ_BYTE_F(adr, dst)
29439 flag_N = flag_X = flag_C = res;
29440 flag_V = (src ^ dst) & (res ^ dst);
29441 flag_NotZ = res & 0xFF;
29442 WRITE_BYTE_F(adr, res)
29453 src = DREGu16((Opcode >> 9) & 7);
29454 adr = AREG((Opcode >> 0) & 7);
29456 READ_WORD_F(adr, dst)
29458 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29459 flag_N = flag_X = flag_C = res >> 8;
29460 flag_NotZ = res & 0xFFFF;
29461 WRITE_WORD_F(adr, res)
29472 src = DREGu16((Opcode >> 9) & 7);
29473 adr = AREG((Opcode >> 0) & 7);
29474 AREG((Opcode >> 0) & 7) += 2;
29476 READ_WORD_F(adr, dst)
29478 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29479 flag_N = flag_X = flag_C = res >> 8;
29480 flag_NotZ = res & 0xFFFF;
29481 WRITE_WORD_F(adr, res)
29492 src = DREGu16((Opcode >> 9) & 7);
29493 adr = AREG((Opcode >> 0) & 7) - 2;
29494 AREG((Opcode >> 0) & 7) = adr;
29496 READ_WORD_F(adr, dst)
29498 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29499 flag_N = flag_X = flag_C = res >> 8;
29500 flag_NotZ = res & 0xFFFF;
29501 WRITE_WORD_F(adr, res)
29512 src = DREGu16((Opcode >> 9) & 7);
29514 adr += AREG((Opcode >> 0) & 7);
29516 READ_WORD_F(adr, dst)
29518 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29519 flag_N = flag_X = flag_C = res >> 8;
29520 flag_NotZ = res & 0xFFFF;
29521 WRITE_WORD_F(adr, res)
29532 src = DREGu16((Opcode >> 9) & 7);
29533 adr = AREG((Opcode >> 0) & 7);
29536 READ_WORD_F(adr, dst)
29538 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29539 flag_N = flag_X = flag_C = res >> 8;
29540 flag_NotZ = res & 0xFFFF;
29541 WRITE_WORD_F(adr, res)
29552 src = DREGu16((Opcode >> 9) & 7);
29555 READ_WORD_F(adr, dst)
29557 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29558 flag_N = flag_X = flag_C = res >> 8;
29559 flag_NotZ = res & 0xFFFF;
29560 WRITE_WORD_F(adr, res)
29571 src = DREGu16((Opcode >> 9) & 7);
29574 READ_WORD_F(adr, dst)
29576 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29577 flag_N = flag_X = flag_C = res >> 8;
29578 flag_NotZ = res & 0xFFFF;
29579 WRITE_WORD_F(adr, res)
29590 src = DREGu16((Opcode >> 9) & 7);
29594 READ_WORD_F(adr, dst)
29596 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29597 flag_N = flag_X = flag_C = res >> 8;
29598 flag_NotZ = res & 0xFFFF;
29599 WRITE_WORD_F(adr, res)
29610 src = DREGu16((Opcode >> 9) & 7);
29614 READ_WORD_F(adr, dst)
29616 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29617 flag_N = flag_X = flag_C = res >> 8;
29618 flag_NotZ = res & 0xFFFF;
29619 WRITE_WORD_F(adr, res)
29630 src = DREGu32((Opcode >> 9) & 7);
29631 adr = AREG((Opcode >> 0) & 7);
29633 READ_LONG_F(adr, dst)
29636 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29637 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29638 flag_N = res >> 24;
29639 WRITE_LONG_F(adr, res)
29650 src = DREGu32((Opcode >> 9) & 7);
29651 adr = AREG((Opcode >> 0) & 7);
29652 AREG((Opcode >> 0) & 7) += 4;
29654 READ_LONG_F(adr, dst)
29657 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29658 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29659 flag_N = res >> 24;
29660 WRITE_LONG_F(adr, res)
29671 src = DREGu32((Opcode >> 9) & 7);
29672 adr = AREG((Opcode >> 0) & 7) - 4;
29673 AREG((Opcode >> 0) & 7) = adr;
29675 READ_LONG_F(adr, dst)
29678 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29679 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29680 flag_N = res >> 24;
29681 WRITE_LONG_F(adr, res)
29692 src = DREGu32((Opcode >> 9) & 7);
29694 adr += AREG((Opcode >> 0) & 7);
29696 READ_LONG_F(adr, dst)
29699 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29700 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29701 flag_N = res >> 24;
29702 WRITE_LONG_F(adr, res)
29713 src = DREGu32((Opcode >> 9) & 7);
29714 adr = AREG((Opcode >> 0) & 7);
29717 READ_LONG_F(adr, dst)
29720 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29721 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29722 flag_N = res >> 24;
29723 WRITE_LONG_F(adr, res)
29734 src = DREGu32((Opcode >> 9) & 7);
29737 READ_LONG_F(adr, dst)
29740 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29741 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29742 flag_N = res >> 24;
29743 WRITE_LONG_F(adr, res)
29754 src = DREGu32((Opcode >> 9) & 7);
29757 READ_LONG_F(adr, dst)
29760 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29761 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29762 flag_N = res >> 24;
29763 WRITE_LONG_F(adr, res)
29774 src = DREGu32((Opcode >> 9) & 7);
29778 READ_LONG_F(adr, dst)
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)
29795 src = DREGu32((Opcode >> 9) & 7);
29799 READ_LONG_F(adr, dst)
29802 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29803 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29804 flag_N = res >> 24;
29805 WRITE_LONG_F(adr, res)
29816 src = DREGu8((Opcode >> 0) & 7);
29817 dst = DREGu8((Opcode >> 9) & 7);
29818 res = dst - src - ((flag_X >> 8) & 1);
29819 flag_N = flag_X = flag_C = res;
29820 flag_V = (src ^ dst) & (res ^ dst);
29821 flag_NotZ |= res & 0xFF;
29822 DREGu8((Opcode >> 9) & 7) = res;
29832 src = DREGu16((Opcode >> 0) & 7);
29833 dst = DREGu16((Opcode >> 9) & 7);
29834 res = dst - src - ((flag_X >> 8) & 1);
29835 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29836 flag_N = flag_X = flag_C = res >> 8;
29837 flag_NotZ |= res & 0xFFFF;
29838 DREGu16((Opcode >> 9) & 7) = res;
29848 src = DREGu32((Opcode >> 0) & 7);
29849 dst = DREGu32((Opcode >> 9) & 7);
29850 res = dst - src - ((flag_X >> 8) & 1);
29852 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29853 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29854 flag_N = res >> 24;
29855 DREGu32((Opcode >> 9) & 7) = res;
29865 adr = AREG((Opcode >> 0) & 7) - 1;
29866 AREG((Opcode >> 0) & 7) = adr;
29868 READ_BYTE_F(adr, src)
29869 adr = AREG((Opcode >> 9) & 7) - 1;
29870 AREG((Opcode >> 9) & 7) = adr;
29871 READ_BYTE_F(adr, dst)
29872 res = dst - src - ((flag_X >> 8) & 1);
29873 flag_N = flag_X = flag_C = res;
29874 flag_V = (src ^ dst) & (res ^ dst);
29875 flag_NotZ |= res & 0xFF;
29876 WRITE_BYTE_F(adr, res)
29887 adr = AREG((Opcode >> 0) & 7) - 2;
29888 AREG((Opcode >> 0) & 7) = adr;
29890 READ_WORD_F(adr, src)
29891 adr = AREG((Opcode >> 9) & 7) - 2;
29892 AREG((Opcode >> 9) & 7) = adr;
29893 READ_WORD_F(adr, dst)
29894 res = dst - src - ((flag_X >> 8) & 1);
29895 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29896 flag_N = flag_X = flag_C = res >> 8;
29897 flag_NotZ |= res & 0xFFFF;
29898 WRITE_WORD_F(adr, res)
29909 adr = AREG((Opcode >> 0) & 7) - 4;
29910 AREG((Opcode >> 0) & 7) = adr;
29912 READ_LONG_F(adr, src)
29913 adr = AREG((Opcode >> 9) & 7) - 4;
29914 AREG((Opcode >> 9) & 7) = adr;
29915 READ_LONG_F(adr, dst)
29916 res = dst - src - ((flag_X >> 8) & 1);
29918 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29919 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29920 flag_N = res >> 24;
29921 WRITE_LONG_F(adr, res)
29935 READ_BYTE_F(adr, src)
29936 adr = AREG((Opcode >> 9) & 7) - 1;
29937 AREG((Opcode >> 9) & 7) = adr;
29938 READ_BYTE_F(adr, dst)
29939 res = dst - src - ((flag_X >> 8) & 1);
29940 flag_N = flag_X = flag_C = res;
29941 flag_V = (src ^ dst) & (res ^ dst);
29942 flag_NotZ |= res & 0xFF;
29943 WRITE_BYTE_F(adr, res)
29957 READ_WORD_F(adr, src)
29958 adr = AREG((Opcode >> 9) & 7) - 2;
29959 AREG((Opcode >> 9) & 7) = adr;
29960 READ_WORD_F(adr, dst)
29961 res = dst - src - ((flag_X >> 8) & 1);
29962 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29963 flag_N = flag_X = flag_C = res >> 8;
29964 flag_NotZ |= res & 0xFFFF;
29965 WRITE_WORD_F(adr, res)
29979 READ_LONG_F(adr, src)
29980 adr = AREG((Opcode >> 9) & 7) - 4;
29981 AREG((Opcode >> 9) & 7) = adr;
29982 READ_LONG_F(adr, dst)
29983 res = dst - src - ((flag_X >> 8) & 1);
29985 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29986 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29987 flag_N = res >> 24;
29988 WRITE_LONG_F(adr, res)
29999 adr = AREG((Opcode >> 0) & 7) - 1;
30000 AREG((Opcode >> 0) & 7) = adr;
30002 READ_BYTE_F(adr, src)
30005 READ_BYTE_F(adr, dst)
30006 res = dst - src - ((flag_X >> 8) & 1);
30007 flag_N = flag_X = flag_C = res;
30008 flag_V = (src ^ dst) & (res ^ dst);
30009 flag_NotZ |= res & 0xFF;
30010 WRITE_BYTE_F(adr, res)
30021 adr = AREG((Opcode >> 0) & 7) - 2;
30022 AREG((Opcode >> 0) & 7) = adr;
30024 READ_WORD_F(adr, src)
30027 READ_WORD_F(adr, dst)
30028 res = dst - src - ((flag_X >> 8) & 1);
30029 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30030 flag_N = flag_X = flag_C = res >> 8;
30031 flag_NotZ |= res & 0xFFFF;
30032 WRITE_WORD_F(adr, res)
30043 adr = AREG((Opcode >> 0) & 7) - 4;
30044 AREG((Opcode >> 0) & 7) = adr;
30046 READ_LONG_F(adr, src)
30049 READ_LONG_F(adr, dst)
30050 res = dst - src - ((flag_X >> 8) & 1);
30052 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
30053 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
30054 flag_N = res >> 24;
30055 WRITE_LONG_F(adr, res)
30069 READ_BYTE_F(adr, src)
30072 READ_BYTE_F(adr, dst)
30073 res = dst - src - ((flag_X >> 8) & 1);
30074 flag_N = flag_X = flag_C = res;
30075 flag_V = (src ^ dst) & (res ^ dst);
30076 flag_NotZ |= res & 0xFF;
30077 WRITE_BYTE_F(adr, res)
30091 READ_WORD_F(adr, src)
30094 READ_WORD_F(adr, dst)
30095 res = dst - src - ((flag_X >> 8) & 1);
30096 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30097 flag_N = flag_X = flag_C = res >> 8;
30098 flag_NotZ |= res & 0xFFFF;
30099 WRITE_WORD_F(adr, res)
30113 READ_LONG_F(adr, src)
30116 READ_LONG_F(adr, dst)
30117 res = dst - src - ((flag_X >> 8) & 1);
30119 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
30120 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
30121 flag_N = res >> 24;
30122 WRITE_LONG_F(adr, res)
30133 src = (s32)DREGs16((Opcode >> 0) & 7);
30134 dst = AREGu32((Opcode >> 9) & 7);
30136 AREG((Opcode >> 9) & 7) = res;
30146 src = (s32)AREGs16((Opcode >> 0) & 7);
30147 dst = AREGu32((Opcode >> 9) & 7);
30149 AREG((Opcode >> 9) & 7) = res;
30159 adr = AREG((Opcode >> 0) & 7);
30161 READSX_WORD_F(adr, src)
30162 dst = AREGu32((Opcode >> 9) & 7);
30164 AREG((Opcode >> 9) & 7) = res;
30166 #ifdef USE_CYCLONE_TIMING
30179 adr = AREG((Opcode >> 0) & 7);
30180 AREG((Opcode >> 0) & 7) += 2;
30182 READSX_WORD_F(adr, src)
30183 dst = AREGu32((Opcode >> 9) & 7);
30185 AREG((Opcode >> 9) & 7) = res;
30187 #ifdef USE_CYCLONE_TIMING
30200 adr = AREG((Opcode >> 0) & 7) - 2;
30201 AREG((Opcode >> 0) & 7) = adr;
30203 READSX_WORD_F(adr, src)
30204 dst = AREGu32((Opcode >> 9) & 7);
30206 AREG((Opcode >> 9) & 7) = res;
30208 #ifdef USE_CYCLONE_TIMING
30222 adr += AREG((Opcode >> 0) & 7);
30224 READSX_WORD_F(adr, src)
30225 dst = AREGu32((Opcode >> 9) & 7);
30227 AREG((Opcode >> 9) & 7) = res;
30229 #ifdef USE_CYCLONE_TIMING
30242 adr = AREG((Opcode >> 0) & 7);
30245 READSX_WORD_F(adr, src)
30246 dst = AREGu32((Opcode >> 9) & 7);
30248 AREG((Opcode >> 9) & 7) = res;
30250 #ifdef USE_CYCLONE_TIMING
30265 READSX_WORD_F(adr, src)
30266 dst = AREGu32((Opcode >> 9) & 7);
30268 AREG((Opcode >> 9) & 7) = res;
30270 #ifdef USE_CYCLONE_TIMING
30285 READSX_WORD_F(adr, src)
30286 dst = AREGu32((Opcode >> 9) & 7);
30288 AREG((Opcode >> 9) & 7) = res;
30290 #ifdef USE_CYCLONE_TIMING
30303 adr = GET_SWORD + GET_PC;
30306 READSX_WORD_F(adr, src)
30307 dst = AREGu32((Opcode >> 9) & 7);
30309 AREG((Opcode >> 9) & 7) = res;
30311 #ifdef USE_CYCLONE_TIMING
30327 READSX_WORD_F(adr, src)
30328 dst = AREGu32((Opcode >> 9) & 7);
30330 AREG((Opcode >> 9) & 7) = res;
30332 #ifdef USE_CYCLONE_TIMING
30346 dst = AREGu32((Opcode >> 9) & 7);
30348 AREG((Opcode >> 9) & 7) = res;
30361 READSX_WORD_F(adr, src)
30362 dst = AREGu32((Opcode >> 9) & 7);
30364 AREG((Opcode >> 9) & 7) = res;
30366 #ifdef USE_CYCLONE_TIMING
30382 READSX_WORD_F(adr, src)
30383 dst = AREGu32((Opcode >> 9) & 7);
30385 AREG((Opcode >> 9) & 7) = res;
30387 #ifdef USE_CYCLONE_TIMING
30400 src = (s32)DREGs32((Opcode >> 0) & 7);
30401 dst = AREGu32((Opcode >> 9) & 7);
30403 AREG((Opcode >> 9) & 7) = res;
30404 #ifdef USE_CYCLONE_TIMING
30417 src = (s32)AREGs32((Opcode >> 0) & 7);
30418 dst = AREGu32((Opcode >> 9) & 7);
30420 AREG((Opcode >> 9) & 7) = res;
30421 #ifdef USE_CYCLONE_TIMING
30434 adr = AREG((Opcode >> 0) & 7);
30436 READSX_LONG_F(adr, src)
30437 dst = AREGu32((Opcode >> 9) & 7);
30439 AREG((Opcode >> 9) & 7) = res;
30450 adr = AREG((Opcode >> 0) & 7);
30451 AREG((Opcode >> 0) & 7) += 4;
30453 READSX_LONG_F(adr, src)
30454 dst = AREGu32((Opcode >> 9) & 7);
30456 AREG((Opcode >> 9) & 7) = res;
30467 adr = AREG((Opcode >> 0) & 7) - 4;
30468 AREG((Opcode >> 0) & 7) = adr;
30470 READSX_LONG_F(adr, src)
30471 dst = AREGu32((Opcode >> 9) & 7);
30473 AREG((Opcode >> 9) & 7) = res;
30485 adr += AREG((Opcode >> 0) & 7);
30487 READSX_LONG_F(adr, src)
30488 dst = AREGu32((Opcode >> 9) & 7);
30490 AREG((Opcode >> 9) & 7) = res;
30501 adr = AREG((Opcode >> 0) & 7);
30504 READSX_LONG_F(adr, src)
30505 dst = AREGu32((Opcode >> 9) & 7);
30507 AREG((Opcode >> 9) & 7) = res;
30520 READSX_LONG_F(adr, src)
30521 dst = AREGu32((Opcode >> 9) & 7);
30523 AREG((Opcode >> 9) & 7) = res;
30536 READSX_LONG_F(adr, src)
30537 dst = AREGu32((Opcode >> 9) & 7);
30539 AREG((Opcode >> 9) & 7) = res;
30550 adr = GET_SWORD + GET_PC;
30553 READSX_LONG_F(adr, src)
30554 dst = AREGu32((Opcode >> 9) & 7);
30556 AREG((Opcode >> 9) & 7) = res;
30570 READSX_LONG_F(adr, src)
30571 dst = AREGu32((Opcode >> 9) & 7);
30573 AREG((Opcode >> 9) & 7) = res;
30585 dst = AREGu32((Opcode >> 9) & 7);
30587 AREG((Opcode >> 9) & 7) = res;
30588 #ifdef USE_CYCLONE_TIMING
30604 READSX_LONG_F(adr, src)
30605 dst = AREGu32((Opcode >> 9) & 7);
30607 AREG((Opcode >> 9) & 7) = res;
30621 READSX_LONG_F(adr, src)
30622 dst = AREGu32((Opcode >> 9) & 7);
30624 AREG((Opcode >> 9) & 7) = res;
30635 src = DREGu8((Opcode >> 0) & 7);
30636 dst = DREGu8((Opcode >> 9) & 7);
30638 flag_N = flag_C = res;
30639 flag_V = (src ^ dst) & (res ^ dst);
30640 flag_NotZ = res & 0xFF;
30651 // can't read byte from Ax registers !
30652 m68kcontext.execinfo |= M68K_FAULTED;
30653 m68kcontext.io_cycle_counter = 0;
30655 goto famec_Exec_End;
30656 dst = DREGu8((Opcode >> 9) & 7);
30658 flag_N = flag_C = res;
30659 flag_V = (src ^ dst) & (res ^ dst);
30660 flag_NotZ = res & 0xFF;
30672 adr = AREG((Opcode >> 0) & 7);
30674 READ_BYTE_F(adr, src)
30675 dst = DREGu8((Opcode >> 9) & 7);
30677 flag_N = flag_C = res;
30678 flag_V = (src ^ dst) & (res ^ dst);
30679 flag_NotZ = res & 0xFF;
30690 adr = AREG((Opcode >> 0) & 7);
30691 AREG((Opcode >> 0) & 7) += 1;
30693 READ_BYTE_F(adr, src)
30694 dst = DREGu8((Opcode >> 9) & 7);
30696 flag_N = flag_C = res;
30697 flag_V = (src ^ dst) & (res ^ dst);
30698 flag_NotZ = res & 0xFF;
30709 adr = AREG((Opcode >> 0) & 7) - 1;
30710 AREG((Opcode >> 0) & 7) = adr;
30712 READ_BYTE_F(adr, src)
30713 dst = DREGu8((Opcode >> 9) & 7);
30715 flag_N = flag_C = res;
30716 flag_V = (src ^ dst) & (res ^ dst);
30717 flag_NotZ = res & 0xFF;
30729 adr += AREG((Opcode >> 0) & 7);
30731 READ_BYTE_F(adr, src)
30732 dst = DREGu8((Opcode >> 9) & 7);
30734 flag_N = flag_C = res;
30735 flag_V = (src ^ dst) & (res ^ dst);
30736 flag_NotZ = res & 0xFF;
30747 adr = AREG((Opcode >> 0) & 7);
30750 READ_BYTE_F(adr, src)
30751 dst = DREGu8((Opcode >> 9) & 7);
30753 flag_N = flag_C = res;
30754 flag_V = (src ^ dst) & (res ^ dst);
30755 flag_NotZ = res & 0xFF;
30768 READ_BYTE_F(adr, src)
30769 dst = DREGu8((Opcode >> 9) & 7);
30771 flag_N = flag_C = res;
30772 flag_V = (src ^ dst) & (res ^ dst);
30773 flag_NotZ = res & 0xFF;
30786 READ_BYTE_F(adr, src)
30787 dst = DREGu8((Opcode >> 9) & 7);
30789 flag_N = flag_C = res;
30790 flag_V = (src ^ dst) & (res ^ dst);
30791 flag_NotZ = res & 0xFF;
30802 adr = GET_SWORD + GET_PC;
30805 READ_BYTE_F(adr, src)
30806 dst = DREGu8((Opcode >> 9) & 7);
30808 flag_N = flag_C = res;
30809 flag_V = (src ^ dst) & (res ^ dst);
30810 flag_NotZ = res & 0xFF;
30824 READ_BYTE_F(adr, src)
30825 dst = DREGu8((Opcode >> 9) & 7);
30827 flag_N = flag_C = res;
30828 flag_V = (src ^ dst) & (res ^ dst);
30829 flag_NotZ = res & 0xFF;
30841 dst = DREGu8((Opcode >> 9) & 7);
30843 flag_N = flag_C = res;
30844 flag_V = (src ^ dst) & (res ^ dst);
30845 flag_NotZ = res & 0xFF;
30858 READ_BYTE_F(adr, src)
30859 dst = DREGu8((Opcode >> 9) & 7);
30861 flag_N = flag_C = res;
30862 flag_V = (src ^ dst) & (res ^ dst);
30863 flag_NotZ = res & 0xFF;
30877 READ_BYTE_F(adr, src)
30878 dst = DREGu8((Opcode >> 9) & 7);
30880 flag_N = flag_C = res;
30881 flag_V = (src ^ dst) & (res ^ dst);
30882 flag_NotZ = res & 0xFF;
30893 src = DREGu16((Opcode >> 0) & 7);
30894 dst = DREGu16((Opcode >> 9) & 7);
30896 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30897 flag_N = flag_C = res >> 8;
30898 flag_NotZ = res & 0xFFFF;
30908 src = AREGu16((Opcode >> 0) & 7);
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;
30923 adr = AREG((Opcode >> 0) & 7);
30925 READ_WORD_F(adr, src)
30926 dst = DREGu16((Opcode >> 9) & 7);
30928 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30929 flag_N = flag_C = res >> 8;
30930 flag_NotZ = res & 0xFFFF;
30941 adr = AREG((Opcode >> 0) & 7);
30942 AREG((Opcode >> 0) & 7) += 2;
30944 READ_WORD_F(adr, src)
30945 dst = DREGu16((Opcode >> 9) & 7);
30947 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30948 flag_N = flag_C = res >> 8;
30949 flag_NotZ = res & 0xFFFF;
30960 adr = AREG((Opcode >> 0) & 7) - 2;
30961 AREG((Opcode >> 0) & 7) = adr;
30963 READ_WORD_F(adr, src)
30964 dst = DREGu16((Opcode >> 9) & 7);
30966 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30967 flag_N = flag_C = res >> 8;
30968 flag_NotZ = res & 0xFFFF;
30980 adr += AREG((Opcode >> 0) & 7);
30982 READ_WORD_F(adr, src)
30983 dst = DREGu16((Opcode >> 9) & 7);
30985 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30986 flag_N = flag_C = res >> 8;
30987 flag_NotZ = res & 0xFFFF;
30998 adr = AREG((Opcode >> 0) & 7);
31001 READ_WORD_F(adr, src)
31002 dst = DREGu16((Opcode >> 9) & 7);
31004 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31005 flag_N = flag_C = res >> 8;
31006 flag_NotZ = res & 0xFFFF;
31019 READ_WORD_F(adr, src)
31020 dst = DREGu16((Opcode >> 9) & 7);
31022 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31023 flag_N = flag_C = res >> 8;
31024 flag_NotZ = res & 0xFFFF;
31037 READ_WORD_F(adr, src)
31038 dst = DREGu16((Opcode >> 9) & 7);
31040 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31041 flag_N = flag_C = res >> 8;
31042 flag_NotZ = res & 0xFFFF;
31053 adr = GET_SWORD + GET_PC;
31056 READ_WORD_F(adr, src)
31057 dst = DREGu16((Opcode >> 9) & 7);
31059 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31060 flag_N = flag_C = res >> 8;
31061 flag_NotZ = res & 0xFFFF;
31075 READ_WORD_F(adr, src)
31076 dst = DREGu16((Opcode >> 9) & 7);
31078 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31079 flag_N = flag_C = res >> 8;
31080 flag_NotZ = res & 0xFFFF;
31092 dst = DREGu16((Opcode >> 9) & 7);
31094 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31095 flag_N = flag_C = res >> 8;
31096 flag_NotZ = res & 0xFFFF;
31109 READ_WORD_F(adr, src)
31110 dst = DREGu16((Opcode >> 9) & 7);
31112 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31113 flag_N = flag_C = res >> 8;
31114 flag_NotZ = res & 0xFFFF;
31128 READ_WORD_F(adr, src)
31129 dst = DREGu16((Opcode >> 9) & 7);
31131 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31132 flag_N = flag_C = res >> 8;
31133 flag_NotZ = res & 0xFFFF;
31144 src = DREGu32((Opcode >> 0) & 7);
31145 dst = DREGu32((Opcode >> 9) & 7);
31148 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31149 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31150 flag_N = res >> 24;
31160 src = AREGu32((Opcode >> 0) & 7);
31161 dst = DREGu32((Opcode >> 9) & 7);
31164 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31165 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31166 flag_N = res >> 24;
31176 adr = AREG((Opcode >> 0) & 7);
31178 READ_LONG_F(adr, src)
31179 dst = DREGu32((Opcode >> 9) & 7);
31182 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31183 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31184 flag_N = res >> 24;
31195 adr = AREG((Opcode >> 0) & 7);
31196 AREG((Opcode >> 0) & 7) += 4;
31198 READ_LONG_F(adr, src)
31199 dst = DREGu32((Opcode >> 9) & 7);
31202 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31203 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31204 flag_N = res >> 24;
31215 adr = AREG((Opcode >> 0) & 7) - 4;
31216 AREG((Opcode >> 0) & 7) = adr;
31218 READ_LONG_F(adr, src)
31219 dst = DREGu32((Opcode >> 9) & 7);
31222 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31223 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31224 flag_N = res >> 24;
31236 adr += AREG((Opcode >> 0) & 7);
31238 READ_LONG_F(adr, src)
31239 dst = DREGu32((Opcode >> 9) & 7);
31242 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31243 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31244 flag_N = res >> 24;
31255 adr = AREG((Opcode >> 0) & 7);
31258 READ_LONG_F(adr, src)
31259 dst = DREGu32((Opcode >> 9) & 7);
31262 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31263 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31264 flag_N = res >> 24;
31277 READ_LONG_F(adr, src)
31278 dst = DREGu32((Opcode >> 9) & 7);
31281 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31282 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31283 flag_N = res >> 24;
31296 READ_LONG_F(adr, src)
31297 dst = DREGu32((Opcode >> 9) & 7);
31300 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31301 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31302 flag_N = res >> 24;
31313 adr = GET_SWORD + GET_PC;
31316 READ_LONG_F(adr, src)
31317 dst = DREGu32((Opcode >> 9) & 7);
31320 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31321 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31322 flag_N = res >> 24;
31336 READ_LONG_F(adr, src)
31337 dst = DREGu32((Opcode >> 9) & 7);
31340 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31341 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31342 flag_N = res >> 24;
31354 dst = DREGu32((Opcode >> 9) & 7);
31357 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31358 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31359 flag_N = res >> 24;
31372 READ_LONG_F(adr, src)
31373 dst = DREGu32((Opcode >> 9) & 7);
31376 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31377 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31378 flag_N = res >> 24;
31392 READ_LONG_F(adr, src)
31393 dst = DREGu32((Opcode >> 9) & 7);
31396 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31397 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31398 flag_N = res >> 24;
31409 adr = AREG((Opcode >> 0) & 7);
31410 AREG((Opcode >> 0) & 7) += 1;
31412 READ_BYTE_F(adr, src)
31413 adr = AREG((Opcode >> 9) & 7);
31414 AREG((Opcode >> 9) & 7) += 1;
31415 READ_BYTE_F(adr, dst)
31417 flag_N = flag_C = res;
31418 flag_V = (src ^ dst) & (res ^ dst);
31419 flag_NotZ = res & 0xFF;
31430 adr = AREG((Opcode >> 0) & 7);
31431 AREG((Opcode >> 0) & 7) += 2;
31433 READ_WORD_F(adr, src)
31434 adr = AREG((Opcode >> 9) & 7);
31435 AREG((Opcode >> 9) & 7) += 2;
31436 READ_WORD_F(adr, dst)
31438 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31439 flag_N = flag_C = res >> 8;
31440 flag_NotZ = res & 0xFFFF;
31451 adr = AREG((Opcode >> 0) & 7);
31452 AREG((Opcode >> 0) & 7) += 4;
31454 READ_LONG_F(adr, src)
31455 adr = AREG((Opcode >> 9) & 7);
31456 AREG((Opcode >> 9) & 7) += 4;
31457 READ_LONG_F(adr, dst)
31460 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31461 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31462 flag_N = res >> 24;
31476 READ_BYTE_F(adr, src)
31477 adr = AREG((Opcode >> 9) & 7);
31478 AREG((Opcode >> 9) & 7) += 1;
31479 READ_BYTE_F(adr, dst)
31481 flag_N = flag_C = res;
31482 flag_V = (src ^ dst) & (res ^ dst);
31483 flag_NotZ = res & 0xFF;
31497 READ_WORD_F(adr, src)
31498 adr = AREG((Opcode >> 9) & 7);
31499 AREG((Opcode >> 9) & 7) += 2;
31500 READ_WORD_F(adr, dst)
31502 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31503 flag_N = flag_C = res >> 8;
31504 flag_NotZ = res & 0xFFFF;
31518 READ_LONG_F(adr, src)
31519 adr = AREG((Opcode >> 9) & 7);
31520 AREG((Opcode >> 9) & 7) += 4;
31521 READ_LONG_F(adr, dst)
31524 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31525 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31526 flag_N = res >> 24;
31537 adr = AREG((Opcode >> 0) & 7);
31538 AREG((Opcode >> 0) & 7) += 1;
31540 READ_BYTE_F(adr, src)
31543 READ_BYTE_F(adr, dst)
31545 flag_N = flag_C = res;
31546 flag_V = (src ^ dst) & (res ^ dst);
31547 flag_NotZ = res & 0xFF;
31558 adr = AREG((Opcode >> 0) & 7);
31559 AREG((Opcode >> 0) & 7) += 2;
31561 READ_WORD_F(adr, src)
31564 READ_WORD_F(adr, dst)
31566 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31567 flag_N = flag_C = res >> 8;
31568 flag_NotZ = res & 0xFFFF;
31579 adr = AREG((Opcode >> 0) & 7);
31580 AREG((Opcode >> 0) & 7) += 4;
31582 READ_LONG_F(adr, src)
31585 READ_LONG_F(adr, dst)
31588 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31589 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31590 flag_N = res >> 24;
31604 READ_BYTE_F(adr, src)
31607 READ_BYTE_F(adr, dst)
31609 flag_N = flag_C = res;
31610 flag_V = (src ^ dst) & (res ^ dst);
31611 flag_NotZ = res & 0xFF;
31625 READ_WORD_F(adr, src)
31628 READ_WORD_F(adr, dst)
31630 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31631 flag_N = flag_C = res >> 8;
31632 flag_NotZ = res & 0xFFFF;
31646 READ_LONG_F(adr, src)
31649 READ_LONG_F(adr, dst)
31652 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31653 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31654 flag_N = res >> 24;
31665 src = DREGu8((Opcode >> 9) & 7);
31666 res = DREGu8((Opcode >> 0) & 7);
31672 DREGu8((Opcode >> 0) & 7) = res;
31682 src = DREGu8((Opcode >> 9) & 7);
31683 adr = AREG((Opcode >> 0) & 7);
31685 READ_BYTE_F(adr, res)
31691 WRITE_BYTE_F(adr, res)
31702 src = DREGu8((Opcode >> 9) & 7);
31703 adr = AREG((Opcode >> 0) & 7);
31704 AREG((Opcode >> 0) & 7) += 1;
31706 READ_BYTE_F(adr, res)
31712 WRITE_BYTE_F(adr, res)
31723 src = DREGu8((Opcode >> 9) & 7);
31724 adr = AREG((Opcode >> 0) & 7) - 1;
31725 AREG((Opcode >> 0) & 7) = adr;
31727 READ_BYTE_F(adr, res)
31733 WRITE_BYTE_F(adr, res)
31744 src = DREGu8((Opcode >> 9) & 7);
31746 adr += AREG((Opcode >> 0) & 7);
31748 READ_BYTE_F(adr, res)
31754 WRITE_BYTE_F(adr, res)
31765 src = DREGu8((Opcode >> 9) & 7);
31766 adr = AREG((Opcode >> 0) & 7);
31769 READ_BYTE_F(adr, res)
31775 WRITE_BYTE_F(adr, res)
31786 src = DREGu8((Opcode >> 9) & 7);
31789 READ_BYTE_F(adr, res)
31795 WRITE_BYTE_F(adr, res)
31806 src = DREGu8((Opcode >> 9) & 7);
31809 READ_BYTE_F(adr, res)
31815 WRITE_BYTE_F(adr, res)
31826 src = DREGu8((Opcode >> 9) & 7);
31830 READ_BYTE_F(adr, res)
31836 WRITE_BYTE_F(adr, res)
31847 src = DREGu8((Opcode >> 9) & 7);
31851 READ_BYTE_F(adr, res)
31857 WRITE_BYTE_F(adr, res)
31868 src = DREGu16((Opcode >> 9) & 7);
31869 res = DREGu16((Opcode >> 0) & 7);
31875 DREGu16((Opcode >> 0) & 7) = res;
31885 src = DREGu16((Opcode >> 9) & 7);
31886 adr = AREG((Opcode >> 0) & 7);
31888 READ_WORD_F(adr, res)
31894 WRITE_WORD_F(adr, res)
31905 src = DREGu16((Opcode >> 9) & 7);
31906 adr = AREG((Opcode >> 0) & 7);
31907 AREG((Opcode >> 0) & 7) += 2;
31909 READ_WORD_F(adr, res)
31915 WRITE_WORD_F(adr, res)
31926 src = DREGu16((Opcode >> 9) & 7);
31927 adr = AREG((Opcode >> 0) & 7) - 2;
31928 AREG((Opcode >> 0) & 7) = adr;
31930 READ_WORD_F(adr, res)
31936 WRITE_WORD_F(adr, res)
31947 src = DREGu16((Opcode >> 9) & 7);
31949 adr += AREG((Opcode >> 0) & 7);
31951 READ_WORD_F(adr, res)
31957 WRITE_WORD_F(adr, res)
31968 src = DREGu16((Opcode >> 9) & 7);
31969 adr = AREG((Opcode >> 0) & 7);
31972 READ_WORD_F(adr, res)
31978 WRITE_WORD_F(adr, res)
31989 src = DREGu16((Opcode >> 9) & 7);
31992 READ_WORD_F(adr, res)
31998 WRITE_WORD_F(adr, res)
32009 src = DREGu16((Opcode >> 9) & 7);
32012 READ_WORD_F(adr, res)
32018 WRITE_WORD_F(adr, res)
32029 src = DREGu16((Opcode >> 9) & 7);
32033 READ_WORD_F(adr, res)
32039 WRITE_WORD_F(adr, res)
32050 src = DREGu16((Opcode >> 9) & 7);
32054 READ_WORD_F(adr, res)
32060 WRITE_WORD_F(adr, res)
32071 src = DREGu32((Opcode >> 9) & 7);
32072 res = DREGu32((Opcode >> 0) & 7);
32077 flag_N = res >> 24;
32078 DREGu32((Opcode >> 0) & 7) = res;
32088 src = DREGu32((Opcode >> 9) & 7);
32089 adr = AREG((Opcode >> 0) & 7);
32091 READ_LONG_F(adr, res)
32096 flag_N = res >> 24;
32097 WRITE_LONG_F(adr, res)
32108 src = DREGu32((Opcode >> 9) & 7);
32109 adr = AREG((Opcode >> 0) & 7);
32110 AREG((Opcode >> 0) & 7) += 4;
32112 READ_LONG_F(adr, res)
32117 flag_N = res >> 24;
32118 WRITE_LONG_F(adr, res)
32129 src = DREGu32((Opcode >> 9) & 7);
32130 adr = AREG((Opcode >> 0) & 7) - 4;
32131 AREG((Opcode >> 0) & 7) = adr;
32133 READ_LONG_F(adr, res)
32138 flag_N = res >> 24;
32139 WRITE_LONG_F(adr, res)
32150 src = DREGu32((Opcode >> 9) & 7);
32152 adr += AREG((Opcode >> 0) & 7);
32154 READ_LONG_F(adr, res)
32159 flag_N = res >> 24;
32160 WRITE_LONG_F(adr, res)
32171 src = DREGu32((Opcode >> 9) & 7);
32172 adr = AREG((Opcode >> 0) & 7);
32175 READ_LONG_F(adr, res)
32180 flag_N = res >> 24;
32181 WRITE_LONG_F(adr, res)
32192 src = DREGu32((Opcode >> 9) & 7);
32195 READ_LONG_F(adr, res)
32200 flag_N = res >> 24;
32201 WRITE_LONG_F(adr, res)
32212 src = DREGu32((Opcode >> 9) & 7);
32215 READ_LONG_F(adr, res)
32220 flag_N = res >> 24;
32221 WRITE_LONG_F(adr, res)
32232 src = DREGu32((Opcode >> 9) & 7);
32236 READ_LONG_F(adr, res)
32241 flag_N = res >> 24;
32242 WRITE_LONG_F(adr, res)
32253 src = DREGu32((Opcode >> 9) & 7);
32257 READ_LONG_F(adr, res)
32262 flag_N = res >> 24;
32263 WRITE_LONG_F(adr, res)
32274 src = (s32)DREGs16((Opcode >> 0) & 7);
32275 dst = AREGu32((Opcode >> 9) & 7);
32278 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32279 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32280 flag_N = res >> 24;
32290 src = (s32)AREGs16((Opcode >> 0) & 7);
32291 dst = AREGu32((Opcode >> 9) & 7);
32294 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32295 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32296 flag_N = res >> 24;
32306 adr = AREG((Opcode >> 0) & 7);
32308 READSX_WORD_F(adr, src)
32309 dst = AREGu32((Opcode >> 9) & 7);
32312 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32313 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32314 flag_N = res >> 24;
32325 adr = AREG((Opcode >> 0) & 7);
32326 AREG((Opcode >> 0) & 7) += 2;
32328 READSX_WORD_F(adr, src)
32329 dst = AREGu32((Opcode >> 9) & 7);
32332 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32333 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32334 flag_N = res >> 24;
32345 adr = AREG((Opcode >> 0) & 7) - 2;
32346 AREG((Opcode >> 0) & 7) = adr;
32348 READSX_WORD_F(adr, src)
32349 dst = AREGu32((Opcode >> 9) & 7);
32352 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32353 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32354 flag_N = res >> 24;
32366 adr += AREG((Opcode >> 0) & 7);
32368 READSX_WORD_F(adr, src)
32369 dst = AREGu32((Opcode >> 9) & 7);
32372 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32373 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32374 flag_N = res >> 24;
32385 adr = AREG((Opcode >> 0) & 7);
32388 READSX_WORD_F(adr, src)
32389 dst = AREGu32((Opcode >> 9) & 7);
32392 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32393 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32394 flag_N = res >> 24;
32407 READSX_WORD_F(adr, src)
32408 dst = AREGu32((Opcode >> 9) & 7);
32411 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32412 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32413 flag_N = res >> 24;
32426 READSX_WORD_F(adr, src)
32427 dst = AREGu32((Opcode >> 9) & 7);
32430 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32431 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32432 flag_N = res >> 24;
32443 adr = GET_SWORD + GET_PC;
32446 READSX_WORD_F(adr, src)
32447 dst = AREGu32((Opcode >> 9) & 7);
32450 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32451 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32452 flag_N = res >> 24;
32466 READSX_WORD_F(adr, src)
32467 dst = AREGu32((Opcode >> 9) & 7);
32470 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32471 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32472 flag_N = res >> 24;
32484 dst = AREGu32((Opcode >> 9) & 7);
32487 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32488 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32489 flag_N = res >> 24;
32502 READSX_WORD_F(adr, src)
32503 dst = AREGu32((Opcode >> 9) & 7);
32506 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32507 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32508 flag_N = res >> 24;
32522 READSX_WORD_F(adr, src)
32523 dst = AREGu32((Opcode >> 9) & 7);
32526 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32527 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32528 flag_N = res >> 24;
32539 src = (s32)DREGs32((Opcode >> 0) & 7);
32540 dst = AREGu32((Opcode >> 9) & 7);
32543 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32544 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32545 flag_N = res >> 24;
32555 src = (s32)AREGs32((Opcode >> 0) & 7);
32556 dst = AREGu32((Opcode >> 9) & 7);
32559 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32560 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32561 flag_N = res >> 24;
32571 adr = AREG((Opcode >> 0) & 7);
32573 READSX_LONG_F(adr, src)
32574 dst = AREGu32((Opcode >> 9) & 7);
32577 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32578 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32579 flag_N = res >> 24;
32590 adr = AREG((Opcode >> 0) & 7);
32591 AREG((Opcode >> 0) & 7) += 4;
32593 READSX_LONG_F(adr, src)
32594 dst = AREGu32((Opcode >> 9) & 7);
32597 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32598 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32599 flag_N = res >> 24;
32610 adr = AREG((Opcode >> 0) & 7) - 4;
32611 AREG((Opcode >> 0) & 7) = adr;
32613 READSX_LONG_F(adr, src)
32614 dst = AREGu32((Opcode >> 9) & 7);
32617 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32618 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32619 flag_N = res >> 24;
32631 adr += AREG((Opcode >> 0) & 7);
32633 READSX_LONG_F(adr, src)
32634 dst = AREGu32((Opcode >> 9) & 7);
32637 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32638 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32639 flag_N = res >> 24;
32650 adr = AREG((Opcode >> 0) & 7);
32653 READSX_LONG_F(adr, src)
32654 dst = AREGu32((Opcode >> 9) & 7);
32657 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32658 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32659 flag_N = res >> 24;
32672 READSX_LONG_F(adr, src)
32673 dst = AREGu32((Opcode >> 9) & 7);
32676 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32677 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32678 flag_N = res >> 24;
32691 READSX_LONG_F(adr, src)
32692 dst = AREGu32((Opcode >> 9) & 7);
32695 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32696 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32697 flag_N = res >> 24;
32708 adr = GET_SWORD + GET_PC;
32711 READSX_LONG_F(adr, src)
32712 dst = AREGu32((Opcode >> 9) & 7);
32715 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32716 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32717 flag_N = res >> 24;
32731 READSX_LONG_F(adr, src)
32732 dst = AREGu32((Opcode >> 9) & 7);
32735 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32736 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32737 flag_N = res >> 24;
32749 dst = AREGu32((Opcode >> 9) & 7);
32752 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32753 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32754 flag_N = res >> 24;
32767 READSX_LONG_F(adr, src)
32768 dst = AREGu32((Opcode >> 9) & 7);
32771 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32772 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32773 flag_N = res >> 24;
32787 READSX_LONG_F(adr, src)
32788 dst = AREGu32((Opcode >> 9) & 7);
32791 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32792 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32793 flag_N = res >> 24;
32804 src = DREGu8((Opcode >> 0) & 7);
32805 res = DREGu8((Opcode >> 9) & 7);
32811 DREGu8((Opcode >> 9) & 7) = res;
32821 adr = AREG((Opcode >> 0) & 7);
32823 READ_BYTE_F(adr, src)
32824 res = DREGu8((Opcode >> 9) & 7);
32830 DREGu8((Opcode >> 9) & 7) = res;
32841 adr = AREG((Opcode >> 0) & 7);
32842 AREG((Opcode >> 0) & 7) += 1;
32844 READ_BYTE_F(adr, src)
32845 res = DREGu8((Opcode >> 9) & 7);
32851 DREGu8((Opcode >> 9) & 7) = res;
32862 adr = AREG((Opcode >> 0) & 7) - 1;
32863 AREG((Opcode >> 0) & 7) = adr;
32865 READ_BYTE_F(adr, src)
32866 res = DREGu8((Opcode >> 9) & 7);
32872 DREGu8((Opcode >> 9) & 7) = res;
32884 adr += AREG((Opcode >> 0) & 7);
32886 READ_BYTE_F(adr, src)
32887 res = DREGu8((Opcode >> 9) & 7);
32893 DREGu8((Opcode >> 9) & 7) = res;
32904 adr = AREG((Opcode >> 0) & 7);
32907 READ_BYTE_F(adr, src)
32908 res = DREGu8((Opcode >> 9) & 7);
32914 DREGu8((Opcode >> 9) & 7) = res;
32927 READ_BYTE_F(adr, src)
32928 res = DREGu8((Opcode >> 9) & 7);
32934 DREGu8((Opcode >> 9) & 7) = res;
32947 READ_BYTE_F(adr, src)
32948 res = DREGu8((Opcode >> 9) & 7);
32954 DREGu8((Opcode >> 9) & 7) = res;
32965 adr = GET_SWORD + GET_PC;
32968 READ_BYTE_F(adr, src)
32969 res = DREGu8((Opcode >> 9) & 7);
32975 DREGu8((Opcode >> 9) & 7) = res;
32989 READ_BYTE_F(adr, src)
32990 res = DREGu8((Opcode >> 9) & 7);
32996 DREGu8((Opcode >> 9) & 7) = res;
33008 res = DREGu8((Opcode >> 9) & 7);
33014 DREGu8((Opcode >> 9) & 7) = res;
33027 READ_BYTE_F(adr, src)
33028 res = DREGu8((Opcode >> 9) & 7);
33034 DREGu8((Opcode >> 9) & 7) = res;
33048 READ_BYTE_F(adr, src)
33049 res = DREGu8((Opcode >> 9) & 7);
33055 DREGu8((Opcode >> 9) & 7) = res;
33066 src = DREGu16((Opcode >> 0) & 7);
33067 res = DREGu16((Opcode >> 9) & 7);
33073 DREGu16((Opcode >> 9) & 7) = res;
33083 adr = AREG((Opcode >> 0) & 7);
33085 READ_WORD_F(adr, src)
33086 res = DREGu16((Opcode >> 9) & 7);
33092 DREGu16((Opcode >> 9) & 7) = res;
33103 adr = AREG((Opcode >> 0) & 7);
33104 AREG((Opcode >> 0) & 7) += 2;
33106 READ_WORD_F(adr, src)
33107 res = DREGu16((Opcode >> 9) & 7);
33113 DREGu16((Opcode >> 9) & 7) = res;
33124 adr = AREG((Opcode >> 0) & 7) - 2;
33125 AREG((Opcode >> 0) & 7) = adr;
33127 READ_WORD_F(adr, src)
33128 res = DREGu16((Opcode >> 9) & 7);
33134 DREGu16((Opcode >> 9) & 7) = res;
33146 adr += AREG((Opcode >> 0) & 7);
33148 READ_WORD_F(adr, src)
33149 res = DREGu16((Opcode >> 9) & 7);
33155 DREGu16((Opcode >> 9) & 7) = res;
33166 adr = AREG((Opcode >> 0) & 7);
33169 READ_WORD_F(adr, src)
33170 res = DREGu16((Opcode >> 9) & 7);
33176 DREGu16((Opcode >> 9) & 7) = res;
33189 READ_WORD_F(adr, src)
33190 res = DREGu16((Opcode >> 9) & 7);
33196 DREGu16((Opcode >> 9) & 7) = res;
33209 READ_WORD_F(adr, src)
33210 res = DREGu16((Opcode >> 9) & 7);
33216 DREGu16((Opcode >> 9) & 7) = res;
33227 adr = GET_SWORD + GET_PC;
33230 READ_WORD_F(adr, src)
33231 res = DREGu16((Opcode >> 9) & 7);
33237 DREGu16((Opcode >> 9) & 7) = res;
33251 READ_WORD_F(adr, src)
33252 res = DREGu16((Opcode >> 9) & 7);
33258 DREGu16((Opcode >> 9) & 7) = res;
33270 res = DREGu16((Opcode >> 9) & 7);
33276 DREGu16((Opcode >> 9) & 7) = res;
33289 READ_WORD_F(adr, src)
33290 res = DREGu16((Opcode >> 9) & 7);
33296 DREGu16((Opcode >> 9) & 7) = res;
33310 READ_WORD_F(adr, src)
33311 res = DREGu16((Opcode >> 9) & 7);
33317 DREGu16((Opcode >> 9) & 7) = res;
33328 src = DREGu32((Opcode >> 0) & 7);
33329 res = DREGu32((Opcode >> 9) & 7);
33334 flag_N = res >> 24;
33335 DREGu32((Opcode >> 9) & 7) = res;
33345 adr = AREG((Opcode >> 0) & 7);
33347 READ_LONG_F(adr, src)
33348 res = DREGu32((Opcode >> 9) & 7);
33353 flag_N = res >> 24;
33354 DREGu32((Opcode >> 9) & 7) = res;
33365 adr = AREG((Opcode >> 0) & 7);
33366 AREG((Opcode >> 0) & 7) += 4;
33368 READ_LONG_F(adr, src)
33369 res = DREGu32((Opcode >> 9) & 7);
33374 flag_N = res >> 24;
33375 DREGu32((Opcode >> 9) & 7) = res;
33386 adr = AREG((Opcode >> 0) & 7) - 4;
33387 AREG((Opcode >> 0) & 7) = adr;
33389 READ_LONG_F(adr, src)
33390 res = DREGu32((Opcode >> 9) & 7);
33395 flag_N = res >> 24;
33396 DREGu32((Opcode >> 9) & 7) = res;
33408 adr += AREG((Opcode >> 0) & 7);
33410 READ_LONG_F(adr, src)
33411 res = DREGu32((Opcode >> 9) & 7);
33416 flag_N = res >> 24;
33417 DREGu32((Opcode >> 9) & 7) = res;
33428 adr = AREG((Opcode >> 0) & 7);
33431 READ_LONG_F(adr, src)
33432 res = DREGu32((Opcode >> 9) & 7);
33437 flag_N = res >> 24;
33438 DREGu32((Opcode >> 9) & 7) = res;
33451 READ_LONG_F(adr, src)
33452 res = DREGu32((Opcode >> 9) & 7);
33457 flag_N = res >> 24;
33458 DREGu32((Opcode >> 9) & 7) = res;
33471 READ_LONG_F(adr, src)
33472 res = DREGu32((Opcode >> 9) & 7);
33477 flag_N = res >> 24;
33478 DREGu32((Opcode >> 9) & 7) = res;
33489 adr = GET_SWORD + GET_PC;
33492 READ_LONG_F(adr, src)
33493 res = DREGu32((Opcode >> 9) & 7);
33498 flag_N = res >> 24;
33499 DREGu32((Opcode >> 9) & 7) = res;
33513 READ_LONG_F(adr, src)
33514 res = DREGu32((Opcode >> 9) & 7);
33519 flag_N = res >> 24;
33520 DREGu32((Opcode >> 9) & 7) = res;
33532 res = DREGu32((Opcode >> 9) & 7);
33537 flag_N = res >> 24;
33538 DREGu32((Opcode >> 9) & 7) = res;
33551 READ_LONG_F(adr, src)
33552 res = DREGu32((Opcode >> 9) & 7);
33557 flag_N = res >> 24;
33558 DREGu32((Opcode >> 9) & 7) = res;
33572 READ_LONG_F(adr, src)
33573 res = DREGu32((Opcode >> 9) & 7);
33578 flag_N = res >> 24;
33579 DREGu32((Opcode >> 9) & 7) = res;
33590 src = DREGu8((Opcode >> 9) & 7);
33591 adr = AREG((Opcode >> 0) & 7);
33593 READ_BYTE_F(adr, res)
33599 WRITE_BYTE_F(adr, res)
33610 src = DREGu8((Opcode >> 9) & 7);
33611 adr = AREG((Opcode >> 0) & 7);
33612 AREG((Opcode >> 0) & 7) += 1;
33614 READ_BYTE_F(adr, res)
33620 WRITE_BYTE_F(adr, res)
33631 src = DREGu8((Opcode >> 9) & 7);
33632 adr = AREG((Opcode >> 0) & 7) - 1;
33633 AREG((Opcode >> 0) & 7) = adr;
33635 READ_BYTE_F(adr, res)
33641 WRITE_BYTE_F(adr, res)
33652 src = DREGu8((Opcode >> 9) & 7);
33654 adr += AREG((Opcode >> 0) & 7);
33656 READ_BYTE_F(adr, res)
33662 WRITE_BYTE_F(adr, res)
33673 src = DREGu8((Opcode >> 9) & 7);
33674 adr = AREG((Opcode >> 0) & 7);
33677 READ_BYTE_F(adr, res)
33683 WRITE_BYTE_F(adr, res)
33694 src = DREGu8((Opcode >> 9) & 7);
33697 READ_BYTE_F(adr, res)
33703 WRITE_BYTE_F(adr, res)
33714 src = DREGu8((Opcode >> 9) & 7);
33717 READ_BYTE_F(adr, res)
33723 WRITE_BYTE_F(adr, res)
33734 src = DREGu8((Opcode >> 9) & 7);
33738 READ_BYTE_F(adr, res)
33744 WRITE_BYTE_F(adr, res)
33755 src = DREGu8((Opcode >> 9) & 7);
33759 READ_BYTE_F(adr, res)
33765 WRITE_BYTE_F(adr, res)
33776 src = DREGu16((Opcode >> 9) & 7);
33777 adr = AREG((Opcode >> 0) & 7);
33779 READ_WORD_F(adr, res)
33785 WRITE_WORD_F(adr, res)
33796 src = DREGu16((Opcode >> 9) & 7);
33797 adr = AREG((Opcode >> 0) & 7);
33798 AREG((Opcode >> 0) & 7) += 2;
33800 READ_WORD_F(adr, res)
33806 WRITE_WORD_F(adr, res)
33817 src = DREGu16((Opcode >> 9) & 7);
33818 adr = AREG((Opcode >> 0) & 7) - 2;
33819 AREG((Opcode >> 0) & 7) = adr;
33821 READ_WORD_F(adr, res)
33827 WRITE_WORD_F(adr, res)
33838 src = DREGu16((Opcode >> 9) & 7);
33840 adr += AREG((Opcode >> 0) & 7);
33842 READ_WORD_F(adr, res)
33848 WRITE_WORD_F(adr, res)
33859 src = DREGu16((Opcode >> 9) & 7);
33860 adr = AREG((Opcode >> 0) & 7);
33863 READ_WORD_F(adr, res)
33869 WRITE_WORD_F(adr, res)
33880 src = DREGu16((Opcode >> 9) & 7);
33883 READ_WORD_F(adr, res)
33889 WRITE_WORD_F(adr, res)
33900 src = DREGu16((Opcode >> 9) & 7);
33903 READ_WORD_F(adr, res)
33909 WRITE_WORD_F(adr, res)
33920 src = DREGu16((Opcode >> 9) & 7);
33924 READ_WORD_F(adr, res)
33930 WRITE_WORD_F(adr, res)
33941 src = DREGu16((Opcode >> 9) & 7);
33945 READ_WORD_F(adr, res)
33951 WRITE_WORD_F(adr, res)
33962 src = DREGu32((Opcode >> 9) & 7);
33963 adr = AREG((Opcode >> 0) & 7);
33965 READ_LONG_F(adr, res)
33970 flag_N = res >> 24;
33971 WRITE_LONG_F(adr, res)
33982 src = DREGu32((Opcode >> 9) & 7);
33983 adr = AREG((Opcode >> 0) & 7);
33984 AREG((Opcode >> 0) & 7) += 4;
33986 READ_LONG_F(adr, res)
33991 flag_N = res >> 24;
33992 WRITE_LONG_F(adr, res)
34003 src = DREGu32((Opcode >> 9) & 7);
34004 adr = AREG((Opcode >> 0) & 7) - 4;
34005 AREG((Opcode >> 0) & 7) = adr;
34007 READ_LONG_F(adr, res)
34012 flag_N = res >> 24;
34013 WRITE_LONG_F(adr, res)
34024 src = DREGu32((Opcode >> 9) & 7);
34026 adr += AREG((Opcode >> 0) & 7);
34028 READ_LONG_F(adr, res)
34033 flag_N = res >> 24;
34034 WRITE_LONG_F(adr, res)
34045 src = DREGu32((Opcode >> 9) & 7);
34046 adr = AREG((Opcode >> 0) & 7);
34049 READ_LONG_F(adr, res)
34054 flag_N = res >> 24;
34055 WRITE_LONG_F(adr, res)
34066 src = DREGu32((Opcode >> 9) & 7);
34069 READ_LONG_F(adr, res)
34074 flag_N = res >> 24;
34075 WRITE_LONG_F(adr, res)
34086 src = DREGu32((Opcode >> 9) & 7);
34089 READ_LONG_F(adr, res)
34094 flag_N = res >> 24;
34095 WRITE_LONG_F(adr, res)
34106 src = DREGu32((Opcode >> 9) & 7);
34110 READ_LONG_F(adr, res)
34115 flag_N = res >> 24;
34116 WRITE_LONG_F(adr, res)
34127 src = DREGu32((Opcode >> 9) & 7);
34131 READ_LONG_F(adr, res)
34136 flag_N = res >> 24;
34137 WRITE_LONG_F(adr, res)
34149 src = DREGu8((Opcode >> 0) & 7);
34150 dst = DREGu8((Opcode >> 9) & 7);
34151 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34152 if (res > 9) corf = 6;
34153 res += (dst & 0xF0) + (src & 0xF0);
34159 flag_X = flag_C = M68K_SR_C;
34161 else flag_X = flag_C = 0;
34163 flag_NotZ |= res & 0xFF;
34165 DREGu8((Opcode >> 9) & 7) = res;
34176 adr = AREG((Opcode >> 0) & 7) - 1;
34177 AREG((Opcode >> 0) & 7) = adr;
34179 READ_BYTE_F(adr, src)
34180 adr = AREG((Opcode >> 9) & 7) - 1;
34181 AREG((Opcode >> 9) & 7) = adr;
34182 READ_BYTE_F(adr, dst)
34183 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34184 if (res > 9) corf = 6;
34185 res += (dst & 0xF0) + (src & 0xF0);
34191 flag_X = flag_C = M68K_SR_C;
34193 else flag_X = flag_C = 0;
34195 flag_NotZ |= res & 0xFF;
34197 WRITE_BYTE_F(adr, res)
34212 READ_BYTE_F(adr, src)
34213 adr = AREG((Opcode >> 9) & 7) - 1;
34214 AREG((Opcode >> 9) & 7) = adr;
34215 READ_BYTE_F(adr, dst)
34216 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34217 if (res > 9) corf = 6;
34218 res += (dst & 0xF0) + (src & 0xF0);
34224 flag_X = flag_C = M68K_SR_C;
34226 else flag_X = flag_C = 0;
34228 flag_NotZ |= res & 0xFF;
34230 WRITE_BYTE_F(adr, res)
34242 adr = AREG((Opcode >> 0) & 7) - 1;
34243 AREG((Opcode >> 0) & 7) = adr;
34245 READ_BYTE_F(adr, src)
34248 READ_BYTE_F(adr, dst)
34249 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34250 if (res > 9) corf = 6;
34251 res += (dst & 0xF0) + (src & 0xF0);
34257 flag_X = flag_C = M68K_SR_C;
34259 else flag_X = flag_C = 0;
34261 flag_NotZ |= res & 0xFF;
34263 WRITE_BYTE_F(adr, res)
34278 READ_BYTE_F(adr, src)
34281 READ_BYTE_F(adr, dst)
34282 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34283 if (res > 9) corf = 6;
34284 res += (dst & 0xF0) + (src & 0xF0);
34290 flag_X = flag_C = M68K_SR_C;
34292 else flag_X = flag_C = 0;
34294 flag_NotZ |= res & 0xFF;
34296 WRITE_BYTE_F(adr, res)
34307 src = DREGu16((Opcode >> 0) & 7);
34308 res = DREGu16((Opcode >> 9) & 7);
34310 flag_N = res >> 24;
34312 flag_V = flag_C = 0;
34313 DREGu32((Opcode >> 9) & 7) = res;
34314 #ifdef USE_CYCLONE_TIMING
34327 adr = AREG((Opcode >> 0) & 7);
34329 READ_WORD_F(adr, src)
34330 res = DREGu16((Opcode >> 9) & 7);
34332 flag_N = res >> 24;
34334 flag_V = flag_C = 0;
34335 DREGu32((Opcode >> 9) & 7) = res;
34337 #ifdef USE_CYCLONE_TIMING
34350 adr = AREG((Opcode >> 0) & 7);
34351 AREG((Opcode >> 0) & 7) += 2;
34353 READ_WORD_F(adr, src)
34354 res = DREGu16((Opcode >> 9) & 7);
34356 flag_N = res >> 24;
34358 flag_V = flag_C = 0;
34359 DREGu32((Opcode >> 9) & 7) = res;
34361 #ifdef USE_CYCLONE_TIMING
34374 adr = AREG((Opcode >> 0) & 7) - 2;
34375 AREG((Opcode >> 0) & 7) = adr;
34377 READ_WORD_F(adr, src)
34378 res = DREGu16((Opcode >> 9) & 7);
34380 flag_N = res >> 24;
34382 flag_V = flag_C = 0;
34383 DREGu32((Opcode >> 9) & 7) = res;
34385 #ifdef USE_CYCLONE_TIMING
34399 adr += AREG((Opcode >> 0) & 7);
34401 READ_WORD_F(adr, src)
34402 res = DREGu16((Opcode >> 9) & 7);
34404 flag_N = res >> 24;
34406 flag_V = flag_C = 0;
34407 DREGu32((Opcode >> 9) & 7) = res;
34409 #ifdef USE_CYCLONE_TIMING
34422 adr = AREG((Opcode >> 0) & 7);
34425 READ_WORD_F(adr, src)
34426 res = DREGu16((Opcode >> 9) & 7);
34428 flag_N = res >> 24;
34430 flag_V = flag_C = 0;
34431 DREGu32((Opcode >> 9) & 7) = res;
34433 #ifdef USE_CYCLONE_TIMING
34448 READ_WORD_F(adr, src)
34449 res = DREGu16((Opcode >> 9) & 7);
34451 flag_N = res >> 24;
34453 flag_V = flag_C = 0;
34454 DREGu32((Opcode >> 9) & 7) = res;
34456 #ifdef USE_CYCLONE_TIMING
34471 READ_WORD_F(adr, src)
34472 res = DREGu16((Opcode >> 9) & 7);
34474 flag_N = res >> 24;
34476 flag_V = flag_C = 0;
34477 DREGu32((Opcode >> 9) & 7) = res;
34479 #ifdef USE_CYCLONE_TIMING
34492 adr = GET_SWORD + GET_PC;
34495 READ_WORD_F(adr, src)
34496 res = DREGu16((Opcode >> 9) & 7);
34498 flag_N = res >> 24;
34500 flag_V = flag_C = 0;
34501 DREGu32((Opcode >> 9) & 7) = res;
34503 #ifdef USE_CYCLONE_TIMING
34519 READ_WORD_F(adr, src)
34520 res = DREGu16((Opcode >> 9) & 7);
34522 flag_N = res >> 24;
34524 flag_V = flag_C = 0;
34525 DREGu32((Opcode >> 9) & 7) = res;
34527 #ifdef USE_CYCLONE_TIMING
34541 res = DREGu16((Opcode >> 9) & 7);
34543 flag_N = res >> 24;
34545 flag_V = flag_C = 0;
34546 DREGu32((Opcode >> 9) & 7) = res;
34547 #ifdef USE_CYCLONE_TIMING
34563 READ_WORD_F(adr, src)
34564 res = DREGu16((Opcode >> 9) & 7);
34566 flag_N = res >> 24;
34568 flag_V = flag_C = 0;
34569 DREGu32((Opcode >> 9) & 7) = res;
34571 #ifdef USE_CYCLONE_TIMING
34587 READ_WORD_F(adr, src)
34588 res = DREGu16((Opcode >> 9) & 7);
34590 flag_N = res >> 24;
34592 flag_V = flag_C = 0;
34593 DREGu32((Opcode >> 9) & 7) = res;
34595 #ifdef USE_CYCLONE_TIMING
34608 src = (s32)DREGs16((Opcode >> 0) & 7);
34609 res = (s32)DREGs16((Opcode >> 9) & 7);
34610 res = ((s32)res) * ((s32)src);
34611 flag_N = res >> 24;
34613 flag_V = flag_C = 0;
34614 DREGu32((Opcode >> 9) & 7) = res;
34615 #ifdef USE_CYCLONE_TIMING
34628 adr = AREG((Opcode >> 0) & 7);
34630 READSX_WORD_F(adr, src)
34631 res = (s32)DREGs16((Opcode >> 9) & 7);
34632 res = ((s32)res) * ((s32)src);
34633 flag_N = res >> 24;
34635 flag_V = flag_C = 0;
34636 DREGu32((Opcode >> 9) & 7) = res;
34638 #ifdef USE_CYCLONE_TIMING
34651 adr = AREG((Opcode >> 0) & 7);
34652 AREG((Opcode >> 0) & 7) += 2;
34654 READSX_WORD_F(adr, src)
34655 res = (s32)DREGs16((Opcode >> 9) & 7);
34656 res = ((s32)res) * ((s32)src);
34657 flag_N = res >> 24;
34659 flag_V = flag_C = 0;
34660 DREGu32((Opcode >> 9) & 7) = res;
34662 #ifdef USE_CYCLONE_TIMING
34675 adr = AREG((Opcode >> 0) & 7) - 2;
34676 AREG((Opcode >> 0) & 7) = adr;
34678 READSX_WORD_F(adr, src)
34679 res = (s32)DREGs16((Opcode >> 9) & 7);
34680 res = ((s32)res) * ((s32)src);
34681 flag_N = res >> 24;
34683 flag_V = flag_C = 0;
34684 DREGu32((Opcode >> 9) & 7) = res;
34686 #ifdef USE_CYCLONE_TIMING
34700 adr += AREG((Opcode >> 0) & 7);
34702 READSX_WORD_F(adr, src)
34703 res = (s32)DREGs16((Opcode >> 9) & 7);
34704 res = ((s32)res) * ((s32)src);
34705 flag_N = res >> 24;
34707 flag_V = flag_C = 0;
34708 DREGu32((Opcode >> 9) & 7) = res;
34710 #ifdef USE_CYCLONE_TIMING
34723 adr = AREG((Opcode >> 0) & 7);
34726 READSX_WORD_F(adr, src)
34727 res = (s32)DREGs16((Opcode >> 9) & 7);
34728 res = ((s32)res) * ((s32)src);
34729 flag_N = res >> 24;
34731 flag_V = flag_C = 0;
34732 DREGu32((Opcode >> 9) & 7) = res;
34734 #ifdef USE_CYCLONE_TIMING
34749 READSX_WORD_F(adr, src)
34750 res = (s32)DREGs16((Opcode >> 9) & 7);
34751 res = ((s32)res) * ((s32)src);
34752 flag_N = res >> 24;
34754 flag_V = flag_C = 0;
34755 DREGu32((Opcode >> 9) & 7) = res;
34757 #ifdef USE_CYCLONE_TIMING
34772 READSX_WORD_F(adr, src)
34773 res = (s32)DREGs16((Opcode >> 9) & 7);
34774 res = ((s32)res) * ((s32)src);
34775 flag_N = res >> 24;
34777 flag_V = flag_C = 0;
34778 DREGu32((Opcode >> 9) & 7) = res;
34780 #ifdef USE_CYCLONE_TIMING
34793 adr = GET_SWORD + GET_PC;
34796 READSX_WORD_F(adr, src)
34797 res = (s32)DREGs16((Opcode >> 9) & 7);
34798 res = ((s32)res) * ((s32)src);
34799 flag_N = res >> 24;
34801 flag_V = flag_C = 0;
34802 DREGu32((Opcode >> 9) & 7) = res;
34804 #ifdef USE_CYCLONE_TIMING
34820 READSX_WORD_F(adr, src)
34821 res = (s32)DREGs16((Opcode >> 9) & 7);
34822 res = ((s32)res) * ((s32)src);
34823 flag_N = res >> 24;
34825 flag_V = flag_C = 0;
34826 DREGu32((Opcode >> 9) & 7) = res;
34828 #ifdef USE_CYCLONE_TIMING
34842 res = (s32)DREGs16((Opcode >> 9) & 7);
34843 res = ((s32)res) * ((s32)src);
34844 flag_N = res >> 24;
34846 flag_V = flag_C = 0;
34847 DREGu32((Opcode >> 9) & 7) = res;
34848 #ifdef USE_CYCLONE_TIMING
34864 READSX_WORD_F(adr, src)
34865 res = (s32)DREGs16((Opcode >> 9) & 7);
34866 res = ((s32)res) * ((s32)src);
34867 flag_N = res >> 24;
34869 flag_V = flag_C = 0;
34870 DREGu32((Opcode >> 9) & 7) = res;
34872 #ifdef USE_CYCLONE_TIMING
34888 READSX_WORD_F(adr, src)
34889 res = (s32)DREGs16((Opcode >> 9) & 7);
34890 res = ((s32)res) * ((s32)src);
34891 flag_N = res >> 24;
34893 flag_V = flag_C = 0;
34894 DREGu32((Opcode >> 9) & 7) = res;
34896 #ifdef USE_CYCLONE_TIMING
34909 res = DREGu32((Opcode >> 0) & 7);
34910 src = DREGu32((Opcode >> 9) & 7);
34911 DREGu32((Opcode >> 9) & 7) = res;
34913 DREGu32((Opcode >> 0) & 7) = res;
34923 res = AREGu32((Opcode >> 0) & 7);
34924 src = AREGu32((Opcode >> 9) & 7);
34925 AREG((Opcode >> 9) & 7) = res;
34927 AREG((Opcode >> 0) & 7) = res;
34937 res = AREGu32((Opcode >> 0) & 7);
34938 src = DREGu32((Opcode >> 9) & 7);
34939 DREGu32((Opcode >> 9) & 7) = res;
34941 AREG((Opcode >> 0) & 7) = res;
34951 src = DREGu8((Opcode >> 0) & 7);
34952 dst = DREGu8((Opcode >> 9) & 7);
34954 flag_N = flag_X = flag_C = res;
34955 flag_V = (src ^ res) & (dst ^ res);
34956 flag_NotZ = res & 0xFF;
34957 DREGu8((Opcode >> 9) & 7) = res;
34968 // can't read byte from Ax registers !
34969 m68kcontext.execinfo |= M68K_FAULTED;
34970 m68kcontext.io_cycle_counter = 0;
34972 goto famec_Exec_End;
34973 dst = DREGu8((Opcode >> 9) & 7);
34975 flag_N = flag_X = flag_C = res;
34976 flag_V = (src ^ res) & (dst ^ res);
34977 flag_NotZ = res & 0xFF;
34978 DREGu8((Opcode >> 9) & 7) = res;
34990 adr = AREG((Opcode >> 0) & 7);
34992 READ_BYTE_F(adr, src)
34993 dst = DREGu8((Opcode >> 9) & 7);
34995 flag_N = flag_X = flag_C = res;
34996 flag_V = (src ^ res) & (dst ^ res);
34997 flag_NotZ = res & 0xFF;
34998 DREGu8((Opcode >> 9) & 7) = res;
35009 adr = AREG((Opcode >> 0) & 7);
35010 AREG((Opcode >> 0) & 7) += 1;
35012 READ_BYTE_F(adr, src)
35013 dst = DREGu8((Opcode >> 9) & 7);
35015 flag_N = flag_X = flag_C = res;
35016 flag_V = (src ^ res) & (dst ^ res);
35017 flag_NotZ = res & 0xFF;
35018 DREGu8((Opcode >> 9) & 7) = res;
35029 adr = AREG((Opcode >> 0) & 7) - 1;
35030 AREG((Opcode >> 0) & 7) = adr;
35032 READ_BYTE_F(adr, src)
35033 dst = DREGu8((Opcode >> 9) & 7);
35035 flag_N = flag_X = flag_C = res;
35036 flag_V = (src ^ res) & (dst ^ res);
35037 flag_NotZ = res & 0xFF;
35038 DREGu8((Opcode >> 9) & 7) = res;
35050 adr += AREG((Opcode >> 0) & 7);
35052 READ_BYTE_F(adr, src)
35053 dst = DREGu8((Opcode >> 9) & 7);
35055 flag_N = flag_X = flag_C = res;
35056 flag_V = (src ^ res) & (dst ^ res);
35057 flag_NotZ = res & 0xFF;
35058 DREGu8((Opcode >> 9) & 7) = res;
35069 adr = AREG((Opcode >> 0) & 7);
35072 READ_BYTE_F(adr, src)
35073 dst = DREGu8((Opcode >> 9) & 7);
35075 flag_N = flag_X = flag_C = res;
35076 flag_V = (src ^ res) & (dst ^ res);
35077 flag_NotZ = res & 0xFF;
35078 DREGu8((Opcode >> 9) & 7) = res;
35091 READ_BYTE_F(adr, src)
35092 dst = DREGu8((Opcode >> 9) & 7);
35094 flag_N = flag_X = flag_C = res;
35095 flag_V = (src ^ res) & (dst ^ res);
35096 flag_NotZ = res & 0xFF;
35097 DREGu8((Opcode >> 9) & 7) = res;
35110 READ_BYTE_F(adr, src)
35111 dst = DREGu8((Opcode >> 9) & 7);
35113 flag_N = flag_X = flag_C = res;
35114 flag_V = (src ^ res) & (dst ^ res);
35115 flag_NotZ = res & 0xFF;
35116 DREGu8((Opcode >> 9) & 7) = res;
35127 adr = GET_SWORD + GET_PC;
35130 READ_BYTE_F(adr, src)
35131 dst = DREGu8((Opcode >> 9) & 7);
35133 flag_N = flag_X = flag_C = res;
35134 flag_V = (src ^ res) & (dst ^ res);
35135 flag_NotZ = res & 0xFF;
35136 DREGu8((Opcode >> 9) & 7) = res;
35150 READ_BYTE_F(adr, src)
35151 dst = DREGu8((Opcode >> 9) & 7);
35153 flag_N = flag_X = flag_C = res;
35154 flag_V = (src ^ res) & (dst ^ res);
35155 flag_NotZ = res & 0xFF;
35156 DREGu8((Opcode >> 9) & 7) = res;
35168 dst = DREGu8((Opcode >> 9) & 7);
35170 flag_N = flag_X = flag_C = res;
35171 flag_V = (src ^ res) & (dst ^ res);
35172 flag_NotZ = res & 0xFF;
35173 DREGu8((Opcode >> 9) & 7) = res;
35186 READ_BYTE_F(adr, src)
35187 dst = DREGu8((Opcode >> 9) & 7);
35189 flag_N = flag_X = flag_C = res;
35190 flag_V = (src ^ res) & (dst ^ res);
35191 flag_NotZ = res & 0xFF;
35192 DREGu8((Opcode >> 9) & 7) = res;
35206 READ_BYTE_F(adr, src)
35207 dst = DREGu8((Opcode >> 9) & 7);
35209 flag_N = flag_X = flag_C = res;
35210 flag_V = (src ^ res) & (dst ^ res);
35211 flag_NotZ = res & 0xFF;
35212 DREGu8((Opcode >> 9) & 7) = res;
35223 src = DREGu16((Opcode >> 0) & 7);
35224 dst = DREGu16((Opcode >> 9) & 7);
35226 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35227 flag_N = flag_X = flag_C = res >> 8;
35228 flag_NotZ = res & 0xFFFF;
35229 DREGu16((Opcode >> 9) & 7) = res;
35239 src = AREGu16((Opcode >> 0) & 7);
35240 dst = DREGu16((Opcode >> 9) & 7);
35242 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35243 flag_N = flag_X = flag_C = res >> 8;
35244 flag_NotZ = res & 0xFFFF;
35245 DREGu16((Opcode >> 9) & 7) = res;
35255 adr = AREG((Opcode >> 0) & 7);
35257 READ_WORD_F(adr, src)
35258 dst = DREGu16((Opcode >> 9) & 7);
35260 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35261 flag_N = flag_X = flag_C = res >> 8;
35262 flag_NotZ = res & 0xFFFF;
35263 DREGu16((Opcode >> 9) & 7) = res;
35274 adr = AREG((Opcode >> 0) & 7);
35275 AREG((Opcode >> 0) & 7) += 2;
35277 READ_WORD_F(adr, src)
35278 dst = DREGu16((Opcode >> 9) & 7);
35280 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35281 flag_N = flag_X = flag_C = res >> 8;
35282 flag_NotZ = res & 0xFFFF;
35283 DREGu16((Opcode >> 9) & 7) = res;
35294 adr = AREG((Opcode >> 0) & 7) - 2;
35295 AREG((Opcode >> 0) & 7) = adr;
35297 READ_WORD_F(adr, src)
35298 dst = DREGu16((Opcode >> 9) & 7);
35300 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35301 flag_N = flag_X = flag_C = res >> 8;
35302 flag_NotZ = res & 0xFFFF;
35303 DREGu16((Opcode >> 9) & 7) = res;
35315 adr += AREG((Opcode >> 0) & 7);
35317 READ_WORD_F(adr, src)
35318 dst = DREGu16((Opcode >> 9) & 7);
35320 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35321 flag_N = flag_X = flag_C = res >> 8;
35322 flag_NotZ = res & 0xFFFF;
35323 DREGu16((Opcode >> 9) & 7) = res;
35334 adr = AREG((Opcode >> 0) & 7);
35337 READ_WORD_F(adr, src)
35338 dst = DREGu16((Opcode >> 9) & 7);
35340 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35341 flag_N = flag_X = flag_C = res >> 8;
35342 flag_NotZ = res & 0xFFFF;
35343 DREGu16((Opcode >> 9) & 7) = res;
35356 READ_WORD_F(adr, src)
35357 dst = DREGu16((Opcode >> 9) & 7);
35359 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35360 flag_N = flag_X = flag_C = res >> 8;
35361 flag_NotZ = res & 0xFFFF;
35362 DREGu16((Opcode >> 9) & 7) = res;
35375 READ_WORD_F(adr, src)
35376 dst = DREGu16((Opcode >> 9) & 7);
35378 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35379 flag_N = flag_X = flag_C = res >> 8;
35380 flag_NotZ = res & 0xFFFF;
35381 DREGu16((Opcode >> 9) & 7) = res;
35392 adr = GET_SWORD + GET_PC;
35395 READ_WORD_F(adr, src)
35396 dst = DREGu16((Opcode >> 9) & 7);
35398 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35399 flag_N = flag_X = flag_C = res >> 8;
35400 flag_NotZ = res & 0xFFFF;
35401 DREGu16((Opcode >> 9) & 7) = res;
35415 READ_WORD_F(adr, src)
35416 dst = DREGu16((Opcode >> 9) & 7);
35418 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35419 flag_N = flag_X = flag_C = res >> 8;
35420 flag_NotZ = res & 0xFFFF;
35421 DREGu16((Opcode >> 9) & 7) = res;
35433 dst = DREGu16((Opcode >> 9) & 7);
35435 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35436 flag_N = flag_X = flag_C = res >> 8;
35437 flag_NotZ = res & 0xFFFF;
35438 DREGu16((Opcode >> 9) & 7) = res;
35451 READ_WORD_F(adr, src)
35452 dst = DREGu16((Opcode >> 9) & 7);
35454 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35455 flag_N = flag_X = flag_C = res >> 8;
35456 flag_NotZ = res & 0xFFFF;
35457 DREGu16((Opcode >> 9) & 7) = res;
35471 READ_WORD_F(adr, src)
35472 dst = DREGu16((Opcode >> 9) & 7);
35474 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35475 flag_N = flag_X = flag_C = res >> 8;
35476 flag_NotZ = res & 0xFFFF;
35477 DREGu16((Opcode >> 9) & 7) = res;
35488 src = DREGu32((Opcode >> 0) & 7);
35489 dst = DREGu32((Opcode >> 9) & 7);
35492 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35493 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35494 flag_N = res >> 24;
35495 DREGu32((Opcode >> 9) & 7) = res;
35505 src = AREGu32((Opcode >> 0) & 7);
35506 dst = DREGu32((Opcode >> 9) & 7);
35509 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35510 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35511 flag_N = res >> 24;
35512 DREGu32((Opcode >> 9) & 7) = res;
35522 adr = AREG((Opcode >> 0) & 7);
35524 READ_LONG_F(adr, src)
35525 dst = DREGu32((Opcode >> 9) & 7);
35528 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35529 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35530 flag_N = res >> 24;
35531 DREGu32((Opcode >> 9) & 7) = res;
35542 adr = AREG((Opcode >> 0) & 7);
35543 AREG((Opcode >> 0) & 7) += 4;
35545 READ_LONG_F(adr, src)
35546 dst = DREGu32((Opcode >> 9) & 7);
35549 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35550 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35551 flag_N = res >> 24;
35552 DREGu32((Opcode >> 9) & 7) = res;
35563 adr = AREG((Opcode >> 0) & 7) - 4;
35564 AREG((Opcode >> 0) & 7) = adr;
35566 READ_LONG_F(adr, src)
35567 dst = DREGu32((Opcode >> 9) & 7);
35570 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35571 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35572 flag_N = res >> 24;
35573 DREGu32((Opcode >> 9) & 7) = res;
35585 adr += AREG((Opcode >> 0) & 7);
35587 READ_LONG_F(adr, src)
35588 dst = DREGu32((Opcode >> 9) & 7);
35591 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35592 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35593 flag_N = res >> 24;
35594 DREGu32((Opcode >> 9) & 7) = res;
35605 adr = AREG((Opcode >> 0) & 7);
35608 READ_LONG_F(adr, src)
35609 dst = DREGu32((Opcode >> 9) & 7);
35612 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35613 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35614 flag_N = res >> 24;
35615 DREGu32((Opcode >> 9) & 7) = res;
35628 READ_LONG_F(adr, src)
35629 dst = DREGu32((Opcode >> 9) & 7);
35632 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35633 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35634 flag_N = res >> 24;
35635 DREGu32((Opcode >> 9) & 7) = res;
35648 READ_LONG_F(adr, src)
35649 dst = DREGu32((Opcode >> 9) & 7);
35652 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35653 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35654 flag_N = res >> 24;
35655 DREGu32((Opcode >> 9) & 7) = res;
35666 adr = GET_SWORD + GET_PC;
35669 READ_LONG_F(adr, src)
35670 dst = DREGu32((Opcode >> 9) & 7);
35673 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35674 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35675 flag_N = res >> 24;
35676 DREGu32((Opcode >> 9) & 7) = res;
35690 READ_LONG_F(adr, src)
35691 dst = DREGu32((Opcode >> 9) & 7);
35694 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35695 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35696 flag_N = res >> 24;
35697 DREGu32((Opcode >> 9) & 7) = res;
35709 dst = DREGu32((Opcode >> 9) & 7);
35712 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35713 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35714 flag_N = res >> 24;
35715 DREGu32((Opcode >> 9) & 7) = res;
35728 READ_LONG_F(adr, src)
35729 dst = DREGu32((Opcode >> 9) & 7);
35732 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35733 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35734 flag_N = res >> 24;
35735 DREGu32((Opcode >> 9) & 7) = res;
35749 READ_LONG_F(adr, src)
35750 dst = DREGu32((Opcode >> 9) & 7);
35753 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35754 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35755 flag_N = res >> 24;
35756 DREGu32((Opcode >> 9) & 7) = res;
35767 src = DREGu8((Opcode >> 9) & 7);
35768 adr = AREG((Opcode >> 0) & 7);
35770 READ_BYTE_F(adr, dst)
35772 flag_N = flag_X = flag_C = res;
35773 flag_V = (src ^ res) & (dst ^ res);
35774 flag_NotZ = res & 0xFF;
35775 WRITE_BYTE_F(adr, res)
35786 src = DREGu8((Opcode >> 9) & 7);
35787 adr = AREG((Opcode >> 0) & 7);
35788 AREG((Opcode >> 0) & 7) += 1;
35790 READ_BYTE_F(adr, dst)
35792 flag_N = flag_X = flag_C = res;
35793 flag_V = (src ^ res) & (dst ^ res);
35794 flag_NotZ = res & 0xFF;
35795 WRITE_BYTE_F(adr, res)
35806 src = DREGu8((Opcode >> 9) & 7);
35807 adr = AREG((Opcode >> 0) & 7) - 1;
35808 AREG((Opcode >> 0) & 7) = adr;
35810 READ_BYTE_F(adr, dst)
35812 flag_N = flag_X = flag_C = res;
35813 flag_V = (src ^ res) & (dst ^ res);
35814 flag_NotZ = res & 0xFF;
35815 WRITE_BYTE_F(adr, res)
35826 src = DREGu8((Opcode >> 9) & 7);
35828 adr += AREG((Opcode >> 0) & 7);
35830 READ_BYTE_F(adr, dst)
35832 flag_N = flag_X = flag_C = res;
35833 flag_V = (src ^ res) & (dst ^ res);
35834 flag_NotZ = res & 0xFF;
35835 WRITE_BYTE_F(adr, res)
35846 src = DREGu8((Opcode >> 9) & 7);
35847 adr = AREG((Opcode >> 0) & 7);
35850 READ_BYTE_F(adr, dst)
35852 flag_N = flag_X = flag_C = res;
35853 flag_V = (src ^ res) & (dst ^ res);
35854 flag_NotZ = res & 0xFF;
35855 WRITE_BYTE_F(adr, res)
35866 src = DREGu8((Opcode >> 9) & 7);
35869 READ_BYTE_F(adr, dst)
35871 flag_N = flag_X = flag_C = res;
35872 flag_V = (src ^ res) & (dst ^ res);
35873 flag_NotZ = res & 0xFF;
35874 WRITE_BYTE_F(adr, res)
35885 src = DREGu8((Opcode >> 9) & 7);
35888 READ_BYTE_F(adr, dst)
35890 flag_N = flag_X = flag_C = res;
35891 flag_V = (src ^ res) & (dst ^ res);
35892 flag_NotZ = res & 0xFF;
35893 WRITE_BYTE_F(adr, res)
35904 src = DREGu8((Opcode >> 9) & 7);
35908 READ_BYTE_F(adr, dst)
35910 flag_N = flag_X = flag_C = res;
35911 flag_V = (src ^ res) & (dst ^ res);
35912 flag_NotZ = res & 0xFF;
35913 WRITE_BYTE_F(adr, res)
35924 src = DREGu8((Opcode >> 9) & 7);
35928 READ_BYTE_F(adr, dst)
35930 flag_N = flag_X = flag_C = res;
35931 flag_V = (src ^ res) & (dst ^ res);
35932 flag_NotZ = res & 0xFF;
35933 WRITE_BYTE_F(adr, res)
35944 src = DREGu16((Opcode >> 9) & 7);
35945 adr = AREG((Opcode >> 0) & 7);
35947 READ_WORD_F(adr, dst)
35949 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35950 flag_N = flag_X = flag_C = res >> 8;
35951 flag_NotZ = res & 0xFFFF;
35952 WRITE_WORD_F(adr, res)
35963 src = DREGu16((Opcode >> 9) & 7);
35964 adr = AREG((Opcode >> 0) & 7);
35965 AREG((Opcode >> 0) & 7) += 2;
35967 READ_WORD_F(adr, dst)
35969 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35970 flag_N = flag_X = flag_C = res >> 8;
35971 flag_NotZ = res & 0xFFFF;
35972 WRITE_WORD_F(adr, res)
35983 src = DREGu16((Opcode >> 9) & 7);
35984 adr = AREG((Opcode >> 0) & 7) - 2;
35985 AREG((Opcode >> 0) & 7) = adr;
35987 READ_WORD_F(adr, dst)
35989 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35990 flag_N = flag_X = flag_C = res >> 8;
35991 flag_NotZ = res & 0xFFFF;
35992 WRITE_WORD_F(adr, res)
36003 src = DREGu16((Opcode >> 9) & 7);
36005 adr += AREG((Opcode >> 0) & 7);
36007 READ_WORD_F(adr, dst)
36009 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36010 flag_N = flag_X = flag_C = res >> 8;
36011 flag_NotZ = res & 0xFFFF;
36012 WRITE_WORD_F(adr, res)
36023 src = DREGu16((Opcode >> 9) & 7);
36024 adr = AREG((Opcode >> 0) & 7);
36027 READ_WORD_F(adr, dst)
36029 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36030 flag_N = flag_X = flag_C = res >> 8;
36031 flag_NotZ = res & 0xFFFF;
36032 WRITE_WORD_F(adr, res)
36043 src = DREGu16((Opcode >> 9) & 7);
36046 READ_WORD_F(adr, dst)
36048 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36049 flag_N = flag_X = flag_C = res >> 8;
36050 flag_NotZ = res & 0xFFFF;
36051 WRITE_WORD_F(adr, res)
36062 src = DREGu16((Opcode >> 9) & 7);
36065 READ_WORD_F(adr, dst)
36067 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36068 flag_N = flag_X = flag_C = res >> 8;
36069 flag_NotZ = res & 0xFFFF;
36070 WRITE_WORD_F(adr, res)
36081 src = DREGu16((Opcode >> 9) & 7);
36085 READ_WORD_F(adr, dst)
36087 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36088 flag_N = flag_X = flag_C = res >> 8;
36089 flag_NotZ = res & 0xFFFF;
36090 WRITE_WORD_F(adr, res)
36101 src = DREGu16((Opcode >> 9) & 7);
36105 READ_WORD_F(adr, dst)
36107 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36108 flag_N = flag_X = flag_C = res >> 8;
36109 flag_NotZ = res & 0xFFFF;
36110 WRITE_WORD_F(adr, res)
36121 src = DREGu32((Opcode >> 9) & 7);
36122 adr = AREG((Opcode >> 0) & 7);
36124 READ_LONG_F(adr, dst)
36127 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36128 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36129 flag_N = res >> 24;
36130 WRITE_LONG_F(adr, res)
36141 src = DREGu32((Opcode >> 9) & 7);
36142 adr = AREG((Opcode >> 0) & 7);
36143 AREG((Opcode >> 0) & 7) += 4;
36145 READ_LONG_F(adr, dst)
36148 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36149 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36150 flag_N = res >> 24;
36151 WRITE_LONG_F(adr, res)
36162 src = DREGu32((Opcode >> 9) & 7);
36163 adr = AREG((Opcode >> 0) & 7) - 4;
36164 AREG((Opcode >> 0) & 7) = adr;
36166 READ_LONG_F(adr, dst)
36169 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36170 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36171 flag_N = res >> 24;
36172 WRITE_LONG_F(adr, res)
36183 src = DREGu32((Opcode >> 9) & 7);
36185 adr += AREG((Opcode >> 0) & 7);
36187 READ_LONG_F(adr, dst)
36190 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36191 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36192 flag_N = res >> 24;
36193 WRITE_LONG_F(adr, res)
36204 src = DREGu32((Opcode >> 9) & 7);
36205 adr = AREG((Opcode >> 0) & 7);
36208 READ_LONG_F(adr, dst)
36211 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36212 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36213 flag_N = res >> 24;
36214 WRITE_LONG_F(adr, res)
36225 src = DREGu32((Opcode >> 9) & 7);
36228 READ_LONG_F(adr, dst)
36231 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36232 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36233 flag_N = res >> 24;
36234 WRITE_LONG_F(adr, res)
36245 src = DREGu32((Opcode >> 9) & 7);
36248 READ_LONG_F(adr, dst)
36251 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36252 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36253 flag_N = res >> 24;
36254 WRITE_LONG_F(adr, res)
36265 src = DREGu32((Opcode >> 9) & 7);
36269 READ_LONG_F(adr, dst)
36272 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36273 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36274 flag_N = res >> 24;
36275 WRITE_LONG_F(adr, res)
36286 src = DREGu32((Opcode >> 9) & 7);
36290 READ_LONG_F(adr, dst)
36293 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36294 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36295 flag_N = res >> 24;
36296 WRITE_LONG_F(adr, res)
36307 src = DREGu8((Opcode >> 0) & 7);
36308 dst = DREGu8((Opcode >> 9) & 7);
36309 res = dst + src + ((flag_X >> 8) & 1);
36310 flag_N = flag_X = flag_C = res;
36311 flag_V = (src ^ res) & (dst ^ res);
36312 flag_NotZ |= res & 0xFF;
36313 DREGu8((Opcode >> 9) & 7) = res;
36323 src = DREGu16((Opcode >> 0) & 7);
36324 dst = DREGu16((Opcode >> 9) & 7);
36325 res = dst + src + ((flag_X >> 8) & 1);
36326 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36327 flag_N = flag_X = flag_C = res >> 8;
36328 flag_NotZ |= res & 0xFFFF;
36329 DREGu16((Opcode >> 9) & 7) = res;
36339 src = DREGu32((Opcode >> 0) & 7);
36340 dst = DREGu32((Opcode >> 9) & 7);
36341 res = dst + src + ((flag_X >> 8) & 1);
36343 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36344 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36345 flag_N = res >> 24;
36346 DREGu32((Opcode >> 9) & 7) = res;
36356 adr = AREG((Opcode >> 0) & 7) - 1;
36357 AREG((Opcode >> 0) & 7) = adr;
36359 READ_BYTE_F(adr, src)
36360 adr = AREG((Opcode >> 9) & 7) - 1;
36361 AREG((Opcode >> 9) & 7) = adr;
36362 READ_BYTE_F(adr, dst)
36363 res = dst + src + ((flag_X >> 8) & 1);
36364 flag_N = flag_X = flag_C = res;
36365 flag_V = (src ^ res) & (dst ^ res);
36366 flag_NotZ |= res & 0xFF;
36367 WRITE_BYTE_F(adr, res)
36378 adr = AREG((Opcode >> 0) & 7) - 2;
36379 AREG((Opcode >> 0) & 7) = adr;
36381 READ_WORD_F(adr, src)
36382 adr = AREG((Opcode >> 9) & 7) - 2;
36383 AREG((Opcode >> 9) & 7) = adr;
36384 READ_WORD_F(adr, dst)
36385 res = dst + src + ((flag_X >> 8) & 1);
36386 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36387 flag_N = flag_X = flag_C = res >> 8;
36388 flag_NotZ |= res & 0xFFFF;
36389 WRITE_WORD_F(adr, res)
36400 adr = AREG((Opcode >> 0) & 7) - 4;
36401 AREG((Opcode >> 0) & 7) = adr;
36403 READ_LONG_F(adr, src)
36404 adr = AREG((Opcode >> 9) & 7) - 4;
36405 AREG((Opcode >> 9) & 7) = adr;
36406 READ_LONG_F(adr, dst)
36407 res = dst + src + ((flag_X >> 8) & 1);
36409 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36410 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36411 flag_N = res >> 24;
36412 WRITE_LONG_F(adr, res)
36426 READ_BYTE_F(adr, src)
36427 adr = AREG((Opcode >> 9) & 7) - 1;
36428 AREG((Opcode >> 9) & 7) = adr;
36429 READ_BYTE_F(adr, dst)
36430 res = dst + src + ((flag_X >> 8) & 1);
36431 flag_N = flag_X = flag_C = res;
36432 flag_V = (src ^ res) & (dst ^ res);
36433 flag_NotZ |= res & 0xFF;
36434 WRITE_BYTE_F(adr, res)
36448 READ_WORD_F(adr, src)
36449 adr = AREG((Opcode >> 9) & 7) - 2;
36450 AREG((Opcode >> 9) & 7) = adr;
36451 READ_WORD_F(adr, dst)
36452 res = dst + src + ((flag_X >> 8) & 1);
36453 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36454 flag_N = flag_X = flag_C = res >> 8;
36455 flag_NotZ |= res & 0xFFFF;
36456 WRITE_WORD_F(adr, res)
36470 READ_LONG_F(adr, src)
36471 adr = AREG((Opcode >> 9) & 7) - 4;
36472 AREG((Opcode >> 9) & 7) = adr;
36473 READ_LONG_F(adr, dst)
36474 res = dst + src + ((flag_X >> 8) & 1);
36476 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36477 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36478 flag_N = res >> 24;
36479 WRITE_LONG_F(adr, res)
36490 adr = AREG((Opcode >> 0) & 7) - 1;
36491 AREG((Opcode >> 0) & 7) = adr;
36493 READ_BYTE_F(adr, src)
36496 READ_BYTE_F(adr, dst)
36497 res = dst + src + ((flag_X >> 8) & 1);
36498 flag_N = flag_X = flag_C = res;
36499 flag_V = (src ^ res) & (dst ^ res);
36500 flag_NotZ |= res & 0xFF;
36501 WRITE_BYTE_F(adr, res)
36512 adr = AREG((Opcode >> 0) & 7) - 2;
36513 AREG((Opcode >> 0) & 7) = adr;
36515 READ_WORD_F(adr, src)
36518 READ_WORD_F(adr, dst)
36519 res = dst + src + ((flag_X >> 8) & 1);
36520 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36521 flag_N = flag_X = flag_C = res >> 8;
36522 flag_NotZ |= res & 0xFFFF;
36523 WRITE_WORD_F(adr, res)
36534 adr = AREG((Opcode >> 0) & 7) - 4;
36535 AREG((Opcode >> 0) & 7) = adr;
36537 READ_LONG_F(adr, src)
36540 READ_LONG_F(adr, dst)
36541 res = dst + src + ((flag_X >> 8) & 1);
36543 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36544 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36545 flag_N = res >> 24;
36546 WRITE_LONG_F(adr, res)
36560 READ_BYTE_F(adr, src)
36563 READ_BYTE_F(adr, dst)
36564 res = dst + src + ((flag_X >> 8) & 1);
36565 flag_N = flag_X = flag_C = res;
36566 flag_V = (src ^ res) & (dst ^ res);
36567 flag_NotZ |= res & 0xFF;
36568 WRITE_BYTE_F(adr, res)
36582 READ_WORD_F(adr, src)
36585 READ_WORD_F(adr, dst)
36586 res = dst + src + ((flag_X >> 8) & 1);
36587 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36588 flag_N = flag_X = flag_C = res >> 8;
36589 flag_NotZ |= res & 0xFFFF;
36590 WRITE_WORD_F(adr, res)
36604 READ_LONG_F(adr, src)
36607 READ_LONG_F(adr, dst)
36608 res = dst + src + ((flag_X >> 8) & 1);
36610 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36611 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36612 flag_N = res >> 24;
36613 WRITE_LONG_F(adr, res)
36624 src = (s32)DREGs16((Opcode >> 0) & 7);
36625 dst = AREGu32((Opcode >> 9) & 7);
36627 AREG((Opcode >> 9) & 7) = res;
36637 src = (s32)AREGs16((Opcode >> 0) & 7);
36638 dst = AREGu32((Opcode >> 9) & 7);
36640 AREG((Opcode >> 9) & 7) = res;
36650 adr = AREG((Opcode >> 0) & 7);
36652 READSX_WORD_F(adr, src)
36653 dst = AREGu32((Opcode >> 9) & 7);
36655 AREG((Opcode >> 9) & 7) = res;
36657 #ifdef USE_CYCLONE_TIMING
36670 adr = AREG((Opcode >> 0) & 7);
36671 AREG((Opcode >> 0) & 7) += 2;
36673 READSX_WORD_F(adr, src)
36674 dst = AREGu32((Opcode >> 9) & 7);
36676 AREG((Opcode >> 9) & 7) = res;
36678 #ifdef USE_CYCLONE_TIMING
36691 adr = AREG((Opcode >> 0) & 7) - 2;
36692 AREG((Opcode >> 0) & 7) = adr;
36694 READSX_WORD_F(adr, src)
36695 dst = AREGu32((Opcode >> 9) & 7);
36697 AREG((Opcode >> 9) & 7) = res;
36699 #ifdef USE_CYCLONE_TIMING
36713 adr += AREG((Opcode >> 0) & 7);
36715 READSX_WORD_F(adr, src)
36716 dst = AREGu32((Opcode >> 9) & 7);
36718 AREG((Opcode >> 9) & 7) = res;
36720 #ifdef USE_CYCLONE_TIMING
36733 adr = AREG((Opcode >> 0) & 7);
36736 READSX_WORD_F(adr, src)
36737 dst = AREGu32((Opcode >> 9) & 7);
36739 AREG((Opcode >> 9) & 7) = res;
36741 #ifdef USE_CYCLONE_TIMING
36756 READSX_WORD_F(adr, src)
36757 dst = AREGu32((Opcode >> 9) & 7);
36759 AREG((Opcode >> 9) & 7) = res;
36761 #ifdef USE_CYCLONE_TIMING
36776 READSX_WORD_F(adr, src)
36777 dst = AREGu32((Opcode >> 9) & 7);
36779 AREG((Opcode >> 9) & 7) = res;
36781 #ifdef USE_CYCLONE_TIMING
36794 adr = GET_SWORD + GET_PC;
36797 READSX_WORD_F(adr, src)
36798 dst = AREGu32((Opcode >> 9) & 7);
36800 AREG((Opcode >> 9) & 7) = res;
36802 #ifdef USE_CYCLONE_TIMING
36818 READSX_WORD_F(adr, src)
36819 dst = AREGu32((Opcode >> 9) & 7);
36821 AREG((Opcode >> 9) & 7) = res;
36823 #ifdef USE_CYCLONE_TIMING
36837 dst = AREGu32((Opcode >> 9) & 7);
36839 AREG((Opcode >> 9) & 7) = res;
36852 READSX_WORD_F(adr, src)
36853 dst = AREGu32((Opcode >> 9) & 7);
36855 AREG((Opcode >> 9) & 7) = res;
36857 #ifdef USE_CYCLONE_TIMING
36873 READSX_WORD_F(adr, src)
36874 dst = AREGu32((Opcode >> 9) & 7);
36876 AREG((Opcode >> 9) & 7) = res;
36878 #ifdef USE_CYCLONE_TIMING
36891 src = (s32)DREGs32((Opcode >> 0) & 7);
36892 dst = AREGu32((Opcode >> 9) & 7);
36894 AREG((Opcode >> 9) & 7) = res;
36895 #ifdef USE_CYCLONE_TIMING
36908 src = (s32)AREGs32((Opcode >> 0) & 7);
36909 dst = AREGu32((Opcode >> 9) & 7);
36911 AREG((Opcode >> 9) & 7) = res;
36912 #ifdef USE_CYCLONE_TIMING
36925 adr = AREG((Opcode >> 0) & 7);
36927 READSX_LONG_F(adr, src)
36928 dst = AREGu32((Opcode >> 9) & 7);
36930 AREG((Opcode >> 9) & 7) = res;
36941 adr = AREG((Opcode >> 0) & 7);
36942 AREG((Opcode >> 0) & 7) += 4;
36944 READSX_LONG_F(adr, src)
36945 dst = AREGu32((Opcode >> 9) & 7);
36947 AREG((Opcode >> 9) & 7) = res;
36958 adr = AREG((Opcode >> 0) & 7) - 4;
36959 AREG((Opcode >> 0) & 7) = adr;
36961 READSX_LONG_F(adr, src)
36962 dst = AREGu32((Opcode >> 9) & 7);
36964 AREG((Opcode >> 9) & 7) = res;
36976 adr += AREG((Opcode >> 0) & 7);
36978 READSX_LONG_F(adr, src)
36979 dst = AREGu32((Opcode >> 9) & 7);
36981 AREG((Opcode >> 9) & 7) = res;
36992 adr = AREG((Opcode >> 0) & 7);
36995 READSX_LONG_F(adr, src)
36996 dst = AREGu32((Opcode >> 9) & 7);
36998 AREG((Opcode >> 9) & 7) = res;
37011 READSX_LONG_F(adr, src)
37012 dst = AREGu32((Opcode >> 9) & 7);
37014 AREG((Opcode >> 9) & 7) = res;
37027 READSX_LONG_F(adr, src)
37028 dst = AREGu32((Opcode >> 9) & 7);
37030 AREG((Opcode >> 9) & 7) = res;
37041 adr = GET_SWORD + GET_PC;
37044 READSX_LONG_F(adr, src)
37045 dst = AREGu32((Opcode >> 9) & 7);
37047 AREG((Opcode >> 9) & 7) = res;
37061 READSX_LONG_F(adr, src)
37062 dst = AREGu32((Opcode >> 9) & 7);
37064 AREG((Opcode >> 9) & 7) = res;
37076 dst = AREGu32((Opcode >> 9) & 7);
37078 AREG((Opcode >> 9) & 7) = res;
37079 #ifdef USE_CYCLONE_TIMING
37095 READSX_LONG_F(adr, src)
37096 dst = AREGu32((Opcode >> 9) & 7);
37098 AREG((Opcode >> 9) & 7) = res;
37112 READSX_LONG_F(adr, src)
37113 dst = AREGu32((Opcode >> 9) & 7);
37115 AREG((Opcode >> 9) & 7) = res;
37128 sft = (((Opcode >> 9) - 1) & 7) + 1;
37129 m68kcontext.io_cycle_counter -= sft * 2;
37130 src = (s32)DREGs8((Opcode >> 0) & 7);
37132 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37133 res = ((s32)src) >> sft;
37136 DREGu8((Opcode >> 0) & 7) = res;
37148 sft = (((Opcode >> 9) - 1) & 7) + 1;
37149 m68kcontext.io_cycle_counter -= sft * 2;
37150 src = (s32)DREGs16((Opcode >> 0) & 7);
37152 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37153 res = ((s32)src) >> sft;
37156 DREGu16((Opcode >> 0) & 7) = res;
37168 sft = (((Opcode >> 9) - 1) & 7) + 1;
37169 m68kcontext.io_cycle_counter -= sft * 2;
37170 src = (s32)DREGs32((Opcode >> 0) & 7);
37172 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37173 res = ((s32)src) >> sft;
37174 flag_N = res >> 24;
37176 DREGu32((Opcode >> 0) & 7) = res;
37188 sft = (((Opcode >> 9) - 1) & 7) + 1;
37189 m68kcontext.io_cycle_counter -= sft * 2;
37190 src = DREGu8((Opcode >> 0) & 7);
37191 flag_N = flag_V = 0;
37192 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37195 DREGu8((Opcode >> 0) & 7) = res;
37207 sft = (((Opcode >> 9) - 1) & 7) + 1;
37208 m68kcontext.io_cycle_counter -= sft * 2;
37209 src = DREGu16((Opcode >> 0) & 7);
37210 flag_N = flag_V = 0;
37211 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37214 DREGu16((Opcode >> 0) & 7) = res;
37226 sft = (((Opcode >> 9) - 1) & 7) + 1;
37227 m68kcontext.io_cycle_counter -= sft * 2;
37228 src = DREGu32((Opcode >> 0) & 7);
37229 flag_N = flag_V = 0;
37230 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37233 DREGu32((Opcode >> 0) & 7) = res;
37245 sft = (((Opcode >> 9) - 1) & 7) + 1;
37246 m68kcontext.io_cycle_counter -= sft * 2;
37247 src = DREGu8((Opcode >> 0) & 7);
37248 src |= (flag_X & M68K_SR_X) << 0;
37249 res = (src >> sft) | (src << (9 - sft));
37250 flag_X = flag_C = res >> 0;
37253 flag_NotZ = res & 0x000000FF;
37254 DREGu8((Opcode >> 0) & 7) = res;
37266 sft = (((Opcode >> 9) - 1) & 7) + 1;
37267 m68kcontext.io_cycle_counter -= sft * 2;
37268 src = DREGu16((Opcode >> 0) & 7);
37269 src |= (flag_X & M68K_SR_X) << 8;
37270 res = (src >> sft) | (src << (17 - sft));
37271 flag_X = flag_C = res >> 8;
37274 flag_NotZ = res & 0x0000FFFF;
37275 DREGu16((Opcode >> 0) & 7) = res;
37287 sft = (((Opcode >> 9) - 1) & 7) + 1;
37288 m68kcontext.io_cycle_counter -= sft * 2;
37289 src = DREGu32((Opcode >> 0) & 7);
37290 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37291 if (sft == 1) res = (src >> 1) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1)));
37292 else res = (src >> sft) | (src << (33 - sft)) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + sft)));
37295 flag_N = res >> 24;
37297 DREGu32((Opcode >> 0) & 7) = res;
37309 sft = (((Opcode >> 9) - 1) & 7) + 1;
37310 m68kcontext.io_cycle_counter -= sft * 2;
37311 src = DREGu8((Opcode >> 0) & 7);
37313 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37314 res = (src >> sft) | (src << (8 - sft));
37316 flag_NotZ = res & 0x000000FF;
37317 DREGu8((Opcode >> 0) & 7) = res;
37329 sft = (((Opcode >> 9) - 1) & 7) + 1;
37330 m68kcontext.io_cycle_counter -= sft * 2;
37331 src = DREGu16((Opcode >> 0) & 7);
37333 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37334 res = (src >> sft) | (src << (16 - sft));
37336 flag_NotZ = res & 0x0000FFFF;
37337 DREGu16((Opcode >> 0) & 7) = res;
37349 sft = (((Opcode >> 9) - 1) & 7) + 1;
37350 m68kcontext.io_cycle_counter -= sft * 2;
37351 src = DREGu32((Opcode >> 0) & 7);
37353 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37354 res = (src >> sft) | (src << (32 - sft));
37355 flag_N = res >> 24;
37357 DREGu32((Opcode >> 0) & 7) = res;
37369 sft = (((Opcode >> 9) - 1) & 7) + 1;
37370 m68kcontext.io_cycle_counter -= sft * 2;
37371 src = DREGu8((Opcode >> 0) & 7);
37374 flag_X = flag_C = src << (0 + sft);
37377 flag_NotZ = res & 0x000000FF;
37378 DREGu8((Opcode >> 0) & 7) = res;
37380 if ((sft > 7) && (src)) flag_V = M68K_SR_V;
37383 u32 msk = (((s32)0x80000000) >> (sft + 24)) & 0x000000FF;
37385 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37390 if (src) flag_V = M68K_SR_V;
37392 flag_X = flag_C = src << M68K_SR_C_SFT;
37394 DREGu8((Opcode >> 0) & 7) = res;
37408 sft = (((Opcode >> 9) - 1) & 7) + 1;
37409 m68kcontext.io_cycle_counter -= sft * 2;
37410 src = DREGu16((Opcode >> 0) & 7);
37411 flag_X = flag_C = src >> (8 - sft);
37414 flag_NotZ = res & 0x0000FFFF;
37415 DREGu16((Opcode >> 0) & 7) = res;
37418 u32 msk = (((s32)0x80000000) >> (sft + 16)) & 0x0000FFFF;
37420 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37433 sft = (((Opcode >> 9) - 1) & 7) + 1;
37434 m68kcontext.io_cycle_counter -= sft * 2;
37435 src = DREGu32((Opcode >> 0) & 7);
37436 flag_X = flag_C = src >> (24 - sft);
37438 flag_N = res >> 24;
37439 flag_NotZ = res & 0xFFFFFFFF;
37440 DREGu32((Opcode >> 0) & 7) = res;
37443 u32 msk = (((s32)0x80000000) >> (sft + 0)) & 0xFFFFFFFF;
37445 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37458 sft = (((Opcode >> 9) - 1) & 7) + 1;
37459 m68kcontext.io_cycle_counter -= sft * 2;
37460 src = DREGu8((Opcode >> 0) & 7);
37462 flag_X = flag_C = src << (0 + sft);
37465 flag_NotZ = res & 0x000000FF;
37466 DREGu8((Opcode >> 0) & 7) = res;
37478 sft = (((Opcode >> 9) - 1) & 7) + 1;
37479 m68kcontext.io_cycle_counter -= sft * 2;
37480 src = DREGu16((Opcode >> 0) & 7);
37482 flag_X = flag_C = src >> (8 - sft);
37485 flag_NotZ = res & 0x0000FFFF;
37486 DREGu16((Opcode >> 0) & 7) = res;
37498 sft = (((Opcode >> 9) - 1) & 7) + 1;
37499 m68kcontext.io_cycle_counter -= sft * 2;
37500 src = DREGu32((Opcode >> 0) & 7);
37502 flag_X = flag_C = src >> (24 - sft);
37504 flag_N = res >> 24;
37505 flag_NotZ = res & 0xFFFFFFFF;
37506 DREGu32((Opcode >> 0) & 7) = res;
37518 sft = (((Opcode >> 9) - 1) & 7) + 1;
37519 m68kcontext.io_cycle_counter -= sft * 2;
37520 src = DREGu8((Opcode >> 0) & 7);
37521 src |= (flag_X & M68K_SR_X) << 0;
37522 res = (src << sft) | (src >> (9 - sft));
37523 flag_X = flag_C = res >> 0;
37526 flag_NotZ = res & 0x000000FF;
37527 DREGu8((Opcode >> 0) & 7) = res;
37539 sft = (((Opcode >> 9) - 1) & 7) + 1;
37540 m68kcontext.io_cycle_counter -= sft * 2;
37541 src = DREGu16((Opcode >> 0) & 7);
37542 src |= (flag_X & M68K_SR_X) << 8;
37543 res = (src << sft) | (src >> (17 - sft));
37544 flag_X = flag_C = res >> 8;
37547 flag_NotZ = res & 0x0000FFFF;
37548 DREGu16((Opcode >> 0) & 7) = res;
37560 sft = (((Opcode >> 9) - 1) & 7) + 1;
37561 m68kcontext.io_cycle_counter -= sft * 2;
37562 src = DREGu32((Opcode >> 0) & 7);
37563 flag_C = src >> ((32 - M68K_SR_C_SFT) - sft);
37564 if (sft == 1) res = (src << 1) | ((flag_X & M68K_SR_X) >> ((M68K_SR_X_SFT + 1) - 1));
37565 else res = (src << sft) | (src >> (33 - sft)) | ((flag_X & M68K_SR_X) >> ((M68K_SR_X_SFT + 1) - sft));
37568 flag_N = res >> 24;
37570 DREGu32((Opcode >> 0) & 7) = res;
37582 sft = (((Opcode >> 9) - 1) & 7) + 1;
37583 m68kcontext.io_cycle_counter -= sft * 2;
37584 src = DREGu8((Opcode >> 0) & 7);
37586 flag_C = src << (0 + sft);
37587 res = (src << sft) | (src >> (8 - sft));
37589 flag_NotZ = res & 0x000000FF;
37590 DREGu8((Opcode >> 0) & 7) = res;
37602 sft = (((Opcode >> 9) - 1) & 7) + 1;
37603 m68kcontext.io_cycle_counter -= sft * 2;
37604 src = DREGu16((Opcode >> 0) & 7);
37606 flag_C = src >> (8 - sft);
37607 res = (src << sft) | (src >> (16 - sft));
37609 flag_NotZ = res & 0x0000FFFF;
37610 DREGu16((Opcode >> 0) & 7) = res;
37622 sft = (((Opcode >> 9) - 1) & 7) + 1;
37623 m68kcontext.io_cycle_counter -= sft * 2;
37624 src = DREGu32((Opcode >> 0) & 7);
37626 flag_C = src >> (24 - sft);
37627 res = (src << sft) | (src >> (32 - sft));
37628 flag_N = res >> 24;
37630 DREGu32((Opcode >> 0) & 7) = res;
37642 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37643 src = (s32)DREGs8((Opcode >> 0) & 7);
37646 m68kcontext.io_cycle_counter -= sft * 2;
37650 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37651 res = ((s32)src) >> sft;
37654 DREGu8((Opcode >> 0) & 7) = res;
37658 if (src & (1 << 7))
37660 flag_N = M68K_SR_N;
37663 flag_C = M68K_SR_C;
37664 flag_X = M68K_SR_X;
37666 DREGu8((Opcode >> 0) & 7) = res;
37676 DREGu8((Opcode >> 0) & 7) = res;
37695 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37696 src = (s32)DREGs16((Opcode >> 0) & 7);
37699 m68kcontext.io_cycle_counter -= sft * 2;
37703 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37704 res = ((s32)src) >> sft;
37707 DREGu16((Opcode >> 0) & 7) = res;
37711 if (src & (1 << 15))
37713 flag_N = M68K_SR_N;
37716 flag_C = M68K_SR_C;
37717 flag_X = M68K_SR_X;
37719 DREGu16((Opcode >> 0) & 7) = res;
37729 DREGu16((Opcode >> 0) & 7) = res;
37743 #ifdef USE_CYCLONE_TIMING
37753 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37754 src = (s32)DREGs32((Opcode >> 0) & 7);
37757 m68kcontext.io_cycle_counter -= sft * 2;
37761 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37762 res = ((s32)src) >> sft;
37763 flag_N = res >> 24;
37765 DREGu32((Opcode >> 0) & 7) = res;
37769 if (src & (1 << 31))
37771 flag_N = M68K_SR_N;
37774 flag_C = M68K_SR_C;
37775 flag_X = M68K_SR_X;
37777 DREGu32((Opcode >> 0) & 7) = res;
37787 DREGu32((Opcode >> 0) & 7) = res;
37793 flag_N = src >> 24;
37807 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37808 src = DREGu8((Opcode >> 0) & 7);
37811 m68kcontext.io_cycle_counter -= sft * 2;
37814 flag_N = flag_V = 0;
37815 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37818 DREGu8((Opcode >> 0) & 7) = res;
37822 flag_X = flag_C = 0;
37827 DREGu8((Opcode >> 0) & 7) = res;
37846 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37847 src = DREGu16((Opcode >> 0) & 7);
37850 m68kcontext.io_cycle_counter -= sft * 2;
37853 flag_N = flag_V = 0;
37854 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37857 DREGu16((Opcode >> 0) & 7) = res;
37861 flag_X = flag_C = 0;
37866 DREGu16((Opcode >> 0) & 7) = res;
37880 #ifdef USE_CYCLONE_TIMING
37890 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37891 src = DREGu32((Opcode >> 0) & 7);
37894 m68kcontext.io_cycle_counter -= sft * 2;
37897 flag_N = flag_V = 0;
37898 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37901 DREGu32((Opcode >> 0) & 7) = res;
37905 if (sft == 32) flag_C = src >> (31 - M68K_SR_C_SFT);
37912 DREGu32((Opcode >> 0) & 7) = res;
37918 flag_N = src >> 24;
37932 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37933 src = DREGu8((Opcode >> 0) & 7);
37936 m68kcontext.io_cycle_counter -= sft * 2;
37939 src |= (flag_X & M68K_SR_X) << 0;
37940 res = (src >> sft) | (src << (9 - sft));
37941 flag_X = flag_C = res >> 0;
37944 flag_NotZ = res & 0x000000FF;
37945 DREGu8((Opcode >> 0) & 7) = res;
37964 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37965 src = DREGu16((Opcode >> 0) & 7);
37968 m68kcontext.io_cycle_counter -= sft * 2;
37971 src |= (flag_X & M68K_SR_X) << 8;
37972 res = (src >> sft) | (src << (17 - sft));
37973 flag_X = flag_C = res >> 8;
37976 flag_NotZ = res & 0x0000FFFF;
37977 DREGu16((Opcode >> 0) & 7) = res;
37991 #ifdef USE_CYCLONE_TIMING
38001 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38002 src = DREGu32((Opcode >> 0) & 7);
38005 m68kcontext.io_cycle_counter -= sft * 2;
38010 if (sft == 1) res = (src >> 1) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1)));
38011 else res = (src >> sft) | (src << (33 - sft)) | (((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1))) >> (sft - 1));
38012 flag_X = (src >> (32 - sft)) << M68K_SR_X_SFT;
38017 flag_N = res >> 24;
38019 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_C = src << (M68K_SR_C_SFT - ((sft - 1) & 7));
38047 res = (src >> sft) | (src << (8 - sft));
38050 flag_NotZ = res & 0x000000FF;
38051 DREGu8((Opcode >> 0) & 7) = res;
38070 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38071 src = DREGu16((Opcode >> 0) & 7);
38074 m68kcontext.io_cycle_counter -= sft * 2;
38077 flag_C = (src >> ((sft - 1) & 15)) << M68K_SR_C_SFT;
38078 res = (src >> sft) | (src << (16 - sft));
38081 flag_NotZ = res & 0x0000FFFF;
38082 DREGu16((Opcode >> 0) & 7) = res;
38096 #ifdef USE_CYCLONE_TIMING
38106 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38107 src = DREGu32((Opcode >> 0) & 7);
38110 m68kcontext.io_cycle_counter -= sft * 2;
38113 flag_C = (src >> ((sft - 1) & 31)) << M68K_SR_C_SFT;
38114 res = (src >> sft) | (src << (32 - sft));
38116 flag_N = res >> 24;
38118 DREGu32((Opcode >> 0) & 7) = res;
38124 flag_N = src >> 24;
38138 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38139 src = DREGu8((Opcode >> 0) & 7);
38142 m68kcontext.io_cycle_counter -= sft * 2;
38145 flag_X = flag_C = (src << sft) >> 0;
38146 res = (src << sft) & 0x000000FF;
38149 DREGu8((Opcode >> 0) & 7) = res;
38152 u32 msk = (((s32)0x80000000) >> (sft + 24)) & 0x000000FF;
38154 if ((src) && (src != msk)) flag_V = M68K_SR_V;
38159 if (sft == 256) flag_C = src << M68K_SR_C_SFT;
38162 if (src) flag_V = M68K_SR_V;
38165 DREGu8((Opcode >> 0) & 7) = res;
38186 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38187 src = DREGu16((Opcode >> 0) & 7);
38190 m68kcontext.io_cycle_counter -= sft * 2;
38193 flag_X = flag_C = (src << sft) >> 8;
38194 res = (src << sft) & 0x0000FFFF;
38197 DREGu16((Opcode >> 0) & 7) = res;
38200 u32 msk = (((s32)0x80000000) >> (sft + 16)) & 0x0000FFFF;
38202 if ((src) && (src != msk)) flag_V = M68K_SR_V;
38207 if (sft == 65536) flag_C = src << M68K_SR_C_SFT;
38210 if (src) flag_V = M68K_SR_V;
38213 DREGu16((Opcode >> 0) & 7) = res;
38229 #ifdef USE_CYCLONE_TIMING
38239 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38240 src = DREGu32((Opcode >> 0) & 7);
38243 m68kcontext.io_cycle_counter -= sft * 2;
38246 flag_X = flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38248 flag_N = res >> 24;
38250 DREGu32((Opcode >> 0) & 7) = res;
38253 u32 msk = (((s32)0x80000000) >> (sft + 0)) & 0xFFFFFFFF;
38255 if ((src) && (src != msk)) flag_V = M68K_SR_V;
38260 if (sft == 0) flag_C = src << M68K_SR_C_SFT;
38263 if (src) flag_V = M68K_SR_V;
38266 DREGu32((Opcode >> 0) & 7) = res;
38274 flag_N = src >> 24;
38288 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38289 src = DREGu8((Opcode >> 0) & 7);
38292 m68kcontext.io_cycle_counter -= sft * 2;
38295 flag_X = flag_C = (src << sft) >> 0;
38296 res = (src << sft) & 0x000000FF;
38300 DREGu8((Opcode >> 0) & 7) = res;
38304 flag_X = flag_C = 0;
38309 DREGu8((Opcode >> 0) & 7) = res;
38328 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38329 src = DREGu16((Opcode >> 0) & 7);
38332 m68kcontext.io_cycle_counter -= sft * 2;
38335 flag_X = flag_C = (src << sft) >> 8;
38336 res = (src << sft) & 0x0000FFFF;
38340 DREGu16((Opcode >> 0) & 7) = res;
38344 flag_X = flag_C = 0;
38349 DREGu16((Opcode >> 0) & 7) = res;
38363 #ifdef USE_CYCLONE_TIMING
38373 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38374 src = DREGu32((Opcode >> 0) & 7);
38377 m68kcontext.io_cycle_counter -= sft * 2;
38380 flag_X = flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38383 flag_N = res >> 24;
38385 DREGu32((Opcode >> 0) & 7) = res;
38389 if (sft == 32) flag_C = src << M68K_SR_C_SFT;
38396 DREGu32((Opcode >> 0) & 7) = res;
38402 flag_N = src >> 24;
38416 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38417 src = DREGu8((Opcode >> 0) & 7);
38420 m68kcontext.io_cycle_counter -= sft * 2;
38423 src |= (flag_X & M68K_SR_X) << 0;
38424 res = (src << sft) | (src >> (9 - sft));
38425 flag_X = flag_C = res >> 0;
38428 flag_NotZ = res & 0x000000FF;
38429 DREGu8((Opcode >> 0) & 7) = res;
38448 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38449 src = DREGu16((Opcode >> 0) & 7);
38452 m68kcontext.io_cycle_counter -= sft * 2;
38455 src |= (flag_X & M68K_SR_X) << 8;
38456 res = (src << sft) | (src >> (17 - sft));
38457 flag_X = flag_C = res >> 8;
38460 flag_NotZ = res & 0x0000FFFF;
38461 DREGu16((Opcode >> 0) & 7) = res;
38475 #ifdef USE_CYCLONE_TIMING
38485 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38486 src = DREGu32((Opcode >> 0) & 7);
38489 m68kcontext.io_cycle_counter -= sft * 2;
38494 if (sft == 1) res = (src << 1) | ((flag_X >> ((M68K_SR_X_SFT + 1) - 1)) & 1);
38495 else res = (src << sft) | (src >> (33 - sft)) | (((flag_X >> ((M68K_SR_X_SFT + 1) - 1)) & 1) << (sft - 1));
38496 flag_X = (src >> (32 - sft)) << M68K_SR_X_SFT;
38501 flag_N = res >> 24;
38503 DREGu32((Opcode >> 0) & 7) = res;
38509 flag_N = src >> 24;
38523 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38524 src = DREGu8((Opcode >> 0) & 7);
38527 m68kcontext.io_cycle_counter -= sft * 2;
38530 flag_C = (src << sft) >> 0;
38531 res = ((src << sft) | (src >> (8 - sft))) & 0x000000FF;
38535 DREGu8((Opcode >> 0) & 7) = res;
38540 flag_C = src << M68K_SR_C_SFT;
38561 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38562 src = DREGu16((Opcode >> 0) & 7);
38565 m68kcontext.io_cycle_counter -= sft * 2;
38568 flag_C = (src << sft) >> 8;
38569 res = ((src << sft) | (src >> (16 - sft))) & 0x0000FFFF;
38573 DREGu16((Opcode >> 0) & 7) = res;
38578 flag_C = src << M68K_SR_C_SFT;
38594 #ifdef USE_CYCLONE_TIMING
38604 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38605 src = DREGu32((Opcode >> 0) & 7);
38608 m68kcontext.io_cycle_counter -= sft * 2;
38611 flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38612 res = (src << sft) | (src >> (32 - sft));
38614 flag_N = res >> 24;
38616 DREGu32((Opcode >> 0) & 7) = res;
38621 flag_C = src << M68K_SR_C_SFT;
38622 flag_N = src >> 24;
38629 flag_N = src >> 24;
38641 adr = AREG((Opcode >> 0) & 7);
38643 READ_WORD_F(adr, src)
38645 flag_X = flag_C = src << M68K_SR_C_SFT;
38646 res = (src >> 1) | (src & (1 << 15));
38649 WRITE_WORD_F(adr, res)
38660 adr = AREG((Opcode >> 0) & 7);
38661 AREG((Opcode >> 0) & 7) += 2;
38663 READ_WORD_F(adr, src)
38665 flag_X = flag_C = src << M68K_SR_C_SFT;
38666 res = (src >> 1) | (src & (1 << 15));
38669 WRITE_WORD_F(adr, res)
38680 adr = AREG((Opcode >> 0) & 7) - 2;
38681 AREG((Opcode >> 0) & 7) = adr;
38683 READ_WORD_F(adr, src)
38685 flag_X = flag_C = src << M68K_SR_C_SFT;
38686 res = (src >> 1) | (src & (1 << 15));
38689 WRITE_WORD_F(adr, res)
38701 adr += AREG((Opcode >> 0) & 7);
38703 READ_WORD_F(adr, src)
38705 flag_X = flag_C = src << M68K_SR_C_SFT;
38706 res = (src >> 1) | (src & (1 << 15));
38709 WRITE_WORD_F(adr, res)
38720 adr = AREG((Opcode >> 0) & 7);
38723 READ_WORD_F(adr, src)
38725 flag_X = flag_C = src << M68K_SR_C_SFT;
38726 res = (src >> 1) | (src & (1 << 15));
38729 WRITE_WORD_F(adr, res)
38742 READ_WORD_F(adr, src)
38744 flag_X = flag_C = src << M68K_SR_C_SFT;
38745 res = (src >> 1) | (src & (1 << 15));
38748 WRITE_WORD_F(adr, res)
38761 READ_WORD_F(adr, src)
38763 flag_X = flag_C = src << M68K_SR_C_SFT;
38764 res = (src >> 1) | (src & (1 << 15));
38767 WRITE_WORD_F(adr, res)
38781 READ_WORD_F(adr, src)
38783 flag_X = flag_C = src << M68K_SR_C_SFT;
38784 res = (src >> 1) | (src & (1 << 15));
38787 WRITE_WORD_F(adr, res)
38801 READ_WORD_F(adr, src)
38803 flag_X = flag_C = src << M68K_SR_C_SFT;
38804 res = (src >> 1) | (src & (1 << 15));
38807 WRITE_WORD_F(adr, res)
38818 adr = AREG((Opcode >> 0) & 7);
38820 READ_WORD_F(adr, src)
38821 flag_N = flag_V = 0;
38822 flag_X = flag_C = src << M68K_SR_C_SFT;
38825 WRITE_WORD_F(adr, res)
38836 adr = AREG((Opcode >> 0) & 7);
38837 AREG((Opcode >> 0) & 7) += 2;
38839 READ_WORD_F(adr, src)
38840 flag_N = flag_V = 0;
38841 flag_X = flag_C = src << M68K_SR_C_SFT;
38844 WRITE_WORD_F(adr, res)
38855 adr = AREG((Opcode >> 0) & 7) - 2;
38856 AREG((Opcode >> 0) & 7) = adr;
38858 READ_WORD_F(adr, src)
38859 flag_N = flag_V = 0;
38860 flag_X = flag_C = src << M68K_SR_C_SFT;
38863 WRITE_WORD_F(adr, res)
38875 adr += AREG((Opcode >> 0) & 7);
38877 READ_WORD_F(adr, src)
38878 flag_N = flag_V = 0;
38879 flag_X = flag_C = src << M68K_SR_C_SFT;
38882 WRITE_WORD_F(adr, res)
38893 adr = AREG((Opcode >> 0) & 7);
38896 READ_WORD_F(adr, src)
38897 flag_N = flag_V = 0;
38898 flag_X = flag_C = src << M68K_SR_C_SFT;
38901 WRITE_WORD_F(adr, res)
38914 READ_WORD_F(adr, src)
38915 flag_N = flag_V = 0;
38916 flag_X = flag_C = src << M68K_SR_C_SFT;
38919 WRITE_WORD_F(adr, res)
38932 READ_WORD_F(adr, src)
38933 flag_N = flag_V = 0;
38934 flag_X = flag_C = src << M68K_SR_C_SFT;
38937 WRITE_WORD_F(adr, res)
38951 READ_WORD_F(adr, src)
38952 flag_N = flag_V = 0;
38953 flag_X = flag_C = src << M68K_SR_C_SFT;
38956 WRITE_WORD_F(adr, res)
38970 READ_WORD_F(adr, src)
38971 flag_N = flag_V = 0;
38972 flag_X = flag_C = src << M68K_SR_C_SFT;
38975 WRITE_WORD_F(adr, res)
38986 adr = AREG((Opcode >> 0) & 7);
38988 READ_WORD_F(adr, src)
38990 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38991 flag_C = flag_X = src << M68K_SR_C_SFT;
38994 WRITE_WORD_F(adr, res)
39005 adr = AREG((Opcode >> 0) & 7);
39006 AREG((Opcode >> 0) & 7) += 2;
39008 READ_WORD_F(adr, src)
39010 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39011 flag_C = flag_X = src << M68K_SR_C_SFT;
39014 WRITE_WORD_F(adr, res)
39025 adr = AREG((Opcode >> 0) & 7) - 2;
39026 AREG((Opcode >> 0) & 7) = adr;
39028 READ_WORD_F(adr, src)
39030 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39031 flag_C = flag_X = src << M68K_SR_C_SFT;
39034 WRITE_WORD_F(adr, res)
39046 adr += AREG((Opcode >> 0) & 7);
39048 READ_WORD_F(adr, src)
39050 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39051 flag_C = flag_X = src << M68K_SR_C_SFT;
39054 WRITE_WORD_F(adr, res)
39065 adr = AREG((Opcode >> 0) & 7);
39068 READ_WORD_F(adr, src)
39070 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39071 flag_C = flag_X = src << M68K_SR_C_SFT;
39074 WRITE_WORD_F(adr, res)
39087 READ_WORD_F(adr, src)
39089 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39090 flag_C = flag_X = src << M68K_SR_C_SFT;
39093 WRITE_WORD_F(adr, res)
39106 READ_WORD_F(adr, src)
39108 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39109 flag_C = flag_X = src << M68K_SR_C_SFT;
39112 WRITE_WORD_F(adr, res)
39126 READ_WORD_F(adr, src)
39128 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39129 flag_C = flag_X = src << M68K_SR_C_SFT;
39132 WRITE_WORD_F(adr, res)
39146 READ_WORD_F(adr, src)
39148 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39149 flag_C = flag_X = src << M68K_SR_C_SFT;
39152 WRITE_WORD_F(adr, res)
39163 adr = AREG((Opcode >> 0) & 7);
39165 READ_WORD_F(adr, src)
39167 flag_C = src << M68K_SR_C_SFT;
39168 res = (src >> 1) | (src << 15);
39170 flag_NotZ = res & 0x0000FFFF;
39171 WRITE_WORD_F(adr, res)
39182 adr = AREG((Opcode >> 0) & 7);
39183 AREG((Opcode >> 0) & 7) += 2;
39185 READ_WORD_F(adr, src)
39187 flag_C = src << M68K_SR_C_SFT;
39188 res = (src >> 1) | (src << 15);
39190 flag_NotZ = res & 0x0000FFFF;
39191 WRITE_WORD_F(adr, res)
39202 adr = AREG((Opcode >> 0) & 7) - 2;
39203 AREG((Opcode >> 0) & 7) = adr;
39205 READ_WORD_F(adr, src)
39207 flag_C = src << M68K_SR_C_SFT;
39208 res = (src >> 1) | (src << 15);
39210 flag_NotZ = res & 0x0000FFFF;
39211 WRITE_WORD_F(adr, res)
39223 adr += AREG((Opcode >> 0) & 7);
39225 READ_WORD_F(adr, src)
39227 flag_C = src << M68K_SR_C_SFT;
39228 res = (src >> 1) | (src << 15);
39230 flag_NotZ = res & 0x0000FFFF;
39231 WRITE_WORD_F(adr, res)
39242 adr = AREG((Opcode >> 0) & 7);
39245 READ_WORD_F(adr, src)
39247 flag_C = src << M68K_SR_C_SFT;
39248 res = (src >> 1) | (src << 15);
39250 flag_NotZ = res & 0x0000FFFF;
39251 WRITE_WORD_F(adr, res)
39264 READ_WORD_F(adr, src)
39266 flag_C = src << M68K_SR_C_SFT;
39267 res = (src >> 1) | (src << 15);
39269 flag_NotZ = res & 0x0000FFFF;
39270 WRITE_WORD_F(adr, res)
39283 READ_WORD_F(adr, src)
39285 flag_C = src << M68K_SR_C_SFT;
39286 res = (src >> 1) | (src << 15);
39288 flag_NotZ = res & 0x0000FFFF;
39289 WRITE_WORD_F(adr, res)
39303 READ_WORD_F(adr, src)
39305 flag_C = src << M68K_SR_C_SFT;
39306 res = (src >> 1) | (src << 15);
39308 flag_NotZ = res & 0x0000FFFF;
39309 WRITE_WORD_F(adr, res)
39323 READ_WORD_F(adr, src)
39325 flag_C = src << M68K_SR_C_SFT;
39326 res = (src >> 1) | (src << 15);
39328 flag_NotZ = res & 0x0000FFFF;
39329 WRITE_WORD_F(adr, res)
39340 adr = AREG((Opcode >> 0) & 7);
39342 READ_WORD_F(adr, src)
39343 flag_X = flag_C = src >> 7;
39345 flag_V = (src ^ res) >> 8;
39347 flag_NotZ = res & 0x0000FFFF;
39348 WRITE_WORD_F(adr, res)
39359 adr = AREG((Opcode >> 0) & 7);
39360 AREG((Opcode >> 0) & 7) += 2;
39362 READ_WORD_F(adr, src)
39363 flag_X = flag_C = src >> 7;
39365 flag_V = (src ^ res) >> 8;
39367 flag_NotZ = res & 0x0000FFFF;
39368 WRITE_WORD_F(adr, res)
39379 adr = AREG((Opcode >> 0) & 7) - 2;
39380 AREG((Opcode >> 0) & 7) = adr;
39382 READ_WORD_F(adr, src)
39383 flag_X = flag_C = src >> 7;
39385 flag_V = (src ^ res) >> 8;
39387 flag_NotZ = res & 0x0000FFFF;
39388 WRITE_WORD_F(adr, res)
39400 adr += AREG((Opcode >> 0) & 7);
39402 READ_WORD_F(adr, src)
39403 flag_X = flag_C = src >> 7;
39405 flag_V = (src ^ res) >> 8;
39407 flag_NotZ = res & 0x0000FFFF;
39408 WRITE_WORD_F(adr, res)
39419 adr = AREG((Opcode >> 0) & 7);
39422 READ_WORD_F(adr, src)
39423 flag_X = flag_C = src >> 7;
39425 flag_V = (src ^ res) >> 8;
39427 flag_NotZ = res & 0x0000FFFF;
39428 WRITE_WORD_F(adr, res)
39441 READ_WORD_F(adr, src)
39442 flag_X = flag_C = src >> 7;
39444 flag_V = (src ^ res) >> 8;
39446 flag_NotZ = res & 0x0000FFFF;
39447 WRITE_WORD_F(adr, res)
39460 READ_WORD_F(adr, src)
39461 flag_X = flag_C = src >> 7;
39463 flag_V = (src ^ res) >> 8;
39465 flag_NotZ = res & 0x0000FFFF;
39466 WRITE_WORD_F(adr, res)
39480 READ_WORD_F(adr, src)
39481 flag_X = flag_C = src >> 7;
39483 flag_V = (src ^ res) >> 8;
39485 flag_NotZ = res & 0x0000FFFF;
39486 WRITE_WORD_F(adr, res)
39500 READ_WORD_F(adr, src)
39501 flag_X = flag_C = src >> 7;
39503 flag_V = (src ^ res) >> 8;
39505 flag_NotZ = res & 0x0000FFFF;
39506 WRITE_WORD_F(adr, res)
39517 adr = AREG((Opcode >> 0) & 7);
39519 READ_WORD_F(adr, src)
39521 flag_X = flag_C = src >> 7;
39524 flag_NotZ = res & 0x0000FFFF;
39525 WRITE_WORD_F(adr, res)
39536 adr = AREG((Opcode >> 0) & 7);
39537 AREG((Opcode >> 0) & 7) += 2;
39539 READ_WORD_F(adr, src)
39541 flag_X = flag_C = src >> 7;
39544 flag_NotZ = res & 0x0000FFFF;
39545 WRITE_WORD_F(adr, res)
39556 adr = AREG((Opcode >> 0) & 7) - 2;
39557 AREG((Opcode >> 0) & 7) = adr;
39559 READ_WORD_F(adr, src)
39561 flag_X = flag_C = src >> 7;
39564 flag_NotZ = res & 0x0000FFFF;
39565 WRITE_WORD_F(adr, res)
39577 adr += AREG((Opcode >> 0) & 7);
39579 READ_WORD_F(adr, src)
39581 flag_X = flag_C = src >> 7;
39584 flag_NotZ = res & 0x0000FFFF;
39585 WRITE_WORD_F(adr, res)
39596 adr = AREG((Opcode >> 0) & 7);
39599 READ_WORD_F(adr, src)
39601 flag_X = flag_C = src >> 7;
39604 flag_NotZ = res & 0x0000FFFF;
39605 WRITE_WORD_F(adr, res)
39618 READ_WORD_F(adr, src)
39620 flag_X = flag_C = src >> 7;
39623 flag_NotZ = res & 0x0000FFFF;
39624 WRITE_WORD_F(adr, res)
39637 READ_WORD_F(adr, src)
39639 flag_X = flag_C = src >> 7;
39642 flag_NotZ = res & 0x0000FFFF;
39643 WRITE_WORD_F(adr, res)
39657 READ_WORD_F(adr, src)
39659 flag_X = flag_C = src >> 7;
39662 flag_NotZ = res & 0x0000FFFF;
39663 WRITE_WORD_F(adr, res)
39677 READ_WORD_F(adr, src)
39679 flag_X = flag_C = src >> 7;
39682 flag_NotZ = res & 0x0000FFFF;
39683 WRITE_WORD_F(adr, res)
39694 adr = AREG((Opcode >> 0) & 7);
39696 READ_WORD_F(adr, src)
39698 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39699 flag_X = flag_C = src >> 7;
39701 flag_NotZ = res & 0x0000FFFF;
39702 WRITE_WORD_F(adr, res)
39713 adr = AREG((Opcode >> 0) & 7);
39714 AREG((Opcode >> 0) & 7) += 2;
39716 READ_WORD_F(adr, src)
39718 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39719 flag_X = flag_C = src >> 7;
39721 flag_NotZ = res & 0x0000FFFF;
39722 WRITE_WORD_F(adr, res)
39733 adr = AREG((Opcode >> 0) & 7) - 2;
39734 AREG((Opcode >> 0) & 7) = adr;
39736 READ_WORD_F(adr, src)
39738 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39739 flag_X = flag_C = src >> 7;
39741 flag_NotZ = res & 0x0000FFFF;
39742 WRITE_WORD_F(adr, res)
39754 adr += AREG((Opcode >> 0) & 7);
39756 READ_WORD_F(adr, src)
39758 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39759 flag_X = flag_C = src >> 7;
39761 flag_NotZ = res & 0x0000FFFF;
39762 WRITE_WORD_F(adr, res)
39773 adr = AREG((Opcode >> 0) & 7);
39776 READ_WORD_F(adr, src)
39778 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39779 flag_X = flag_C = src >> 7;
39781 flag_NotZ = res & 0x0000FFFF;
39782 WRITE_WORD_F(adr, res)
39795 READ_WORD_F(adr, src)
39797 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39798 flag_X = flag_C = src >> 7;
39800 flag_NotZ = res & 0x0000FFFF;
39801 WRITE_WORD_F(adr, res)
39814 READ_WORD_F(adr, src)
39816 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39817 flag_X = flag_C = src >> 7;
39819 flag_NotZ = res & 0x0000FFFF;
39820 WRITE_WORD_F(adr, res)
39834 READ_WORD_F(adr, src)
39836 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39837 flag_X = flag_C = src >> 7;
39839 flag_NotZ = res & 0x0000FFFF;
39840 WRITE_WORD_F(adr, res)
39854 READ_WORD_F(adr, src)
39856 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39857 flag_X = flag_C = src >> 7;
39859 flag_NotZ = res & 0x0000FFFF;
39860 WRITE_WORD_F(adr, res)
39871 adr = AREG((Opcode >> 0) & 7);
39873 READ_WORD_F(adr, src)
39876 res = (src << 1) | (src >> 15);
39878 flag_NotZ = res & 0x0000FFFF;
39879 WRITE_WORD_F(adr, res)
39890 adr = AREG((Opcode >> 0) & 7);
39891 AREG((Opcode >> 0) & 7) += 2;
39893 READ_WORD_F(adr, src)
39896 res = (src << 1) | (src >> 15);
39898 flag_NotZ = res & 0x0000FFFF;
39899 WRITE_WORD_F(adr, res)
39910 adr = AREG((Opcode >> 0) & 7) - 2;
39911 AREG((Opcode >> 0) & 7) = adr;
39913 READ_WORD_F(adr, src)
39916 res = (src << 1) | (src >> 15);
39918 flag_NotZ = res & 0x0000FFFF;
39919 WRITE_WORD_F(adr, res)
39931 adr += AREG((Opcode >> 0) & 7);
39933 READ_WORD_F(adr, src)
39936 res = (src << 1) | (src >> 15);
39938 flag_NotZ = res & 0x0000FFFF;
39939 WRITE_WORD_F(adr, res)
39950 adr = AREG((Opcode >> 0) & 7);
39953 READ_WORD_F(adr, src)
39956 res = (src << 1) | (src >> 15);
39958 flag_NotZ = res & 0x0000FFFF;
39959 WRITE_WORD_F(adr, res)
39972 READ_WORD_F(adr, src)
39975 res = (src << 1) | (src >> 15);
39977 flag_NotZ = res & 0x0000FFFF;
39978 WRITE_WORD_F(adr, res)
39991 READ_WORD_F(adr, src)
39994 res = (src << 1) | (src >> 15);
39996 flag_NotZ = res & 0x0000FFFF;
39997 WRITE_WORD_F(adr, res)
40011 READ_WORD_F(adr, src)
40014 res = (src << 1) | (src >> 15);
40016 flag_NotZ = res & 0x0000FFFF;
40017 WRITE_WORD_F(adr, res)
40031 READ_WORD_F(adr, src)
40034 res = (src << 1) | (src >> 15);
40036 flag_NotZ = res & 0x0000FFFF;
40037 WRITE_WORD_F(adr, res)
40042 #ifdef PICODRIVE_HACK
40044 #define UPDATE_IDLE_COUNT { \
40045 extern int idle_hit_counter; \
40046 idle_hit_counter++; \
40049 #define UPDATE_IDLE_COUNT
40053 OPCODE(0x6001_idle)
40055 #ifdef FAMEC_CHECK_BRANCHES
40056 u32 newPC = GET_PC;
40060 CHECK_BRANCH_EXCEPTION(offs)
40062 PC += ((s8)(Opcode & 0xFE)) >> 1;
40069 OPCODE(0x6601_idle)
40074 PC += ((s8)(Opcode & 0xFE)) >> 1;
40081 OPCODE(0x6701_idle)
40086 PC += ((s8)(Opcode & 0xFE)) >> 1;
40094 extern int SekIsIdleReady(void);
40095 extern int SekIsIdleCode(unsigned short *dst, int bytes);
40096 extern int SekRegisterIdlePatch(unsigned int pc, int oldop, int newop, void *ctx);
40098 OPCODE(idle_detector_bcc8)
40100 int frame_count, cond_true, bytes, ret, newop;
40103 dest_pc = PC + (((s8)(Opcode & 0xFE)) >> 1);
40105 if (!SekIsIdleReady())
40108 bytes = 0 - (s8)(Opcode & 0xFE) - 2;
40109 ret = SekIsIdleCode(dest_pc, bytes);
40110 newop = (Opcode & 0xfe) | 0x7100;
40111 if (!ret) newop |= 0x200;
40112 if ( Opcode & 0x0100) newop |= 0x400; // beq
40113 if (!(Opcode & 0x0f00)) newop |= 0xc00; // bra
40115 ret = SekRegisterIdlePatch(GET_PC - 2, Opcode, newop, &m68kcontext);
40118 case 0: PC[-1] = newop; break;
40120 case 2: JumpTable[Opcode] = (Opcode & 0x0f00) ?
40121 ((Opcode & 0x0100) ? CAST_OP(0x6701) : CAST_OP(0x6601)) :
40122 CAST_OP(0x6001); break;
40126 if ((Opcode & 0xff00) == 0x6000) cond_true = 1;
40127 else cond_true = (Opcode & 0x0100) ? !flag_NotZ : flag_NotZ; // beq?
40131 m68kcontext.io_cycle_counter -= 2;
40136 #endif // PICODRIVE_HACK