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 res = DREGu8((Opcode >> 0) & 7);
16940 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
16944 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
16946 DREGu8((Opcode >> 0) & 7) = res;
16948 flag_X = flag_C = M68K_SR_C;
16950 else flag_X = flag_C = 0;
16961 adr = AREG((Opcode >> 0) & 7);
16963 READ_BYTE_F(adr, res)
16964 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
16968 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
16970 WRITE_BYTE_F(adr, res)
16972 flag_X = flag_C = M68K_SR_C;
16974 else flag_X = flag_C = 0;
16986 adr = AREG((Opcode >> 0) & 7);
16987 AREG((Opcode >> 0) & 7) += 1;
16989 READ_BYTE_F(adr, res)
16990 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
16994 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
16996 WRITE_BYTE_F(adr, res)
16998 flag_X = flag_C = M68K_SR_C;
17000 else flag_X = flag_C = 0;
17012 adr = AREG((Opcode >> 0) & 7) - 1;
17013 AREG((Opcode >> 0) & 7) = adr;
17015 READ_BYTE_F(adr, res)
17016 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17020 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17022 WRITE_BYTE_F(adr, res)
17024 flag_X = flag_C = M68K_SR_C;
17026 else flag_X = flag_C = 0;
17039 adr += AREG((Opcode >> 0) & 7);
17041 READ_BYTE_F(adr, res)
17042 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17046 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17048 WRITE_BYTE_F(adr, res)
17050 flag_X = flag_C = M68K_SR_C;
17052 else flag_X = flag_C = 0;
17064 adr = AREG((Opcode >> 0) & 7);
17067 READ_BYTE_F(adr, res)
17068 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17072 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17074 WRITE_BYTE_F(adr, res)
17076 flag_X = flag_C = M68K_SR_C;
17078 else flag_X = flag_C = 0;
17092 READ_BYTE_F(adr, res)
17093 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17097 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17099 WRITE_BYTE_F(adr, res)
17101 flag_X = flag_C = M68K_SR_C;
17103 else flag_X = flag_C = 0;
17117 READ_BYTE_F(adr, res)
17118 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17122 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17124 WRITE_BYTE_F(adr, res)
17126 flag_X = flag_C = M68K_SR_C;
17128 else flag_X = flag_C = 0;
17143 READ_BYTE_F(adr, res)
17144 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17148 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17150 WRITE_BYTE_F(adr, res)
17152 flag_X = flag_C = M68K_SR_C;
17154 else flag_X = flag_C = 0;
17169 READ_BYTE_F(adr, res)
17170 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17174 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17176 WRITE_BYTE_F(adr, res)
17178 flag_X = flag_C = M68K_SR_C;
17180 else flag_X = flag_C = 0;
17192 adr = AREG((Opcode >> 0) & 7);
17206 adr += AREG((Opcode >> 0) & 7);
17219 adr = AREG((Opcode >> 0) & 7);
17259 adr = GET_SWORD + GET_PC;
17287 res = DREGu32((Opcode >> 0) & 7);
17288 res = (res >> 16) | (res << 16);
17292 flag_N = res >> 24;
17293 DREGu32((Opcode >> 0) & 7) = res;
17306 adr = AREG((Opcode >> 0) & 7);
17307 psrc = &DREGu32(0);
17314 WRITE_WORD_F(adr, *psrc)
17318 } while (res >>= 1);
17320 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17321 #ifdef USE_CYCLONE_TIMING
17337 adr = AREG((Opcode >> 0) & 7);
17338 psrc = &AREGu32(7);
17346 WRITE_WORD_F(adr, *psrc)
17349 } while (res >>= 1);
17350 AREG((Opcode >> 0) & 7) = adr;
17352 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17366 adr += AREG((Opcode >> 0) & 7);
17367 psrc = &DREGu32(0);
17374 WRITE_WORD_F(adr, *psrc)
17378 } while (res >>= 1);
17380 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17381 #ifdef USE_CYCLONE_TIMING
17397 adr = AREG((Opcode >> 0) & 7);
17399 psrc = &DREGu32(0);
17406 WRITE_WORD_F(adr, *psrc)
17410 } while (res >>= 1);
17412 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17413 #ifdef USE_CYCLONE_TIMING
17430 psrc = &DREGu32(0);
17437 WRITE_WORD_F(adr, *psrc)
17441 } while (res >>= 1);
17443 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17444 #ifdef USE_CYCLONE_TIMING
17461 psrc = &DREGu32(0);
17468 WRITE_WORD_F(adr, *psrc)
17472 } while (res >>= 1);
17474 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17475 #ifdef USE_CYCLONE_TIMING
17492 psrc = &AREGu32(7);
17500 WRITE_WORD_F(adr, *psrc)
17503 } while (res >>= 1);
17506 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17519 adr = AREG((Opcode >> 0) & 7);
17520 psrc = &DREGu32(0);
17527 WRITE_LONG_F(adr, *psrc)
17531 } while (res >>= 1);
17533 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17534 #ifdef USE_CYCLONE_TIMING
17550 adr = AREG((Opcode >> 0) & 7);
17551 psrc = &AREGu32(7);
17559 WRITE_LONG_DEC_F(adr, *psrc)
17562 } while (res >>= 1);
17563 AREG((Opcode >> 0) & 7) = adr;
17565 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17579 adr += AREG((Opcode >> 0) & 7);
17580 psrc = &DREGu32(0);
17587 WRITE_LONG_F(adr, *psrc)
17591 } while (res >>= 1);
17593 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17594 #ifdef USE_CYCLONE_TIMING
17610 adr = AREG((Opcode >> 0) & 7);
17612 psrc = &DREGu32(0);
17619 WRITE_LONG_F(adr, *psrc)
17623 } while (res >>= 1);
17625 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17626 #ifdef USE_CYCLONE_TIMING
17643 psrc = &DREGu32(0);
17650 WRITE_LONG_F(adr, *psrc)
17654 } while (res >>= 1);
17656 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17657 #ifdef USE_CYCLONE_TIMING
17674 psrc = &DREGu32(0);
17681 WRITE_LONG_F(adr, *psrc)
17685 } while (res >>= 1);
17687 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17688 #ifdef USE_CYCLONE_TIMING
17705 psrc = &AREGu32(7);
17713 WRITE_LONG_DEC_F(adr, *psrc)
17716 } while (res >>= 1);
17719 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17729 res = (s32)DREGs8((Opcode >> 0) & 7);
17734 DREGu16((Opcode >> 0) & 7) = res;
17744 res = (s32)DREGs16((Opcode >> 0) & 7);
17749 DREGu32((Opcode >> 0) & 7) = res;
17759 res = DREGu8((Opcode >> 0) & 7);
17773 adr = AREG((Opcode >> 0) & 7);
17775 READ_BYTE_F(adr, res)
17790 adr = AREG((Opcode >> 0) & 7);
17791 AREG((Opcode >> 0) & 7) += 1;
17793 READ_BYTE_F(adr, res)
17808 adr = AREG((Opcode >> 0) & 7) - 1;
17809 AREG((Opcode >> 0) & 7) = adr;
17811 READ_BYTE_F(adr, res)
17827 adr += AREG((Opcode >> 0) & 7);
17829 READ_BYTE_F(adr, res)
17844 adr = AREG((Opcode >> 0) & 7);
17847 READ_BYTE_F(adr, res)
17864 READ_BYTE_F(adr, res)
17881 READ_BYTE_F(adr, res)
17899 READ_BYTE_F(adr, res)
17917 READ_BYTE_F(adr, res)
17932 res = DREGu16((Opcode >> 0) & 7);
17946 adr = AREG((Opcode >> 0) & 7);
17948 READ_WORD_F(adr, res)
17963 adr = AREG((Opcode >> 0) & 7);
17964 AREG((Opcode >> 0) & 7) += 2;
17966 READ_WORD_F(adr, res)
17981 adr = AREG((Opcode >> 0) & 7) - 2;
17982 AREG((Opcode >> 0) & 7) = adr;
17984 READ_WORD_F(adr, res)
18000 adr += AREG((Opcode >> 0) & 7);
18002 READ_WORD_F(adr, res)
18017 adr = AREG((Opcode >> 0) & 7);
18020 READ_WORD_F(adr, res)
18037 READ_WORD_F(adr, res)
18054 READ_WORD_F(adr, res)
18072 READ_WORD_F(adr, res)
18090 READ_WORD_F(adr, res)
18105 res = DREGu32((Opcode >> 0) & 7);
18109 flag_N = res >> 24;
18119 adr = AREG((Opcode >> 0) & 7);
18121 READ_LONG_F(adr, res)
18125 flag_N = res >> 24;
18136 adr = AREG((Opcode >> 0) & 7);
18137 AREG((Opcode >> 0) & 7) += 4;
18139 READ_LONG_F(adr, res)
18143 flag_N = res >> 24;
18154 adr = AREG((Opcode >> 0) & 7) - 4;
18155 AREG((Opcode >> 0) & 7) = adr;
18157 READ_LONG_F(adr, res)
18161 flag_N = res >> 24;
18173 adr += AREG((Opcode >> 0) & 7);
18175 READ_LONG_F(adr, res)
18179 flag_N = res >> 24;
18190 adr = AREG((Opcode >> 0) & 7);
18193 READ_LONG_F(adr, res)
18197 flag_N = res >> 24;
18210 READ_LONG_F(adr, res)
18214 flag_N = res >> 24;
18227 READ_LONG_F(adr, res)
18231 flag_N = res >> 24;
18245 READ_LONG_F(adr, res)
18249 flag_N = res >> 24;
18263 READ_LONG_F(adr, res)
18267 flag_N = res >> 24;
18278 res = DREGu8((Opcode >> 0) & 7);
18284 DREGu8((Opcode >> 0) & 7) = res;
18294 adr = AREG((Opcode >> 0) & 7);
18296 READ_BYTE_F(adr, res)
18301 #ifdef PICODRIVE_HACK
18302 if (g_m68kcontext == &PicoCpuFS68k) {
18304 WRITE_BYTE_F(adr, res);
18309 #ifdef USE_CYCLONE_TIMING
18322 adr = AREG((Opcode >> 0) & 7);
18323 AREG((Opcode >> 0) & 7) += 1;
18325 READ_BYTE_F(adr, res)
18331 #ifdef PICODRIVE_HACK
18332 if (g_m68kcontext == &PicoCpuFS68k) {
18334 WRITE_BYTE_F(adr, res);
18339 #ifdef USE_CYCLONE_TIMING
18352 adr = AREG((Opcode >> 0) & 7) - 1;
18353 AREG((Opcode >> 0) & 7) = adr;
18355 READ_BYTE_F(adr, res)
18361 #ifdef PICODRIVE_HACK
18362 if (g_m68kcontext == &PicoCpuFS68k) {
18364 WRITE_BYTE_F(adr, res);
18369 #ifdef USE_CYCLONE_TIMING
18383 adr += AREG((Opcode >> 0) & 7);
18385 READ_BYTE_F(adr, res)
18391 #ifdef PICODRIVE_HACK
18392 if (g_m68kcontext == &PicoCpuFS68k) {
18394 WRITE_BYTE_F(adr, res);
18399 #ifdef USE_CYCLONE_TIMING
18412 adr = AREG((Opcode >> 0) & 7);
18415 READ_BYTE_F(adr, res)
18421 #ifdef PICODRIVE_HACK
18422 if (g_m68kcontext == &PicoCpuFS68k) {
18424 WRITE_BYTE_F(adr, res);
18429 #ifdef USE_CYCLONE_TIMING
18444 READ_BYTE_F(adr, res)
18450 #ifdef PICODRIVE_HACK
18451 if (g_m68kcontext == &PicoCpuFS68k) {
18453 WRITE_BYTE_F(adr, res);
18458 #ifdef USE_CYCLONE_TIMING
18473 READ_BYTE_F(adr, res)
18479 #ifdef PICODRIVE_HACK
18480 if (g_m68kcontext == &PicoCpuFS68k) {
18482 WRITE_BYTE_F(adr, res);
18487 #ifdef USE_CYCLONE_TIMING
18503 READ_BYTE_F(adr, res)
18509 #ifdef PICODRIVE_HACK
18510 if (g_m68kcontext == &PicoCpuFS68k) {
18512 WRITE_BYTE_F(adr, res);
18517 #ifdef USE_CYCLONE_TIMING
18533 READ_BYTE_F(adr, res)
18539 #ifdef PICODRIVE_HACK
18540 if (g_m68kcontext == &PicoCpuFS68k) {
18542 WRITE_BYTE_F(adr, res);
18547 #ifdef USE_CYCLONE_TIMING
18557 SET_PC(execute_exception(M68K_ILLEGAL_INSTRUCTION_EX, GET_PC-2, GET_SR));
18561 // ILLEGAL A000-AFFF
18564 SET_PC(execute_exception(M68K_1010_EX, GET_PC-2, GET_SR));
18568 // ILLEGAL F000-FFFF
18571 SET_PC(execute_exception(M68K_1111_EX, GET_PC-2, GET_SR));
18572 RET(0) // 4 already taken by exc. handler
18584 adr = AREG((Opcode >> 0) & 7);
18585 psrc = &DREGs32(0);
18592 READSX_WORD_F(adr, *psrc)
18596 } while (res >>= 1);
18598 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18599 #ifdef USE_CYCLONE_TIMING
18615 adr = AREG((Opcode >> 0) & 7);
18616 psrc = &DREGs32(0);
18623 READSX_WORD_F(adr, *psrc)
18627 } while (res >>= 1);
18628 AREG((Opcode >> 0) & 7) = adr;
18630 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18644 adr += AREG((Opcode >> 0) & 7);
18645 psrc = &DREGs32(0);
18652 READSX_WORD_F(adr, *psrc)
18656 } while (res >>= 1);
18658 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18659 #ifdef USE_CYCLONE_TIMING
18675 adr = AREG((Opcode >> 0) & 7);
18677 psrc = &DREGs32(0);
18684 READSX_WORD_F(adr, *psrc)
18688 } while (res >>= 1);
18690 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18691 #ifdef USE_CYCLONE_TIMING
18708 psrc = &DREGs32(0);
18715 READSX_WORD_F(adr, *psrc)
18719 } while (res >>= 1);
18721 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18722 #ifdef USE_CYCLONE_TIMING
18739 psrc = &DREGs32(0);
18746 READSX_WORD_F(adr, *psrc)
18750 } while (res >>= 1);
18752 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18753 #ifdef USE_CYCLONE_TIMING
18769 adr = GET_SWORD + GET_PC;
18771 psrc = &DREGs32(0);
18778 READSX_WORD_F(adr, *psrc)
18782 } while (res >>= 1);
18784 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18785 #ifdef USE_CYCLONE_TIMING
18803 psrc = &DREGs32(0);
18810 READSX_WORD_F(adr, *psrc)
18814 } while (res >>= 1);
18816 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18817 #ifdef USE_CYCLONE_TIMING
18834 psrc = &DREGs32(0);
18841 READSX_WORD_F(adr, *psrc)
18845 } while (res >>= 1);
18848 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18861 adr = AREG((Opcode >> 0) & 7);
18862 psrc = &DREGu32(0);
18869 READ_LONG_F(adr, *psrc)
18873 } while (res >>= 1);
18875 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18876 #ifdef USE_CYCLONE_TIMING
18892 adr = AREG((Opcode >> 0) & 7);
18893 psrc = &DREGu32(0);
18900 READ_LONG_F(adr, *psrc)
18904 } while (res >>= 1);
18905 AREG((Opcode >> 0) & 7) = adr;
18907 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18921 adr += AREG((Opcode >> 0) & 7);
18922 psrc = &DREGu32(0);
18929 READ_LONG_F(adr, *psrc)
18933 } while (res >>= 1);
18935 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18936 #ifdef USE_CYCLONE_TIMING
18952 adr = AREG((Opcode >> 0) & 7);
18954 psrc = &DREGu32(0);
18961 READ_LONG_F(adr, *psrc)
18965 } while (res >>= 1);
18967 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18968 #ifdef USE_CYCLONE_TIMING
18985 psrc = &DREGu32(0);
18992 READ_LONG_F(adr, *psrc)
18996 } while (res >>= 1);
18998 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18999 #ifdef USE_CYCLONE_TIMING
19016 psrc = &DREGu32(0);
19023 READ_LONG_F(adr, *psrc)
19027 } while (res >>= 1);
19029 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
19030 #ifdef USE_CYCLONE_TIMING
19046 adr = GET_SWORD + GET_PC;
19048 psrc = &DREGu32(0);
19055 READ_LONG_F(adr, *psrc)
19059 } while (res >>= 1);
19061 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
19062 #ifdef USE_CYCLONE_TIMING
19080 psrc = &DREGu32(0);
19087 READ_LONG_F(adr, *psrc)
19091 } while (res >>= 1);
19093 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
19094 #ifdef USE_CYCLONE_TIMING
19111 psrc = &DREGu32(0);
19118 READ_LONG_F(adr, *psrc)
19122 } while (res >>= 1);
19125 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
19132 SET_PC(execute_exception(M68K_TRAP_BASE_EX + (Opcode & 0xF), GET_PC, GET_SR));
19142 res = AREGu32((Opcode >> 0) & 7);
19146 AREG((Opcode >> 0) & 7) = res;
19161 WRITE_LONG_DEC_F(AREG(7), AREG(7))
19174 src = AREGu32((Opcode >> 0) & 7);
19177 READ_LONG_F(src, res)
19178 AREG((Opcode >> 0) & 7) = res;
19190 READ_LONG_F(AREG(7), AREG(7))
19203 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19206 res = AREGu32((Opcode >> 0) & 7);
19219 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19223 AREG((Opcode >> 0) & 7) = res;
19235 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19239 if (m68kcontext.reset_handler) m68kcontext.reset_handler();
19240 // CPU->Reset_CallBack();
19259 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19263 res &= M68K_SR_MASK;
19271 m68kcontext.execinfo |= FM68K_HALTED;
19283 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19298 m68kcontext.execinfo &= ~(FM68K_EMULATE_GROUP_0|FM68K_EMULATE_TRACE|FM68K_DO_TRACE);
19299 CHECK_INT_TO_JUMP(20)
19312 CHECK_BRANCH_EXCEPTION(res)
19321 SET_PC(execute_exception(M68K_TRAPV_EX, GET_PC, GET_SR));
19336 CHECK_BRANCH_EXCEPTION(res)
19347 adr = AREG((Opcode >> 0) & 7);
19356 CHECK_BRANCH_EXCEPTION(adr)
19368 adr += AREG((Opcode >> 0) & 7);
19377 CHECK_BRANCH_EXCEPTION(adr)
19388 adr = AREG((Opcode >> 0) & 7);
19398 CHECK_BRANCH_EXCEPTION(adr)
19418 CHECK_BRANCH_EXCEPTION(adr)
19438 CHECK_BRANCH_EXCEPTION(adr)
19449 adr = GET_SWORD + GET_PC;
19459 CHECK_BRANCH_EXCEPTION(adr)
19480 CHECK_BRANCH_EXCEPTION(adr)
19491 adr = AREG((Opcode >> 0) & 7);
19493 CHECK_BRANCH_EXCEPTION(adr)
19504 adr += AREG((Opcode >> 0) & 7);
19506 CHECK_BRANCH_EXCEPTION(adr)
19516 adr = AREG((Opcode >> 0) & 7);
19519 CHECK_BRANCH_EXCEPTION(adr)
19531 CHECK_BRANCH_EXCEPTION(adr)
19543 CHECK_BRANCH_EXCEPTION(adr)
19553 adr = GET_SWORD + GET_PC;
19556 CHECK_BRANCH_EXCEPTION(adr)
19569 CHECK_BRANCH_EXCEPTION(adr)
19578 src = DREGs16((Opcode >> 0) & 7);
19579 res = DREGs16((Opcode >> 9) & 7);
19580 if ((res < 0) || (res > src))
19583 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19594 adr = AREG((Opcode >> 0) & 7);
19596 READSX_WORD_F(adr, src)
19597 res = DREGs16((Opcode >> 9) & 7);
19598 if ((res < 0) || (res > src))
19601 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19613 adr = AREG((Opcode >> 0) & 7);
19614 AREG((Opcode >> 0) & 7) += 2;
19616 READSX_WORD_F(adr, src)
19617 res = DREGs16((Opcode >> 9) & 7);
19618 if ((res < 0) || (res > src))
19621 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19633 adr = AREG((Opcode >> 0) & 7) - 2;
19634 AREG((Opcode >> 0) & 7) = adr;
19636 READSX_WORD_F(adr, src)
19637 res = DREGs16((Opcode >> 9) & 7);
19638 if ((res < 0) || (res > src))
19641 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19654 adr += AREG((Opcode >> 0) & 7);
19656 READSX_WORD_F(adr, src)
19657 res = DREGs16((Opcode >> 9) & 7);
19658 if ((res < 0) || (res > src))
19661 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19673 adr = AREG((Opcode >> 0) & 7);
19676 READSX_WORD_F(adr, src)
19677 res = DREGs16((Opcode >> 9) & 7);
19678 if ((res < 0) || (res > src))
19681 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19695 READSX_WORD_F(adr, src)
19696 res = DREGs16((Opcode >> 9) & 7);
19697 if ((res < 0) || (res > src))
19700 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19714 READSX_WORD_F(adr, src)
19715 res = DREGs16((Opcode >> 9) & 7);
19716 if ((res < 0) || (res > src))
19719 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19731 adr = GET_SWORD + GET_PC;
19734 READSX_WORD_F(adr, src)
19735 res = DREGs16((Opcode >> 9) & 7);
19736 if ((res < 0) || (res > src))
19739 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19754 READSX_WORD_F(adr, src)
19755 res = DREGs16((Opcode >> 9) & 7);
19756 if ((res < 0) || (res > src))
19759 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19772 res = DREGs16((Opcode >> 9) & 7);
19773 if ((res < 0) || (res > src))
19776 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19791 READSX_WORD_F(adr, src)
19792 res = DREGs16((Opcode >> 9) & 7);
19793 if ((res < 0) || (res > src))
19796 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19811 READSX_WORD_F(adr, src)
19812 res = DREGs16((Opcode >> 9) & 7);
19813 if ((res < 0) || (res > src))
19816 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19828 adr = AREG((Opcode >> 0) & 7);
19830 AREG((Opcode >> 9) & 7) = res;
19841 adr += AREG((Opcode >> 0) & 7);
19843 AREG((Opcode >> 9) & 7) = res;
19853 adr = AREG((Opcode >> 0) & 7);
19856 AREG((Opcode >> 9) & 7) = res;
19868 AREG((Opcode >> 9) & 7) = res;
19880 AREG((Opcode >> 9) & 7) = res;
19890 adr = GET_SWORD + GET_PC;
19893 AREG((Opcode >> 9) & 7) = res;
19906 AREG((Opcode >> 9) & 7) = res;
19917 DREGu8((Opcode >> 0) & 7) = res;
19928 DREGu8((Opcode >> 0) & 7) = res;
19938 if (flag_NotZ && (!(flag_C & 0x100)))
19941 DREGu8((Opcode >> 0) & 7) = res;
19945 DREGu8((Opcode >> 0) & 7) = res;
19955 if ((!flag_NotZ) || (flag_C & 0x100))
19958 DREGu8((Opcode >> 0) & 7) = res;
19962 DREGu8((Opcode >> 0) & 7) = res;
19972 if (!(flag_C & 0x100))
19975 DREGu8((Opcode >> 0) & 7) = res;
19979 DREGu8((Opcode >> 0) & 7) = res;
19989 if (flag_C & 0x100)
19992 DREGu8((Opcode >> 0) & 7) = res;
19996 DREGu8((Opcode >> 0) & 7) = res;
20009 DREGu8((Opcode >> 0) & 7) = res;
20013 DREGu8((Opcode >> 0) & 7) = res;
20026 DREGu8((Opcode >> 0) & 7) = res;
20030 DREGu8((Opcode >> 0) & 7) = res;
20040 if (!(flag_V & 0x80))
20043 DREGu8((Opcode >> 0) & 7) = res;
20047 DREGu8((Opcode >> 0) & 7) = res;
20060 DREGu8((Opcode >> 0) & 7) = res;
20064 DREGu8((Opcode >> 0) & 7) = res;
20074 if (!(flag_N & 0x80))
20077 DREGu8((Opcode >> 0) & 7) = res;
20081 DREGu8((Opcode >> 0) & 7) = res;
20094 DREGu8((Opcode >> 0) & 7) = res;
20098 DREGu8((Opcode >> 0) & 7) = res;
20108 if (!((flag_N ^ flag_V) & 0x80))
20111 DREGu8((Opcode >> 0) & 7) = res;
20115 DREGu8((Opcode >> 0) & 7) = res;
20125 if ((flag_N ^ flag_V) & 0x80)
20128 DREGu8((Opcode >> 0) & 7) = res;
20132 DREGu8((Opcode >> 0) & 7) = res;
20142 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20145 DREGu8((Opcode >> 0) & 7) = res;
20149 DREGu8((Opcode >> 0) & 7) = res;
20159 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20162 DREGu8((Opcode >> 0) & 7) = res;
20166 DREGu8((Opcode >> 0) & 7) = res;
20176 adr = AREG((Opcode >> 0) & 7);
20179 WRITE_BYTE_F(adr, res)
20190 adr = AREG((Opcode >> 0) & 7);
20193 WRITE_BYTE_F(adr, res)
20204 adr = AREG((Opcode >> 0) & 7);
20205 if (flag_NotZ && (!(flag_C & 0x100)))
20209 WRITE_BYTE_F(adr, res)
20215 WRITE_BYTE_F(adr, res)
20226 adr = AREG((Opcode >> 0) & 7);
20227 if ((!flag_NotZ) || (flag_C & 0x100))
20231 WRITE_BYTE_F(adr, res)
20237 WRITE_BYTE_F(adr, res)
20248 adr = AREG((Opcode >> 0) & 7);
20249 if (!(flag_C & 0x100))
20253 WRITE_BYTE_F(adr, res)
20259 WRITE_BYTE_F(adr, res)
20270 adr = AREG((Opcode >> 0) & 7);
20271 if (flag_C & 0x100)
20275 WRITE_BYTE_F(adr, res)
20281 WRITE_BYTE_F(adr, res)
20292 adr = AREG((Opcode >> 0) & 7);
20297 WRITE_BYTE_F(adr, res)
20303 WRITE_BYTE_F(adr, res)
20314 adr = AREG((Opcode >> 0) & 7);
20319 WRITE_BYTE_F(adr, res)
20325 WRITE_BYTE_F(adr, res)
20336 adr = AREG((Opcode >> 0) & 7);
20337 if (!(flag_V & 0x80))
20341 WRITE_BYTE_F(adr, res)
20347 WRITE_BYTE_F(adr, res)
20358 adr = AREG((Opcode >> 0) & 7);
20363 WRITE_BYTE_F(adr, res)
20369 WRITE_BYTE_F(adr, res)
20380 adr = AREG((Opcode >> 0) & 7);
20381 if (!(flag_N & 0x80))
20385 WRITE_BYTE_F(adr, res)
20391 WRITE_BYTE_F(adr, res)
20402 adr = AREG((Opcode >> 0) & 7);
20407 WRITE_BYTE_F(adr, res)
20413 WRITE_BYTE_F(adr, res)
20424 adr = AREG((Opcode >> 0) & 7);
20425 if (!((flag_N ^ flag_V) & 0x80))
20429 WRITE_BYTE_F(adr, res)
20435 WRITE_BYTE_F(adr, res)
20446 adr = AREG((Opcode >> 0) & 7);
20447 if ((flag_N ^ flag_V) & 0x80)
20451 WRITE_BYTE_F(adr, res)
20457 WRITE_BYTE_F(adr, res)
20468 adr = AREG((Opcode >> 0) & 7);
20469 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20473 WRITE_BYTE_F(adr, res)
20479 WRITE_BYTE_F(adr, res)
20490 adr = AREG((Opcode >> 0) & 7);
20491 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20495 WRITE_BYTE_F(adr, res)
20501 WRITE_BYTE_F(adr, res)
20512 adr = AREG((Opcode >> 0) & 7);
20513 AREG((Opcode >> 0) & 7) += 1;
20516 WRITE_BYTE_F(adr, res)
20527 adr = AREG((Opcode >> 0) & 7);
20528 AREG((Opcode >> 0) & 7) += 1;
20531 WRITE_BYTE_F(adr, res)
20542 adr = AREG((Opcode >> 0) & 7);
20543 AREG((Opcode >> 0) & 7) += 1;
20544 if (flag_NotZ && (!(flag_C & 0x100)))
20548 WRITE_BYTE_F(adr, res)
20554 WRITE_BYTE_F(adr, res)
20565 adr = AREG((Opcode >> 0) & 7);
20566 AREG((Opcode >> 0) & 7) += 1;
20567 if ((!flag_NotZ) || (flag_C & 0x100))
20571 WRITE_BYTE_F(adr, res)
20577 WRITE_BYTE_F(adr, res)
20588 adr = AREG((Opcode >> 0) & 7);
20589 AREG((Opcode >> 0) & 7) += 1;
20590 if (!(flag_C & 0x100))
20594 WRITE_BYTE_F(adr, res)
20600 WRITE_BYTE_F(adr, res)
20611 adr = AREG((Opcode >> 0) & 7);
20612 AREG((Opcode >> 0) & 7) += 1;
20613 if (flag_C & 0x100)
20617 WRITE_BYTE_F(adr, res)
20623 WRITE_BYTE_F(adr, res)
20634 adr = AREG((Opcode >> 0) & 7);
20635 AREG((Opcode >> 0) & 7) += 1;
20640 WRITE_BYTE_F(adr, res)
20646 WRITE_BYTE_F(adr, res)
20657 adr = AREG((Opcode >> 0) & 7);
20658 AREG((Opcode >> 0) & 7) += 1;
20663 WRITE_BYTE_F(adr, res)
20669 WRITE_BYTE_F(adr, res)
20680 adr = AREG((Opcode >> 0) & 7);
20681 AREG((Opcode >> 0) & 7) += 1;
20682 if (!(flag_V & 0x80))
20686 WRITE_BYTE_F(adr, res)
20692 WRITE_BYTE_F(adr, res)
20703 adr = AREG((Opcode >> 0) & 7);
20704 AREG((Opcode >> 0) & 7) += 1;
20709 WRITE_BYTE_F(adr, res)
20715 WRITE_BYTE_F(adr, res)
20726 adr = AREG((Opcode >> 0) & 7);
20727 AREG((Opcode >> 0) & 7) += 1;
20728 if (!(flag_N & 0x80))
20732 WRITE_BYTE_F(adr, res)
20738 WRITE_BYTE_F(adr, res)
20749 adr = AREG((Opcode >> 0) & 7);
20750 AREG((Opcode >> 0) & 7) += 1;
20755 WRITE_BYTE_F(adr, res)
20761 WRITE_BYTE_F(adr, res)
20772 adr = AREG((Opcode >> 0) & 7);
20773 AREG((Opcode >> 0) & 7) += 1;
20774 if (!((flag_N ^ flag_V) & 0x80))
20778 WRITE_BYTE_F(adr, res)
20784 WRITE_BYTE_F(adr, res)
20795 adr = AREG((Opcode >> 0) & 7);
20796 AREG((Opcode >> 0) & 7) += 1;
20797 if ((flag_N ^ flag_V) & 0x80)
20801 WRITE_BYTE_F(adr, res)
20807 WRITE_BYTE_F(adr, res)
20818 adr = AREG((Opcode >> 0) & 7);
20819 AREG((Opcode >> 0) & 7) += 1;
20820 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20824 WRITE_BYTE_F(adr, res)
20830 WRITE_BYTE_F(adr, res)
20841 adr = AREG((Opcode >> 0) & 7);
20842 AREG((Opcode >> 0) & 7) += 1;
20843 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20847 WRITE_BYTE_F(adr, res)
20853 WRITE_BYTE_F(adr, res)
20864 adr = AREG((Opcode >> 0) & 7) - 1;
20865 AREG((Opcode >> 0) & 7) = adr;
20868 WRITE_BYTE_F(adr, res)
20879 adr = AREG((Opcode >> 0) & 7) - 1;
20880 AREG((Opcode >> 0) & 7) = adr;
20883 WRITE_BYTE_F(adr, res)
20894 adr = AREG((Opcode >> 0) & 7) - 1;
20895 AREG((Opcode >> 0) & 7) = adr;
20896 if (flag_NotZ && (!(flag_C & 0x100)))
20900 WRITE_BYTE_F(adr, res)
20906 WRITE_BYTE_F(adr, res)
20917 adr = AREG((Opcode >> 0) & 7) - 1;
20918 AREG((Opcode >> 0) & 7) = adr;
20919 if ((!flag_NotZ) || (flag_C & 0x100))
20923 WRITE_BYTE_F(adr, res)
20929 WRITE_BYTE_F(adr, res)
20940 adr = AREG((Opcode >> 0) & 7) - 1;
20941 AREG((Opcode >> 0) & 7) = adr;
20942 if (!(flag_C & 0x100))
20946 WRITE_BYTE_F(adr, res)
20952 WRITE_BYTE_F(adr, res)
20963 adr = AREG((Opcode >> 0) & 7) - 1;
20964 AREG((Opcode >> 0) & 7) = adr;
20965 if (flag_C & 0x100)
20969 WRITE_BYTE_F(adr, res)
20975 WRITE_BYTE_F(adr, res)
20986 adr = AREG((Opcode >> 0) & 7) - 1;
20987 AREG((Opcode >> 0) & 7) = adr;
20992 WRITE_BYTE_F(adr, res)
20998 WRITE_BYTE_F(adr, res)
21009 adr = AREG((Opcode >> 0) & 7) - 1;
21010 AREG((Opcode >> 0) & 7) = adr;
21015 WRITE_BYTE_F(adr, res)
21021 WRITE_BYTE_F(adr, res)
21032 adr = AREG((Opcode >> 0) & 7) - 1;
21033 AREG((Opcode >> 0) & 7) = adr;
21034 if (!(flag_V & 0x80))
21038 WRITE_BYTE_F(adr, res)
21044 WRITE_BYTE_F(adr, res)
21055 adr = AREG((Opcode >> 0) & 7) - 1;
21056 AREG((Opcode >> 0) & 7) = adr;
21061 WRITE_BYTE_F(adr, res)
21067 WRITE_BYTE_F(adr, res)
21078 adr = AREG((Opcode >> 0) & 7) - 1;
21079 AREG((Opcode >> 0) & 7) = adr;
21080 if (!(flag_N & 0x80))
21084 WRITE_BYTE_F(adr, res)
21090 WRITE_BYTE_F(adr, res)
21101 adr = AREG((Opcode >> 0) & 7) - 1;
21102 AREG((Opcode >> 0) & 7) = adr;
21107 WRITE_BYTE_F(adr, res)
21113 WRITE_BYTE_F(adr, res)
21124 adr = AREG((Opcode >> 0) & 7) - 1;
21125 AREG((Opcode >> 0) & 7) = adr;
21126 if (!((flag_N ^ flag_V) & 0x80))
21130 WRITE_BYTE_F(adr, res)
21136 WRITE_BYTE_F(adr, res)
21147 adr = AREG((Opcode >> 0) & 7) - 1;
21148 AREG((Opcode >> 0) & 7) = adr;
21149 if ((flag_N ^ flag_V) & 0x80)
21153 WRITE_BYTE_F(adr, res)
21159 WRITE_BYTE_F(adr, res)
21170 adr = AREG((Opcode >> 0) & 7) - 1;
21171 AREG((Opcode >> 0) & 7) = adr;
21172 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21176 WRITE_BYTE_F(adr, res)
21182 WRITE_BYTE_F(adr, res)
21193 adr = AREG((Opcode >> 0) & 7) - 1;
21194 AREG((Opcode >> 0) & 7) = adr;
21195 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21199 WRITE_BYTE_F(adr, res)
21205 WRITE_BYTE_F(adr, res)
21217 adr += AREG((Opcode >> 0) & 7);
21220 WRITE_BYTE_F(adr, res)
21232 adr += AREG((Opcode >> 0) & 7);
21235 WRITE_BYTE_F(adr, res)
21247 adr += AREG((Opcode >> 0) & 7);
21248 if (flag_NotZ && (!(flag_C & 0x100)))
21252 WRITE_BYTE_F(adr, res)
21258 WRITE_BYTE_F(adr, res)
21270 adr += AREG((Opcode >> 0) & 7);
21271 if ((!flag_NotZ) || (flag_C & 0x100))
21275 WRITE_BYTE_F(adr, res)
21281 WRITE_BYTE_F(adr, res)
21293 adr += AREG((Opcode >> 0) & 7);
21294 if (!(flag_C & 0x100))
21298 WRITE_BYTE_F(adr, res)
21304 WRITE_BYTE_F(adr, res)
21316 adr += AREG((Opcode >> 0) & 7);
21317 if (flag_C & 0x100)
21321 WRITE_BYTE_F(adr, res)
21327 WRITE_BYTE_F(adr, res)
21339 adr += AREG((Opcode >> 0) & 7);
21344 WRITE_BYTE_F(adr, res)
21350 WRITE_BYTE_F(adr, res)
21362 adr += AREG((Opcode >> 0) & 7);
21367 WRITE_BYTE_F(adr, res)
21373 WRITE_BYTE_F(adr, res)
21385 adr += AREG((Opcode >> 0) & 7);
21386 if (!(flag_V & 0x80))
21390 WRITE_BYTE_F(adr, res)
21396 WRITE_BYTE_F(adr, res)
21408 adr += AREG((Opcode >> 0) & 7);
21413 WRITE_BYTE_F(adr, res)
21419 WRITE_BYTE_F(adr, res)
21431 adr += AREG((Opcode >> 0) & 7);
21432 if (!(flag_N & 0x80))
21436 WRITE_BYTE_F(adr, res)
21442 WRITE_BYTE_F(adr, res)
21454 adr += AREG((Opcode >> 0) & 7);
21459 WRITE_BYTE_F(adr, res)
21465 WRITE_BYTE_F(adr, res)
21477 adr += AREG((Opcode >> 0) & 7);
21478 if (!((flag_N ^ flag_V) & 0x80))
21482 WRITE_BYTE_F(adr, res)
21488 WRITE_BYTE_F(adr, res)
21500 adr += AREG((Opcode >> 0) & 7);
21501 if ((flag_N ^ flag_V) & 0x80)
21505 WRITE_BYTE_F(adr, res)
21511 WRITE_BYTE_F(adr, res)
21523 adr += AREG((Opcode >> 0) & 7);
21524 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21528 WRITE_BYTE_F(adr, res)
21534 WRITE_BYTE_F(adr, res)
21546 adr += AREG((Opcode >> 0) & 7);
21547 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21551 WRITE_BYTE_F(adr, res)
21557 WRITE_BYTE_F(adr, res)
21568 adr = AREG((Opcode >> 0) & 7);
21572 WRITE_BYTE_F(adr, res)
21583 adr = AREG((Opcode >> 0) & 7);
21587 WRITE_BYTE_F(adr, res)
21598 adr = AREG((Opcode >> 0) & 7);
21600 if (flag_NotZ && (!(flag_C & 0x100)))
21604 WRITE_BYTE_F(adr, res)
21610 WRITE_BYTE_F(adr, res)
21621 adr = AREG((Opcode >> 0) & 7);
21623 if ((!flag_NotZ) || (flag_C & 0x100))
21627 WRITE_BYTE_F(adr, res)
21633 WRITE_BYTE_F(adr, res)
21644 adr = AREG((Opcode >> 0) & 7);
21646 if (!(flag_C & 0x100))
21650 WRITE_BYTE_F(adr, res)
21656 WRITE_BYTE_F(adr, res)
21667 adr = AREG((Opcode >> 0) & 7);
21669 if (flag_C & 0x100)
21673 WRITE_BYTE_F(adr, res)
21679 WRITE_BYTE_F(adr, res)
21690 adr = AREG((Opcode >> 0) & 7);
21696 WRITE_BYTE_F(adr, res)
21702 WRITE_BYTE_F(adr, res)
21713 adr = AREG((Opcode >> 0) & 7);
21719 WRITE_BYTE_F(adr, res)
21725 WRITE_BYTE_F(adr, res)
21736 adr = AREG((Opcode >> 0) & 7);
21738 if (!(flag_V & 0x80))
21742 WRITE_BYTE_F(adr, res)
21748 WRITE_BYTE_F(adr, res)
21759 adr = AREG((Opcode >> 0) & 7);
21765 WRITE_BYTE_F(adr, res)
21771 WRITE_BYTE_F(adr, res)
21782 adr = AREG((Opcode >> 0) & 7);
21784 if (!(flag_N & 0x80))
21788 WRITE_BYTE_F(adr, res)
21794 WRITE_BYTE_F(adr, res)
21805 adr = AREG((Opcode >> 0) & 7);
21811 WRITE_BYTE_F(adr, res)
21817 WRITE_BYTE_F(adr, res)
21828 adr = AREG((Opcode >> 0) & 7);
21830 if (!((flag_N ^ flag_V) & 0x80))
21834 WRITE_BYTE_F(adr, res)
21840 WRITE_BYTE_F(adr, res)
21851 adr = AREG((Opcode >> 0) & 7);
21853 if ((flag_N ^ flag_V) & 0x80)
21857 WRITE_BYTE_F(adr, res)
21863 WRITE_BYTE_F(adr, res)
21874 adr = AREG((Opcode >> 0) & 7);
21876 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21880 WRITE_BYTE_F(adr, res)
21886 WRITE_BYTE_F(adr, res)
21897 adr = AREG((Opcode >> 0) & 7);
21899 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21903 WRITE_BYTE_F(adr, res)
21909 WRITE_BYTE_F(adr, res)
21923 WRITE_BYTE_F(adr, res)
21937 WRITE_BYTE_F(adr, res)
21949 if (flag_NotZ && (!(flag_C & 0x100)))
21953 WRITE_BYTE_F(adr, res)
21959 WRITE_BYTE_F(adr, res)
21971 if ((!flag_NotZ) || (flag_C & 0x100))
21975 WRITE_BYTE_F(adr, res)
21981 WRITE_BYTE_F(adr, res)
21993 if (!(flag_C & 0x100))
21997 WRITE_BYTE_F(adr, res)
22003 WRITE_BYTE_F(adr, res)
22015 if (flag_C & 0x100)
22019 WRITE_BYTE_F(adr, res)
22025 WRITE_BYTE_F(adr, res)
22041 WRITE_BYTE_F(adr, res)
22047 WRITE_BYTE_F(adr, res)
22063 WRITE_BYTE_F(adr, res)
22069 WRITE_BYTE_F(adr, res)
22081 if (!(flag_V & 0x80))
22085 WRITE_BYTE_F(adr, res)
22091 WRITE_BYTE_F(adr, res)
22107 WRITE_BYTE_F(adr, res)
22113 WRITE_BYTE_F(adr, res)
22125 if (!(flag_N & 0x80))
22129 WRITE_BYTE_F(adr, res)
22135 WRITE_BYTE_F(adr, res)
22151 WRITE_BYTE_F(adr, res)
22157 WRITE_BYTE_F(adr, res)
22169 if (!((flag_N ^ flag_V) & 0x80))
22173 WRITE_BYTE_F(adr, res)
22179 WRITE_BYTE_F(adr, res)
22191 if ((flag_N ^ flag_V) & 0x80)
22195 WRITE_BYTE_F(adr, res)
22201 WRITE_BYTE_F(adr, res)
22213 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22217 WRITE_BYTE_F(adr, res)
22223 WRITE_BYTE_F(adr, res)
22235 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22239 WRITE_BYTE_F(adr, res)
22245 WRITE_BYTE_F(adr, res)
22259 WRITE_BYTE_F(adr, res)
22273 WRITE_BYTE_F(adr, res)
22285 if (flag_NotZ && (!(flag_C & 0x100)))
22289 WRITE_BYTE_F(adr, res)
22295 WRITE_BYTE_F(adr, res)
22307 if ((!flag_NotZ) || (flag_C & 0x100))
22311 WRITE_BYTE_F(adr, res)
22317 WRITE_BYTE_F(adr, res)
22329 if (!(flag_C & 0x100))
22333 WRITE_BYTE_F(adr, res)
22339 WRITE_BYTE_F(adr, res)
22351 if (flag_C & 0x100)
22355 WRITE_BYTE_F(adr, res)
22361 WRITE_BYTE_F(adr, res)
22377 WRITE_BYTE_F(adr, res)
22383 WRITE_BYTE_F(adr, res)
22399 WRITE_BYTE_F(adr, res)
22405 WRITE_BYTE_F(adr, res)
22417 if (!(flag_V & 0x80))
22421 WRITE_BYTE_F(adr, res)
22427 WRITE_BYTE_F(adr, res)
22443 WRITE_BYTE_F(adr, res)
22449 WRITE_BYTE_F(adr, res)
22461 if (!(flag_N & 0x80))
22465 WRITE_BYTE_F(adr, res)
22471 WRITE_BYTE_F(adr, res)
22487 WRITE_BYTE_F(adr, res)
22493 WRITE_BYTE_F(adr, res)
22505 if (!((flag_N ^ flag_V) & 0x80))
22509 WRITE_BYTE_F(adr, res)
22515 WRITE_BYTE_F(adr, res)
22527 if ((flag_N ^ flag_V) & 0x80)
22531 WRITE_BYTE_F(adr, res)
22537 WRITE_BYTE_F(adr, res)
22549 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22553 WRITE_BYTE_F(adr, res)
22559 WRITE_BYTE_F(adr, res)
22571 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22575 WRITE_BYTE_F(adr, res)
22581 WRITE_BYTE_F(adr, res)
22596 WRITE_BYTE_F(adr, res)
22611 WRITE_BYTE_F(adr, res)
22624 if (flag_NotZ && (!(flag_C & 0x100)))
22628 WRITE_BYTE_F(adr, res)
22634 WRITE_BYTE_F(adr, res)
22647 if ((!flag_NotZ) || (flag_C & 0x100))
22651 WRITE_BYTE_F(adr, res)
22657 WRITE_BYTE_F(adr, res)
22670 if (!(flag_C & 0x100))
22674 WRITE_BYTE_F(adr, res)
22680 WRITE_BYTE_F(adr, res)
22693 if (flag_C & 0x100)
22697 WRITE_BYTE_F(adr, res)
22703 WRITE_BYTE_F(adr, res)
22720 WRITE_BYTE_F(adr, res)
22726 WRITE_BYTE_F(adr, res)
22743 WRITE_BYTE_F(adr, res)
22749 WRITE_BYTE_F(adr, res)
22762 if (!(flag_V & 0x80))
22766 WRITE_BYTE_F(adr, res)
22772 WRITE_BYTE_F(adr, res)
22789 WRITE_BYTE_F(adr, res)
22795 WRITE_BYTE_F(adr, res)
22808 if (!(flag_N & 0x80))
22812 WRITE_BYTE_F(adr, res)
22818 WRITE_BYTE_F(adr, res)
22835 WRITE_BYTE_F(adr, res)
22841 WRITE_BYTE_F(adr, res)
22854 if (!((flag_N ^ flag_V) & 0x80))
22858 WRITE_BYTE_F(adr, res)
22864 WRITE_BYTE_F(adr, res)
22877 if ((flag_N ^ flag_V) & 0x80)
22881 WRITE_BYTE_F(adr, res)
22887 WRITE_BYTE_F(adr, res)
22900 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22904 WRITE_BYTE_F(adr, res)
22910 WRITE_BYTE_F(adr, res)
22923 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22927 WRITE_BYTE_F(adr, res)
22933 WRITE_BYTE_F(adr, res)
22948 WRITE_BYTE_F(adr, res)
22963 WRITE_BYTE_F(adr, res)
22976 if (flag_NotZ && (!(flag_C & 0x100)))
22980 WRITE_BYTE_F(adr, res)
22986 WRITE_BYTE_F(adr, res)
22999 if ((!flag_NotZ) || (flag_C & 0x100))
23003 WRITE_BYTE_F(adr, res)
23009 WRITE_BYTE_F(adr, res)
23022 if (!(flag_C & 0x100))
23026 WRITE_BYTE_F(adr, res)
23032 WRITE_BYTE_F(adr, res)
23045 if (flag_C & 0x100)
23049 WRITE_BYTE_F(adr, res)
23055 WRITE_BYTE_F(adr, res)
23072 WRITE_BYTE_F(adr, res)
23078 WRITE_BYTE_F(adr, res)
23095 WRITE_BYTE_F(adr, res)
23101 WRITE_BYTE_F(adr, res)
23114 if (!(flag_V & 0x80))
23118 WRITE_BYTE_F(adr, res)
23124 WRITE_BYTE_F(adr, res)
23141 WRITE_BYTE_F(adr, res)
23147 WRITE_BYTE_F(adr, res)
23160 if (!(flag_N & 0x80))
23164 WRITE_BYTE_F(adr, res)
23170 WRITE_BYTE_F(adr, res)
23187 WRITE_BYTE_F(adr, res)
23193 WRITE_BYTE_F(adr, res)
23206 if (!((flag_N ^ flag_V) & 0x80))
23210 WRITE_BYTE_F(adr, res)
23216 WRITE_BYTE_F(adr, res)
23229 if ((flag_N ^ flag_V) & 0x80)
23233 WRITE_BYTE_F(adr, res)
23239 WRITE_BYTE_F(adr, res)
23252 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
23256 WRITE_BYTE_F(adr, res)
23262 WRITE_BYTE_F(adr, res)
23275 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
23279 WRITE_BYTE_F(adr, res)
23285 WRITE_BYTE_F(adr, res)
23308 res = DREGu16((Opcode >> 0) & 7);
23310 DREGu16((Opcode >> 0) & 7) = res;
23311 if ((s32)res != -1)
23316 newPC += GET_SWORD;
23318 CHECK_BRANCH_EXCEPTION(newPC)
23333 if ((!flag_NotZ) || (flag_C & 0x100))
23335 res = DREGu16((Opcode >> 0) & 7);
23337 DREGu16((Opcode >> 0) & 7) = res;
23338 if ((s32)res != -1)
23343 newPC += GET_SWORD;
23345 CHECK_BRANCH_EXCEPTION(newPC)
23366 if (flag_NotZ && (!(flag_C & 0x100)))
23368 res = DREGu16((Opcode >> 0) & 7);
23370 DREGu16((Opcode >> 0) & 7) = res;
23371 if ((s32)res != -1)
23376 newPC += GET_SWORD;
23378 CHECK_BRANCH_EXCEPTION(newPC)
23399 if (flag_C & 0x100)
23401 res = DREGu16((Opcode >> 0) & 7);
23403 DREGu16((Opcode >> 0) & 7) = res;
23404 if ((s32)res != -1)
23409 newPC += GET_SWORD;
23411 CHECK_BRANCH_EXCEPTION(newPC)
23432 if (!(flag_C & 0x100))
23434 res = DREGu16((Opcode >> 0) & 7);
23436 DREGu16((Opcode >> 0) & 7) = res;
23437 if ((s32)res != -1)
23442 newPC += GET_SWORD;
23444 CHECK_BRANCH_EXCEPTION(newPC)
23467 res = DREGu16((Opcode >> 0) & 7);
23469 DREGu16((Opcode >> 0) & 7) = res;
23470 if ((s32)res != -1)
23475 newPC += GET_SWORD;
23477 CHECK_BRANCH_EXCEPTION(newPC)
23500 res = DREGu16((Opcode >> 0) & 7);
23502 DREGu16((Opcode >> 0) & 7) = res;
23503 if ((s32)res != -1)
23508 newPC += GET_SWORD;
23510 CHECK_BRANCH_EXCEPTION(newPC)
23533 res = DREGu16((Opcode >> 0) & 7);
23535 DREGu16((Opcode >> 0) & 7) = res;
23536 if ((s32)res != -1)
23541 newPC += GET_SWORD;
23543 CHECK_BRANCH_EXCEPTION(newPC)
23564 if (!(flag_V & 0x80))
23566 res = DREGu16((Opcode >> 0) & 7);
23568 DREGu16((Opcode >> 0) & 7) = res;
23569 if ((s32)res != -1)
23574 newPC += GET_SWORD;
23576 CHECK_BRANCH_EXCEPTION(newPC)
23599 res = DREGu16((Opcode >> 0) & 7);
23601 DREGu16((Opcode >> 0) & 7) = res;
23602 if ((s32)res != -1)
23607 newPC += GET_SWORD;
23609 CHECK_BRANCH_EXCEPTION(newPC)
23630 if (!(flag_N & 0x80))
23632 res = DREGu16((Opcode >> 0) & 7);
23634 DREGu16((Opcode >> 0) & 7) = res;
23635 if ((s32)res != -1)
23640 newPC += GET_SWORD;
23642 CHECK_BRANCH_EXCEPTION(newPC)
23663 if ((flag_N ^ flag_V) & 0x80)
23665 res = DREGu16((Opcode >> 0) & 7);
23667 DREGu16((Opcode >> 0) & 7) = res;
23668 if ((s32)res != -1)
23673 newPC += GET_SWORD;
23675 CHECK_BRANCH_EXCEPTION(newPC)
23696 if (!((flag_N ^ flag_V) & 0x80))
23698 res = DREGu16((Opcode >> 0) & 7);
23700 DREGu16((Opcode >> 0) & 7) = res;
23701 if ((s32)res != -1)
23706 newPC += GET_SWORD;
23708 CHECK_BRANCH_EXCEPTION(newPC)
23729 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
23731 res = DREGu16((Opcode >> 0) & 7);
23733 DREGu16((Opcode >> 0) & 7) = res;
23734 if ((s32)res != -1)
23739 newPC += GET_SWORD;
23741 CHECK_BRANCH_EXCEPTION(newPC)
23762 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
23764 res = DREGu16((Opcode >> 0) & 7);
23766 DREGu16((Opcode >> 0) & 7) = res;
23767 if ((s32)res != -1)
23772 newPC += GET_SWORD;
23774 CHECK_BRANCH_EXCEPTION(newPC)
23793 src = (((Opcode >> 9) - 1) & 7) + 1;
23794 dst = DREGu8((Opcode >> 0) & 7);
23796 flag_N = flag_X = flag_C = res;
23797 flag_V = (src ^ res) & (dst ^ res);
23798 flag_NotZ = res & 0xFF;
23799 DREGu8((Opcode >> 0) & 7) = res;
23809 src = (((Opcode >> 9) - 1) & 7) + 1;
23810 adr = AREG((Opcode >> 0) & 7);
23812 READ_BYTE_F(adr, dst)
23814 flag_N = flag_X = flag_C = res;
23815 flag_V = (src ^ res) & (dst ^ res);
23816 flag_NotZ = res & 0xFF;
23817 WRITE_BYTE_F(adr, res)
23828 src = (((Opcode >> 9) - 1) & 7) + 1;
23829 adr = AREG((Opcode >> 0) & 7);
23830 AREG((Opcode >> 0) & 7) += 1;
23832 READ_BYTE_F(adr, dst)
23834 flag_N = flag_X = flag_C = res;
23835 flag_V = (src ^ res) & (dst ^ res);
23836 flag_NotZ = res & 0xFF;
23837 WRITE_BYTE_F(adr, res)
23848 src = (((Opcode >> 9) - 1) & 7) + 1;
23849 adr = AREG((Opcode >> 0) & 7) - 1;
23850 AREG((Opcode >> 0) & 7) = adr;
23852 READ_BYTE_F(adr, dst)
23854 flag_N = flag_X = flag_C = res;
23855 flag_V = (src ^ res) & (dst ^ res);
23856 flag_NotZ = res & 0xFF;
23857 WRITE_BYTE_F(adr, res)
23868 src = (((Opcode >> 9) - 1) & 7) + 1;
23870 adr += AREG((Opcode >> 0) & 7);
23872 READ_BYTE_F(adr, dst)
23874 flag_N = flag_X = flag_C = res;
23875 flag_V = (src ^ res) & (dst ^ res);
23876 flag_NotZ = res & 0xFF;
23877 WRITE_BYTE_F(adr, res)
23888 src = (((Opcode >> 9) - 1) & 7) + 1;
23889 adr = AREG((Opcode >> 0) & 7);
23892 READ_BYTE_F(adr, dst)
23894 flag_N = flag_X = flag_C = res;
23895 flag_V = (src ^ res) & (dst ^ res);
23896 flag_NotZ = res & 0xFF;
23897 WRITE_BYTE_F(adr, res)
23908 src = (((Opcode >> 9) - 1) & 7) + 1;
23911 READ_BYTE_F(adr, dst)
23913 flag_N = flag_X = flag_C = res;
23914 flag_V = (src ^ res) & (dst ^ res);
23915 flag_NotZ = res & 0xFF;
23916 WRITE_BYTE_F(adr, res)
23927 src = (((Opcode >> 9) - 1) & 7) + 1;
23930 READ_BYTE_F(adr, dst)
23932 flag_N = flag_X = flag_C = res;
23933 flag_V = (src ^ res) & (dst ^ res);
23934 flag_NotZ = res & 0xFF;
23935 WRITE_BYTE_F(adr, res)
23946 src = (((Opcode >> 9) - 1) & 7) + 1;
23950 READ_BYTE_F(adr, dst)
23952 flag_N = flag_X = flag_C = res;
23953 flag_V = (src ^ res) & (dst ^ res);
23954 flag_NotZ = res & 0xFF;
23955 WRITE_BYTE_F(adr, res)
23966 src = (((Opcode >> 9) - 1) & 7) + 1;
23970 READ_BYTE_F(adr, dst)
23972 flag_N = flag_X = flag_C = res;
23973 flag_V = (src ^ res) & (dst ^ res);
23974 flag_NotZ = res & 0xFF;
23975 WRITE_BYTE_F(adr, res)
23986 src = (((Opcode >> 9) - 1) & 7) + 1;
23987 dst = DREGu16((Opcode >> 0) & 7);
23989 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
23990 flag_N = flag_X = flag_C = res >> 8;
23991 flag_NotZ = res & 0xFFFF;
23992 DREGu16((Opcode >> 0) & 7) = res;
24002 src = (((Opcode >> 9) - 1) & 7) + 1;
24003 dst = AREGu32((Opcode >> 0) & 7);
24005 AREG((Opcode >> 0) & 7) = res;
24006 #ifdef USE_CYCLONE_TIMING
24019 src = (((Opcode >> 9) - 1) & 7) + 1;
24020 adr = AREG((Opcode >> 0) & 7);
24022 READ_WORD_F(adr, dst)
24024 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24025 flag_N = flag_X = flag_C = res >> 8;
24026 flag_NotZ = res & 0xFFFF;
24027 WRITE_WORD_F(adr, res)
24038 src = (((Opcode >> 9) - 1) & 7) + 1;
24039 adr = AREG((Opcode >> 0) & 7);
24040 AREG((Opcode >> 0) & 7) += 2;
24042 READ_WORD_F(adr, dst)
24044 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24045 flag_N = flag_X = flag_C = res >> 8;
24046 flag_NotZ = res & 0xFFFF;
24047 WRITE_WORD_F(adr, res)
24058 src = (((Opcode >> 9) - 1) & 7) + 1;
24059 adr = AREG((Opcode >> 0) & 7) - 2;
24060 AREG((Opcode >> 0) & 7) = adr;
24062 READ_WORD_F(adr, dst)
24064 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24065 flag_N = flag_X = flag_C = res >> 8;
24066 flag_NotZ = res & 0xFFFF;
24067 WRITE_WORD_F(adr, res)
24078 src = (((Opcode >> 9) - 1) & 7) + 1;
24080 adr += AREG((Opcode >> 0) & 7);
24082 READ_WORD_F(adr, dst)
24084 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24085 flag_N = flag_X = flag_C = res >> 8;
24086 flag_NotZ = res & 0xFFFF;
24087 WRITE_WORD_F(adr, res)
24098 src = (((Opcode >> 9) - 1) & 7) + 1;
24099 adr = AREG((Opcode >> 0) & 7);
24102 READ_WORD_F(adr, dst)
24104 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24105 flag_N = flag_X = flag_C = res >> 8;
24106 flag_NotZ = res & 0xFFFF;
24107 WRITE_WORD_F(adr, res)
24118 src = (((Opcode >> 9) - 1) & 7) + 1;
24121 READ_WORD_F(adr, dst)
24123 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24124 flag_N = flag_X = flag_C = res >> 8;
24125 flag_NotZ = res & 0xFFFF;
24126 WRITE_WORD_F(adr, res)
24137 src = (((Opcode >> 9) - 1) & 7) + 1;
24140 READ_WORD_F(adr, dst)
24142 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24143 flag_N = flag_X = flag_C = res >> 8;
24144 flag_NotZ = res & 0xFFFF;
24145 WRITE_WORD_F(adr, res)
24156 src = (((Opcode >> 9) - 1) & 7) + 1;
24160 READ_WORD_F(adr, dst)
24162 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24163 flag_N = flag_X = flag_C = res >> 8;
24164 flag_NotZ = res & 0xFFFF;
24165 WRITE_WORD_F(adr, res)
24176 src = (((Opcode >> 9) - 1) & 7) + 1;
24180 READ_WORD_F(adr, dst)
24182 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24183 flag_N = flag_X = flag_C = res >> 8;
24184 flag_NotZ = res & 0xFFFF;
24185 WRITE_WORD_F(adr, res)
24196 src = (((Opcode >> 9) - 1) & 7) + 1;
24197 dst = DREGu32((Opcode >> 0) & 7);
24200 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24201 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24202 flag_N = res >> 24;
24203 DREGu32((Opcode >> 0) & 7) = res;
24213 src = (((Opcode >> 9) - 1) & 7) + 1;
24214 dst = AREGu32((Opcode >> 0) & 7);
24216 AREG((Opcode >> 0) & 7) = res;
24226 src = (((Opcode >> 9) - 1) & 7) + 1;
24227 adr = AREG((Opcode >> 0) & 7);
24229 READ_LONG_F(adr, dst)
24232 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24233 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24234 flag_N = res >> 24;
24235 WRITE_LONG_F(adr, res)
24246 src = (((Opcode >> 9) - 1) & 7) + 1;
24247 adr = AREG((Opcode >> 0) & 7);
24248 AREG((Opcode >> 0) & 7) += 4;
24250 READ_LONG_F(adr, dst)
24253 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24254 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24255 flag_N = res >> 24;
24256 WRITE_LONG_F(adr, res)
24267 src = (((Opcode >> 9) - 1) & 7) + 1;
24268 adr = AREG((Opcode >> 0) & 7) - 4;
24269 AREG((Opcode >> 0) & 7) = adr;
24271 READ_LONG_F(adr, dst)
24274 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24275 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24276 flag_N = res >> 24;
24277 WRITE_LONG_F(adr, res)
24288 src = (((Opcode >> 9) - 1) & 7) + 1;
24290 adr += AREG((Opcode >> 0) & 7);
24292 READ_LONG_F(adr, dst)
24295 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24296 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24297 flag_N = res >> 24;
24298 WRITE_LONG_F(adr, res)
24309 src = (((Opcode >> 9) - 1) & 7) + 1;
24310 adr = AREG((Opcode >> 0) & 7);
24313 READ_LONG_F(adr, dst)
24316 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24317 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24318 flag_N = res >> 24;
24319 WRITE_LONG_F(adr, res)
24330 src = (((Opcode >> 9) - 1) & 7) + 1;
24333 READ_LONG_F(adr, dst)
24336 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24337 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24338 flag_N = res >> 24;
24339 WRITE_LONG_F(adr, res)
24350 src = (((Opcode >> 9) - 1) & 7) + 1;
24353 READ_LONG_F(adr, dst)
24356 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24357 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24358 flag_N = res >> 24;
24359 WRITE_LONG_F(adr, res)
24370 src = (((Opcode >> 9) - 1) & 7) + 1;
24374 READ_LONG_F(adr, dst)
24377 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24378 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24379 flag_N = res >> 24;
24380 WRITE_LONG_F(adr, res)
24391 src = (((Opcode >> 9) - 1) & 7) + 1;
24395 READ_LONG_F(adr, dst)
24398 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24399 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24400 flag_N = res >> 24;
24401 WRITE_LONG_F(adr, res)
24412 src = (((Opcode >> 9) - 1) & 7) + 1;
24413 dst = DREGu8((Opcode >> 0) & 7);
24415 flag_N = flag_X = flag_C = res;
24416 flag_V = (src ^ dst) & (res ^ dst);
24417 flag_NotZ = res & 0xFF;
24418 DREGu8((Opcode >> 0) & 7) = res;
24428 src = (((Opcode >> 9) - 1) & 7) + 1;
24429 adr = AREG((Opcode >> 0) & 7);
24431 READ_BYTE_F(adr, dst)
24433 flag_N = flag_X = flag_C = res;
24434 flag_V = (src ^ dst) & (res ^ dst);
24435 flag_NotZ = res & 0xFF;
24436 WRITE_BYTE_F(adr, res)
24447 src = (((Opcode >> 9) - 1) & 7) + 1;
24448 adr = AREG((Opcode >> 0) & 7);
24449 AREG((Opcode >> 0) & 7) += 1;
24451 READ_BYTE_F(adr, dst)
24453 flag_N = flag_X = flag_C = res;
24454 flag_V = (src ^ dst) & (res ^ dst);
24455 flag_NotZ = res & 0xFF;
24456 WRITE_BYTE_F(adr, res)
24467 src = (((Opcode >> 9) - 1) & 7) + 1;
24468 adr = AREG((Opcode >> 0) & 7) - 1;
24469 AREG((Opcode >> 0) & 7) = adr;
24471 READ_BYTE_F(adr, dst)
24473 flag_N = flag_X = flag_C = res;
24474 flag_V = (src ^ dst) & (res ^ dst);
24475 flag_NotZ = res & 0xFF;
24476 WRITE_BYTE_F(adr, res)
24487 src = (((Opcode >> 9) - 1) & 7) + 1;
24489 adr += AREG((Opcode >> 0) & 7);
24491 READ_BYTE_F(adr, dst)
24493 flag_N = flag_X = flag_C = res;
24494 flag_V = (src ^ dst) & (res ^ dst);
24495 flag_NotZ = res & 0xFF;
24496 WRITE_BYTE_F(adr, res)
24507 src = (((Opcode >> 9) - 1) & 7) + 1;
24508 adr = AREG((Opcode >> 0) & 7);
24511 READ_BYTE_F(adr, dst)
24513 flag_N = flag_X = flag_C = res;
24514 flag_V = (src ^ dst) & (res ^ dst);
24515 flag_NotZ = res & 0xFF;
24516 WRITE_BYTE_F(adr, res)
24527 src = (((Opcode >> 9) - 1) & 7) + 1;
24530 READ_BYTE_F(adr, dst)
24532 flag_N = flag_X = flag_C = res;
24533 flag_V = (src ^ dst) & (res ^ dst);
24534 flag_NotZ = res & 0xFF;
24535 WRITE_BYTE_F(adr, res)
24546 src = (((Opcode >> 9) - 1) & 7) + 1;
24549 READ_BYTE_F(adr, dst)
24551 flag_N = flag_X = flag_C = res;
24552 flag_V = (src ^ dst) & (res ^ dst);
24553 flag_NotZ = res & 0xFF;
24554 WRITE_BYTE_F(adr, res)
24565 src = (((Opcode >> 9) - 1) & 7) + 1;
24569 READ_BYTE_F(adr, dst)
24571 flag_N = flag_X = flag_C = res;
24572 flag_V = (src ^ dst) & (res ^ dst);
24573 flag_NotZ = res & 0xFF;
24574 WRITE_BYTE_F(adr, res)
24585 src = (((Opcode >> 9) - 1) & 7) + 1;
24589 READ_BYTE_F(adr, dst)
24591 flag_N = flag_X = flag_C = res;
24592 flag_V = (src ^ dst) & (res ^ dst);
24593 flag_NotZ = res & 0xFF;
24594 WRITE_BYTE_F(adr, res)
24605 src = (((Opcode >> 9) - 1) & 7) + 1;
24606 dst = DREGu16((Opcode >> 0) & 7);
24608 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24609 flag_N = flag_X = flag_C = res >> 8;
24610 flag_NotZ = res & 0xFFFF;
24611 DREGu16((Opcode >> 0) & 7) = res;
24621 src = (((Opcode >> 9) - 1) & 7) + 1;
24622 dst = AREGu32((Opcode >> 0) & 7);
24624 AREG((Opcode >> 0) & 7) = res;
24634 src = (((Opcode >> 9) - 1) & 7) + 1;
24635 adr = AREG((Opcode >> 0) & 7);
24637 READ_WORD_F(adr, dst)
24639 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24640 flag_N = flag_X = flag_C = res >> 8;
24641 flag_NotZ = res & 0xFFFF;
24642 WRITE_WORD_F(adr, res)
24653 src = (((Opcode >> 9) - 1) & 7) + 1;
24654 adr = AREG((Opcode >> 0) & 7);
24655 AREG((Opcode >> 0) & 7) += 2;
24657 READ_WORD_F(adr, dst)
24659 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24660 flag_N = flag_X = flag_C = res >> 8;
24661 flag_NotZ = res & 0xFFFF;
24662 WRITE_WORD_F(adr, res)
24673 src = (((Opcode >> 9) - 1) & 7) + 1;
24674 adr = AREG((Opcode >> 0) & 7) - 2;
24675 AREG((Opcode >> 0) & 7) = adr;
24677 READ_WORD_F(adr, dst)
24679 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24680 flag_N = flag_X = flag_C = res >> 8;
24681 flag_NotZ = res & 0xFFFF;
24682 WRITE_WORD_F(adr, res)
24693 src = (((Opcode >> 9) - 1) & 7) + 1;
24695 adr += AREG((Opcode >> 0) & 7);
24697 READ_WORD_F(adr, dst)
24699 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24700 flag_N = flag_X = flag_C = res >> 8;
24701 flag_NotZ = res & 0xFFFF;
24702 WRITE_WORD_F(adr, res)
24713 src = (((Opcode >> 9) - 1) & 7) + 1;
24714 adr = AREG((Opcode >> 0) & 7);
24717 READ_WORD_F(adr, dst)
24719 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24720 flag_N = flag_X = flag_C = res >> 8;
24721 flag_NotZ = res & 0xFFFF;
24722 WRITE_WORD_F(adr, res)
24733 src = (((Opcode >> 9) - 1) & 7) + 1;
24736 READ_WORD_F(adr, dst)
24738 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24739 flag_N = flag_X = flag_C = res >> 8;
24740 flag_NotZ = res & 0xFFFF;
24741 WRITE_WORD_F(adr, res)
24752 src = (((Opcode >> 9) - 1) & 7) + 1;
24755 READ_WORD_F(adr, dst)
24757 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24758 flag_N = flag_X = flag_C = res >> 8;
24759 flag_NotZ = res & 0xFFFF;
24760 WRITE_WORD_F(adr, res)
24771 src = (((Opcode >> 9) - 1) & 7) + 1;
24775 READ_WORD_F(adr, dst)
24777 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24778 flag_N = flag_X = flag_C = res >> 8;
24779 flag_NotZ = res & 0xFFFF;
24780 WRITE_WORD_F(adr, res)
24791 src = (((Opcode >> 9) - 1) & 7) + 1;
24795 READ_WORD_F(adr, dst)
24797 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24798 flag_N = flag_X = flag_C = res >> 8;
24799 flag_NotZ = res & 0xFFFF;
24800 WRITE_WORD_F(adr, res)
24811 src = (((Opcode >> 9) - 1) & 7) + 1;
24812 dst = DREGu32((Opcode >> 0) & 7);
24815 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24816 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24817 flag_N = res >> 24;
24818 DREGu32((Opcode >> 0) & 7) = res;
24828 src = (((Opcode >> 9) - 1) & 7) + 1;
24829 dst = AREGu32((Opcode >> 0) & 7);
24831 AREG((Opcode >> 0) & 7) = res;
24841 src = (((Opcode >> 9) - 1) & 7) + 1;
24842 adr = AREG((Opcode >> 0) & 7);
24844 READ_LONG_F(adr, dst)
24847 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24848 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24849 flag_N = res >> 24;
24850 WRITE_LONG_F(adr, res)
24861 src = (((Opcode >> 9) - 1) & 7) + 1;
24862 adr = AREG((Opcode >> 0) & 7);
24863 AREG((Opcode >> 0) & 7) += 4;
24865 READ_LONG_F(adr, dst)
24868 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24869 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24870 flag_N = res >> 24;
24871 WRITE_LONG_F(adr, res)
24882 src = (((Opcode >> 9) - 1) & 7) + 1;
24883 adr = AREG((Opcode >> 0) & 7) - 4;
24884 AREG((Opcode >> 0) & 7) = adr;
24886 READ_LONG_F(adr, dst)
24889 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24890 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24891 flag_N = res >> 24;
24892 WRITE_LONG_F(adr, res)
24903 src = (((Opcode >> 9) - 1) & 7) + 1;
24905 adr += AREG((Opcode >> 0) & 7);
24907 READ_LONG_F(adr, dst)
24910 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24911 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24912 flag_N = res >> 24;
24913 WRITE_LONG_F(adr, res)
24924 src = (((Opcode >> 9) - 1) & 7) + 1;
24925 adr = AREG((Opcode >> 0) & 7);
24928 READ_LONG_F(adr, dst)
24931 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24932 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24933 flag_N = res >> 24;
24934 WRITE_LONG_F(adr, res)
24945 src = (((Opcode >> 9) - 1) & 7) + 1;
24948 READ_LONG_F(adr, dst)
24951 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24952 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24953 flag_N = res >> 24;
24954 WRITE_LONG_F(adr, res)
24965 src = (((Opcode >> 9) - 1) & 7) + 1;
24968 READ_LONG_F(adr, dst)
24971 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24972 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24973 flag_N = res >> 24;
24974 WRITE_LONG_F(adr, res)
24985 src = (((Opcode >> 9) - 1) & 7) + 1;
24989 READ_LONG_F(adr, dst)
24992 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24993 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24994 flag_N = res >> 24;
24995 WRITE_LONG_F(adr, res)
25006 src = (((Opcode >> 9) - 1) & 7) + 1;
25010 READ_LONG_F(adr, dst)
25013 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
25014 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
25015 flag_N = res >> 24;
25016 WRITE_LONG_F(adr, res)
25027 if (flag_NotZ && (!(flag_C & 0x100)))
25029 PC += ((s8)(Opcode & 0xFE)) >> 1;
25030 m68kcontext.io_cycle_counter -= 2;
25041 if ((!flag_NotZ) || (flag_C & 0x100))
25043 PC += ((s8)(Opcode & 0xFE)) >> 1;
25044 m68kcontext.io_cycle_counter -= 2;
25055 if (!(flag_C & 0x100))
25057 PC += ((s8)(Opcode & 0xFE)) >> 1;
25058 m68kcontext.io_cycle_counter -= 2;
25069 if (flag_C & 0x100)
25071 PC += ((s8)(Opcode & 0xFE)) >> 1;
25072 m68kcontext.io_cycle_counter -= 2;
25085 PC += ((s8)(Opcode & 0xFE)) >> 1;
25086 m68kcontext.io_cycle_counter -= 2;
25099 PC += ((s8)(Opcode & 0xFE)) >> 1;
25100 m68kcontext.io_cycle_counter -= 2;
25111 if (!(flag_V & 0x80))
25113 PC += ((s8)(Opcode & 0xFE)) >> 1;
25114 m68kcontext.io_cycle_counter -= 2;
25127 PC += ((s8)(Opcode & 0xFE)) >> 1;
25128 m68kcontext.io_cycle_counter -= 2;
25139 if (!(flag_N & 0x80))
25141 PC += ((s8)(Opcode & 0xFE)) >> 1;
25142 m68kcontext.io_cycle_counter -= 2;
25155 PC += ((s8)(Opcode & 0xFE)) >> 1;
25156 m68kcontext.io_cycle_counter -= 2;
25167 if (!((flag_N ^ flag_V) & 0x80))
25169 PC += ((s8)(Opcode & 0xFE)) >> 1;
25170 m68kcontext.io_cycle_counter -= 2;
25181 if ((flag_N ^ flag_V) & 0x80)
25183 PC += ((s8)(Opcode & 0xFE)) >> 1;
25184 m68kcontext.io_cycle_counter -= 2;
25195 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
25197 PC += ((s8)(Opcode & 0xFE)) >> 1;
25198 m68kcontext.io_cycle_counter -= 2;
25209 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
25211 PC += ((s8)(Opcode & 0xFE)) >> 1;
25212 m68kcontext.io_cycle_counter -= 2;
25223 if (flag_NotZ && (!(flag_C & 0x100)))
25228 newPC += GET_SWORD;
25230 CHECK_BRANCH_EXCEPTION(newPC)
25243 if ((!flag_NotZ) || (flag_C & 0x100))
25248 newPC += GET_SWORD;
25250 CHECK_BRANCH_EXCEPTION(newPC)
25263 if (!(flag_C & 0x100))
25268 newPC += GET_SWORD;
25270 CHECK_BRANCH_EXCEPTION(newPC)
25283 if (flag_C & 0x100)
25288 newPC += GET_SWORD;
25290 CHECK_BRANCH_EXCEPTION(newPC)
25308 newPC += GET_SWORD;
25310 CHECK_BRANCH_EXCEPTION(newPC)
25328 newPC += GET_SWORD;
25330 CHECK_BRANCH_EXCEPTION(newPC)
25343 if (!(flag_V & 0x80))
25348 newPC += GET_SWORD;
25350 CHECK_BRANCH_EXCEPTION(newPC)
25368 newPC += GET_SWORD;
25370 CHECK_BRANCH_EXCEPTION(newPC)
25383 if (!(flag_N & 0x80))
25388 newPC += GET_SWORD;
25390 CHECK_BRANCH_EXCEPTION(newPC)
25408 newPC += GET_SWORD;
25410 CHECK_BRANCH_EXCEPTION(newPC)
25423 if (!((flag_N ^ flag_V) & 0x80))
25428 newPC += GET_SWORD;
25430 CHECK_BRANCH_EXCEPTION(newPC)
25443 if ((flag_N ^ flag_V) & 0x80)
25448 newPC += GET_SWORD;
25450 CHECK_BRANCH_EXCEPTION(newPC)
25463 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
25468 newPC += GET_SWORD;
25470 CHECK_BRANCH_EXCEPTION(newPC)
25483 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
25488 newPC += GET_SWORD;
25490 CHECK_BRANCH_EXCEPTION(newPC)
25500 #ifdef FAMEC_CHECK_BRANCHES
25501 u32 newPC = GET_PC;
25505 CHECK_BRANCH_EXCEPTION(offs)
25507 PC += ((s8)(Opcode & 0xFE)) >> 1;
25522 newPC += GET_SWORD;
25524 CHECK_BRANCH_EXCEPTION(newPC)
25541 #ifdef FAMEC_CHECK_BRANCHES
25545 CHECK_BRANCH_EXCEPTION(offs)
25547 PC += ((s8)(Opcode & 0xFE)) >> 1;
25566 newPC += GET_SWORD;
25568 CHECK_BRANCH_EXCEPTION(newPC)
25580 res = (s32)(s8)Opcode;
25581 flag_C = flag_V = 0;
25582 flag_N = flag_NotZ = res;
25583 DREGu32((Opcode >> 9) & 7) = res;
25593 src = DREGu8((Opcode >> 0) & 7);
25594 res = DREGu8((Opcode >> 9) & 7);
25600 DREGu8((Opcode >> 9) & 7) = res;
25610 adr = AREG((Opcode >> 0) & 7);
25612 READ_BYTE_F(adr, src)
25613 res = DREGu8((Opcode >> 9) & 7);
25619 DREGu8((Opcode >> 9) & 7) = res;
25630 adr = AREG((Opcode >> 0) & 7);
25631 AREG((Opcode >> 0) & 7) += 1;
25633 READ_BYTE_F(adr, src)
25634 res = DREGu8((Opcode >> 9) & 7);
25640 DREGu8((Opcode >> 9) & 7) = res;
25651 adr = AREG((Opcode >> 0) & 7) - 1;
25652 AREG((Opcode >> 0) & 7) = adr;
25654 READ_BYTE_F(adr, src)
25655 res = DREGu8((Opcode >> 9) & 7);
25661 DREGu8((Opcode >> 9) & 7) = res;
25673 adr += AREG((Opcode >> 0) & 7);
25675 READ_BYTE_F(adr, src)
25676 res = DREGu8((Opcode >> 9) & 7);
25682 DREGu8((Opcode >> 9) & 7) = res;
25693 adr = AREG((Opcode >> 0) & 7);
25696 READ_BYTE_F(adr, src)
25697 res = DREGu8((Opcode >> 9) & 7);
25703 DREGu8((Opcode >> 9) & 7) = res;
25716 READ_BYTE_F(adr, src)
25717 res = DREGu8((Opcode >> 9) & 7);
25723 DREGu8((Opcode >> 9) & 7) = res;
25736 READ_BYTE_F(adr, src)
25737 res = DREGu8((Opcode >> 9) & 7);
25743 DREGu8((Opcode >> 9) & 7) = res;
25754 adr = GET_SWORD + GET_PC;
25757 READ_BYTE_F(adr, src)
25758 res = DREGu8((Opcode >> 9) & 7);
25764 DREGu8((Opcode >> 9) & 7) = res;
25778 READ_BYTE_F(adr, src)
25779 res = DREGu8((Opcode >> 9) & 7);
25785 DREGu8((Opcode >> 9) & 7) = res;
25797 res = DREGu8((Opcode >> 9) & 7);
25803 DREGu8((Opcode >> 9) & 7) = res;
25816 READ_BYTE_F(adr, src)
25817 res = DREGu8((Opcode >> 9) & 7);
25823 DREGu8((Opcode >> 9) & 7) = res;
25837 READ_BYTE_F(adr, src)
25838 res = DREGu8((Opcode >> 9) & 7);
25844 DREGu8((Opcode >> 9) & 7) = res;
25855 src = DREGu16((Opcode >> 0) & 7);
25856 res = DREGu16((Opcode >> 9) & 7);
25862 DREGu16((Opcode >> 9) & 7) = res;
25872 adr = AREG((Opcode >> 0) & 7);
25874 READ_WORD_F(adr, src)
25875 res = DREGu16((Opcode >> 9) & 7);
25881 DREGu16((Opcode >> 9) & 7) = res;
25892 adr = AREG((Opcode >> 0) & 7);
25893 AREG((Opcode >> 0) & 7) += 2;
25895 READ_WORD_F(adr, src)
25896 res = DREGu16((Opcode >> 9) & 7);
25902 DREGu16((Opcode >> 9) & 7) = res;
25913 adr = AREG((Opcode >> 0) & 7) - 2;
25914 AREG((Opcode >> 0) & 7) = adr;
25916 READ_WORD_F(adr, src)
25917 res = DREGu16((Opcode >> 9) & 7);
25923 DREGu16((Opcode >> 9) & 7) = res;
25935 adr += AREG((Opcode >> 0) & 7);
25937 READ_WORD_F(adr, src)
25938 res = DREGu16((Opcode >> 9) & 7);
25944 DREGu16((Opcode >> 9) & 7) = res;
25955 adr = AREG((Opcode >> 0) & 7);
25958 READ_WORD_F(adr, src)
25959 res = DREGu16((Opcode >> 9) & 7);
25965 DREGu16((Opcode >> 9) & 7) = res;
25978 READ_WORD_F(adr, src)
25979 res = DREGu16((Opcode >> 9) & 7);
25985 DREGu16((Opcode >> 9) & 7) = res;
25998 READ_WORD_F(adr, src)
25999 res = DREGu16((Opcode >> 9) & 7);
26005 DREGu16((Opcode >> 9) & 7) = res;
26016 adr = GET_SWORD + GET_PC;
26019 READ_WORD_F(adr, src)
26020 res = DREGu16((Opcode >> 9) & 7);
26026 DREGu16((Opcode >> 9) & 7) = res;
26040 READ_WORD_F(adr, src)
26041 res = DREGu16((Opcode >> 9) & 7);
26047 DREGu16((Opcode >> 9) & 7) = res;
26059 res = DREGu16((Opcode >> 9) & 7);
26065 DREGu16((Opcode >> 9) & 7) = res;
26078 READ_WORD_F(adr, src)
26079 res = DREGu16((Opcode >> 9) & 7);
26085 DREGu16((Opcode >> 9) & 7) = res;
26099 READ_WORD_F(adr, src)
26100 res = DREGu16((Opcode >> 9) & 7);
26106 DREGu16((Opcode >> 9) & 7) = res;
26117 src = DREGu32((Opcode >> 0) & 7);
26118 res = DREGu32((Opcode >> 9) & 7);
26123 flag_N = res >> 24;
26124 DREGu32((Opcode >> 9) & 7) = res;
26134 adr = AREG((Opcode >> 0) & 7);
26136 READ_LONG_F(adr, src)
26137 res = DREGu32((Opcode >> 9) & 7);
26142 flag_N = res >> 24;
26143 DREGu32((Opcode >> 9) & 7) = res;
26154 adr = AREG((Opcode >> 0) & 7);
26155 AREG((Opcode >> 0) & 7) += 4;
26157 READ_LONG_F(adr, src)
26158 res = DREGu32((Opcode >> 9) & 7);
26163 flag_N = res >> 24;
26164 DREGu32((Opcode >> 9) & 7) = res;
26175 adr = AREG((Opcode >> 0) & 7) - 4;
26176 AREG((Opcode >> 0) & 7) = adr;
26178 READ_LONG_F(adr, src)
26179 res = DREGu32((Opcode >> 9) & 7);
26184 flag_N = res >> 24;
26185 DREGu32((Opcode >> 9) & 7) = res;
26197 adr += AREG((Opcode >> 0) & 7);
26199 READ_LONG_F(adr, src)
26200 res = DREGu32((Opcode >> 9) & 7);
26205 flag_N = res >> 24;
26206 DREGu32((Opcode >> 9) & 7) = res;
26217 adr = AREG((Opcode >> 0) & 7);
26220 READ_LONG_F(adr, src)
26221 res = DREGu32((Opcode >> 9) & 7);
26226 flag_N = res >> 24;
26227 DREGu32((Opcode >> 9) & 7) = res;
26240 READ_LONG_F(adr, src)
26241 res = DREGu32((Opcode >> 9) & 7);
26246 flag_N = res >> 24;
26247 DREGu32((Opcode >> 9) & 7) = res;
26260 READ_LONG_F(adr, src)
26261 res = DREGu32((Opcode >> 9) & 7);
26266 flag_N = res >> 24;
26267 DREGu32((Opcode >> 9) & 7) = res;
26278 adr = GET_SWORD + GET_PC;
26281 READ_LONG_F(adr, src)
26282 res = DREGu32((Opcode >> 9) & 7);
26287 flag_N = res >> 24;
26288 DREGu32((Opcode >> 9) & 7) = res;
26302 READ_LONG_F(adr, src)
26303 res = DREGu32((Opcode >> 9) & 7);
26308 flag_N = res >> 24;
26309 DREGu32((Opcode >> 9) & 7) = res;
26321 res = DREGu32((Opcode >> 9) & 7);
26326 flag_N = res >> 24;
26327 DREGu32((Opcode >> 9) & 7) = res;
26340 READ_LONG_F(adr, src)
26341 res = DREGu32((Opcode >> 9) & 7);
26346 flag_N = res >> 24;
26347 DREGu32((Opcode >> 9) & 7) = res;
26361 READ_LONG_F(adr, src)
26362 res = DREGu32((Opcode >> 9) & 7);
26367 flag_N = res >> 24;
26368 DREGu32((Opcode >> 9) & 7) = res;
26379 src = DREGu8((Opcode >> 9) & 7);
26380 adr = AREG((Opcode >> 0) & 7);
26382 READ_BYTE_F(adr, res)
26388 WRITE_BYTE_F(adr, res)
26399 src = DREGu8((Opcode >> 9) & 7);
26400 adr = AREG((Opcode >> 0) & 7);
26401 AREG((Opcode >> 0) & 7) += 1;
26403 READ_BYTE_F(adr, res)
26409 WRITE_BYTE_F(adr, res)
26420 src = DREGu8((Opcode >> 9) & 7);
26421 adr = AREG((Opcode >> 0) & 7) - 1;
26422 AREG((Opcode >> 0) & 7) = adr;
26424 READ_BYTE_F(adr, res)
26430 WRITE_BYTE_F(adr, res)
26441 src = DREGu8((Opcode >> 9) & 7);
26443 adr += AREG((Opcode >> 0) & 7);
26445 READ_BYTE_F(adr, res)
26451 WRITE_BYTE_F(adr, res)
26462 src = DREGu8((Opcode >> 9) & 7);
26463 adr = AREG((Opcode >> 0) & 7);
26466 READ_BYTE_F(adr, res)
26472 WRITE_BYTE_F(adr, res)
26483 src = DREGu8((Opcode >> 9) & 7);
26486 READ_BYTE_F(adr, res)
26492 WRITE_BYTE_F(adr, res)
26503 src = DREGu8((Opcode >> 9) & 7);
26506 READ_BYTE_F(adr, res)
26512 WRITE_BYTE_F(adr, res)
26523 src = DREGu8((Opcode >> 9) & 7);
26527 READ_BYTE_F(adr, res)
26533 WRITE_BYTE_F(adr, res)
26544 src = DREGu8((Opcode >> 9) & 7);
26548 READ_BYTE_F(adr, res)
26554 WRITE_BYTE_F(adr, res)
26565 src = DREGu16((Opcode >> 9) & 7);
26566 adr = AREG((Opcode >> 0) & 7);
26568 READ_WORD_F(adr, res)
26574 WRITE_WORD_F(adr, res)
26585 src = DREGu16((Opcode >> 9) & 7);
26586 adr = AREG((Opcode >> 0) & 7);
26587 AREG((Opcode >> 0) & 7) += 2;
26589 READ_WORD_F(adr, res)
26595 WRITE_WORD_F(adr, res)
26606 src = DREGu16((Opcode >> 9) & 7);
26607 adr = AREG((Opcode >> 0) & 7) - 2;
26608 AREG((Opcode >> 0) & 7) = adr;
26610 READ_WORD_F(adr, res)
26616 WRITE_WORD_F(adr, res)
26627 src = DREGu16((Opcode >> 9) & 7);
26629 adr += AREG((Opcode >> 0) & 7);
26631 READ_WORD_F(adr, res)
26637 WRITE_WORD_F(adr, res)
26648 src = DREGu16((Opcode >> 9) & 7);
26649 adr = AREG((Opcode >> 0) & 7);
26652 READ_WORD_F(adr, res)
26658 WRITE_WORD_F(adr, res)
26669 src = DREGu16((Opcode >> 9) & 7);
26672 READ_WORD_F(adr, res)
26678 WRITE_WORD_F(adr, res)
26689 src = DREGu16((Opcode >> 9) & 7);
26692 READ_WORD_F(adr, res)
26698 WRITE_WORD_F(adr, res)
26709 src = DREGu16((Opcode >> 9) & 7);
26713 READ_WORD_F(adr, res)
26719 WRITE_WORD_F(adr, res)
26730 src = DREGu16((Opcode >> 9) & 7);
26734 READ_WORD_F(adr, res)
26740 WRITE_WORD_F(adr, res)
26751 src = DREGu32((Opcode >> 9) & 7);
26752 adr = AREG((Opcode >> 0) & 7);
26754 READ_LONG_F(adr, res)
26759 flag_N = res >> 24;
26760 WRITE_LONG_F(adr, res)
26771 src = DREGu32((Opcode >> 9) & 7);
26772 adr = AREG((Opcode >> 0) & 7);
26773 AREG((Opcode >> 0) & 7) += 4;
26775 READ_LONG_F(adr, res)
26780 flag_N = res >> 24;
26781 WRITE_LONG_F(adr, res)
26792 src = DREGu32((Opcode >> 9) & 7);
26793 adr = AREG((Opcode >> 0) & 7) - 4;
26794 AREG((Opcode >> 0) & 7) = adr;
26796 READ_LONG_F(adr, res)
26801 flag_N = res >> 24;
26802 WRITE_LONG_F(adr, res)
26813 src = DREGu32((Opcode >> 9) & 7);
26815 adr += AREG((Opcode >> 0) & 7);
26817 READ_LONG_F(adr, res)
26822 flag_N = res >> 24;
26823 WRITE_LONG_F(adr, res)
26834 src = DREGu32((Opcode >> 9) & 7);
26835 adr = AREG((Opcode >> 0) & 7);
26838 READ_LONG_F(adr, res)
26843 flag_N = res >> 24;
26844 WRITE_LONG_F(adr, res)
26855 src = DREGu32((Opcode >> 9) & 7);
26858 READ_LONG_F(adr, res)
26863 flag_N = res >> 24;
26864 WRITE_LONG_F(adr, res)
26875 src = DREGu32((Opcode >> 9) & 7);
26878 READ_LONG_F(adr, res)
26883 flag_N = res >> 24;
26884 WRITE_LONG_F(adr, res)
26895 src = DREGu32((Opcode >> 9) & 7);
26899 READ_LONG_F(adr, res)
26904 flag_N = res >> 24;
26905 WRITE_LONG_F(adr, res)
26916 src = DREGu32((Opcode >> 9) & 7);
26920 READ_LONG_F(adr, res)
26925 flag_N = res >> 24;
26926 WRITE_LONG_F(adr, res)
26937 src = DREGu8((Opcode >> 0) & 7);
26938 dst = DREGu8((Opcode >> 9) & 7);
26939 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26940 if (res > 9) res -= 6;
26941 res += (dst & 0xF0) - (src & 0xF0);
26945 flag_X = flag_C = M68K_SR_C;
26947 else flag_X = flag_C = 0;
26948 flag_NotZ |= res & 0xFF;
26950 DREGu8((Opcode >> 9) & 7) = res;
26960 adr = AREG((Opcode >> 0) & 7) - 1;
26961 AREG((Opcode >> 0) & 7) = adr;
26963 READ_BYTE_F(adr, src)
26964 adr = AREG((Opcode >> 9) & 7) - 1;
26965 AREG((Opcode >> 9) & 7) = adr;
26966 READ_BYTE_F(adr, dst)
26967 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26968 if (res > 9) res -= 6;
26969 res += (dst & 0xF0) - (src & 0xF0);
26973 flag_X = flag_C = M68K_SR_C;
26975 else flag_X = flag_C = 0;
26976 flag_NotZ |= res & 0xFF;
26978 WRITE_BYTE_F(adr, res)
26992 READ_BYTE_F(adr, src)
26993 adr = AREG((Opcode >> 9) & 7) - 1;
26994 AREG((Opcode >> 9) & 7) = adr;
26995 READ_BYTE_F(adr, dst)
26996 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26997 if (res > 9) res -= 6;
26998 res += (dst & 0xF0) - (src & 0xF0);
27002 flag_X = flag_C = M68K_SR_C;
27004 else flag_X = flag_C = 0;
27005 flag_NotZ |= res & 0xFF;
27007 WRITE_BYTE_F(adr, res)
27018 adr = AREG((Opcode >> 0) & 7) - 1;
27019 AREG((Opcode >> 0) & 7) = adr;
27021 READ_BYTE_F(adr, src)
27024 READ_BYTE_F(adr, dst)
27025 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
27026 if (res > 9) res -= 6;
27027 res += (dst & 0xF0) - (src & 0xF0);
27031 flag_X = flag_C = M68K_SR_C;
27033 else flag_X = flag_C = 0;
27034 flag_NotZ |= res & 0xFF;
27036 WRITE_BYTE_F(adr, res)
27050 READ_BYTE_F(adr, src)
27053 READ_BYTE_F(adr, dst)
27054 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
27055 if (res > 9) res -= 6;
27056 res += (dst & 0xF0) - (src & 0xF0);
27060 flag_X = flag_C = M68K_SR_C;
27062 else flag_X = flag_C = 0;
27063 flag_NotZ |= res & 0xFF;
27065 WRITE_BYTE_F(adr, res)
27076 src = DREGu16((Opcode >> 0) & 7);
27079 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27080 #ifdef USE_CYCLONE_TIMING_DIV
27086 dst = DREGu32((Opcode >> 9) & 7);
27093 if (q & 0xFFFF0000)
27095 flag_V = M68K_SR_V;
27096 #ifdef USE_CYCLONE_TIMING_DIV
27105 flag_V = flag_C = 0;
27106 res = q | (r << 16);
27107 DREGu32((Opcode >> 9) & 7) = res;
27109 #ifdef USE_CYCLONE_TIMING_DIV
27122 adr = AREG((Opcode >> 0) & 7);
27124 READ_WORD_F(adr, src)
27127 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27128 #ifdef USE_CYCLONE_TIMING_DIV
27134 dst = DREGu32((Opcode >> 9) & 7);
27141 if (q & 0xFFFF0000)
27143 flag_V = M68K_SR_V;
27144 #ifdef USE_CYCLONE_TIMING_DIV
27153 flag_V = flag_C = 0;
27154 res = q | (r << 16);
27155 DREGu32((Opcode >> 9) & 7) = res;
27157 #ifdef USE_CYCLONE_TIMING_DIV
27170 adr = AREG((Opcode >> 0) & 7);
27171 AREG((Opcode >> 0) & 7) += 2;
27173 READ_WORD_F(adr, src)
27176 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27177 #ifdef USE_CYCLONE_TIMING_DIV
27183 dst = DREGu32((Opcode >> 9) & 7);
27190 if (q & 0xFFFF0000)
27192 flag_V = M68K_SR_V;
27193 #ifdef USE_CYCLONE_TIMING_DIV
27202 flag_V = flag_C = 0;
27203 res = q | (r << 16);
27204 DREGu32((Opcode >> 9) & 7) = res;
27206 #ifdef USE_CYCLONE_TIMING_DIV
27219 adr = AREG((Opcode >> 0) & 7) - 2;
27220 AREG((Opcode >> 0) & 7) = adr;
27222 READ_WORD_F(adr, src)
27225 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27226 #ifdef USE_CYCLONE_TIMING_DIV
27232 dst = DREGu32((Opcode >> 9) & 7);
27239 if (q & 0xFFFF0000)
27241 flag_V = M68K_SR_V;
27242 #ifdef USE_CYCLONE_TIMING_DIV
27251 flag_V = flag_C = 0;
27252 res = q | (r << 16);
27253 DREGu32((Opcode >> 9) & 7) = res;
27255 #ifdef USE_CYCLONE_TIMING_DIV
27269 adr += AREG((Opcode >> 0) & 7);
27271 READ_WORD_F(adr, src)
27274 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27275 #ifdef USE_CYCLONE_TIMING_DIV
27281 dst = DREGu32((Opcode >> 9) & 7);
27288 if (q & 0xFFFF0000)
27290 flag_V = M68K_SR_V;
27291 #ifdef USE_CYCLONE_TIMING_DIV
27300 flag_V = flag_C = 0;
27301 res = q | (r << 16);
27302 DREGu32((Opcode >> 9) & 7) = res;
27304 #ifdef USE_CYCLONE_TIMING_DIV
27317 adr = AREG((Opcode >> 0) & 7);
27320 READ_WORD_F(adr, src)
27323 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27324 #ifdef USE_CYCLONE_TIMING_DIV
27330 dst = DREGu32((Opcode >> 9) & 7);
27337 if (q & 0xFFFF0000)
27339 flag_V = M68K_SR_V;
27340 #ifdef USE_CYCLONE_TIMING_DIV
27349 flag_V = flag_C = 0;
27350 res = q | (r << 16);
27351 DREGu32((Opcode >> 9) & 7) = res;
27353 #ifdef USE_CYCLONE_TIMING_DIV
27368 READ_WORD_F(adr, src)
27371 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27372 #ifdef USE_CYCLONE_TIMING_DIV
27378 dst = DREGu32((Opcode >> 9) & 7);
27385 if (q & 0xFFFF0000)
27387 flag_V = M68K_SR_V;
27388 #ifdef USE_CYCLONE_TIMING_DIV
27397 flag_V = flag_C = 0;
27398 res = q | (r << 16);
27399 DREGu32((Opcode >> 9) & 7) = res;
27401 #ifdef USE_CYCLONE_TIMING_DIV
27416 READ_WORD_F(adr, src)
27419 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27420 #ifdef USE_CYCLONE_TIMING_DIV
27426 dst = DREGu32((Opcode >> 9) & 7);
27433 if (q & 0xFFFF0000)
27435 flag_V = M68K_SR_V;
27436 #ifdef USE_CYCLONE_TIMING_DIV
27445 flag_V = flag_C = 0;
27446 res = q | (r << 16);
27447 DREGu32((Opcode >> 9) & 7) = res;
27449 #ifdef USE_CYCLONE_TIMING_DIV
27462 adr = GET_SWORD + GET_PC;
27465 READ_WORD_F(adr, src)
27468 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27469 #ifdef USE_CYCLONE_TIMING_DIV
27475 dst = DREGu32((Opcode >> 9) & 7);
27482 if (q & 0xFFFF0000)
27484 flag_V = M68K_SR_V;
27485 #ifdef USE_CYCLONE_TIMING_DIV
27494 flag_V = flag_C = 0;
27495 res = q | (r << 16);
27496 DREGu32((Opcode >> 9) & 7) = res;
27498 #ifdef USE_CYCLONE_TIMING_DIV
27514 READ_WORD_F(adr, src)
27517 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27518 #ifdef USE_CYCLONE_TIMING_DIV
27524 dst = DREGu32((Opcode >> 9) & 7);
27531 if (q & 0xFFFF0000)
27533 flag_V = M68K_SR_V;
27534 #ifdef USE_CYCLONE_TIMING_DIV
27543 flag_V = flag_C = 0;
27544 res = q | (r << 16);
27545 DREGu32((Opcode >> 9) & 7) = res;
27547 #ifdef USE_CYCLONE_TIMING_DIV
27563 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27564 #ifdef USE_CYCLONE_TIMING_DIV
27570 dst = DREGu32((Opcode >> 9) & 7);
27577 if (q & 0xFFFF0000)
27579 flag_V = M68K_SR_V;
27580 #ifdef USE_CYCLONE_TIMING_DIV
27589 flag_V = flag_C = 0;
27590 res = q | (r << 16);
27591 DREGu32((Opcode >> 9) & 7) = res;
27593 #ifdef USE_CYCLONE_TIMING_DIV
27609 READ_WORD_F(adr, src)
27612 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27613 #ifdef USE_CYCLONE_TIMING_DIV
27619 dst = DREGu32((Opcode >> 9) & 7);
27626 if (q & 0xFFFF0000)
27628 flag_V = M68K_SR_V;
27629 #ifdef USE_CYCLONE_TIMING_DIV
27638 flag_V = flag_C = 0;
27639 res = q | (r << 16);
27640 DREGu32((Opcode >> 9) & 7) = res;
27642 #ifdef USE_CYCLONE_TIMING_DIV
27658 READ_WORD_F(adr, src)
27661 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27662 #ifdef USE_CYCLONE_TIMING_DIV
27668 dst = DREGu32((Opcode >> 9) & 7);
27675 if (q & 0xFFFF0000)
27677 flag_V = M68K_SR_V;
27678 #ifdef USE_CYCLONE_TIMING_DIV
27687 flag_V = flag_C = 0;
27688 res = q | (r << 16);
27689 DREGu32((Opcode >> 9) & 7) = res;
27691 #ifdef USE_CYCLONE_TIMING_DIV
27704 src = (s32)DREGs16((Opcode >> 0) & 7);
27707 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27708 #ifdef USE_CYCLONE_TIMING_DIV
27713 dst = DREGu32((Opcode >> 9) & 7);
27714 if ((dst == 0x80000000) && (src == (u32)-1))
27716 flag_NotZ = flag_N = 0;
27717 flag_V = flag_C = 0;
27719 DREGu32((Opcode >> 9) & 7) = res;
27720 #ifdef USE_CYCLONE_TIMING_DIV
27728 q = (s32)dst / (s32)src;
27729 r = (s32)dst % (s32)src;
27731 if ((q > 0x7FFF) || (q < -0x8000))
27733 flag_V = M68K_SR_V;
27734 #ifdef USE_CYCLONE_TIMING_DIV
27742 flag_V = flag_C = 0;
27743 res = q | (r << 16);
27744 DREGu32((Opcode >> 9) & 7) = res;
27746 #ifdef USE_CYCLONE_TIMING_DIV
27747 end81C0: m68kcontext.io_cycle_counter -= 50;
27758 adr = AREG((Opcode >> 0) & 7);
27760 READSX_WORD_F(adr, src)
27763 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27764 #ifdef USE_CYCLONE_TIMING_DIV
27769 dst = DREGu32((Opcode >> 9) & 7);
27770 if ((dst == 0x80000000) && (src == (u32)-1))
27772 flag_NotZ = flag_N = 0;
27773 flag_V = flag_C = 0;
27775 DREGu32((Opcode >> 9) & 7) = res;
27776 #ifdef USE_CYCLONE_TIMING_DIV
27784 q = (s32)dst / (s32)src;
27785 r = (s32)dst % (s32)src;
27787 if ((q > 0x7FFF) || (q < -0x8000))
27789 flag_V = M68K_SR_V;
27790 #ifdef USE_CYCLONE_TIMING_DIV
27798 flag_V = flag_C = 0;
27799 res = q | (r << 16);
27800 DREGu32((Opcode >> 9) & 7) = res;
27802 #ifdef USE_CYCLONE_TIMING_DIV
27803 end81D0: m68kcontext.io_cycle_counter -= 50;
27814 adr = AREG((Opcode >> 0) & 7);
27815 AREG((Opcode >> 0) & 7) += 2;
27817 READSX_WORD_F(adr, src)
27820 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27821 #ifdef USE_CYCLONE_TIMING_DIV
27826 dst = DREGu32((Opcode >> 9) & 7);
27827 if ((dst == 0x80000000) && (src == (u32)-1))
27829 flag_NotZ = flag_N = 0;
27830 flag_V = flag_C = 0;
27832 DREGu32((Opcode >> 9) & 7) = res;
27833 #ifdef USE_CYCLONE_TIMING_DIV
27841 q = (s32)dst / (s32)src;
27842 r = (s32)dst % (s32)src;
27844 if ((q > 0x7FFF) || (q < -0x8000))
27846 flag_V = M68K_SR_V;
27847 #ifdef USE_CYCLONE_TIMING_DIV
27855 flag_V = flag_C = 0;
27856 res = q | (r << 16);
27857 DREGu32((Opcode >> 9) & 7) = res;
27859 #ifdef USE_CYCLONE_TIMING_DIV
27860 end81D8: m68kcontext.io_cycle_counter -= 50;
27871 adr = AREG((Opcode >> 0) & 7) - 2;
27872 AREG((Opcode >> 0) & 7) = adr;
27874 READSX_WORD_F(adr, src)
27877 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27878 #ifdef USE_CYCLONE_TIMING_DIV
27883 dst = DREGu32((Opcode >> 9) & 7);
27884 if ((dst == 0x80000000) && (src == (u32)-1))
27886 flag_NotZ = flag_N = 0;
27887 flag_V = flag_C = 0;
27889 DREGu32((Opcode >> 9) & 7) = res;
27890 #ifdef USE_CYCLONE_TIMING_DIV
27898 q = (s32)dst / (s32)src;
27899 r = (s32)dst % (s32)src;
27901 if ((q > 0x7FFF) || (q < -0x8000))
27903 flag_V = M68K_SR_V;
27904 #ifdef USE_CYCLONE_TIMING_DIV
27912 flag_V = flag_C = 0;
27913 res = q | (r << 16);
27914 DREGu32((Opcode >> 9) & 7) = res;
27916 #ifdef USE_CYCLONE_TIMING_DIV
27917 end81E0: m68kcontext.io_cycle_counter -= 50;
27929 adr += AREG((Opcode >> 0) & 7);
27931 READSX_WORD_F(adr, src)
27934 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27935 #ifdef USE_CYCLONE_TIMING_DIV
27940 dst = DREGu32((Opcode >> 9) & 7);
27941 if ((dst == 0x80000000) && (src == (u32)-1))
27943 flag_NotZ = flag_N = 0;
27944 flag_V = flag_C = 0;
27946 DREGu32((Opcode >> 9) & 7) = res;
27947 #ifdef USE_CYCLONE_TIMING_DIV
27955 q = (s32)dst / (s32)src;
27956 r = (s32)dst % (s32)src;
27958 if ((q > 0x7FFF) || (q < -0x8000))
27960 flag_V = M68K_SR_V;
27961 #ifdef USE_CYCLONE_TIMING_DIV
27969 flag_V = flag_C = 0;
27970 res = q | (r << 16);
27971 DREGu32((Opcode >> 9) & 7) = res;
27973 #ifdef USE_CYCLONE_TIMING_DIV
27974 end81E8: m68kcontext.io_cycle_counter -= 50;
27985 adr = AREG((Opcode >> 0) & 7);
27988 READSX_WORD_F(adr, src)
27991 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27992 #ifdef USE_CYCLONE_TIMING_DIV
27997 dst = DREGu32((Opcode >> 9) & 7);
27998 if ((dst == 0x80000000) && (src == (u32)-1))
28000 flag_NotZ = flag_N = 0;
28001 flag_V = flag_C = 0;
28003 DREGu32((Opcode >> 9) & 7) = res;
28004 #ifdef USE_CYCLONE_TIMING_DIV
28012 q = (s32)dst / (s32)src;
28013 r = (s32)dst % (s32)src;
28015 if ((q > 0x7FFF) || (q < -0x8000))
28017 flag_V = M68K_SR_V;
28018 #ifdef USE_CYCLONE_TIMING_DIV
28026 flag_V = flag_C = 0;
28027 res = q | (r << 16);
28028 DREGu32((Opcode >> 9) & 7) = res;
28030 #ifdef USE_CYCLONE_TIMING_DIV
28031 end81F0: m68kcontext.io_cycle_counter -= 50;
28044 READSX_WORD_F(adr, src)
28047 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28048 #ifdef USE_CYCLONE_TIMING_DIV
28053 dst = DREGu32((Opcode >> 9) & 7);
28054 if ((dst == 0x80000000) && (src == (u32)-1))
28056 flag_NotZ = flag_N = 0;
28057 flag_V = flag_C = 0;
28059 DREGu32((Opcode >> 9) & 7) = res;
28060 #ifdef USE_CYCLONE_TIMING_DIV
28068 q = (s32)dst / (s32)src;
28069 r = (s32)dst % (s32)src;
28071 if ((q > 0x7FFF) || (q < -0x8000))
28073 flag_V = M68K_SR_V;
28074 #ifdef USE_CYCLONE_TIMING_DIV
28082 flag_V = flag_C = 0;
28083 res = q | (r << 16);
28084 DREGu32((Opcode >> 9) & 7) = res;
28086 #ifdef USE_CYCLONE_TIMING_DIV
28087 end81F8: m68kcontext.io_cycle_counter -= 50;
28100 READSX_WORD_F(adr, src)
28103 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28104 #ifdef USE_CYCLONE_TIMING_DIV
28109 dst = DREGu32((Opcode >> 9) & 7);
28110 if ((dst == 0x80000000) && (src == (u32)-1))
28112 flag_NotZ = flag_N = 0;
28113 flag_V = flag_C = 0;
28115 DREGu32((Opcode >> 9) & 7) = res;
28116 #ifdef USE_CYCLONE_TIMING_DIV
28124 q = (s32)dst / (s32)src;
28125 r = (s32)dst % (s32)src;
28127 if ((q > 0x7FFF) || (q < -0x8000))
28129 flag_V = M68K_SR_V;
28130 #ifdef USE_CYCLONE_TIMING_DIV
28138 flag_V = flag_C = 0;
28139 res = q | (r << 16);
28140 DREGu32((Opcode >> 9) & 7) = res;
28142 #ifdef USE_CYCLONE_TIMING_DIV
28143 end81F9: m68kcontext.io_cycle_counter -= 50;
28154 adr = GET_SWORD + GET_PC;
28157 READSX_WORD_F(adr, src)
28160 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28161 #ifdef USE_CYCLONE_TIMING_DIV
28166 dst = DREGu32((Opcode >> 9) & 7);
28167 if ((dst == 0x80000000) && (src == (u32)-1))
28169 flag_NotZ = flag_N = 0;
28170 flag_V = flag_C = 0;
28172 DREGu32((Opcode >> 9) & 7) = res;
28173 #ifdef USE_CYCLONE_TIMING_DIV
28181 q = (s32)dst / (s32)src;
28182 r = (s32)dst % (s32)src;
28184 if ((q > 0x7FFF) || (q < -0x8000))
28186 flag_V = M68K_SR_V;
28187 #ifdef USE_CYCLONE_TIMING_DIV
28195 flag_V = flag_C = 0;
28196 res = q | (r << 16);
28197 DREGu32((Opcode >> 9) & 7) = res;
28199 #ifdef USE_CYCLONE_TIMING_DIV
28200 end81FA: m68kcontext.io_cycle_counter -= 50;
28214 READSX_WORD_F(adr, src)
28217 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28218 #ifdef USE_CYCLONE_TIMING_DIV
28223 dst = DREGu32((Opcode >> 9) & 7);
28224 if ((dst == 0x80000000) && (src == (u32)-1))
28226 flag_NotZ = flag_N = 0;
28227 flag_V = flag_C = 0;
28229 DREGu32((Opcode >> 9) & 7) = res;
28230 #ifdef USE_CYCLONE_TIMING_DIV
28238 q = (s32)dst / (s32)src;
28239 r = (s32)dst % (s32)src;
28241 if ((q > 0x7FFF) || (q < -0x8000))
28243 flag_V = M68K_SR_V;
28244 #ifdef USE_CYCLONE_TIMING_DIV
28252 flag_V = flag_C = 0;
28253 res = q | (r << 16);
28254 DREGu32((Opcode >> 9) & 7) = res;
28256 #ifdef USE_CYCLONE_TIMING_DIV
28257 end81FB: m68kcontext.io_cycle_counter -= 50;
28271 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28272 #ifdef USE_CYCLONE_TIMING_DIV
28277 dst = DREGu32((Opcode >> 9) & 7);
28278 if ((dst == 0x80000000) && (src == (u32)-1))
28280 flag_NotZ = flag_N = 0;
28281 flag_V = flag_C = 0;
28283 DREGu32((Opcode >> 9) & 7) = res;
28284 #ifdef USE_CYCLONE_TIMING_DIV
28292 q = (s32)dst / (s32)src;
28293 r = (s32)dst % (s32)src;
28295 if ((q > 0x7FFF) || (q < -0x8000))
28297 flag_V = M68K_SR_V;
28298 #ifdef USE_CYCLONE_TIMING_DIV
28306 flag_V = flag_C = 0;
28307 res = q | (r << 16);
28308 DREGu32((Opcode >> 9) & 7) = res;
28310 #ifdef USE_CYCLONE_TIMING_DIV
28311 end81FC: m68kcontext.io_cycle_counter -= 50;
28325 READSX_WORD_F(adr, src)
28328 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28329 #ifdef USE_CYCLONE_TIMING_DIV
28334 dst = DREGu32((Opcode >> 9) & 7);
28335 if ((dst == 0x80000000) && (src == (u32)-1))
28337 flag_NotZ = flag_N = 0;
28338 flag_V = flag_C = 0;
28340 DREGu32((Opcode >> 9) & 7) = res;
28341 #ifdef USE_CYCLONE_TIMING_DIV
28349 q = (s32)dst / (s32)src;
28350 r = (s32)dst % (s32)src;
28352 if ((q > 0x7FFF) || (q < -0x8000))
28354 flag_V = M68K_SR_V;
28355 #ifdef USE_CYCLONE_TIMING_DIV
28363 flag_V = flag_C = 0;
28364 res = q | (r << 16);
28365 DREGu32((Opcode >> 9) & 7) = res;
28367 #ifdef USE_CYCLONE_TIMING_DIV
28368 end81DF: m68kcontext.io_cycle_counter -= 50;
28382 READSX_WORD_F(adr, src)
28385 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28386 #ifdef USE_CYCLONE_TIMING_DIV
28391 dst = DREGu32((Opcode >> 9) & 7);
28392 if ((dst == 0x80000000) && (src == (u32)-1))
28394 flag_NotZ = flag_N = 0;
28395 flag_V = flag_C = 0;
28397 DREGu32((Opcode >> 9) & 7) = res;
28398 #ifdef USE_CYCLONE_TIMING_DIV
28406 q = (s32)dst / (s32)src;
28407 r = (s32)dst % (s32)src;
28409 if ((q > 0x7FFF) || (q < -0x8000))
28411 flag_V = M68K_SR_V;
28412 #ifdef USE_CYCLONE_TIMING_DIV
28420 flag_V = flag_C = 0;
28421 res = q | (r << 16);
28422 DREGu32((Opcode >> 9) & 7) = res;
28424 #ifdef USE_CYCLONE_TIMING_DIV
28425 end81E7: m68kcontext.io_cycle_counter -= 50;
28436 src = DREGu8((Opcode >> 0) & 7);
28437 dst = DREGu8((Opcode >> 9) & 7);
28439 flag_N = flag_X = flag_C = res;
28440 flag_V = (src ^ dst) & (res ^ dst);
28441 flag_NotZ = res & 0xFF;
28442 DREGu8((Opcode >> 9) & 7) = res;
28453 // can't read byte from Ax registers !
28454 m68kcontext.execinfo |= M68K_FAULTED;
28455 m68kcontext.io_cycle_counter = 0;
28457 goto famec_Exec_End;
28458 dst = DREGu8((Opcode >> 9) & 7);
28460 flag_N = flag_X = flag_C = res;
28461 flag_V = (src ^ dst) & (res ^ dst);
28462 flag_NotZ = res & 0xFF;
28463 DREGu8((Opcode >> 9) & 7) = res;
28475 adr = AREG((Opcode >> 0) & 7);
28477 READ_BYTE_F(adr, src)
28478 dst = DREGu8((Opcode >> 9) & 7);
28480 flag_N = flag_X = flag_C = res;
28481 flag_V = (src ^ dst) & (res ^ dst);
28482 flag_NotZ = res & 0xFF;
28483 DREGu8((Opcode >> 9) & 7) = res;
28494 adr = AREG((Opcode >> 0) & 7);
28495 AREG((Opcode >> 0) & 7) += 1;
28497 READ_BYTE_F(adr, src)
28498 dst = DREGu8((Opcode >> 9) & 7);
28500 flag_N = flag_X = flag_C = res;
28501 flag_V = (src ^ dst) & (res ^ dst);
28502 flag_NotZ = res & 0xFF;
28503 DREGu8((Opcode >> 9) & 7) = res;
28514 adr = AREG((Opcode >> 0) & 7) - 1;
28515 AREG((Opcode >> 0) & 7) = adr;
28517 READ_BYTE_F(adr, src)
28518 dst = DREGu8((Opcode >> 9) & 7);
28520 flag_N = flag_X = flag_C = res;
28521 flag_V = (src ^ dst) & (res ^ dst);
28522 flag_NotZ = res & 0xFF;
28523 DREGu8((Opcode >> 9) & 7) = res;
28535 adr += AREG((Opcode >> 0) & 7);
28537 READ_BYTE_F(adr, src)
28538 dst = DREGu8((Opcode >> 9) & 7);
28540 flag_N = flag_X = flag_C = res;
28541 flag_V = (src ^ dst) & (res ^ dst);
28542 flag_NotZ = res & 0xFF;
28543 DREGu8((Opcode >> 9) & 7) = res;
28554 adr = AREG((Opcode >> 0) & 7);
28557 READ_BYTE_F(adr, src)
28558 dst = DREGu8((Opcode >> 9) & 7);
28560 flag_N = flag_X = flag_C = res;
28561 flag_V = (src ^ dst) & (res ^ dst);
28562 flag_NotZ = res & 0xFF;
28563 DREGu8((Opcode >> 9) & 7) = res;
28576 READ_BYTE_F(adr, src)
28577 dst = DREGu8((Opcode >> 9) & 7);
28579 flag_N = flag_X = flag_C = res;
28580 flag_V = (src ^ dst) & (res ^ dst);
28581 flag_NotZ = res & 0xFF;
28582 DREGu8((Opcode >> 9) & 7) = res;
28595 READ_BYTE_F(adr, src)
28596 dst = DREGu8((Opcode >> 9) & 7);
28598 flag_N = flag_X = flag_C = res;
28599 flag_V = (src ^ dst) & (res ^ dst);
28600 flag_NotZ = res & 0xFF;
28601 DREGu8((Opcode >> 9) & 7) = res;
28612 adr = GET_SWORD + GET_PC;
28615 READ_BYTE_F(adr, src)
28616 dst = DREGu8((Opcode >> 9) & 7);
28618 flag_N = flag_X = flag_C = res;
28619 flag_V = (src ^ dst) & (res ^ dst);
28620 flag_NotZ = res & 0xFF;
28621 DREGu8((Opcode >> 9) & 7) = res;
28635 READ_BYTE_F(adr, src)
28636 dst = DREGu8((Opcode >> 9) & 7);
28638 flag_N = flag_X = flag_C = res;
28639 flag_V = (src ^ dst) & (res ^ dst);
28640 flag_NotZ = res & 0xFF;
28641 DREGu8((Opcode >> 9) & 7) = res;
28653 dst = DREGu8((Opcode >> 9) & 7);
28655 flag_N = flag_X = flag_C = res;
28656 flag_V = (src ^ dst) & (res ^ dst);
28657 flag_NotZ = res & 0xFF;
28658 DREGu8((Opcode >> 9) & 7) = res;
28671 READ_BYTE_F(adr, src)
28672 dst = DREGu8((Opcode >> 9) & 7);
28674 flag_N = flag_X = flag_C = res;
28675 flag_V = (src ^ dst) & (res ^ dst);
28676 flag_NotZ = res & 0xFF;
28677 DREGu8((Opcode >> 9) & 7) = res;
28691 READ_BYTE_F(adr, src)
28692 dst = DREGu8((Opcode >> 9) & 7);
28694 flag_N = flag_X = flag_C = res;
28695 flag_V = (src ^ dst) & (res ^ dst);
28696 flag_NotZ = res & 0xFF;
28697 DREGu8((Opcode >> 9) & 7) = res;
28708 src = DREGu16((Opcode >> 0) & 7);
28709 dst = DREGu16((Opcode >> 9) & 7);
28711 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28712 flag_N = flag_X = flag_C = res >> 8;
28713 flag_NotZ = res & 0xFFFF;
28714 DREGu16((Opcode >> 9) & 7) = res;
28724 src = AREGu16((Opcode >> 0) & 7);
28725 dst = DREGu16((Opcode >> 9) & 7);
28727 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28728 flag_N = flag_X = flag_C = res >> 8;
28729 flag_NotZ = res & 0xFFFF;
28730 DREGu16((Opcode >> 9) & 7) = res;
28740 adr = AREG((Opcode >> 0) & 7);
28742 READ_WORD_F(adr, src)
28743 dst = DREGu16((Opcode >> 9) & 7);
28745 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28746 flag_N = flag_X = flag_C = res >> 8;
28747 flag_NotZ = res & 0xFFFF;
28748 DREGu16((Opcode >> 9) & 7) = res;
28759 adr = AREG((Opcode >> 0) & 7);
28760 AREG((Opcode >> 0) & 7) += 2;
28762 READ_WORD_F(adr, src)
28763 dst = DREGu16((Opcode >> 9) & 7);
28765 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28766 flag_N = flag_X = flag_C = res >> 8;
28767 flag_NotZ = res & 0xFFFF;
28768 DREGu16((Opcode >> 9) & 7) = res;
28779 adr = AREG((Opcode >> 0) & 7) - 2;
28780 AREG((Opcode >> 0) & 7) = adr;
28782 READ_WORD_F(adr, src)
28783 dst = DREGu16((Opcode >> 9) & 7);
28785 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28786 flag_N = flag_X = flag_C = res >> 8;
28787 flag_NotZ = res & 0xFFFF;
28788 DREGu16((Opcode >> 9) & 7) = res;
28800 adr += AREG((Opcode >> 0) & 7);
28802 READ_WORD_F(adr, src)
28803 dst = DREGu16((Opcode >> 9) & 7);
28805 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28806 flag_N = flag_X = flag_C = res >> 8;
28807 flag_NotZ = res & 0xFFFF;
28808 DREGu16((Opcode >> 9) & 7) = res;
28819 adr = AREG((Opcode >> 0) & 7);
28822 READ_WORD_F(adr, src)
28823 dst = DREGu16((Opcode >> 9) & 7);
28825 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28826 flag_N = flag_X = flag_C = res >> 8;
28827 flag_NotZ = res & 0xFFFF;
28828 DREGu16((Opcode >> 9) & 7) = res;
28841 READ_WORD_F(adr, src)
28842 dst = DREGu16((Opcode >> 9) & 7);
28844 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28845 flag_N = flag_X = flag_C = res >> 8;
28846 flag_NotZ = res & 0xFFFF;
28847 DREGu16((Opcode >> 9) & 7) = res;
28860 READ_WORD_F(adr, src)
28861 dst = DREGu16((Opcode >> 9) & 7);
28863 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28864 flag_N = flag_X = flag_C = res >> 8;
28865 flag_NotZ = res & 0xFFFF;
28866 DREGu16((Opcode >> 9) & 7) = res;
28877 adr = GET_SWORD + GET_PC;
28880 READ_WORD_F(adr, src)
28881 dst = DREGu16((Opcode >> 9) & 7);
28883 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28884 flag_N = flag_X = flag_C = res >> 8;
28885 flag_NotZ = res & 0xFFFF;
28886 DREGu16((Opcode >> 9) & 7) = res;
28900 READ_WORD_F(adr, src)
28901 dst = DREGu16((Opcode >> 9) & 7);
28903 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28904 flag_N = flag_X = flag_C = res >> 8;
28905 flag_NotZ = res & 0xFFFF;
28906 DREGu16((Opcode >> 9) & 7) = res;
28918 dst = DREGu16((Opcode >> 9) & 7);
28920 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28921 flag_N = flag_X = flag_C = res >> 8;
28922 flag_NotZ = res & 0xFFFF;
28923 DREGu16((Opcode >> 9) & 7) = res;
28936 READ_WORD_F(adr, src)
28937 dst = DREGu16((Opcode >> 9) & 7);
28939 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28940 flag_N = flag_X = flag_C = res >> 8;
28941 flag_NotZ = res & 0xFFFF;
28942 DREGu16((Opcode >> 9) & 7) = res;
28956 READ_WORD_F(adr, src)
28957 dst = DREGu16((Opcode >> 9) & 7);
28959 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28960 flag_N = flag_X = flag_C = res >> 8;
28961 flag_NotZ = res & 0xFFFF;
28962 DREGu16((Opcode >> 9) & 7) = res;
28973 src = DREGu32((Opcode >> 0) & 7);
28974 dst = DREGu32((Opcode >> 9) & 7);
28977 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28978 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28979 flag_N = res >> 24;
28980 DREGu32((Opcode >> 9) & 7) = res;
28990 src = AREGu32((Opcode >> 0) & 7);
28991 dst = DREGu32((Opcode >> 9) & 7);
28994 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28995 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28996 flag_N = res >> 24;
28997 DREGu32((Opcode >> 9) & 7) = res;
29007 adr = AREG((Opcode >> 0) & 7);
29009 READ_LONG_F(adr, src)
29010 dst = DREGu32((Opcode >> 9) & 7);
29013 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29014 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29015 flag_N = res >> 24;
29016 DREGu32((Opcode >> 9) & 7) = res;
29027 adr = AREG((Opcode >> 0) & 7);
29028 AREG((Opcode >> 0) & 7) += 4;
29030 READ_LONG_F(adr, src)
29031 dst = DREGu32((Opcode >> 9) & 7);
29034 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29035 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29036 flag_N = res >> 24;
29037 DREGu32((Opcode >> 9) & 7) = res;
29048 adr = AREG((Opcode >> 0) & 7) - 4;
29049 AREG((Opcode >> 0) & 7) = adr;
29051 READ_LONG_F(adr, src)
29052 dst = DREGu32((Opcode >> 9) & 7);
29055 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29056 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29057 flag_N = res >> 24;
29058 DREGu32((Opcode >> 9) & 7) = res;
29070 adr += AREG((Opcode >> 0) & 7);
29072 READ_LONG_F(adr, src)
29073 dst = DREGu32((Opcode >> 9) & 7);
29076 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29077 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29078 flag_N = res >> 24;
29079 DREGu32((Opcode >> 9) & 7) = res;
29090 adr = AREG((Opcode >> 0) & 7);
29093 READ_LONG_F(adr, src)
29094 dst = DREGu32((Opcode >> 9) & 7);
29097 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29098 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29099 flag_N = res >> 24;
29100 DREGu32((Opcode >> 9) & 7) = res;
29113 READ_LONG_F(adr, src)
29114 dst = DREGu32((Opcode >> 9) & 7);
29117 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29118 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29119 flag_N = res >> 24;
29120 DREGu32((Opcode >> 9) & 7) = res;
29133 READ_LONG_F(adr, src)
29134 dst = DREGu32((Opcode >> 9) & 7);
29137 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29138 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29139 flag_N = res >> 24;
29140 DREGu32((Opcode >> 9) & 7) = res;
29151 adr = GET_SWORD + GET_PC;
29154 READ_LONG_F(adr, src)
29155 dst = DREGu32((Opcode >> 9) & 7);
29158 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29159 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29160 flag_N = res >> 24;
29161 DREGu32((Opcode >> 9) & 7) = res;
29175 READ_LONG_F(adr, src)
29176 dst = DREGu32((Opcode >> 9) & 7);
29179 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29180 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29181 flag_N = res >> 24;
29182 DREGu32((Opcode >> 9) & 7) = res;
29194 dst = DREGu32((Opcode >> 9) & 7);
29197 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29198 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29199 flag_N = res >> 24;
29200 DREGu32((Opcode >> 9) & 7) = res;
29213 READ_LONG_F(adr, src)
29214 dst = DREGu32((Opcode >> 9) & 7);
29217 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29218 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29219 flag_N = res >> 24;
29220 DREGu32((Opcode >> 9) & 7) = res;
29234 READ_LONG_F(adr, src)
29235 dst = DREGu32((Opcode >> 9) & 7);
29238 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29239 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29240 flag_N = res >> 24;
29241 DREGu32((Opcode >> 9) & 7) = res;
29252 src = DREGu8((Opcode >> 9) & 7);
29253 adr = AREG((Opcode >> 0) & 7);
29255 READ_BYTE_F(adr, dst)
29257 flag_N = flag_X = flag_C = res;
29258 flag_V = (src ^ dst) & (res ^ dst);
29259 flag_NotZ = res & 0xFF;
29260 WRITE_BYTE_F(adr, res)
29271 src = DREGu8((Opcode >> 9) & 7);
29272 adr = AREG((Opcode >> 0) & 7);
29273 AREG((Opcode >> 0) & 7) += 1;
29275 READ_BYTE_F(adr, dst)
29277 flag_N = flag_X = flag_C = res;
29278 flag_V = (src ^ dst) & (res ^ dst);
29279 flag_NotZ = res & 0xFF;
29280 WRITE_BYTE_F(adr, res)
29291 src = DREGu8((Opcode >> 9) & 7);
29292 adr = AREG((Opcode >> 0) & 7) - 1;
29293 AREG((Opcode >> 0) & 7) = adr;
29295 READ_BYTE_F(adr, dst)
29297 flag_N = flag_X = flag_C = res;
29298 flag_V = (src ^ dst) & (res ^ dst);
29299 flag_NotZ = res & 0xFF;
29300 WRITE_BYTE_F(adr, res)
29311 src = DREGu8((Opcode >> 9) & 7);
29313 adr += AREG((Opcode >> 0) & 7);
29315 READ_BYTE_F(adr, dst)
29317 flag_N = flag_X = flag_C = res;
29318 flag_V = (src ^ dst) & (res ^ dst);
29319 flag_NotZ = res & 0xFF;
29320 WRITE_BYTE_F(adr, res)
29331 src = DREGu8((Opcode >> 9) & 7);
29332 adr = AREG((Opcode >> 0) & 7);
29335 READ_BYTE_F(adr, dst)
29337 flag_N = flag_X = flag_C = res;
29338 flag_V = (src ^ dst) & (res ^ dst);
29339 flag_NotZ = res & 0xFF;
29340 WRITE_BYTE_F(adr, res)
29351 src = DREGu8((Opcode >> 9) & 7);
29354 READ_BYTE_F(adr, dst)
29356 flag_N = flag_X = flag_C = res;
29357 flag_V = (src ^ dst) & (res ^ dst);
29358 flag_NotZ = res & 0xFF;
29359 WRITE_BYTE_F(adr, res)
29370 src = DREGu8((Opcode >> 9) & 7);
29373 READ_BYTE_F(adr, dst)
29375 flag_N = flag_X = flag_C = res;
29376 flag_V = (src ^ dst) & (res ^ dst);
29377 flag_NotZ = res & 0xFF;
29378 WRITE_BYTE_F(adr, res)
29389 src = DREGu8((Opcode >> 9) & 7);
29393 READ_BYTE_F(adr, dst)
29395 flag_N = flag_X = flag_C = res;
29396 flag_V = (src ^ dst) & (res ^ dst);
29397 flag_NotZ = res & 0xFF;
29398 WRITE_BYTE_F(adr, res)
29409 src = DREGu8((Opcode >> 9) & 7);
29413 READ_BYTE_F(adr, dst)
29415 flag_N = flag_X = flag_C = res;
29416 flag_V = (src ^ dst) & (res ^ dst);
29417 flag_NotZ = res & 0xFF;
29418 WRITE_BYTE_F(adr, res)
29429 src = DREGu16((Opcode >> 9) & 7);
29430 adr = AREG((Opcode >> 0) & 7);
29432 READ_WORD_F(adr, dst)
29434 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29435 flag_N = flag_X = flag_C = res >> 8;
29436 flag_NotZ = res & 0xFFFF;
29437 WRITE_WORD_F(adr, res)
29448 src = DREGu16((Opcode >> 9) & 7);
29449 adr = AREG((Opcode >> 0) & 7);
29450 AREG((Opcode >> 0) & 7) += 2;
29452 READ_WORD_F(adr, dst)
29454 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29455 flag_N = flag_X = flag_C = res >> 8;
29456 flag_NotZ = res & 0xFFFF;
29457 WRITE_WORD_F(adr, res)
29468 src = DREGu16((Opcode >> 9) & 7);
29469 adr = AREG((Opcode >> 0) & 7) - 2;
29470 AREG((Opcode >> 0) & 7) = adr;
29472 READ_WORD_F(adr, dst)
29474 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29475 flag_N = flag_X = flag_C = res >> 8;
29476 flag_NotZ = res & 0xFFFF;
29477 WRITE_WORD_F(adr, res)
29488 src = DREGu16((Opcode >> 9) & 7);
29490 adr += AREG((Opcode >> 0) & 7);
29492 READ_WORD_F(adr, dst)
29494 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29495 flag_N = flag_X = flag_C = res >> 8;
29496 flag_NotZ = res & 0xFFFF;
29497 WRITE_WORD_F(adr, res)
29508 src = DREGu16((Opcode >> 9) & 7);
29509 adr = AREG((Opcode >> 0) & 7);
29512 READ_WORD_F(adr, dst)
29514 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29515 flag_N = flag_X = flag_C = res >> 8;
29516 flag_NotZ = res & 0xFFFF;
29517 WRITE_WORD_F(adr, res)
29528 src = DREGu16((Opcode >> 9) & 7);
29531 READ_WORD_F(adr, dst)
29533 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29534 flag_N = flag_X = flag_C = res >> 8;
29535 flag_NotZ = res & 0xFFFF;
29536 WRITE_WORD_F(adr, res)
29547 src = DREGu16((Opcode >> 9) & 7);
29550 READ_WORD_F(adr, dst)
29552 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29553 flag_N = flag_X = flag_C = res >> 8;
29554 flag_NotZ = res & 0xFFFF;
29555 WRITE_WORD_F(adr, res)
29566 src = DREGu16((Opcode >> 9) & 7);
29570 READ_WORD_F(adr, dst)
29572 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29573 flag_N = flag_X = flag_C = res >> 8;
29574 flag_NotZ = res & 0xFFFF;
29575 WRITE_WORD_F(adr, res)
29586 src = DREGu16((Opcode >> 9) & 7);
29590 READ_WORD_F(adr, dst)
29592 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29593 flag_N = flag_X = flag_C = res >> 8;
29594 flag_NotZ = res & 0xFFFF;
29595 WRITE_WORD_F(adr, res)
29606 src = DREGu32((Opcode >> 9) & 7);
29607 adr = AREG((Opcode >> 0) & 7);
29609 READ_LONG_F(adr, dst)
29612 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29613 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29614 flag_N = res >> 24;
29615 WRITE_LONG_F(adr, res)
29626 src = DREGu32((Opcode >> 9) & 7);
29627 adr = AREG((Opcode >> 0) & 7);
29628 AREG((Opcode >> 0) & 7) += 4;
29630 READ_LONG_F(adr, dst)
29633 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29634 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29635 flag_N = res >> 24;
29636 WRITE_LONG_F(adr, res)
29647 src = DREGu32((Opcode >> 9) & 7);
29648 adr = AREG((Opcode >> 0) & 7) - 4;
29649 AREG((Opcode >> 0) & 7) = adr;
29651 READ_LONG_F(adr, dst)
29654 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29655 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29656 flag_N = res >> 24;
29657 WRITE_LONG_F(adr, res)
29668 src = DREGu32((Opcode >> 9) & 7);
29670 adr += AREG((Opcode >> 0) & 7);
29672 READ_LONG_F(adr, dst)
29675 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29676 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29677 flag_N = res >> 24;
29678 WRITE_LONG_F(adr, res)
29689 src = DREGu32((Opcode >> 9) & 7);
29690 adr = AREG((Opcode >> 0) & 7);
29693 READ_LONG_F(adr, dst)
29696 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29697 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29698 flag_N = res >> 24;
29699 WRITE_LONG_F(adr, res)
29710 src = DREGu32((Opcode >> 9) & 7);
29713 READ_LONG_F(adr, dst)
29716 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29717 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29718 flag_N = res >> 24;
29719 WRITE_LONG_F(adr, res)
29730 src = DREGu32((Opcode >> 9) & 7);
29733 READ_LONG_F(adr, dst)
29736 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29737 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29738 flag_N = res >> 24;
29739 WRITE_LONG_F(adr, res)
29750 src = DREGu32((Opcode >> 9) & 7);
29754 READ_LONG_F(adr, dst)
29757 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29758 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29759 flag_N = res >> 24;
29760 WRITE_LONG_F(adr, res)
29771 src = DREGu32((Opcode >> 9) & 7);
29775 READ_LONG_F(adr, dst)
29778 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29779 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29780 flag_N = res >> 24;
29781 WRITE_LONG_F(adr, res)
29792 src = DREGu8((Opcode >> 0) & 7);
29793 dst = DREGu8((Opcode >> 9) & 7);
29794 res = dst - src - ((flag_X >> 8) & 1);
29795 flag_N = flag_X = flag_C = res;
29796 flag_V = (src ^ dst) & (res ^ dst);
29797 flag_NotZ |= res & 0xFF;
29798 DREGu8((Opcode >> 9) & 7) = res;
29808 src = DREGu16((Opcode >> 0) & 7);
29809 dst = DREGu16((Opcode >> 9) & 7);
29810 res = dst - src - ((flag_X >> 8) & 1);
29811 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29812 flag_N = flag_X = flag_C = res >> 8;
29813 flag_NotZ |= res & 0xFFFF;
29814 DREGu16((Opcode >> 9) & 7) = res;
29824 src = DREGu32((Opcode >> 0) & 7);
29825 dst = DREGu32((Opcode >> 9) & 7);
29826 res = dst - src - ((flag_X >> 8) & 1);
29828 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29829 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29830 flag_N = res >> 24;
29831 DREGu32((Opcode >> 9) & 7) = res;
29841 adr = AREG((Opcode >> 0) & 7) - 1;
29842 AREG((Opcode >> 0) & 7) = adr;
29844 READ_BYTE_F(adr, src)
29845 adr = AREG((Opcode >> 9) & 7) - 1;
29846 AREG((Opcode >> 9) & 7) = adr;
29847 READ_BYTE_F(adr, dst)
29848 res = dst - src - ((flag_X >> 8) & 1);
29849 flag_N = flag_X = flag_C = res;
29850 flag_V = (src ^ dst) & (res ^ dst);
29851 flag_NotZ |= res & 0xFF;
29852 WRITE_BYTE_F(adr, res)
29863 adr = AREG((Opcode >> 0) & 7) - 2;
29864 AREG((Opcode >> 0) & 7) = adr;
29866 READ_WORD_F(adr, src)
29867 adr = AREG((Opcode >> 9) & 7) - 2;
29868 AREG((Opcode >> 9) & 7) = adr;
29869 READ_WORD_F(adr, dst)
29870 res = dst - src - ((flag_X >> 8) & 1);
29871 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29872 flag_N = flag_X = flag_C = res >> 8;
29873 flag_NotZ |= res & 0xFFFF;
29874 WRITE_WORD_F(adr, res)
29885 adr = AREG((Opcode >> 0) & 7) - 4;
29886 AREG((Opcode >> 0) & 7) = adr;
29888 READ_LONG_F(adr, src)
29889 adr = AREG((Opcode >> 9) & 7) - 4;
29890 AREG((Opcode >> 9) & 7) = adr;
29891 READ_LONG_F(adr, dst)
29892 res = dst - src - ((flag_X >> 8) & 1);
29894 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29895 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29896 flag_N = res >> 24;
29897 WRITE_LONG_F(adr, res)
29911 READ_BYTE_F(adr, src)
29912 adr = AREG((Opcode >> 9) & 7) - 1;
29913 AREG((Opcode >> 9) & 7) = adr;
29914 READ_BYTE_F(adr, dst)
29915 res = dst - src - ((flag_X >> 8) & 1);
29916 flag_N = flag_X = flag_C = res;
29917 flag_V = (src ^ dst) & (res ^ dst);
29918 flag_NotZ |= res & 0xFF;
29919 WRITE_BYTE_F(adr, res)
29933 READ_WORD_F(adr, src)
29934 adr = AREG((Opcode >> 9) & 7) - 2;
29935 AREG((Opcode >> 9) & 7) = adr;
29936 READ_WORD_F(adr, dst)
29937 res = dst - src - ((flag_X >> 8) & 1);
29938 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29939 flag_N = flag_X = flag_C = res >> 8;
29940 flag_NotZ |= res & 0xFFFF;
29941 WRITE_WORD_F(adr, res)
29955 READ_LONG_F(adr, src)
29956 adr = AREG((Opcode >> 9) & 7) - 4;
29957 AREG((Opcode >> 9) & 7) = adr;
29958 READ_LONG_F(adr, dst)
29959 res = dst - src - ((flag_X >> 8) & 1);
29961 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29962 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29963 flag_N = res >> 24;
29964 WRITE_LONG_F(adr, res)
29975 adr = AREG((Opcode >> 0) & 7) - 1;
29976 AREG((Opcode >> 0) & 7) = adr;
29978 READ_BYTE_F(adr, src)
29981 READ_BYTE_F(adr, dst)
29982 res = dst - src - ((flag_X >> 8) & 1);
29983 flag_N = flag_X = flag_C = res;
29984 flag_V = (src ^ dst) & (res ^ dst);
29985 flag_NotZ |= res & 0xFF;
29986 WRITE_BYTE_F(adr, res)
29997 adr = AREG((Opcode >> 0) & 7) - 2;
29998 AREG((Opcode >> 0) & 7) = adr;
30000 READ_WORD_F(adr, src)
30003 READ_WORD_F(adr, dst)
30004 res = dst - src - ((flag_X >> 8) & 1);
30005 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30006 flag_N = flag_X = flag_C = res >> 8;
30007 flag_NotZ |= res & 0xFFFF;
30008 WRITE_WORD_F(adr, res)
30019 adr = AREG((Opcode >> 0) & 7) - 4;
30020 AREG((Opcode >> 0) & 7) = adr;
30022 READ_LONG_F(adr, src)
30025 READ_LONG_F(adr, dst)
30026 res = dst - src - ((flag_X >> 8) & 1);
30028 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
30029 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
30030 flag_N = res >> 24;
30031 WRITE_LONG_F(adr, res)
30045 READ_BYTE_F(adr, src)
30048 READ_BYTE_F(adr, dst)
30049 res = dst - src - ((flag_X >> 8) & 1);
30050 flag_N = flag_X = flag_C = res;
30051 flag_V = (src ^ dst) & (res ^ dst);
30052 flag_NotZ |= res & 0xFF;
30053 WRITE_BYTE_F(adr, res)
30067 READ_WORD_F(adr, src)
30070 READ_WORD_F(adr, dst)
30071 res = dst - src - ((flag_X >> 8) & 1);
30072 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30073 flag_N = flag_X = flag_C = res >> 8;
30074 flag_NotZ |= res & 0xFFFF;
30075 WRITE_WORD_F(adr, res)
30089 READ_LONG_F(adr, src)
30092 READ_LONG_F(adr, dst)
30093 res = dst - src - ((flag_X >> 8) & 1);
30095 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
30096 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
30097 flag_N = res >> 24;
30098 WRITE_LONG_F(adr, res)
30109 src = (s32)DREGs16((Opcode >> 0) & 7);
30110 dst = AREGu32((Opcode >> 9) & 7);
30112 AREG((Opcode >> 9) & 7) = res;
30122 src = (s32)AREGs16((Opcode >> 0) & 7);
30123 dst = AREGu32((Opcode >> 9) & 7);
30125 AREG((Opcode >> 9) & 7) = res;
30135 adr = AREG((Opcode >> 0) & 7);
30137 READSX_WORD_F(adr, src)
30138 dst = AREGu32((Opcode >> 9) & 7);
30140 AREG((Opcode >> 9) & 7) = res;
30142 #ifdef USE_CYCLONE_TIMING
30155 adr = AREG((Opcode >> 0) & 7);
30156 AREG((Opcode >> 0) & 7) += 2;
30158 READSX_WORD_F(adr, src)
30159 dst = AREGu32((Opcode >> 9) & 7);
30161 AREG((Opcode >> 9) & 7) = res;
30163 #ifdef USE_CYCLONE_TIMING
30176 adr = AREG((Opcode >> 0) & 7) - 2;
30177 AREG((Opcode >> 0) & 7) = adr;
30179 READSX_WORD_F(adr, src)
30180 dst = AREGu32((Opcode >> 9) & 7);
30182 AREG((Opcode >> 9) & 7) = res;
30184 #ifdef USE_CYCLONE_TIMING
30198 adr += AREG((Opcode >> 0) & 7);
30200 READSX_WORD_F(adr, src)
30201 dst = AREGu32((Opcode >> 9) & 7);
30203 AREG((Opcode >> 9) & 7) = res;
30205 #ifdef USE_CYCLONE_TIMING
30218 adr = AREG((Opcode >> 0) & 7);
30221 READSX_WORD_F(adr, src)
30222 dst = AREGu32((Opcode >> 9) & 7);
30224 AREG((Opcode >> 9) & 7) = res;
30226 #ifdef USE_CYCLONE_TIMING
30241 READSX_WORD_F(adr, src)
30242 dst = AREGu32((Opcode >> 9) & 7);
30244 AREG((Opcode >> 9) & 7) = res;
30246 #ifdef USE_CYCLONE_TIMING
30261 READSX_WORD_F(adr, src)
30262 dst = AREGu32((Opcode >> 9) & 7);
30264 AREG((Opcode >> 9) & 7) = res;
30266 #ifdef USE_CYCLONE_TIMING
30279 adr = GET_SWORD + GET_PC;
30282 READSX_WORD_F(adr, src)
30283 dst = AREGu32((Opcode >> 9) & 7);
30285 AREG((Opcode >> 9) & 7) = res;
30287 #ifdef USE_CYCLONE_TIMING
30303 READSX_WORD_F(adr, src)
30304 dst = AREGu32((Opcode >> 9) & 7);
30306 AREG((Opcode >> 9) & 7) = res;
30308 #ifdef USE_CYCLONE_TIMING
30322 dst = AREGu32((Opcode >> 9) & 7);
30324 AREG((Opcode >> 9) & 7) = res;
30337 READSX_WORD_F(adr, src)
30338 dst = AREGu32((Opcode >> 9) & 7);
30340 AREG((Opcode >> 9) & 7) = res;
30342 #ifdef USE_CYCLONE_TIMING
30358 READSX_WORD_F(adr, src)
30359 dst = AREGu32((Opcode >> 9) & 7);
30361 AREG((Opcode >> 9) & 7) = res;
30363 #ifdef USE_CYCLONE_TIMING
30376 src = (s32)DREGs32((Opcode >> 0) & 7);
30377 dst = AREGu32((Opcode >> 9) & 7);
30379 AREG((Opcode >> 9) & 7) = res;
30380 #ifdef USE_CYCLONE_TIMING
30393 src = (s32)AREGs32((Opcode >> 0) & 7);
30394 dst = AREGu32((Opcode >> 9) & 7);
30396 AREG((Opcode >> 9) & 7) = res;
30397 #ifdef USE_CYCLONE_TIMING
30410 adr = AREG((Opcode >> 0) & 7);
30412 READSX_LONG_F(adr, src)
30413 dst = AREGu32((Opcode >> 9) & 7);
30415 AREG((Opcode >> 9) & 7) = res;
30426 adr = AREG((Opcode >> 0) & 7);
30427 AREG((Opcode >> 0) & 7) += 4;
30429 READSX_LONG_F(adr, src)
30430 dst = AREGu32((Opcode >> 9) & 7);
30432 AREG((Opcode >> 9) & 7) = res;
30443 adr = AREG((Opcode >> 0) & 7) - 4;
30444 AREG((Opcode >> 0) & 7) = adr;
30446 READSX_LONG_F(adr, src)
30447 dst = AREGu32((Opcode >> 9) & 7);
30449 AREG((Opcode >> 9) & 7) = res;
30461 adr += AREG((Opcode >> 0) & 7);
30463 READSX_LONG_F(adr, src)
30464 dst = AREGu32((Opcode >> 9) & 7);
30466 AREG((Opcode >> 9) & 7) = res;
30477 adr = AREG((Opcode >> 0) & 7);
30480 READSX_LONG_F(adr, src)
30481 dst = AREGu32((Opcode >> 9) & 7);
30483 AREG((Opcode >> 9) & 7) = res;
30496 READSX_LONG_F(adr, src)
30497 dst = AREGu32((Opcode >> 9) & 7);
30499 AREG((Opcode >> 9) & 7) = res;
30512 READSX_LONG_F(adr, src)
30513 dst = AREGu32((Opcode >> 9) & 7);
30515 AREG((Opcode >> 9) & 7) = res;
30526 adr = GET_SWORD + GET_PC;
30529 READSX_LONG_F(adr, src)
30530 dst = AREGu32((Opcode >> 9) & 7);
30532 AREG((Opcode >> 9) & 7) = res;
30546 READSX_LONG_F(adr, src)
30547 dst = AREGu32((Opcode >> 9) & 7);
30549 AREG((Opcode >> 9) & 7) = res;
30561 dst = AREGu32((Opcode >> 9) & 7);
30563 AREG((Opcode >> 9) & 7) = res;
30564 #ifdef USE_CYCLONE_TIMING
30580 READSX_LONG_F(adr, src)
30581 dst = AREGu32((Opcode >> 9) & 7);
30583 AREG((Opcode >> 9) & 7) = res;
30597 READSX_LONG_F(adr, src)
30598 dst = AREGu32((Opcode >> 9) & 7);
30600 AREG((Opcode >> 9) & 7) = res;
30611 src = DREGu8((Opcode >> 0) & 7);
30612 dst = DREGu8((Opcode >> 9) & 7);
30614 flag_N = flag_C = res;
30615 flag_V = (src ^ dst) & (res ^ dst);
30616 flag_NotZ = res & 0xFF;
30627 // can't read byte from Ax registers !
30628 m68kcontext.execinfo |= M68K_FAULTED;
30629 m68kcontext.io_cycle_counter = 0;
30631 goto famec_Exec_End;
30632 dst = DREGu8((Opcode >> 9) & 7);
30634 flag_N = flag_C = res;
30635 flag_V = (src ^ dst) & (res ^ dst);
30636 flag_NotZ = res & 0xFF;
30648 adr = AREG((Opcode >> 0) & 7);
30650 READ_BYTE_F(adr, src)
30651 dst = DREGu8((Opcode >> 9) & 7);
30653 flag_N = flag_C = res;
30654 flag_V = (src ^ dst) & (res ^ dst);
30655 flag_NotZ = res & 0xFF;
30666 adr = AREG((Opcode >> 0) & 7);
30667 AREG((Opcode >> 0) & 7) += 1;
30669 READ_BYTE_F(adr, src)
30670 dst = DREGu8((Opcode >> 9) & 7);
30672 flag_N = flag_C = res;
30673 flag_V = (src ^ dst) & (res ^ dst);
30674 flag_NotZ = res & 0xFF;
30685 adr = AREG((Opcode >> 0) & 7) - 1;
30686 AREG((Opcode >> 0) & 7) = adr;
30688 READ_BYTE_F(adr, src)
30689 dst = DREGu8((Opcode >> 9) & 7);
30691 flag_N = flag_C = res;
30692 flag_V = (src ^ dst) & (res ^ dst);
30693 flag_NotZ = res & 0xFF;
30705 adr += AREG((Opcode >> 0) & 7);
30707 READ_BYTE_F(adr, src)
30708 dst = DREGu8((Opcode >> 9) & 7);
30710 flag_N = flag_C = res;
30711 flag_V = (src ^ dst) & (res ^ dst);
30712 flag_NotZ = res & 0xFF;
30723 adr = AREG((Opcode >> 0) & 7);
30726 READ_BYTE_F(adr, src)
30727 dst = DREGu8((Opcode >> 9) & 7);
30729 flag_N = flag_C = res;
30730 flag_V = (src ^ dst) & (res ^ dst);
30731 flag_NotZ = res & 0xFF;
30744 READ_BYTE_F(adr, src)
30745 dst = DREGu8((Opcode >> 9) & 7);
30747 flag_N = flag_C = res;
30748 flag_V = (src ^ dst) & (res ^ dst);
30749 flag_NotZ = res & 0xFF;
30762 READ_BYTE_F(adr, src)
30763 dst = DREGu8((Opcode >> 9) & 7);
30765 flag_N = flag_C = res;
30766 flag_V = (src ^ dst) & (res ^ dst);
30767 flag_NotZ = res & 0xFF;
30778 adr = GET_SWORD + GET_PC;
30781 READ_BYTE_F(adr, src)
30782 dst = DREGu8((Opcode >> 9) & 7);
30784 flag_N = flag_C = res;
30785 flag_V = (src ^ dst) & (res ^ dst);
30786 flag_NotZ = res & 0xFF;
30800 READ_BYTE_F(adr, src)
30801 dst = DREGu8((Opcode >> 9) & 7);
30803 flag_N = flag_C = res;
30804 flag_V = (src ^ dst) & (res ^ dst);
30805 flag_NotZ = res & 0xFF;
30817 dst = DREGu8((Opcode >> 9) & 7);
30819 flag_N = flag_C = res;
30820 flag_V = (src ^ dst) & (res ^ dst);
30821 flag_NotZ = res & 0xFF;
30834 READ_BYTE_F(adr, src)
30835 dst = DREGu8((Opcode >> 9) & 7);
30837 flag_N = flag_C = res;
30838 flag_V = (src ^ dst) & (res ^ dst);
30839 flag_NotZ = res & 0xFF;
30853 READ_BYTE_F(adr, src)
30854 dst = DREGu8((Opcode >> 9) & 7);
30856 flag_N = flag_C = res;
30857 flag_V = (src ^ dst) & (res ^ dst);
30858 flag_NotZ = res & 0xFF;
30869 src = DREGu16((Opcode >> 0) & 7);
30870 dst = DREGu16((Opcode >> 9) & 7);
30872 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30873 flag_N = flag_C = res >> 8;
30874 flag_NotZ = res & 0xFFFF;
30884 src = AREGu16((Opcode >> 0) & 7);
30885 dst = DREGu16((Opcode >> 9) & 7);
30887 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30888 flag_N = flag_C = res >> 8;
30889 flag_NotZ = res & 0xFFFF;
30899 adr = AREG((Opcode >> 0) & 7);
30901 READ_WORD_F(adr, src)
30902 dst = DREGu16((Opcode >> 9) & 7);
30904 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30905 flag_N = flag_C = res >> 8;
30906 flag_NotZ = res & 0xFFFF;
30917 adr = AREG((Opcode >> 0) & 7);
30918 AREG((Opcode >> 0) & 7) += 2;
30920 READ_WORD_F(adr, src)
30921 dst = DREGu16((Opcode >> 9) & 7);
30923 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30924 flag_N = flag_C = res >> 8;
30925 flag_NotZ = res & 0xFFFF;
30936 adr = AREG((Opcode >> 0) & 7) - 2;
30937 AREG((Opcode >> 0) & 7) = adr;
30939 READ_WORD_F(adr, src)
30940 dst = DREGu16((Opcode >> 9) & 7);
30942 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30943 flag_N = flag_C = res >> 8;
30944 flag_NotZ = res & 0xFFFF;
30956 adr += AREG((Opcode >> 0) & 7);
30958 READ_WORD_F(adr, src)
30959 dst = DREGu16((Opcode >> 9) & 7);
30961 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30962 flag_N = flag_C = res >> 8;
30963 flag_NotZ = res & 0xFFFF;
30974 adr = AREG((Opcode >> 0) & 7);
30977 READ_WORD_F(adr, src)
30978 dst = DREGu16((Opcode >> 9) & 7);
30980 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30981 flag_N = flag_C = res >> 8;
30982 flag_NotZ = res & 0xFFFF;
30995 READ_WORD_F(adr, src)
30996 dst = DREGu16((Opcode >> 9) & 7);
30998 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30999 flag_N = flag_C = res >> 8;
31000 flag_NotZ = res & 0xFFFF;
31013 READ_WORD_F(adr, src)
31014 dst = DREGu16((Opcode >> 9) & 7);
31016 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31017 flag_N = flag_C = res >> 8;
31018 flag_NotZ = res & 0xFFFF;
31029 adr = GET_SWORD + GET_PC;
31032 READ_WORD_F(adr, src)
31033 dst = DREGu16((Opcode >> 9) & 7);
31035 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31036 flag_N = flag_C = res >> 8;
31037 flag_NotZ = res & 0xFFFF;
31051 READ_WORD_F(adr, src)
31052 dst = DREGu16((Opcode >> 9) & 7);
31054 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31055 flag_N = flag_C = res >> 8;
31056 flag_NotZ = res & 0xFFFF;
31068 dst = DREGu16((Opcode >> 9) & 7);
31070 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31071 flag_N = flag_C = res >> 8;
31072 flag_NotZ = res & 0xFFFF;
31085 READ_WORD_F(adr, src)
31086 dst = DREGu16((Opcode >> 9) & 7);
31088 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31089 flag_N = flag_C = res >> 8;
31090 flag_NotZ = res & 0xFFFF;
31104 READ_WORD_F(adr, src)
31105 dst = DREGu16((Opcode >> 9) & 7);
31107 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31108 flag_N = flag_C = res >> 8;
31109 flag_NotZ = res & 0xFFFF;
31120 src = DREGu32((Opcode >> 0) & 7);
31121 dst = DREGu32((Opcode >> 9) & 7);
31124 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31125 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31126 flag_N = res >> 24;
31136 src = AREGu32((Opcode >> 0) & 7);
31137 dst = DREGu32((Opcode >> 9) & 7);
31140 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31141 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31142 flag_N = res >> 24;
31152 adr = AREG((Opcode >> 0) & 7);
31154 READ_LONG_F(adr, src)
31155 dst = DREGu32((Opcode >> 9) & 7);
31158 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31159 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31160 flag_N = res >> 24;
31171 adr = AREG((Opcode >> 0) & 7);
31172 AREG((Opcode >> 0) & 7) += 4;
31174 READ_LONG_F(adr, src)
31175 dst = DREGu32((Opcode >> 9) & 7);
31178 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31179 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31180 flag_N = res >> 24;
31191 adr = AREG((Opcode >> 0) & 7) - 4;
31192 AREG((Opcode >> 0) & 7) = adr;
31194 READ_LONG_F(adr, src)
31195 dst = DREGu32((Opcode >> 9) & 7);
31198 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31199 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31200 flag_N = res >> 24;
31212 adr += AREG((Opcode >> 0) & 7);
31214 READ_LONG_F(adr, src)
31215 dst = DREGu32((Opcode >> 9) & 7);
31218 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31219 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31220 flag_N = res >> 24;
31231 adr = AREG((Opcode >> 0) & 7);
31234 READ_LONG_F(adr, src)
31235 dst = DREGu32((Opcode >> 9) & 7);
31238 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31239 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31240 flag_N = res >> 24;
31253 READ_LONG_F(adr, src)
31254 dst = DREGu32((Opcode >> 9) & 7);
31257 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31258 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31259 flag_N = res >> 24;
31272 READ_LONG_F(adr, src)
31273 dst = DREGu32((Opcode >> 9) & 7);
31276 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31277 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31278 flag_N = res >> 24;
31289 adr = GET_SWORD + GET_PC;
31292 READ_LONG_F(adr, src)
31293 dst = DREGu32((Opcode >> 9) & 7);
31296 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31297 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31298 flag_N = res >> 24;
31312 READ_LONG_F(adr, src)
31313 dst = DREGu32((Opcode >> 9) & 7);
31316 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31317 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31318 flag_N = res >> 24;
31330 dst = DREGu32((Opcode >> 9) & 7);
31333 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31334 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31335 flag_N = res >> 24;
31348 READ_LONG_F(adr, src)
31349 dst = DREGu32((Opcode >> 9) & 7);
31352 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31353 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31354 flag_N = res >> 24;
31368 READ_LONG_F(adr, src)
31369 dst = DREGu32((Opcode >> 9) & 7);
31372 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31373 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31374 flag_N = res >> 24;
31385 adr = AREG((Opcode >> 0) & 7);
31386 AREG((Opcode >> 0) & 7) += 1;
31388 READ_BYTE_F(adr, src)
31389 adr = AREG((Opcode >> 9) & 7);
31390 AREG((Opcode >> 9) & 7) += 1;
31391 READ_BYTE_F(adr, dst)
31393 flag_N = flag_C = res;
31394 flag_V = (src ^ dst) & (res ^ dst);
31395 flag_NotZ = res & 0xFF;
31406 adr = AREG((Opcode >> 0) & 7);
31407 AREG((Opcode >> 0) & 7) += 2;
31409 READ_WORD_F(adr, src)
31410 adr = AREG((Opcode >> 9) & 7);
31411 AREG((Opcode >> 9) & 7) += 2;
31412 READ_WORD_F(adr, dst)
31414 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31415 flag_N = flag_C = res >> 8;
31416 flag_NotZ = res & 0xFFFF;
31427 adr = AREG((Opcode >> 0) & 7);
31428 AREG((Opcode >> 0) & 7) += 4;
31430 READ_LONG_F(adr, src)
31431 adr = AREG((Opcode >> 9) & 7);
31432 AREG((Opcode >> 9) & 7) += 4;
31433 READ_LONG_F(adr, dst)
31436 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31437 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31438 flag_N = res >> 24;
31452 READ_BYTE_F(adr, src)
31453 adr = AREG((Opcode >> 9) & 7);
31454 AREG((Opcode >> 9) & 7) += 1;
31455 READ_BYTE_F(adr, dst)
31457 flag_N = flag_C = res;
31458 flag_V = (src ^ dst) & (res ^ dst);
31459 flag_NotZ = res & 0xFF;
31473 READ_WORD_F(adr, src)
31474 adr = AREG((Opcode >> 9) & 7);
31475 AREG((Opcode >> 9) & 7) += 2;
31476 READ_WORD_F(adr, dst)
31478 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31479 flag_N = flag_C = res >> 8;
31480 flag_NotZ = res & 0xFFFF;
31494 READ_LONG_F(adr, src)
31495 adr = AREG((Opcode >> 9) & 7);
31496 AREG((Opcode >> 9) & 7) += 4;
31497 READ_LONG_F(adr, dst)
31500 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31501 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31502 flag_N = res >> 24;
31513 adr = AREG((Opcode >> 0) & 7);
31514 AREG((Opcode >> 0) & 7) += 1;
31516 READ_BYTE_F(adr, src)
31519 READ_BYTE_F(adr, dst)
31521 flag_N = flag_C = res;
31522 flag_V = (src ^ dst) & (res ^ dst);
31523 flag_NotZ = res & 0xFF;
31534 adr = AREG((Opcode >> 0) & 7);
31535 AREG((Opcode >> 0) & 7) += 2;
31537 READ_WORD_F(adr, src)
31540 READ_WORD_F(adr, dst)
31542 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31543 flag_N = flag_C = res >> 8;
31544 flag_NotZ = res & 0xFFFF;
31555 adr = AREG((Opcode >> 0) & 7);
31556 AREG((Opcode >> 0) & 7) += 4;
31558 READ_LONG_F(adr, src)
31561 READ_LONG_F(adr, dst)
31564 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31565 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31566 flag_N = res >> 24;
31580 READ_BYTE_F(adr, src)
31583 READ_BYTE_F(adr, dst)
31585 flag_N = flag_C = res;
31586 flag_V = (src ^ dst) & (res ^ dst);
31587 flag_NotZ = res & 0xFF;
31601 READ_WORD_F(adr, src)
31604 READ_WORD_F(adr, dst)
31606 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31607 flag_N = flag_C = res >> 8;
31608 flag_NotZ = res & 0xFFFF;
31622 READ_LONG_F(adr, src)
31625 READ_LONG_F(adr, dst)
31628 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31629 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31630 flag_N = res >> 24;
31641 src = DREGu8((Opcode >> 9) & 7);
31642 res = DREGu8((Opcode >> 0) & 7);
31648 DREGu8((Opcode >> 0) & 7) = res;
31658 src = DREGu8((Opcode >> 9) & 7);
31659 adr = AREG((Opcode >> 0) & 7);
31661 READ_BYTE_F(adr, res)
31667 WRITE_BYTE_F(adr, res)
31678 src = DREGu8((Opcode >> 9) & 7);
31679 adr = AREG((Opcode >> 0) & 7);
31680 AREG((Opcode >> 0) & 7) += 1;
31682 READ_BYTE_F(adr, res)
31688 WRITE_BYTE_F(adr, res)
31699 src = DREGu8((Opcode >> 9) & 7);
31700 adr = AREG((Opcode >> 0) & 7) - 1;
31701 AREG((Opcode >> 0) & 7) = adr;
31703 READ_BYTE_F(adr, res)
31709 WRITE_BYTE_F(adr, res)
31720 src = DREGu8((Opcode >> 9) & 7);
31722 adr += AREG((Opcode >> 0) & 7);
31724 READ_BYTE_F(adr, res)
31730 WRITE_BYTE_F(adr, res)
31741 src = DREGu8((Opcode >> 9) & 7);
31742 adr = AREG((Opcode >> 0) & 7);
31745 READ_BYTE_F(adr, res)
31751 WRITE_BYTE_F(adr, res)
31762 src = DREGu8((Opcode >> 9) & 7);
31765 READ_BYTE_F(adr, res)
31771 WRITE_BYTE_F(adr, res)
31782 src = DREGu8((Opcode >> 9) & 7);
31785 READ_BYTE_F(adr, res)
31791 WRITE_BYTE_F(adr, res)
31802 src = DREGu8((Opcode >> 9) & 7);
31806 READ_BYTE_F(adr, res)
31812 WRITE_BYTE_F(adr, res)
31823 src = DREGu8((Opcode >> 9) & 7);
31827 READ_BYTE_F(adr, res)
31833 WRITE_BYTE_F(adr, res)
31844 src = DREGu16((Opcode >> 9) & 7);
31845 res = DREGu16((Opcode >> 0) & 7);
31851 DREGu16((Opcode >> 0) & 7) = res;
31861 src = DREGu16((Opcode >> 9) & 7);
31862 adr = AREG((Opcode >> 0) & 7);
31864 READ_WORD_F(adr, res)
31870 WRITE_WORD_F(adr, res)
31881 src = DREGu16((Opcode >> 9) & 7);
31882 adr = AREG((Opcode >> 0) & 7);
31883 AREG((Opcode >> 0) & 7) += 2;
31885 READ_WORD_F(adr, res)
31891 WRITE_WORD_F(adr, res)
31902 src = DREGu16((Opcode >> 9) & 7);
31903 adr = AREG((Opcode >> 0) & 7) - 2;
31904 AREG((Opcode >> 0) & 7) = adr;
31906 READ_WORD_F(adr, res)
31912 WRITE_WORD_F(adr, res)
31923 src = DREGu16((Opcode >> 9) & 7);
31925 adr += AREG((Opcode >> 0) & 7);
31927 READ_WORD_F(adr, res)
31933 WRITE_WORD_F(adr, res)
31944 src = DREGu16((Opcode >> 9) & 7);
31945 adr = AREG((Opcode >> 0) & 7);
31948 READ_WORD_F(adr, res)
31954 WRITE_WORD_F(adr, res)
31965 src = DREGu16((Opcode >> 9) & 7);
31968 READ_WORD_F(adr, res)
31974 WRITE_WORD_F(adr, res)
31985 src = DREGu16((Opcode >> 9) & 7);
31988 READ_WORD_F(adr, res)
31994 WRITE_WORD_F(adr, res)
32005 src = DREGu16((Opcode >> 9) & 7);
32009 READ_WORD_F(adr, res)
32015 WRITE_WORD_F(adr, res)
32026 src = DREGu16((Opcode >> 9) & 7);
32030 READ_WORD_F(adr, res)
32036 WRITE_WORD_F(adr, res)
32047 src = DREGu32((Opcode >> 9) & 7);
32048 res = DREGu32((Opcode >> 0) & 7);
32053 flag_N = res >> 24;
32054 DREGu32((Opcode >> 0) & 7) = res;
32064 src = DREGu32((Opcode >> 9) & 7);
32065 adr = AREG((Opcode >> 0) & 7);
32067 READ_LONG_F(adr, res)
32072 flag_N = res >> 24;
32073 WRITE_LONG_F(adr, res)
32084 src = DREGu32((Opcode >> 9) & 7);
32085 adr = AREG((Opcode >> 0) & 7);
32086 AREG((Opcode >> 0) & 7) += 4;
32088 READ_LONG_F(adr, res)
32093 flag_N = res >> 24;
32094 WRITE_LONG_F(adr, res)
32105 src = DREGu32((Opcode >> 9) & 7);
32106 adr = AREG((Opcode >> 0) & 7) - 4;
32107 AREG((Opcode >> 0) & 7) = adr;
32109 READ_LONG_F(adr, res)
32114 flag_N = res >> 24;
32115 WRITE_LONG_F(adr, res)
32126 src = DREGu32((Opcode >> 9) & 7);
32128 adr += AREG((Opcode >> 0) & 7);
32130 READ_LONG_F(adr, res)
32135 flag_N = res >> 24;
32136 WRITE_LONG_F(adr, res)
32147 src = DREGu32((Opcode >> 9) & 7);
32148 adr = AREG((Opcode >> 0) & 7);
32151 READ_LONG_F(adr, res)
32156 flag_N = res >> 24;
32157 WRITE_LONG_F(adr, res)
32168 src = DREGu32((Opcode >> 9) & 7);
32171 READ_LONG_F(adr, res)
32176 flag_N = res >> 24;
32177 WRITE_LONG_F(adr, res)
32188 src = DREGu32((Opcode >> 9) & 7);
32191 READ_LONG_F(adr, res)
32196 flag_N = res >> 24;
32197 WRITE_LONG_F(adr, res)
32208 src = DREGu32((Opcode >> 9) & 7);
32212 READ_LONG_F(adr, res)
32217 flag_N = res >> 24;
32218 WRITE_LONG_F(adr, res)
32229 src = DREGu32((Opcode >> 9) & 7);
32233 READ_LONG_F(adr, res)
32238 flag_N = res >> 24;
32239 WRITE_LONG_F(adr, res)
32250 src = (s32)DREGs16((Opcode >> 0) & 7);
32251 dst = AREGu32((Opcode >> 9) & 7);
32254 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32255 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32256 flag_N = res >> 24;
32266 src = (s32)AREGs16((Opcode >> 0) & 7);
32267 dst = AREGu32((Opcode >> 9) & 7);
32270 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32271 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32272 flag_N = res >> 24;
32282 adr = AREG((Opcode >> 0) & 7);
32284 READSX_WORD_F(adr, src)
32285 dst = AREGu32((Opcode >> 9) & 7);
32288 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32289 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32290 flag_N = res >> 24;
32301 adr = AREG((Opcode >> 0) & 7);
32302 AREG((Opcode >> 0) & 7) += 2;
32304 READSX_WORD_F(adr, src)
32305 dst = AREGu32((Opcode >> 9) & 7);
32308 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32309 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32310 flag_N = res >> 24;
32321 adr = AREG((Opcode >> 0) & 7) - 2;
32322 AREG((Opcode >> 0) & 7) = adr;
32324 READSX_WORD_F(adr, src)
32325 dst = AREGu32((Opcode >> 9) & 7);
32328 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32329 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32330 flag_N = res >> 24;
32342 adr += AREG((Opcode >> 0) & 7);
32344 READSX_WORD_F(adr, src)
32345 dst = AREGu32((Opcode >> 9) & 7);
32348 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32349 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32350 flag_N = res >> 24;
32361 adr = AREG((Opcode >> 0) & 7);
32364 READSX_WORD_F(adr, src)
32365 dst = AREGu32((Opcode >> 9) & 7);
32368 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32369 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32370 flag_N = res >> 24;
32383 READSX_WORD_F(adr, src)
32384 dst = AREGu32((Opcode >> 9) & 7);
32387 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32388 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32389 flag_N = res >> 24;
32402 READSX_WORD_F(adr, src)
32403 dst = AREGu32((Opcode >> 9) & 7);
32406 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32407 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32408 flag_N = res >> 24;
32419 adr = GET_SWORD + GET_PC;
32422 READSX_WORD_F(adr, src)
32423 dst = AREGu32((Opcode >> 9) & 7);
32426 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32427 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32428 flag_N = res >> 24;
32442 READSX_WORD_F(adr, src)
32443 dst = AREGu32((Opcode >> 9) & 7);
32446 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32447 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32448 flag_N = res >> 24;
32460 dst = AREGu32((Opcode >> 9) & 7);
32463 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32464 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32465 flag_N = res >> 24;
32478 READSX_WORD_F(adr, src)
32479 dst = AREGu32((Opcode >> 9) & 7);
32482 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32483 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32484 flag_N = res >> 24;
32498 READSX_WORD_F(adr, src)
32499 dst = AREGu32((Opcode >> 9) & 7);
32502 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32503 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32504 flag_N = res >> 24;
32515 src = (s32)DREGs32((Opcode >> 0) & 7);
32516 dst = AREGu32((Opcode >> 9) & 7);
32519 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32520 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32521 flag_N = res >> 24;
32531 src = (s32)AREGs32((Opcode >> 0) & 7);
32532 dst = AREGu32((Opcode >> 9) & 7);
32535 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32536 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32537 flag_N = res >> 24;
32547 adr = AREG((Opcode >> 0) & 7);
32549 READSX_LONG_F(adr, src)
32550 dst = AREGu32((Opcode >> 9) & 7);
32553 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32554 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32555 flag_N = res >> 24;
32566 adr = AREG((Opcode >> 0) & 7);
32567 AREG((Opcode >> 0) & 7) += 4;
32569 READSX_LONG_F(adr, src)
32570 dst = AREGu32((Opcode >> 9) & 7);
32573 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32574 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32575 flag_N = res >> 24;
32586 adr = AREG((Opcode >> 0) & 7) - 4;
32587 AREG((Opcode >> 0) & 7) = adr;
32589 READSX_LONG_F(adr, src)
32590 dst = AREGu32((Opcode >> 9) & 7);
32593 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32594 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32595 flag_N = res >> 24;
32607 adr += AREG((Opcode >> 0) & 7);
32609 READSX_LONG_F(adr, src)
32610 dst = AREGu32((Opcode >> 9) & 7);
32613 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32614 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32615 flag_N = res >> 24;
32626 adr = AREG((Opcode >> 0) & 7);
32629 READSX_LONG_F(adr, src)
32630 dst = AREGu32((Opcode >> 9) & 7);
32633 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32634 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32635 flag_N = res >> 24;
32648 READSX_LONG_F(adr, src)
32649 dst = AREGu32((Opcode >> 9) & 7);
32652 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32653 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32654 flag_N = res >> 24;
32667 READSX_LONG_F(adr, src)
32668 dst = AREGu32((Opcode >> 9) & 7);
32671 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32672 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32673 flag_N = res >> 24;
32684 adr = GET_SWORD + GET_PC;
32687 READSX_LONG_F(adr, src)
32688 dst = AREGu32((Opcode >> 9) & 7);
32691 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32692 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32693 flag_N = res >> 24;
32707 READSX_LONG_F(adr, src)
32708 dst = AREGu32((Opcode >> 9) & 7);
32711 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32712 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32713 flag_N = res >> 24;
32725 dst = AREGu32((Opcode >> 9) & 7);
32728 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32729 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32730 flag_N = res >> 24;
32743 READSX_LONG_F(adr, src)
32744 dst = AREGu32((Opcode >> 9) & 7);
32747 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32748 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32749 flag_N = res >> 24;
32763 READSX_LONG_F(adr, src)
32764 dst = AREGu32((Opcode >> 9) & 7);
32767 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32768 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32769 flag_N = res >> 24;
32780 src = DREGu8((Opcode >> 0) & 7);
32781 res = DREGu8((Opcode >> 9) & 7);
32787 DREGu8((Opcode >> 9) & 7) = res;
32797 adr = AREG((Opcode >> 0) & 7);
32799 READ_BYTE_F(adr, src)
32800 res = DREGu8((Opcode >> 9) & 7);
32806 DREGu8((Opcode >> 9) & 7) = res;
32817 adr = AREG((Opcode >> 0) & 7);
32818 AREG((Opcode >> 0) & 7) += 1;
32820 READ_BYTE_F(adr, src)
32821 res = DREGu8((Opcode >> 9) & 7);
32827 DREGu8((Opcode >> 9) & 7) = res;
32838 adr = AREG((Opcode >> 0) & 7) - 1;
32839 AREG((Opcode >> 0) & 7) = adr;
32841 READ_BYTE_F(adr, src)
32842 res = DREGu8((Opcode >> 9) & 7);
32848 DREGu8((Opcode >> 9) & 7) = res;
32860 adr += AREG((Opcode >> 0) & 7);
32862 READ_BYTE_F(adr, src)
32863 res = DREGu8((Opcode >> 9) & 7);
32869 DREGu8((Opcode >> 9) & 7) = res;
32880 adr = AREG((Opcode >> 0) & 7);
32883 READ_BYTE_F(adr, src)
32884 res = DREGu8((Opcode >> 9) & 7);
32890 DREGu8((Opcode >> 9) & 7) = res;
32903 READ_BYTE_F(adr, src)
32904 res = DREGu8((Opcode >> 9) & 7);
32910 DREGu8((Opcode >> 9) & 7) = res;
32923 READ_BYTE_F(adr, src)
32924 res = DREGu8((Opcode >> 9) & 7);
32930 DREGu8((Opcode >> 9) & 7) = res;
32941 adr = GET_SWORD + GET_PC;
32944 READ_BYTE_F(adr, src)
32945 res = DREGu8((Opcode >> 9) & 7);
32951 DREGu8((Opcode >> 9) & 7) = res;
32965 READ_BYTE_F(adr, src)
32966 res = DREGu8((Opcode >> 9) & 7);
32972 DREGu8((Opcode >> 9) & 7) = res;
32984 res = DREGu8((Opcode >> 9) & 7);
32990 DREGu8((Opcode >> 9) & 7) = res;
33003 READ_BYTE_F(adr, src)
33004 res = DREGu8((Opcode >> 9) & 7);
33010 DREGu8((Opcode >> 9) & 7) = res;
33024 READ_BYTE_F(adr, src)
33025 res = DREGu8((Opcode >> 9) & 7);
33031 DREGu8((Opcode >> 9) & 7) = res;
33042 src = DREGu16((Opcode >> 0) & 7);
33043 res = DREGu16((Opcode >> 9) & 7);
33049 DREGu16((Opcode >> 9) & 7) = res;
33059 adr = AREG((Opcode >> 0) & 7);
33061 READ_WORD_F(adr, src)
33062 res = DREGu16((Opcode >> 9) & 7);
33068 DREGu16((Opcode >> 9) & 7) = res;
33079 adr = AREG((Opcode >> 0) & 7);
33080 AREG((Opcode >> 0) & 7) += 2;
33082 READ_WORD_F(adr, src)
33083 res = DREGu16((Opcode >> 9) & 7);
33089 DREGu16((Opcode >> 9) & 7) = res;
33100 adr = AREG((Opcode >> 0) & 7) - 2;
33101 AREG((Opcode >> 0) & 7) = adr;
33103 READ_WORD_F(adr, src)
33104 res = DREGu16((Opcode >> 9) & 7);
33110 DREGu16((Opcode >> 9) & 7) = res;
33122 adr += AREG((Opcode >> 0) & 7);
33124 READ_WORD_F(adr, src)
33125 res = DREGu16((Opcode >> 9) & 7);
33131 DREGu16((Opcode >> 9) & 7) = res;
33142 adr = AREG((Opcode >> 0) & 7);
33145 READ_WORD_F(adr, src)
33146 res = DREGu16((Opcode >> 9) & 7);
33152 DREGu16((Opcode >> 9) & 7) = res;
33165 READ_WORD_F(adr, src)
33166 res = DREGu16((Opcode >> 9) & 7);
33172 DREGu16((Opcode >> 9) & 7) = res;
33185 READ_WORD_F(adr, src)
33186 res = DREGu16((Opcode >> 9) & 7);
33192 DREGu16((Opcode >> 9) & 7) = res;
33203 adr = GET_SWORD + GET_PC;
33206 READ_WORD_F(adr, src)
33207 res = DREGu16((Opcode >> 9) & 7);
33213 DREGu16((Opcode >> 9) & 7) = res;
33227 READ_WORD_F(adr, src)
33228 res = DREGu16((Opcode >> 9) & 7);
33234 DREGu16((Opcode >> 9) & 7) = res;
33246 res = DREGu16((Opcode >> 9) & 7);
33252 DREGu16((Opcode >> 9) & 7) = res;
33265 READ_WORD_F(adr, src)
33266 res = DREGu16((Opcode >> 9) & 7);
33272 DREGu16((Opcode >> 9) & 7) = res;
33286 READ_WORD_F(adr, src)
33287 res = DREGu16((Opcode >> 9) & 7);
33293 DREGu16((Opcode >> 9) & 7) = res;
33304 src = DREGu32((Opcode >> 0) & 7);
33305 res = DREGu32((Opcode >> 9) & 7);
33310 flag_N = res >> 24;
33311 DREGu32((Opcode >> 9) & 7) = res;
33321 adr = AREG((Opcode >> 0) & 7);
33323 READ_LONG_F(adr, src)
33324 res = DREGu32((Opcode >> 9) & 7);
33329 flag_N = res >> 24;
33330 DREGu32((Opcode >> 9) & 7) = res;
33341 adr = AREG((Opcode >> 0) & 7);
33342 AREG((Opcode >> 0) & 7) += 4;
33344 READ_LONG_F(adr, src)
33345 res = DREGu32((Opcode >> 9) & 7);
33350 flag_N = res >> 24;
33351 DREGu32((Opcode >> 9) & 7) = res;
33362 adr = AREG((Opcode >> 0) & 7) - 4;
33363 AREG((Opcode >> 0) & 7) = adr;
33365 READ_LONG_F(adr, src)
33366 res = DREGu32((Opcode >> 9) & 7);
33371 flag_N = res >> 24;
33372 DREGu32((Opcode >> 9) & 7) = res;
33384 adr += AREG((Opcode >> 0) & 7);
33386 READ_LONG_F(adr, src)
33387 res = DREGu32((Opcode >> 9) & 7);
33392 flag_N = res >> 24;
33393 DREGu32((Opcode >> 9) & 7) = res;
33404 adr = AREG((Opcode >> 0) & 7);
33407 READ_LONG_F(adr, src)
33408 res = DREGu32((Opcode >> 9) & 7);
33413 flag_N = res >> 24;
33414 DREGu32((Opcode >> 9) & 7) = res;
33427 READ_LONG_F(adr, src)
33428 res = DREGu32((Opcode >> 9) & 7);
33433 flag_N = res >> 24;
33434 DREGu32((Opcode >> 9) & 7) = res;
33447 READ_LONG_F(adr, src)
33448 res = DREGu32((Opcode >> 9) & 7);
33453 flag_N = res >> 24;
33454 DREGu32((Opcode >> 9) & 7) = res;
33465 adr = GET_SWORD + GET_PC;
33468 READ_LONG_F(adr, src)
33469 res = DREGu32((Opcode >> 9) & 7);
33474 flag_N = res >> 24;
33475 DREGu32((Opcode >> 9) & 7) = res;
33489 READ_LONG_F(adr, src)
33490 res = DREGu32((Opcode >> 9) & 7);
33495 flag_N = res >> 24;
33496 DREGu32((Opcode >> 9) & 7) = res;
33508 res = DREGu32((Opcode >> 9) & 7);
33513 flag_N = res >> 24;
33514 DREGu32((Opcode >> 9) & 7) = res;
33527 READ_LONG_F(adr, src)
33528 res = DREGu32((Opcode >> 9) & 7);
33533 flag_N = res >> 24;
33534 DREGu32((Opcode >> 9) & 7) = res;
33548 READ_LONG_F(adr, src)
33549 res = DREGu32((Opcode >> 9) & 7);
33554 flag_N = res >> 24;
33555 DREGu32((Opcode >> 9) & 7) = res;
33566 src = DREGu8((Opcode >> 9) & 7);
33567 adr = AREG((Opcode >> 0) & 7);
33569 READ_BYTE_F(adr, res)
33575 WRITE_BYTE_F(adr, res)
33586 src = DREGu8((Opcode >> 9) & 7);
33587 adr = AREG((Opcode >> 0) & 7);
33588 AREG((Opcode >> 0) & 7) += 1;
33590 READ_BYTE_F(adr, res)
33596 WRITE_BYTE_F(adr, res)
33607 src = DREGu8((Opcode >> 9) & 7);
33608 adr = AREG((Opcode >> 0) & 7) - 1;
33609 AREG((Opcode >> 0) & 7) = adr;
33611 READ_BYTE_F(adr, res)
33617 WRITE_BYTE_F(adr, res)
33628 src = DREGu8((Opcode >> 9) & 7);
33630 adr += AREG((Opcode >> 0) & 7);
33632 READ_BYTE_F(adr, res)
33638 WRITE_BYTE_F(adr, res)
33649 src = DREGu8((Opcode >> 9) & 7);
33650 adr = AREG((Opcode >> 0) & 7);
33653 READ_BYTE_F(adr, res)
33659 WRITE_BYTE_F(adr, res)
33670 src = DREGu8((Opcode >> 9) & 7);
33673 READ_BYTE_F(adr, res)
33679 WRITE_BYTE_F(adr, res)
33690 src = DREGu8((Opcode >> 9) & 7);
33693 READ_BYTE_F(adr, res)
33699 WRITE_BYTE_F(adr, res)
33710 src = DREGu8((Opcode >> 9) & 7);
33714 READ_BYTE_F(adr, res)
33720 WRITE_BYTE_F(adr, res)
33731 src = DREGu8((Opcode >> 9) & 7);
33735 READ_BYTE_F(adr, res)
33741 WRITE_BYTE_F(adr, res)
33752 src = DREGu16((Opcode >> 9) & 7);
33753 adr = AREG((Opcode >> 0) & 7);
33755 READ_WORD_F(adr, res)
33761 WRITE_WORD_F(adr, res)
33772 src = DREGu16((Opcode >> 9) & 7);
33773 adr = AREG((Opcode >> 0) & 7);
33774 AREG((Opcode >> 0) & 7) += 2;
33776 READ_WORD_F(adr, res)
33782 WRITE_WORD_F(adr, res)
33793 src = DREGu16((Opcode >> 9) & 7);
33794 adr = AREG((Opcode >> 0) & 7) - 2;
33795 AREG((Opcode >> 0) & 7) = adr;
33797 READ_WORD_F(adr, res)
33803 WRITE_WORD_F(adr, res)
33814 src = DREGu16((Opcode >> 9) & 7);
33816 adr += AREG((Opcode >> 0) & 7);
33818 READ_WORD_F(adr, res)
33824 WRITE_WORD_F(adr, res)
33835 src = DREGu16((Opcode >> 9) & 7);
33836 adr = AREG((Opcode >> 0) & 7);
33839 READ_WORD_F(adr, res)
33845 WRITE_WORD_F(adr, res)
33856 src = DREGu16((Opcode >> 9) & 7);
33859 READ_WORD_F(adr, res)
33865 WRITE_WORD_F(adr, res)
33876 src = DREGu16((Opcode >> 9) & 7);
33879 READ_WORD_F(adr, res)
33885 WRITE_WORD_F(adr, res)
33896 src = DREGu16((Opcode >> 9) & 7);
33900 READ_WORD_F(adr, res)
33906 WRITE_WORD_F(adr, res)
33917 src = DREGu16((Opcode >> 9) & 7);
33921 READ_WORD_F(adr, res)
33927 WRITE_WORD_F(adr, res)
33938 src = DREGu32((Opcode >> 9) & 7);
33939 adr = AREG((Opcode >> 0) & 7);
33941 READ_LONG_F(adr, res)
33946 flag_N = res >> 24;
33947 WRITE_LONG_F(adr, res)
33958 src = DREGu32((Opcode >> 9) & 7);
33959 adr = AREG((Opcode >> 0) & 7);
33960 AREG((Opcode >> 0) & 7) += 4;
33962 READ_LONG_F(adr, res)
33967 flag_N = res >> 24;
33968 WRITE_LONG_F(adr, res)
33979 src = DREGu32((Opcode >> 9) & 7);
33980 adr = AREG((Opcode >> 0) & 7) - 4;
33981 AREG((Opcode >> 0) & 7) = adr;
33983 READ_LONG_F(adr, res)
33988 flag_N = res >> 24;
33989 WRITE_LONG_F(adr, res)
34000 src = DREGu32((Opcode >> 9) & 7);
34002 adr += AREG((Opcode >> 0) & 7);
34004 READ_LONG_F(adr, res)
34009 flag_N = res >> 24;
34010 WRITE_LONG_F(adr, res)
34021 src = DREGu32((Opcode >> 9) & 7);
34022 adr = AREG((Opcode >> 0) & 7);
34025 READ_LONG_F(adr, res)
34030 flag_N = res >> 24;
34031 WRITE_LONG_F(adr, res)
34042 src = DREGu32((Opcode >> 9) & 7);
34045 READ_LONG_F(adr, res)
34050 flag_N = res >> 24;
34051 WRITE_LONG_F(adr, res)
34062 src = DREGu32((Opcode >> 9) & 7);
34065 READ_LONG_F(adr, res)
34070 flag_N = res >> 24;
34071 WRITE_LONG_F(adr, res)
34082 src = DREGu32((Opcode >> 9) & 7);
34086 READ_LONG_F(adr, res)
34091 flag_N = res >> 24;
34092 WRITE_LONG_F(adr, res)
34103 src = DREGu32((Opcode >> 9) & 7);
34107 READ_LONG_F(adr, res)
34112 flag_N = res >> 24;
34113 WRITE_LONG_F(adr, res)
34124 src = DREGu8((Opcode >> 0) & 7);
34125 dst = DREGu8((Opcode >> 9) & 7);
34126 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34127 if (res > 9) res += 6;
34128 res += (dst & 0xF0) + (src & 0xF0);
34132 flag_X = flag_C = M68K_SR_C;
34134 else flag_X = flag_C = 0;
34135 flag_NotZ |= res & 0xFF;
34137 DREGu8((Opcode >> 9) & 7) = res;
34147 adr = AREG((Opcode >> 0) & 7) - 1;
34148 AREG((Opcode >> 0) & 7) = adr;
34150 READ_BYTE_F(adr, src)
34151 adr = AREG((Opcode >> 9) & 7) - 1;
34152 AREG((Opcode >> 9) & 7) = adr;
34153 READ_BYTE_F(adr, dst)
34154 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34155 if (res > 9) res += 6;
34156 res += (dst & 0xF0) + (src & 0xF0);
34160 flag_X = flag_C = M68K_SR_C;
34162 else flag_X = flag_C = 0;
34163 flag_NotZ |= res & 0xFF;
34165 WRITE_BYTE_F(adr, res)
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) res += 6;
34185 res += (dst & 0xF0) + (src & 0xF0);
34189 flag_X = flag_C = M68K_SR_C;
34191 else flag_X = flag_C = 0;
34192 flag_NotZ |= res & 0xFF;
34194 WRITE_BYTE_F(adr, res)
34205 adr = AREG((Opcode >> 0) & 7) - 1;
34206 AREG((Opcode >> 0) & 7) = adr;
34208 READ_BYTE_F(adr, src)
34211 READ_BYTE_F(adr, dst)
34212 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34213 if (res > 9) res += 6;
34214 res += (dst & 0xF0) + (src & 0xF0);
34218 flag_X = flag_C = M68K_SR_C;
34220 else flag_X = flag_C = 0;
34221 flag_NotZ |= res & 0xFF;
34223 WRITE_BYTE_F(adr, res)
34237 READ_BYTE_F(adr, src)
34240 READ_BYTE_F(adr, dst)
34241 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34242 if (res > 9) res += 6;
34243 res += (dst & 0xF0) + (src & 0xF0);
34247 flag_X = flag_C = M68K_SR_C;
34249 else flag_X = flag_C = 0;
34250 flag_NotZ |= res & 0xFF;
34252 WRITE_BYTE_F(adr, res)
34263 src = DREGu16((Opcode >> 0) & 7);
34264 res = DREGu16((Opcode >> 9) & 7);
34266 flag_N = res >> 24;
34268 flag_V = flag_C = 0;
34269 DREGu32((Opcode >> 9) & 7) = res;
34270 #ifdef USE_CYCLONE_TIMING
34283 adr = AREG((Opcode >> 0) & 7);
34285 READ_WORD_F(adr, src)
34286 res = DREGu16((Opcode >> 9) & 7);
34288 flag_N = res >> 24;
34290 flag_V = flag_C = 0;
34291 DREGu32((Opcode >> 9) & 7) = res;
34293 #ifdef USE_CYCLONE_TIMING
34306 adr = AREG((Opcode >> 0) & 7);
34307 AREG((Opcode >> 0) & 7) += 2;
34309 READ_WORD_F(adr, src)
34310 res = DREGu16((Opcode >> 9) & 7);
34312 flag_N = res >> 24;
34314 flag_V = flag_C = 0;
34315 DREGu32((Opcode >> 9) & 7) = res;
34317 #ifdef USE_CYCLONE_TIMING
34330 adr = AREG((Opcode >> 0) & 7) - 2;
34331 AREG((Opcode >> 0) & 7) = adr;
34333 READ_WORD_F(adr, src)
34334 res = DREGu16((Opcode >> 9) & 7);
34336 flag_N = res >> 24;
34338 flag_V = flag_C = 0;
34339 DREGu32((Opcode >> 9) & 7) = res;
34341 #ifdef USE_CYCLONE_TIMING
34355 adr += AREG((Opcode >> 0) & 7);
34357 READ_WORD_F(adr, src)
34358 res = DREGu16((Opcode >> 9) & 7);
34360 flag_N = res >> 24;
34362 flag_V = flag_C = 0;
34363 DREGu32((Opcode >> 9) & 7) = res;
34365 #ifdef USE_CYCLONE_TIMING
34378 adr = AREG((Opcode >> 0) & 7);
34381 READ_WORD_F(adr, src)
34382 res = DREGu16((Opcode >> 9) & 7);
34384 flag_N = res >> 24;
34386 flag_V = flag_C = 0;
34387 DREGu32((Opcode >> 9) & 7) = res;
34389 #ifdef USE_CYCLONE_TIMING
34404 READ_WORD_F(adr, src)
34405 res = DREGu16((Opcode >> 9) & 7);
34407 flag_N = res >> 24;
34409 flag_V = flag_C = 0;
34410 DREGu32((Opcode >> 9) & 7) = res;
34412 #ifdef USE_CYCLONE_TIMING
34427 READ_WORD_F(adr, src)
34428 res = DREGu16((Opcode >> 9) & 7);
34430 flag_N = res >> 24;
34432 flag_V = flag_C = 0;
34433 DREGu32((Opcode >> 9) & 7) = res;
34435 #ifdef USE_CYCLONE_TIMING
34448 adr = GET_SWORD + GET_PC;
34451 READ_WORD_F(adr, src)
34452 res = DREGu16((Opcode >> 9) & 7);
34454 flag_N = res >> 24;
34456 flag_V = flag_C = 0;
34457 DREGu32((Opcode >> 9) & 7) = res;
34459 #ifdef USE_CYCLONE_TIMING
34475 READ_WORD_F(adr, src)
34476 res = DREGu16((Opcode >> 9) & 7);
34478 flag_N = res >> 24;
34480 flag_V = flag_C = 0;
34481 DREGu32((Opcode >> 9) & 7) = res;
34483 #ifdef USE_CYCLONE_TIMING
34497 res = DREGu16((Opcode >> 9) & 7);
34499 flag_N = res >> 24;
34501 flag_V = flag_C = 0;
34502 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
34543 READ_WORD_F(adr, src)
34544 res = DREGu16((Opcode >> 9) & 7);
34546 flag_N = res >> 24;
34548 flag_V = flag_C = 0;
34549 DREGu32((Opcode >> 9) & 7) = res;
34551 #ifdef USE_CYCLONE_TIMING
34564 src = (s32)DREGs16((Opcode >> 0) & 7);
34565 res = (s32)DREGs16((Opcode >> 9) & 7);
34566 res = ((s32)res) * ((s32)src);
34567 flag_N = res >> 24;
34569 flag_V = flag_C = 0;
34570 DREGu32((Opcode >> 9) & 7) = res;
34571 #ifdef USE_CYCLONE_TIMING
34584 adr = AREG((Opcode >> 0) & 7);
34586 READSX_WORD_F(adr, src)
34587 res = (s32)DREGs16((Opcode >> 9) & 7);
34588 res = ((s32)res) * ((s32)src);
34589 flag_N = res >> 24;
34591 flag_V = flag_C = 0;
34592 DREGu32((Opcode >> 9) & 7) = res;
34594 #ifdef USE_CYCLONE_TIMING
34607 adr = AREG((Opcode >> 0) & 7);
34608 AREG((Opcode >> 0) & 7) += 2;
34610 READSX_WORD_F(adr, src)
34611 res = (s32)DREGs16((Opcode >> 9) & 7);
34612 res = ((s32)res) * ((s32)src);
34613 flag_N = res >> 24;
34615 flag_V = flag_C = 0;
34616 DREGu32((Opcode >> 9) & 7) = res;
34618 #ifdef USE_CYCLONE_TIMING
34631 adr = AREG((Opcode >> 0) & 7) - 2;
34632 AREG((Opcode >> 0) & 7) = adr;
34634 READSX_WORD_F(adr, src)
34635 res = (s32)DREGs16((Opcode >> 9) & 7);
34636 res = ((s32)res) * ((s32)src);
34637 flag_N = res >> 24;
34639 flag_V = flag_C = 0;
34640 DREGu32((Opcode >> 9) & 7) = res;
34642 #ifdef USE_CYCLONE_TIMING
34656 adr += AREG((Opcode >> 0) & 7);
34658 READSX_WORD_F(adr, src)
34659 res = (s32)DREGs16((Opcode >> 9) & 7);
34660 res = ((s32)res) * ((s32)src);
34661 flag_N = res >> 24;
34663 flag_V = flag_C = 0;
34664 DREGu32((Opcode >> 9) & 7) = res;
34666 #ifdef USE_CYCLONE_TIMING
34679 adr = AREG((Opcode >> 0) & 7);
34682 READSX_WORD_F(adr, src)
34683 res = (s32)DREGs16((Opcode >> 9) & 7);
34684 res = ((s32)res) * ((s32)src);
34685 flag_N = res >> 24;
34687 flag_V = flag_C = 0;
34688 DREGu32((Opcode >> 9) & 7) = res;
34690 #ifdef USE_CYCLONE_TIMING
34705 READSX_WORD_F(adr, src)
34706 res = (s32)DREGs16((Opcode >> 9) & 7);
34707 res = ((s32)res) * ((s32)src);
34708 flag_N = res >> 24;
34710 flag_V = flag_C = 0;
34711 DREGu32((Opcode >> 9) & 7) = res;
34713 #ifdef USE_CYCLONE_TIMING
34728 READSX_WORD_F(adr, src)
34729 res = (s32)DREGs16((Opcode >> 9) & 7);
34730 res = ((s32)res) * ((s32)src);
34731 flag_N = res >> 24;
34733 flag_V = flag_C = 0;
34734 DREGu32((Opcode >> 9) & 7) = res;
34736 #ifdef USE_CYCLONE_TIMING
34749 adr = GET_SWORD + GET_PC;
34752 READSX_WORD_F(adr, src)
34753 res = (s32)DREGs16((Opcode >> 9) & 7);
34754 res = ((s32)res) * ((s32)src);
34755 flag_N = res >> 24;
34757 flag_V = flag_C = 0;
34758 DREGu32((Opcode >> 9) & 7) = res;
34760 #ifdef USE_CYCLONE_TIMING
34776 READSX_WORD_F(adr, src)
34777 res = (s32)DREGs16((Opcode >> 9) & 7);
34778 res = ((s32)res) * ((s32)src);
34779 flag_N = res >> 24;
34781 flag_V = flag_C = 0;
34782 DREGu32((Opcode >> 9) & 7) = res;
34784 #ifdef USE_CYCLONE_TIMING
34798 res = (s32)DREGs16((Opcode >> 9) & 7);
34799 res = ((s32)res) * ((s32)src);
34800 flag_N = res >> 24;
34802 flag_V = flag_C = 0;
34803 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
34844 READSX_WORD_F(adr, src)
34845 res = (s32)DREGs16((Opcode >> 9) & 7);
34846 res = ((s32)res) * ((s32)src);
34847 flag_N = res >> 24;
34849 flag_V = flag_C = 0;
34850 DREGu32((Opcode >> 9) & 7) = res;
34852 #ifdef USE_CYCLONE_TIMING
34865 res = DREGu32((Opcode >> 0) & 7);
34866 src = DREGu32((Opcode >> 9) & 7);
34867 DREGu32((Opcode >> 9) & 7) = res;
34869 DREGu32((Opcode >> 0) & 7) = res;
34879 res = AREGu32((Opcode >> 0) & 7);
34880 src = AREGu32((Opcode >> 9) & 7);
34881 AREG((Opcode >> 9) & 7) = res;
34883 AREG((Opcode >> 0) & 7) = res;
34893 res = AREGu32((Opcode >> 0) & 7);
34894 src = DREGu32((Opcode >> 9) & 7);
34895 DREGu32((Opcode >> 9) & 7) = res;
34897 AREG((Opcode >> 0) & 7) = res;
34907 src = DREGu8((Opcode >> 0) & 7);
34908 dst = DREGu8((Opcode >> 9) & 7);
34910 flag_N = flag_X = flag_C = res;
34911 flag_V = (src ^ res) & (dst ^ res);
34912 flag_NotZ = res & 0xFF;
34913 DREGu8((Opcode >> 9) & 7) = res;
34924 // can't read byte from Ax registers !
34925 m68kcontext.execinfo |= M68K_FAULTED;
34926 m68kcontext.io_cycle_counter = 0;
34928 goto famec_Exec_End;
34929 dst = DREGu8((Opcode >> 9) & 7);
34931 flag_N = flag_X = flag_C = res;
34932 flag_V = (src ^ res) & (dst ^ res);
34933 flag_NotZ = res & 0xFF;
34934 DREGu8((Opcode >> 9) & 7) = res;
34946 adr = AREG((Opcode >> 0) & 7);
34948 READ_BYTE_F(adr, src)
34949 dst = DREGu8((Opcode >> 9) & 7);
34951 flag_N = flag_X = flag_C = res;
34952 flag_V = (src ^ res) & (dst ^ res);
34953 flag_NotZ = res & 0xFF;
34954 DREGu8((Opcode >> 9) & 7) = res;
34965 adr = AREG((Opcode >> 0) & 7);
34966 AREG((Opcode >> 0) & 7) += 1;
34968 READ_BYTE_F(adr, src)
34969 dst = DREGu8((Opcode >> 9) & 7);
34971 flag_N = flag_X = flag_C = res;
34972 flag_V = (src ^ res) & (dst ^ res);
34973 flag_NotZ = res & 0xFF;
34974 DREGu8((Opcode >> 9) & 7) = res;
34985 adr = AREG((Opcode >> 0) & 7) - 1;
34986 AREG((Opcode >> 0) & 7) = adr;
34988 READ_BYTE_F(adr, src)
34989 dst = DREGu8((Opcode >> 9) & 7);
34991 flag_N = flag_X = flag_C = res;
34992 flag_V = (src ^ res) & (dst ^ res);
34993 flag_NotZ = res & 0xFF;
34994 DREGu8((Opcode >> 9) & 7) = res;
35006 adr += AREG((Opcode >> 0) & 7);
35008 READ_BYTE_F(adr, src)
35009 dst = DREGu8((Opcode >> 9) & 7);
35011 flag_N = flag_X = flag_C = res;
35012 flag_V = (src ^ res) & (dst ^ res);
35013 flag_NotZ = res & 0xFF;
35014 DREGu8((Opcode >> 9) & 7) = res;
35025 adr = AREG((Opcode >> 0) & 7);
35028 READ_BYTE_F(adr, src)
35029 dst = DREGu8((Opcode >> 9) & 7);
35031 flag_N = flag_X = flag_C = res;
35032 flag_V = (src ^ res) & (dst ^ res);
35033 flag_NotZ = res & 0xFF;
35034 DREGu8((Opcode >> 9) & 7) = res;
35047 READ_BYTE_F(adr, src)
35048 dst = DREGu8((Opcode >> 9) & 7);
35050 flag_N = flag_X = flag_C = res;
35051 flag_V = (src ^ res) & (dst ^ res);
35052 flag_NotZ = res & 0xFF;
35053 DREGu8((Opcode >> 9) & 7) = res;
35066 READ_BYTE_F(adr, src)
35067 dst = DREGu8((Opcode >> 9) & 7);
35069 flag_N = flag_X = flag_C = res;
35070 flag_V = (src ^ res) & (dst ^ res);
35071 flag_NotZ = res & 0xFF;
35072 DREGu8((Opcode >> 9) & 7) = res;
35083 adr = GET_SWORD + GET_PC;
35086 READ_BYTE_F(adr, src)
35087 dst = DREGu8((Opcode >> 9) & 7);
35089 flag_N = flag_X = flag_C = res;
35090 flag_V = (src ^ res) & (dst ^ res);
35091 flag_NotZ = res & 0xFF;
35092 DREGu8((Opcode >> 9) & 7) = res;
35106 READ_BYTE_F(adr, src)
35107 dst = DREGu8((Opcode >> 9) & 7);
35109 flag_N = flag_X = flag_C = res;
35110 flag_V = (src ^ res) & (dst ^ res);
35111 flag_NotZ = res & 0xFF;
35112 DREGu8((Opcode >> 9) & 7) = res;
35124 dst = DREGu8((Opcode >> 9) & 7);
35126 flag_N = flag_X = flag_C = res;
35127 flag_V = (src ^ res) & (dst ^ res);
35128 flag_NotZ = res & 0xFF;
35129 DREGu8((Opcode >> 9) & 7) = res;
35142 READ_BYTE_F(adr, src)
35143 dst = DREGu8((Opcode >> 9) & 7);
35145 flag_N = flag_X = flag_C = res;
35146 flag_V = (src ^ res) & (dst ^ res);
35147 flag_NotZ = res & 0xFF;
35148 DREGu8((Opcode >> 9) & 7) = res;
35162 READ_BYTE_F(adr, src)
35163 dst = DREGu8((Opcode >> 9) & 7);
35165 flag_N = flag_X = flag_C = res;
35166 flag_V = (src ^ res) & (dst ^ res);
35167 flag_NotZ = res & 0xFF;
35168 DREGu8((Opcode >> 9) & 7) = res;
35179 src = DREGu16((Opcode >> 0) & 7);
35180 dst = DREGu16((Opcode >> 9) & 7);
35182 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35183 flag_N = flag_X = flag_C = res >> 8;
35184 flag_NotZ = res & 0xFFFF;
35185 DREGu16((Opcode >> 9) & 7) = res;
35195 src = AREGu16((Opcode >> 0) & 7);
35196 dst = DREGu16((Opcode >> 9) & 7);
35198 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35199 flag_N = flag_X = flag_C = res >> 8;
35200 flag_NotZ = res & 0xFFFF;
35201 DREGu16((Opcode >> 9) & 7) = res;
35211 adr = AREG((Opcode >> 0) & 7);
35213 READ_WORD_F(adr, src)
35214 dst = DREGu16((Opcode >> 9) & 7);
35216 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35217 flag_N = flag_X = flag_C = res >> 8;
35218 flag_NotZ = res & 0xFFFF;
35219 DREGu16((Opcode >> 9) & 7) = res;
35230 adr = AREG((Opcode >> 0) & 7);
35231 AREG((Opcode >> 0) & 7) += 2;
35233 READ_WORD_F(adr, src)
35234 dst = DREGu16((Opcode >> 9) & 7);
35236 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35237 flag_N = flag_X = flag_C = res >> 8;
35238 flag_NotZ = res & 0xFFFF;
35239 DREGu16((Opcode >> 9) & 7) = res;
35250 adr = AREG((Opcode >> 0) & 7) - 2;
35251 AREG((Opcode >> 0) & 7) = adr;
35253 READ_WORD_F(adr, src)
35254 dst = DREGu16((Opcode >> 9) & 7);
35256 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35257 flag_N = flag_X = flag_C = res >> 8;
35258 flag_NotZ = res & 0xFFFF;
35259 DREGu16((Opcode >> 9) & 7) = res;
35271 adr += AREG((Opcode >> 0) & 7);
35273 READ_WORD_F(adr, src)
35274 dst = DREGu16((Opcode >> 9) & 7);
35276 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35277 flag_N = flag_X = flag_C = res >> 8;
35278 flag_NotZ = res & 0xFFFF;
35279 DREGu16((Opcode >> 9) & 7) = res;
35290 adr = AREG((Opcode >> 0) & 7);
35293 READ_WORD_F(adr, src)
35294 dst = DREGu16((Opcode >> 9) & 7);
35296 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35297 flag_N = flag_X = flag_C = res >> 8;
35298 flag_NotZ = res & 0xFFFF;
35299 DREGu16((Opcode >> 9) & 7) = res;
35312 READ_WORD_F(adr, src)
35313 dst = DREGu16((Opcode >> 9) & 7);
35315 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35316 flag_N = flag_X = flag_C = res >> 8;
35317 flag_NotZ = res & 0xFFFF;
35318 DREGu16((Opcode >> 9) & 7) = res;
35331 READ_WORD_F(adr, src)
35332 dst = DREGu16((Opcode >> 9) & 7);
35334 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35335 flag_N = flag_X = flag_C = res >> 8;
35336 flag_NotZ = res & 0xFFFF;
35337 DREGu16((Opcode >> 9) & 7) = res;
35348 adr = GET_SWORD + GET_PC;
35351 READ_WORD_F(adr, src)
35352 dst = DREGu16((Opcode >> 9) & 7);
35354 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35355 flag_N = flag_X = flag_C = res >> 8;
35356 flag_NotZ = res & 0xFFFF;
35357 DREGu16((Opcode >> 9) & 7) = res;
35371 READ_WORD_F(adr, src)
35372 dst = DREGu16((Opcode >> 9) & 7);
35374 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35375 flag_N = flag_X = flag_C = res >> 8;
35376 flag_NotZ = res & 0xFFFF;
35377 DREGu16((Opcode >> 9) & 7) = res;
35389 dst = DREGu16((Opcode >> 9) & 7);
35391 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35392 flag_N = flag_X = flag_C = res >> 8;
35393 flag_NotZ = res & 0xFFFF;
35394 DREGu16((Opcode >> 9) & 7) = res;
35407 READ_WORD_F(adr, src)
35408 dst = DREGu16((Opcode >> 9) & 7);
35410 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35411 flag_N = flag_X = flag_C = res >> 8;
35412 flag_NotZ = res & 0xFFFF;
35413 DREGu16((Opcode >> 9) & 7) = res;
35427 READ_WORD_F(adr, src)
35428 dst = DREGu16((Opcode >> 9) & 7);
35430 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35431 flag_N = flag_X = flag_C = res >> 8;
35432 flag_NotZ = res & 0xFFFF;
35433 DREGu16((Opcode >> 9) & 7) = res;
35444 src = DREGu32((Opcode >> 0) & 7);
35445 dst = DREGu32((Opcode >> 9) & 7);
35448 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35449 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35450 flag_N = res >> 24;
35451 DREGu32((Opcode >> 9) & 7) = res;
35461 src = AREGu32((Opcode >> 0) & 7);
35462 dst = DREGu32((Opcode >> 9) & 7);
35465 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35466 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35467 flag_N = res >> 24;
35468 DREGu32((Opcode >> 9) & 7) = res;
35478 adr = AREG((Opcode >> 0) & 7);
35480 READ_LONG_F(adr, src)
35481 dst = DREGu32((Opcode >> 9) & 7);
35484 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35485 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35486 flag_N = res >> 24;
35487 DREGu32((Opcode >> 9) & 7) = res;
35498 adr = AREG((Opcode >> 0) & 7);
35499 AREG((Opcode >> 0) & 7) += 4;
35501 READ_LONG_F(adr, src)
35502 dst = DREGu32((Opcode >> 9) & 7);
35505 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35506 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35507 flag_N = res >> 24;
35508 DREGu32((Opcode >> 9) & 7) = res;
35519 adr = AREG((Opcode >> 0) & 7) - 4;
35520 AREG((Opcode >> 0) & 7) = adr;
35522 READ_LONG_F(adr, src)
35523 dst = DREGu32((Opcode >> 9) & 7);
35526 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35527 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35528 flag_N = res >> 24;
35529 DREGu32((Opcode >> 9) & 7) = res;
35541 adr += AREG((Opcode >> 0) & 7);
35543 READ_LONG_F(adr, src)
35544 dst = DREGu32((Opcode >> 9) & 7);
35547 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35548 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35549 flag_N = res >> 24;
35550 DREGu32((Opcode >> 9) & 7) = res;
35561 adr = AREG((Opcode >> 0) & 7);
35564 READ_LONG_F(adr, src)
35565 dst = DREGu32((Opcode >> 9) & 7);
35568 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35569 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35570 flag_N = res >> 24;
35571 DREGu32((Opcode >> 9) & 7) = res;
35584 READ_LONG_F(adr, src)
35585 dst = DREGu32((Opcode >> 9) & 7);
35588 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35589 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35590 flag_N = res >> 24;
35591 DREGu32((Opcode >> 9) & 7) = res;
35604 READ_LONG_F(adr, src)
35605 dst = DREGu32((Opcode >> 9) & 7);
35608 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35609 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35610 flag_N = res >> 24;
35611 DREGu32((Opcode >> 9) & 7) = res;
35622 adr = GET_SWORD + GET_PC;
35625 READ_LONG_F(adr, src)
35626 dst = DREGu32((Opcode >> 9) & 7);
35629 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35630 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35631 flag_N = res >> 24;
35632 DREGu32((Opcode >> 9) & 7) = res;
35646 READ_LONG_F(adr, src)
35647 dst = DREGu32((Opcode >> 9) & 7);
35650 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35651 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35652 flag_N = res >> 24;
35653 DREGu32((Opcode >> 9) & 7) = res;
35665 dst = DREGu32((Opcode >> 9) & 7);
35668 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35669 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35670 flag_N = res >> 24;
35671 DREGu32((Opcode >> 9) & 7) = res;
35684 READ_LONG_F(adr, src)
35685 dst = DREGu32((Opcode >> 9) & 7);
35688 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35689 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35690 flag_N = res >> 24;
35691 DREGu32((Opcode >> 9) & 7) = res;
35705 READ_LONG_F(adr, src)
35706 dst = DREGu32((Opcode >> 9) & 7);
35709 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35710 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35711 flag_N = res >> 24;
35712 DREGu32((Opcode >> 9) & 7) = res;
35723 src = DREGu8((Opcode >> 9) & 7);
35724 adr = AREG((Opcode >> 0) & 7);
35726 READ_BYTE_F(adr, dst)
35728 flag_N = flag_X = flag_C = res;
35729 flag_V = (src ^ res) & (dst ^ res);
35730 flag_NotZ = res & 0xFF;
35731 WRITE_BYTE_F(adr, res)
35742 src = DREGu8((Opcode >> 9) & 7);
35743 adr = AREG((Opcode >> 0) & 7);
35744 AREG((Opcode >> 0) & 7) += 1;
35746 READ_BYTE_F(adr, dst)
35748 flag_N = flag_X = flag_C = res;
35749 flag_V = (src ^ res) & (dst ^ res);
35750 flag_NotZ = res & 0xFF;
35751 WRITE_BYTE_F(adr, res)
35762 src = DREGu8((Opcode >> 9) & 7);
35763 adr = AREG((Opcode >> 0) & 7) - 1;
35764 AREG((Opcode >> 0) & 7) = adr;
35766 READ_BYTE_F(adr, dst)
35768 flag_N = flag_X = flag_C = res;
35769 flag_V = (src ^ res) & (dst ^ res);
35770 flag_NotZ = res & 0xFF;
35771 WRITE_BYTE_F(adr, res)
35782 src = DREGu8((Opcode >> 9) & 7);
35784 adr += AREG((Opcode >> 0) & 7);
35786 READ_BYTE_F(adr, dst)
35788 flag_N = flag_X = flag_C = res;
35789 flag_V = (src ^ res) & (dst ^ res);
35790 flag_NotZ = res & 0xFF;
35791 WRITE_BYTE_F(adr, res)
35802 src = DREGu8((Opcode >> 9) & 7);
35803 adr = AREG((Opcode >> 0) & 7);
35806 READ_BYTE_F(adr, dst)
35808 flag_N = flag_X = flag_C = res;
35809 flag_V = (src ^ res) & (dst ^ res);
35810 flag_NotZ = res & 0xFF;
35811 WRITE_BYTE_F(adr, res)
35822 src = DREGu8((Opcode >> 9) & 7);
35825 READ_BYTE_F(adr, dst)
35827 flag_N = flag_X = flag_C = res;
35828 flag_V = (src ^ res) & (dst ^ res);
35829 flag_NotZ = res & 0xFF;
35830 WRITE_BYTE_F(adr, res)
35841 src = DREGu8((Opcode >> 9) & 7);
35844 READ_BYTE_F(adr, dst)
35846 flag_N = flag_X = flag_C = res;
35847 flag_V = (src ^ res) & (dst ^ res);
35848 flag_NotZ = res & 0xFF;
35849 WRITE_BYTE_F(adr, res)
35860 src = DREGu8((Opcode >> 9) & 7);
35864 READ_BYTE_F(adr, dst)
35866 flag_N = flag_X = flag_C = res;
35867 flag_V = (src ^ res) & (dst ^ res);
35868 flag_NotZ = res & 0xFF;
35869 WRITE_BYTE_F(adr, res)
35880 src = DREGu8((Opcode >> 9) & 7);
35884 READ_BYTE_F(adr, dst)
35886 flag_N = flag_X = flag_C = res;
35887 flag_V = (src ^ res) & (dst ^ res);
35888 flag_NotZ = res & 0xFF;
35889 WRITE_BYTE_F(adr, res)
35900 src = DREGu16((Opcode >> 9) & 7);
35901 adr = AREG((Opcode >> 0) & 7);
35903 READ_WORD_F(adr, dst)
35905 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35906 flag_N = flag_X = flag_C = res >> 8;
35907 flag_NotZ = res & 0xFFFF;
35908 WRITE_WORD_F(adr, res)
35919 src = DREGu16((Opcode >> 9) & 7);
35920 adr = AREG((Opcode >> 0) & 7);
35921 AREG((Opcode >> 0) & 7) += 2;
35923 READ_WORD_F(adr, dst)
35925 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35926 flag_N = flag_X = flag_C = res >> 8;
35927 flag_NotZ = res & 0xFFFF;
35928 WRITE_WORD_F(adr, res)
35939 src = DREGu16((Opcode >> 9) & 7);
35940 adr = AREG((Opcode >> 0) & 7) - 2;
35941 AREG((Opcode >> 0) & 7) = adr;
35943 READ_WORD_F(adr, dst)
35945 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35946 flag_N = flag_X = flag_C = res >> 8;
35947 flag_NotZ = res & 0xFFFF;
35948 WRITE_WORD_F(adr, res)
35959 src = DREGu16((Opcode >> 9) & 7);
35961 adr += AREG((Opcode >> 0) & 7);
35963 READ_WORD_F(adr, dst)
35965 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35966 flag_N = flag_X = flag_C = res >> 8;
35967 flag_NotZ = res & 0xFFFF;
35968 WRITE_WORD_F(adr, res)
35979 src = DREGu16((Opcode >> 9) & 7);
35980 adr = AREG((Opcode >> 0) & 7);
35983 READ_WORD_F(adr, dst)
35985 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35986 flag_N = flag_X = flag_C = res >> 8;
35987 flag_NotZ = res & 0xFFFF;
35988 WRITE_WORD_F(adr, res)
35999 src = DREGu16((Opcode >> 9) & 7);
36002 READ_WORD_F(adr, dst)
36004 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36005 flag_N = flag_X = flag_C = res >> 8;
36006 flag_NotZ = res & 0xFFFF;
36007 WRITE_WORD_F(adr, res)
36018 src = DREGu16((Opcode >> 9) & 7);
36021 READ_WORD_F(adr, dst)
36023 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36024 flag_N = flag_X = flag_C = res >> 8;
36025 flag_NotZ = res & 0xFFFF;
36026 WRITE_WORD_F(adr, res)
36037 src = DREGu16((Opcode >> 9) & 7);
36041 READ_WORD_F(adr, dst)
36043 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36044 flag_N = flag_X = flag_C = res >> 8;
36045 flag_NotZ = res & 0xFFFF;
36046 WRITE_WORD_F(adr, res)
36057 src = DREGu16((Opcode >> 9) & 7);
36061 READ_WORD_F(adr, dst)
36063 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36064 flag_N = flag_X = flag_C = res >> 8;
36065 flag_NotZ = res & 0xFFFF;
36066 WRITE_WORD_F(adr, res)
36077 src = DREGu32((Opcode >> 9) & 7);
36078 adr = AREG((Opcode >> 0) & 7);
36080 READ_LONG_F(adr, dst)
36083 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36084 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36085 flag_N = res >> 24;
36086 WRITE_LONG_F(adr, res)
36097 src = DREGu32((Opcode >> 9) & 7);
36098 adr = AREG((Opcode >> 0) & 7);
36099 AREG((Opcode >> 0) & 7) += 4;
36101 READ_LONG_F(adr, dst)
36104 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36105 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36106 flag_N = res >> 24;
36107 WRITE_LONG_F(adr, res)
36118 src = DREGu32((Opcode >> 9) & 7);
36119 adr = AREG((Opcode >> 0) & 7) - 4;
36120 AREG((Opcode >> 0) & 7) = adr;
36122 READ_LONG_F(adr, dst)
36125 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36126 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36127 flag_N = res >> 24;
36128 WRITE_LONG_F(adr, res)
36139 src = DREGu32((Opcode >> 9) & 7);
36141 adr += AREG((Opcode >> 0) & 7);
36143 READ_LONG_F(adr, dst)
36146 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36147 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36148 flag_N = res >> 24;
36149 WRITE_LONG_F(adr, res)
36160 src = DREGu32((Opcode >> 9) & 7);
36161 adr = AREG((Opcode >> 0) & 7);
36164 READ_LONG_F(adr, dst)
36167 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36168 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36169 flag_N = res >> 24;
36170 WRITE_LONG_F(adr, res)
36181 src = DREGu32((Opcode >> 9) & 7);
36184 READ_LONG_F(adr, dst)
36187 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36188 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36189 flag_N = res >> 24;
36190 WRITE_LONG_F(adr, res)
36201 src = DREGu32((Opcode >> 9) & 7);
36204 READ_LONG_F(adr, dst)
36207 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36208 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36209 flag_N = res >> 24;
36210 WRITE_LONG_F(adr, res)
36221 src = DREGu32((Opcode >> 9) & 7);
36225 READ_LONG_F(adr, dst)
36228 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36229 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36230 flag_N = res >> 24;
36231 WRITE_LONG_F(adr, res)
36242 src = DREGu32((Opcode >> 9) & 7);
36246 READ_LONG_F(adr, dst)
36249 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36250 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36251 flag_N = res >> 24;
36252 WRITE_LONG_F(adr, res)
36263 src = DREGu8((Opcode >> 0) & 7);
36264 dst = DREGu8((Opcode >> 9) & 7);
36265 res = dst + src + ((flag_X >> 8) & 1);
36266 flag_N = flag_X = flag_C = res;
36267 flag_V = (src ^ res) & (dst ^ res);
36268 flag_NotZ |= res & 0xFF;
36269 DREGu8((Opcode >> 9) & 7) = res;
36279 src = DREGu16((Opcode >> 0) & 7);
36280 dst = DREGu16((Opcode >> 9) & 7);
36281 res = dst + src + ((flag_X >> 8) & 1);
36282 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36283 flag_N = flag_X = flag_C = res >> 8;
36284 flag_NotZ |= res & 0xFFFF;
36285 DREGu16((Opcode >> 9) & 7) = res;
36295 src = DREGu32((Opcode >> 0) & 7);
36296 dst = DREGu32((Opcode >> 9) & 7);
36297 res = dst + src + ((flag_X >> 8) & 1);
36299 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36300 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36301 flag_N = res >> 24;
36302 DREGu32((Opcode >> 9) & 7) = res;
36312 adr = AREG((Opcode >> 0) & 7) - 1;
36313 AREG((Opcode >> 0) & 7) = adr;
36315 READ_BYTE_F(adr, src)
36316 adr = AREG((Opcode >> 9) & 7) - 1;
36317 AREG((Opcode >> 9) & 7) = adr;
36318 READ_BYTE_F(adr, dst)
36319 res = dst + src + ((flag_X >> 8) & 1);
36320 flag_N = flag_X = flag_C = res;
36321 flag_V = (src ^ res) & (dst ^ res);
36322 flag_NotZ |= res & 0xFF;
36323 WRITE_BYTE_F(adr, res)
36334 adr = AREG((Opcode >> 0) & 7) - 2;
36335 AREG((Opcode >> 0) & 7) = adr;
36337 READ_WORD_F(adr, src)
36338 adr = AREG((Opcode >> 9) & 7) - 2;
36339 AREG((Opcode >> 9) & 7) = adr;
36340 READ_WORD_F(adr, dst)
36341 res = dst + src + ((flag_X >> 8) & 1);
36342 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36343 flag_N = flag_X = flag_C = res >> 8;
36344 flag_NotZ |= res & 0xFFFF;
36345 WRITE_WORD_F(adr, res)
36356 adr = AREG((Opcode >> 0) & 7) - 4;
36357 AREG((Opcode >> 0) & 7) = adr;
36359 READ_LONG_F(adr, src)
36360 adr = AREG((Opcode >> 9) & 7) - 4;
36361 AREG((Opcode >> 9) & 7) = adr;
36362 READ_LONG_F(adr, dst)
36363 res = dst + src + ((flag_X >> 8) & 1);
36365 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36366 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36367 flag_N = res >> 24;
36368 WRITE_LONG_F(adr, res)
36382 READ_BYTE_F(adr, src)
36383 adr = AREG((Opcode >> 9) & 7) - 1;
36384 AREG((Opcode >> 9) & 7) = adr;
36385 READ_BYTE_F(adr, dst)
36386 res = dst + src + ((flag_X >> 8) & 1);
36387 flag_N = flag_X = flag_C = res;
36388 flag_V = (src ^ res) & (dst ^ res);
36389 flag_NotZ |= res & 0xFF;
36390 WRITE_BYTE_F(adr, res)
36404 READ_WORD_F(adr, src)
36405 adr = AREG((Opcode >> 9) & 7) - 2;
36406 AREG((Opcode >> 9) & 7) = adr;
36407 READ_WORD_F(adr, dst)
36408 res = dst + src + ((flag_X >> 8) & 1);
36409 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36410 flag_N = flag_X = flag_C = res >> 8;
36411 flag_NotZ |= res & 0xFFFF;
36412 WRITE_WORD_F(adr, res)
36426 READ_LONG_F(adr, src)
36427 adr = AREG((Opcode >> 9) & 7) - 4;
36428 AREG((Opcode >> 9) & 7) = adr;
36429 READ_LONG_F(adr, dst)
36430 res = dst + src + ((flag_X >> 8) & 1);
36432 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36433 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36434 flag_N = res >> 24;
36435 WRITE_LONG_F(adr, res)
36446 adr = AREG((Opcode >> 0) & 7) - 1;
36447 AREG((Opcode >> 0) & 7) = adr;
36449 READ_BYTE_F(adr, src)
36452 READ_BYTE_F(adr, dst)
36453 res = dst + src + ((flag_X >> 8) & 1);
36454 flag_N = flag_X = flag_C = res;
36455 flag_V = (src ^ res) & (dst ^ res);
36456 flag_NotZ |= res & 0xFF;
36457 WRITE_BYTE_F(adr, res)
36468 adr = AREG((Opcode >> 0) & 7) - 2;
36469 AREG((Opcode >> 0) & 7) = adr;
36471 READ_WORD_F(adr, src)
36474 READ_WORD_F(adr, dst)
36475 res = dst + src + ((flag_X >> 8) & 1);
36476 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36477 flag_N = flag_X = flag_C = res >> 8;
36478 flag_NotZ |= res & 0xFFFF;
36479 WRITE_WORD_F(adr, res)
36490 adr = AREG((Opcode >> 0) & 7) - 4;
36491 AREG((Opcode >> 0) & 7) = adr;
36493 READ_LONG_F(adr, src)
36496 READ_LONG_F(adr, dst)
36497 res = dst + src + ((flag_X >> 8) & 1);
36499 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36500 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36501 flag_N = res >> 24;
36502 WRITE_LONG_F(adr, res)
36516 READ_BYTE_F(adr, src)
36519 READ_BYTE_F(adr, dst)
36520 res = dst + src + ((flag_X >> 8) & 1);
36521 flag_N = flag_X = flag_C = res;
36522 flag_V = (src ^ res) & (dst ^ res);
36523 flag_NotZ |= res & 0xFF;
36524 WRITE_BYTE_F(adr, res)
36538 READ_WORD_F(adr, src)
36541 READ_WORD_F(adr, dst)
36542 res = dst + src + ((flag_X >> 8) & 1);
36543 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36544 flag_N = flag_X = flag_C = res >> 8;
36545 flag_NotZ |= res & 0xFFFF;
36546 WRITE_WORD_F(adr, res)
36560 READ_LONG_F(adr, src)
36563 READ_LONG_F(adr, dst)
36564 res = dst + src + ((flag_X >> 8) & 1);
36566 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36567 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36568 flag_N = res >> 24;
36569 WRITE_LONG_F(adr, res)
36580 src = (s32)DREGs16((Opcode >> 0) & 7);
36581 dst = AREGu32((Opcode >> 9) & 7);
36583 AREG((Opcode >> 9) & 7) = res;
36593 src = (s32)AREGs16((Opcode >> 0) & 7);
36594 dst = AREGu32((Opcode >> 9) & 7);
36596 AREG((Opcode >> 9) & 7) = res;
36606 adr = AREG((Opcode >> 0) & 7);
36608 READSX_WORD_F(adr, src)
36609 dst = AREGu32((Opcode >> 9) & 7);
36611 AREG((Opcode >> 9) & 7) = res;
36613 #ifdef USE_CYCLONE_TIMING
36626 adr = AREG((Opcode >> 0) & 7);
36627 AREG((Opcode >> 0) & 7) += 2;
36629 READSX_WORD_F(adr, src)
36630 dst = AREGu32((Opcode >> 9) & 7);
36632 AREG((Opcode >> 9) & 7) = res;
36634 #ifdef USE_CYCLONE_TIMING
36647 adr = AREG((Opcode >> 0) & 7) - 2;
36648 AREG((Opcode >> 0) & 7) = adr;
36650 READSX_WORD_F(adr, src)
36651 dst = AREGu32((Opcode >> 9) & 7);
36653 AREG((Opcode >> 9) & 7) = res;
36655 #ifdef USE_CYCLONE_TIMING
36669 adr += AREG((Opcode >> 0) & 7);
36671 READSX_WORD_F(adr, src)
36672 dst = AREGu32((Opcode >> 9) & 7);
36674 AREG((Opcode >> 9) & 7) = res;
36676 #ifdef USE_CYCLONE_TIMING
36689 adr = AREG((Opcode >> 0) & 7);
36692 READSX_WORD_F(adr, src)
36693 dst = AREGu32((Opcode >> 9) & 7);
36695 AREG((Opcode >> 9) & 7) = res;
36697 #ifdef USE_CYCLONE_TIMING
36712 READSX_WORD_F(adr, src)
36713 dst = AREGu32((Opcode >> 9) & 7);
36715 AREG((Opcode >> 9) & 7) = res;
36717 #ifdef USE_CYCLONE_TIMING
36732 READSX_WORD_F(adr, src)
36733 dst = AREGu32((Opcode >> 9) & 7);
36735 AREG((Opcode >> 9) & 7) = res;
36737 #ifdef USE_CYCLONE_TIMING
36750 adr = GET_SWORD + GET_PC;
36753 READSX_WORD_F(adr, src)
36754 dst = AREGu32((Opcode >> 9) & 7);
36756 AREG((Opcode >> 9) & 7) = res;
36758 #ifdef USE_CYCLONE_TIMING
36774 READSX_WORD_F(adr, src)
36775 dst = AREGu32((Opcode >> 9) & 7);
36777 AREG((Opcode >> 9) & 7) = res;
36779 #ifdef USE_CYCLONE_TIMING
36793 dst = AREGu32((Opcode >> 9) & 7);
36795 AREG((Opcode >> 9) & 7) = res;
36808 READSX_WORD_F(adr, src)
36809 dst = AREGu32((Opcode >> 9) & 7);
36811 AREG((Opcode >> 9) & 7) = res;
36813 #ifdef USE_CYCLONE_TIMING
36829 READSX_WORD_F(adr, src)
36830 dst = AREGu32((Opcode >> 9) & 7);
36832 AREG((Opcode >> 9) & 7) = res;
36834 #ifdef USE_CYCLONE_TIMING
36847 src = (s32)DREGs32((Opcode >> 0) & 7);
36848 dst = AREGu32((Opcode >> 9) & 7);
36850 AREG((Opcode >> 9) & 7) = res;
36851 #ifdef USE_CYCLONE_TIMING
36864 src = (s32)AREGs32((Opcode >> 0) & 7);
36865 dst = AREGu32((Opcode >> 9) & 7);
36867 AREG((Opcode >> 9) & 7) = res;
36868 #ifdef USE_CYCLONE_TIMING
36881 adr = AREG((Opcode >> 0) & 7);
36883 READSX_LONG_F(adr, src)
36884 dst = AREGu32((Opcode >> 9) & 7);
36886 AREG((Opcode >> 9) & 7) = res;
36897 adr = AREG((Opcode >> 0) & 7);
36898 AREG((Opcode >> 0) & 7) += 4;
36900 READSX_LONG_F(adr, src)
36901 dst = AREGu32((Opcode >> 9) & 7);
36903 AREG((Opcode >> 9) & 7) = res;
36914 adr = AREG((Opcode >> 0) & 7) - 4;
36915 AREG((Opcode >> 0) & 7) = adr;
36917 READSX_LONG_F(adr, src)
36918 dst = AREGu32((Opcode >> 9) & 7);
36920 AREG((Opcode >> 9) & 7) = res;
36932 adr += AREG((Opcode >> 0) & 7);
36934 READSX_LONG_F(adr, src)
36935 dst = AREGu32((Opcode >> 9) & 7);
36937 AREG((Opcode >> 9) & 7) = res;
36948 adr = AREG((Opcode >> 0) & 7);
36951 READSX_LONG_F(adr, src)
36952 dst = AREGu32((Opcode >> 9) & 7);
36954 AREG((Opcode >> 9) & 7) = res;
36967 READSX_LONG_F(adr, src)
36968 dst = AREGu32((Opcode >> 9) & 7);
36970 AREG((Opcode >> 9) & 7) = res;
36983 READSX_LONG_F(adr, src)
36984 dst = AREGu32((Opcode >> 9) & 7);
36986 AREG((Opcode >> 9) & 7) = res;
36997 adr = GET_SWORD + GET_PC;
37000 READSX_LONG_F(adr, src)
37001 dst = AREGu32((Opcode >> 9) & 7);
37003 AREG((Opcode >> 9) & 7) = res;
37017 READSX_LONG_F(adr, src)
37018 dst = AREGu32((Opcode >> 9) & 7);
37020 AREG((Opcode >> 9) & 7) = res;
37032 dst = AREGu32((Opcode >> 9) & 7);
37034 AREG((Opcode >> 9) & 7) = res;
37035 #ifdef USE_CYCLONE_TIMING
37051 READSX_LONG_F(adr, src)
37052 dst = AREGu32((Opcode >> 9) & 7);
37054 AREG((Opcode >> 9) & 7) = res;
37068 READSX_LONG_F(adr, src)
37069 dst = AREGu32((Opcode >> 9) & 7);
37071 AREG((Opcode >> 9) & 7) = res;
37084 sft = (((Opcode >> 9) - 1) & 7) + 1;
37085 m68kcontext.io_cycle_counter -= sft * 2;
37086 src = (s32)DREGs8((Opcode >> 0) & 7);
37088 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37089 res = ((s32)src) >> sft;
37092 DREGu8((Opcode >> 0) & 7) = res;
37104 sft = (((Opcode >> 9) - 1) & 7) + 1;
37105 m68kcontext.io_cycle_counter -= sft * 2;
37106 src = (s32)DREGs16((Opcode >> 0) & 7);
37108 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37109 res = ((s32)src) >> sft;
37112 DREGu16((Opcode >> 0) & 7) = res;
37124 sft = (((Opcode >> 9) - 1) & 7) + 1;
37125 m68kcontext.io_cycle_counter -= sft * 2;
37126 src = (s32)DREGs32((Opcode >> 0) & 7);
37128 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37129 res = ((s32)src) >> sft;
37130 flag_N = res >> 24;
37132 DREGu32((Opcode >> 0) & 7) = res;
37144 sft = (((Opcode >> 9) - 1) & 7) + 1;
37145 m68kcontext.io_cycle_counter -= sft * 2;
37146 src = DREGu8((Opcode >> 0) & 7);
37147 flag_N = flag_V = 0;
37148 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37151 DREGu8((Opcode >> 0) & 7) = res;
37163 sft = (((Opcode >> 9) - 1) & 7) + 1;
37164 m68kcontext.io_cycle_counter -= sft * 2;
37165 src = DREGu16((Opcode >> 0) & 7);
37166 flag_N = flag_V = 0;
37167 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37170 DREGu16((Opcode >> 0) & 7) = res;
37182 sft = (((Opcode >> 9) - 1) & 7) + 1;
37183 m68kcontext.io_cycle_counter -= sft * 2;
37184 src = DREGu32((Opcode >> 0) & 7);
37185 flag_N = flag_V = 0;
37186 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37189 DREGu32((Opcode >> 0) & 7) = res;
37201 sft = (((Opcode >> 9) - 1) & 7) + 1;
37202 m68kcontext.io_cycle_counter -= sft * 2;
37203 src = DREGu8((Opcode >> 0) & 7);
37204 src |= (flag_X & M68K_SR_X) << 0;
37205 res = (src >> sft) | (src << (9 - sft));
37206 flag_X = flag_C = res >> 0;
37209 flag_NotZ = res & 0x000000FF;
37210 DREGu8((Opcode >> 0) & 7) = res;
37222 sft = (((Opcode >> 9) - 1) & 7) + 1;
37223 m68kcontext.io_cycle_counter -= sft * 2;
37224 src = DREGu16((Opcode >> 0) & 7);
37225 src |= (flag_X & M68K_SR_X) << 8;
37226 res = (src >> sft) | (src << (17 - sft));
37227 flag_X = flag_C = res >> 8;
37230 flag_NotZ = res & 0x0000FFFF;
37231 DREGu16((Opcode >> 0) & 7) = res;
37243 sft = (((Opcode >> 9) - 1) & 7) + 1;
37244 m68kcontext.io_cycle_counter -= sft * 2;
37245 src = DREGu32((Opcode >> 0) & 7);
37246 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37247 if (sft == 1) res = (src >> 1) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1)));
37248 else res = (src >> sft) | (src << (33 - sft)) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + sft)));
37251 flag_N = res >> 24;
37253 DREGu32((Opcode >> 0) & 7) = res;
37265 sft = (((Opcode >> 9) - 1) & 7) + 1;
37266 m68kcontext.io_cycle_counter -= sft * 2;
37267 src = DREGu8((Opcode >> 0) & 7);
37269 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37270 res = (src >> sft) | (src << (8 - sft));
37272 flag_NotZ = res & 0x000000FF;
37273 DREGu8((Opcode >> 0) & 7) = res;
37285 sft = (((Opcode >> 9) - 1) & 7) + 1;
37286 m68kcontext.io_cycle_counter -= sft * 2;
37287 src = DREGu16((Opcode >> 0) & 7);
37289 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37290 res = (src >> sft) | (src << (16 - sft));
37292 flag_NotZ = res & 0x0000FFFF;
37293 DREGu16((Opcode >> 0) & 7) = res;
37305 sft = (((Opcode >> 9) - 1) & 7) + 1;
37306 m68kcontext.io_cycle_counter -= sft * 2;
37307 src = DREGu32((Opcode >> 0) & 7);
37309 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37310 res = (src >> sft) | (src << (32 - sft));
37311 flag_N = res >> 24;
37313 DREGu32((Opcode >> 0) & 7) = res;
37325 sft = (((Opcode >> 9) - 1) & 7) + 1;
37326 m68kcontext.io_cycle_counter -= sft * 2;
37327 src = DREGu8((Opcode >> 0) & 7);
37330 flag_X = flag_C = src << (0 + sft);
37333 flag_NotZ = res & 0x000000FF;
37334 DREGu8((Opcode >> 0) & 7) = res;
37336 if ((sft > 7) && (src)) flag_V = M68K_SR_V;
37339 u32 msk = (((s32)0x80000000) >> (sft + 24)) & 0x000000FF;
37341 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37346 if (src) flag_V = M68K_SR_V;
37348 flag_X = flag_C = src << M68K_SR_C_SFT;
37350 DREGu8((Opcode >> 0) & 7) = res;
37364 sft = (((Opcode >> 9) - 1) & 7) + 1;
37365 m68kcontext.io_cycle_counter -= sft * 2;
37366 src = DREGu16((Opcode >> 0) & 7);
37367 flag_X = flag_C = src >> (8 - sft);
37370 flag_NotZ = res & 0x0000FFFF;
37371 DREGu16((Opcode >> 0) & 7) = res;
37374 u32 msk = (((s32)0x80000000) >> (sft + 16)) & 0x0000FFFF;
37376 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37389 sft = (((Opcode >> 9) - 1) & 7) + 1;
37390 m68kcontext.io_cycle_counter -= sft * 2;
37391 src = DREGu32((Opcode >> 0) & 7);
37392 flag_X = flag_C = src >> (24 - sft);
37394 flag_N = res >> 24;
37395 flag_NotZ = res & 0xFFFFFFFF;
37396 DREGu32((Opcode >> 0) & 7) = res;
37399 u32 msk = (((s32)0x80000000) >> (sft + 0)) & 0xFFFFFFFF;
37401 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37414 sft = (((Opcode >> 9) - 1) & 7) + 1;
37415 m68kcontext.io_cycle_counter -= sft * 2;
37416 src = DREGu8((Opcode >> 0) & 7);
37418 flag_X = flag_C = src << (0 + sft);
37421 flag_NotZ = res & 0x000000FF;
37422 DREGu8((Opcode >> 0) & 7) = res;
37434 sft = (((Opcode >> 9) - 1) & 7) + 1;
37435 m68kcontext.io_cycle_counter -= sft * 2;
37436 src = DREGu16((Opcode >> 0) & 7);
37438 flag_X = flag_C = src >> (8 - sft);
37441 flag_NotZ = res & 0x0000FFFF;
37442 DREGu16((Opcode >> 0) & 7) = res;
37454 sft = (((Opcode >> 9) - 1) & 7) + 1;
37455 m68kcontext.io_cycle_counter -= sft * 2;
37456 src = DREGu32((Opcode >> 0) & 7);
37458 flag_X = flag_C = src >> (24 - sft);
37460 flag_N = res >> 24;
37461 flag_NotZ = res & 0xFFFFFFFF;
37462 DREGu32((Opcode >> 0) & 7) = res;
37474 sft = (((Opcode >> 9) - 1) & 7) + 1;
37475 m68kcontext.io_cycle_counter -= sft * 2;
37476 src = DREGu8((Opcode >> 0) & 7);
37477 src |= (flag_X & M68K_SR_X) << 0;
37478 res = (src << sft) | (src >> (9 - sft));
37479 flag_X = flag_C = res >> 0;
37482 flag_NotZ = res & 0x000000FF;
37483 DREGu8((Opcode >> 0) & 7) = res;
37495 sft = (((Opcode >> 9) - 1) & 7) + 1;
37496 m68kcontext.io_cycle_counter -= sft * 2;
37497 src = DREGu16((Opcode >> 0) & 7);
37498 src |= (flag_X & M68K_SR_X) << 8;
37499 res = (src << sft) | (src >> (17 - sft));
37500 flag_X = flag_C = res >> 8;
37503 flag_NotZ = res & 0x0000FFFF;
37504 DREGu16((Opcode >> 0) & 7) = res;
37516 sft = (((Opcode >> 9) - 1) & 7) + 1;
37517 m68kcontext.io_cycle_counter -= sft * 2;
37518 src = DREGu32((Opcode >> 0) & 7);
37519 flag_C = src >> ((32 - M68K_SR_C_SFT) - sft);
37520 if (sft == 1) res = (src << 1) | ((flag_X & M68K_SR_X) >> ((M68K_SR_X_SFT + 1) - 1));
37521 else res = (src << sft) | (src >> (33 - sft)) | ((flag_X & M68K_SR_X) >> ((M68K_SR_X_SFT + 1) - sft));
37524 flag_N = res >> 24;
37526 DREGu32((Opcode >> 0) & 7) = res;
37538 sft = (((Opcode >> 9) - 1) & 7) + 1;
37539 m68kcontext.io_cycle_counter -= sft * 2;
37540 src = DREGu8((Opcode >> 0) & 7);
37542 flag_C = src << (0 + sft);
37543 res = (src << sft) | (src >> (8 - sft));
37545 flag_NotZ = res & 0x000000FF;
37546 DREGu8((Opcode >> 0) & 7) = res;
37558 sft = (((Opcode >> 9) - 1) & 7) + 1;
37559 m68kcontext.io_cycle_counter -= sft * 2;
37560 src = DREGu16((Opcode >> 0) & 7);
37562 flag_C = src >> (8 - sft);
37563 res = (src << sft) | (src >> (16 - sft));
37565 flag_NotZ = res & 0x0000FFFF;
37566 DREGu16((Opcode >> 0) & 7) = res;
37578 sft = (((Opcode >> 9) - 1) & 7) + 1;
37579 m68kcontext.io_cycle_counter -= sft * 2;
37580 src = DREGu32((Opcode >> 0) & 7);
37582 flag_C = src >> (24 - sft);
37583 res = (src << sft) | (src >> (32 - sft));
37584 flag_N = res >> 24;
37586 DREGu32((Opcode >> 0) & 7) = res;
37598 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37599 src = (s32)DREGs8((Opcode >> 0) & 7);
37602 m68kcontext.io_cycle_counter -= sft * 2;
37606 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37607 res = ((s32)src) >> sft;
37610 DREGu8((Opcode >> 0) & 7) = res;
37614 if (src & (1 << 7))
37616 flag_N = M68K_SR_N;
37619 flag_C = M68K_SR_C;
37620 flag_X = M68K_SR_X;
37622 DREGu8((Opcode >> 0) & 7) = res;
37632 DREGu8((Opcode >> 0) & 7) = res;
37651 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37652 src = (s32)DREGs16((Opcode >> 0) & 7);
37655 m68kcontext.io_cycle_counter -= sft * 2;
37659 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37660 res = ((s32)src) >> sft;
37663 DREGu16((Opcode >> 0) & 7) = res;
37667 if (src & (1 << 15))
37669 flag_N = M68K_SR_N;
37672 flag_C = M68K_SR_C;
37673 flag_X = M68K_SR_X;
37675 DREGu16((Opcode >> 0) & 7) = res;
37685 DREGu16((Opcode >> 0) & 7) = res;
37699 #ifdef USE_CYCLONE_TIMING
37709 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37710 src = (s32)DREGs32((Opcode >> 0) & 7);
37713 m68kcontext.io_cycle_counter -= sft * 2;
37717 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37718 res = ((s32)src) >> sft;
37719 flag_N = res >> 24;
37721 DREGu32((Opcode >> 0) & 7) = res;
37725 if (src & (1 << 31))
37727 flag_N = M68K_SR_N;
37730 flag_C = M68K_SR_C;
37731 flag_X = M68K_SR_X;
37733 DREGu32((Opcode >> 0) & 7) = res;
37743 DREGu32((Opcode >> 0) & 7) = res;
37749 flag_N = src >> 24;
37763 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37764 src = DREGu8((Opcode >> 0) & 7);
37767 m68kcontext.io_cycle_counter -= sft * 2;
37770 flag_N = flag_V = 0;
37771 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37774 DREGu8((Opcode >> 0) & 7) = res;
37778 flag_X = flag_C = 0;
37783 DREGu8((Opcode >> 0) & 7) = res;
37802 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37803 src = DREGu16((Opcode >> 0) & 7);
37806 m68kcontext.io_cycle_counter -= sft * 2;
37809 flag_N = flag_V = 0;
37810 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37813 DREGu16((Opcode >> 0) & 7) = res;
37817 flag_X = flag_C = 0;
37822 DREGu16((Opcode >> 0) & 7) = res;
37836 #ifdef USE_CYCLONE_TIMING
37846 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37847 src = DREGu32((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 DREGu32((Opcode >> 0) & 7) = res;
37861 if (sft == 32) flag_C = src >> (31 - M68K_SR_C_SFT);
37868 DREGu32((Opcode >> 0) & 7) = res;
37874 flag_N = src >> 24;
37888 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37889 src = DREGu8((Opcode >> 0) & 7);
37892 m68kcontext.io_cycle_counter -= sft * 2;
37895 src |= (flag_X & M68K_SR_X) << 0;
37896 res = (src >> sft) | (src << (9 - sft));
37897 flag_X = flag_C = res >> 0;
37900 flag_NotZ = res & 0x000000FF;
37901 DREGu8((Opcode >> 0) & 7) = res;
37920 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37921 src = DREGu16((Opcode >> 0) & 7);
37924 m68kcontext.io_cycle_counter -= sft * 2;
37927 src |= (flag_X & M68K_SR_X) << 8;
37928 res = (src >> sft) | (src << (17 - sft));
37929 flag_X = flag_C = res >> 8;
37932 flag_NotZ = res & 0x0000FFFF;
37933 DREGu16((Opcode >> 0) & 7) = res;
37947 #ifdef USE_CYCLONE_TIMING
37957 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37958 src = DREGu32((Opcode >> 0) & 7);
37961 m68kcontext.io_cycle_counter -= sft * 2;
37966 if (sft == 1) res = (src >> 1) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1)));
37967 else res = (src >> sft) | (src << (33 - sft)) | (((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1))) >> (sft - 1));
37968 flag_X = (src >> (32 - sft)) << M68K_SR_X_SFT;
37973 flag_N = res >> 24;
37975 DREGu32((Opcode >> 0) & 7) = res;
37981 flag_N = src >> 24;
37995 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37996 src = DREGu8((Opcode >> 0) & 7);
37999 m68kcontext.io_cycle_counter -= sft * 2;
38002 flag_C = src << (M68K_SR_C_SFT - ((sft - 1) & 7));
38003 res = (src >> sft) | (src << (8 - sft));
38006 flag_NotZ = res & 0x000000FF;
38007 DREGu8((Opcode >> 0) & 7) = res;
38026 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38027 src = DREGu16((Opcode >> 0) & 7);
38030 m68kcontext.io_cycle_counter -= sft * 2;
38033 flag_C = (src >> ((sft - 1) & 15)) << M68K_SR_C_SFT;
38034 res = (src >> sft) | (src << (16 - sft));
38037 flag_NotZ = res & 0x0000FFFF;
38038 DREGu16((Opcode >> 0) & 7) = res;
38052 #ifdef USE_CYCLONE_TIMING
38062 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38063 src = DREGu32((Opcode >> 0) & 7);
38066 m68kcontext.io_cycle_counter -= sft * 2;
38069 flag_C = (src >> ((sft - 1) & 31)) << M68K_SR_C_SFT;
38070 res = (src >> sft) | (src << (32 - sft));
38072 flag_N = res >> 24;
38074 DREGu32((Opcode >> 0) & 7) = res;
38080 flag_N = src >> 24;
38094 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38095 src = DREGu8((Opcode >> 0) & 7);
38098 m68kcontext.io_cycle_counter -= sft * 2;
38101 flag_X = flag_C = (src << sft) >> 0;
38102 res = (src << sft) & 0x000000FF;
38105 DREGu8((Opcode >> 0) & 7) = res;
38108 u32 msk = (((s32)0x80000000) >> (sft + 24)) & 0x000000FF;
38110 if ((src) && (src != msk)) flag_V = M68K_SR_V;
38115 if (sft == 256) flag_C = src << M68K_SR_C_SFT;
38118 if (src) flag_V = M68K_SR_V;
38121 DREGu8((Opcode >> 0) & 7) = res;
38142 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38143 src = DREGu16((Opcode >> 0) & 7);
38146 m68kcontext.io_cycle_counter -= sft * 2;
38149 flag_X = flag_C = (src << sft) >> 8;
38150 res = (src << sft) & 0x0000FFFF;
38153 DREGu16((Opcode >> 0) & 7) = res;
38156 u32 msk = (((s32)0x80000000) >> (sft + 16)) & 0x0000FFFF;
38158 if ((src) && (src != msk)) flag_V = M68K_SR_V;
38163 if (sft == 65536) flag_C = src << M68K_SR_C_SFT;
38166 if (src) flag_V = M68K_SR_V;
38169 DREGu16((Opcode >> 0) & 7) = res;
38185 #ifdef USE_CYCLONE_TIMING
38195 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38196 src = DREGu32((Opcode >> 0) & 7);
38199 m68kcontext.io_cycle_counter -= sft * 2;
38202 flag_X = flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38204 flag_N = res >> 24;
38206 DREGu32((Opcode >> 0) & 7) = res;
38209 u32 msk = (((s32)0x80000000) >> (sft + 0)) & 0xFFFFFFFF;
38211 if ((src) && (src != msk)) flag_V = M68K_SR_V;
38216 if (sft == 0) flag_C = src << M68K_SR_C_SFT;
38219 if (src) flag_V = M68K_SR_V;
38222 DREGu32((Opcode >> 0) & 7) = res;
38230 flag_N = src >> 24;
38244 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38245 src = DREGu8((Opcode >> 0) & 7);
38248 m68kcontext.io_cycle_counter -= sft * 2;
38251 flag_X = flag_C = (src << sft) >> 0;
38252 res = (src << sft) & 0x000000FF;
38256 DREGu8((Opcode >> 0) & 7) = res;
38260 flag_X = flag_C = 0;
38265 DREGu8((Opcode >> 0) & 7) = res;
38284 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38285 src = DREGu16((Opcode >> 0) & 7);
38288 m68kcontext.io_cycle_counter -= sft * 2;
38291 flag_X = flag_C = (src << sft) >> 8;
38292 res = (src << sft) & 0x0000FFFF;
38296 DREGu16((Opcode >> 0) & 7) = res;
38300 flag_X = flag_C = 0;
38305 DREGu16((Opcode >> 0) & 7) = res;
38319 #ifdef USE_CYCLONE_TIMING
38329 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38330 src = DREGu32((Opcode >> 0) & 7);
38333 m68kcontext.io_cycle_counter -= sft * 2;
38336 flag_X = flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38339 flag_N = res >> 24;
38341 DREGu32((Opcode >> 0) & 7) = res;
38345 if (sft == 32) flag_C = src << M68K_SR_C_SFT;
38352 DREGu32((Opcode >> 0) & 7) = res;
38358 flag_N = src >> 24;
38372 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38373 src = DREGu8((Opcode >> 0) & 7);
38376 m68kcontext.io_cycle_counter -= sft * 2;
38379 src |= (flag_X & M68K_SR_X) << 0;
38380 res = (src << sft) | (src >> (9 - sft));
38381 flag_X = flag_C = res >> 0;
38384 flag_NotZ = res & 0x000000FF;
38385 DREGu8((Opcode >> 0) & 7) = res;
38404 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38405 src = DREGu16((Opcode >> 0) & 7);
38408 m68kcontext.io_cycle_counter -= sft * 2;
38411 src |= (flag_X & M68K_SR_X) << 8;
38412 res = (src << sft) | (src >> (17 - sft));
38413 flag_X = flag_C = res >> 8;
38416 flag_NotZ = res & 0x0000FFFF;
38417 DREGu16((Opcode >> 0) & 7) = res;
38431 #ifdef USE_CYCLONE_TIMING
38441 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38442 src = DREGu32((Opcode >> 0) & 7);
38445 m68kcontext.io_cycle_counter -= sft * 2;
38450 if (sft == 1) res = (src << 1) | ((flag_X >> ((M68K_SR_X_SFT + 1) - 1)) & 1);
38451 else res = (src << sft) | (src >> (33 - sft)) | (((flag_X >> ((M68K_SR_X_SFT + 1) - 1)) & 1) << (sft - 1));
38452 flag_X = (src >> (32 - sft)) << M68K_SR_X_SFT;
38457 flag_N = res >> 24;
38459 DREGu32((Opcode >> 0) & 7) = res;
38465 flag_N = src >> 24;
38479 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38480 src = DREGu8((Opcode >> 0) & 7);
38483 m68kcontext.io_cycle_counter -= sft * 2;
38486 flag_C = (src << sft) >> 0;
38487 res = ((src << sft) | (src >> (8 - sft))) & 0x000000FF;
38491 DREGu8((Opcode >> 0) & 7) = res;
38496 flag_C = src << M68K_SR_C_SFT;
38517 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38518 src = DREGu16((Opcode >> 0) & 7);
38521 m68kcontext.io_cycle_counter -= sft * 2;
38524 flag_C = (src << sft) >> 8;
38525 res = ((src << sft) | (src >> (16 - sft))) & 0x0000FFFF;
38529 DREGu16((Opcode >> 0) & 7) = res;
38534 flag_C = src << M68K_SR_C_SFT;
38550 #ifdef USE_CYCLONE_TIMING
38560 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38561 src = DREGu32((Opcode >> 0) & 7);
38564 m68kcontext.io_cycle_counter -= sft * 2;
38567 flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38568 res = (src << sft) | (src >> (32 - sft));
38570 flag_N = res >> 24;
38572 DREGu32((Opcode >> 0) & 7) = res;
38577 flag_C = src << M68K_SR_C_SFT;
38578 flag_N = src >> 24;
38585 flag_N = src >> 24;
38597 adr = AREG((Opcode >> 0) & 7);
38599 READ_WORD_F(adr, src)
38601 flag_X = flag_C = src << M68K_SR_C_SFT;
38602 res = (src >> 1) | (src & (1 << 15));
38605 WRITE_WORD_F(adr, res)
38616 adr = AREG((Opcode >> 0) & 7);
38617 AREG((Opcode >> 0) & 7) += 2;
38619 READ_WORD_F(adr, src)
38621 flag_X = flag_C = src << M68K_SR_C_SFT;
38622 res = (src >> 1) | (src & (1 << 15));
38625 WRITE_WORD_F(adr, res)
38636 adr = AREG((Opcode >> 0) & 7) - 2;
38637 AREG((Opcode >> 0) & 7) = adr;
38639 READ_WORD_F(adr, src)
38641 flag_X = flag_C = src << M68K_SR_C_SFT;
38642 res = (src >> 1) | (src & (1 << 15));
38645 WRITE_WORD_F(adr, res)
38657 adr += AREG((Opcode >> 0) & 7);
38659 READ_WORD_F(adr, src)
38661 flag_X = flag_C = src << M68K_SR_C_SFT;
38662 res = (src >> 1) | (src & (1 << 15));
38665 WRITE_WORD_F(adr, res)
38676 adr = AREG((Opcode >> 0) & 7);
38679 READ_WORD_F(adr, src)
38681 flag_X = flag_C = src << M68K_SR_C_SFT;
38682 res = (src >> 1) | (src & (1 << 15));
38685 WRITE_WORD_F(adr, res)
38698 READ_WORD_F(adr, src)
38700 flag_X = flag_C = src << M68K_SR_C_SFT;
38701 res = (src >> 1) | (src & (1 << 15));
38704 WRITE_WORD_F(adr, res)
38717 READ_WORD_F(adr, src)
38719 flag_X = flag_C = src << M68K_SR_C_SFT;
38720 res = (src >> 1) | (src & (1 << 15));
38723 WRITE_WORD_F(adr, res)
38737 READ_WORD_F(adr, src)
38739 flag_X = flag_C = src << M68K_SR_C_SFT;
38740 res = (src >> 1) | (src & (1 << 15));
38743 WRITE_WORD_F(adr, res)
38757 READ_WORD_F(adr, src)
38759 flag_X = flag_C = src << M68K_SR_C_SFT;
38760 res = (src >> 1) | (src & (1 << 15));
38763 WRITE_WORD_F(adr, res)
38774 adr = AREG((Opcode >> 0) & 7);
38776 READ_WORD_F(adr, src)
38777 flag_N = flag_V = 0;
38778 flag_X = flag_C = src << M68K_SR_C_SFT;
38781 WRITE_WORD_F(adr, res)
38792 adr = AREG((Opcode >> 0) & 7);
38793 AREG((Opcode >> 0) & 7) += 2;
38795 READ_WORD_F(adr, src)
38796 flag_N = flag_V = 0;
38797 flag_X = flag_C = src << M68K_SR_C_SFT;
38800 WRITE_WORD_F(adr, res)
38811 adr = AREG((Opcode >> 0) & 7) - 2;
38812 AREG((Opcode >> 0) & 7) = adr;
38814 READ_WORD_F(adr, src)
38815 flag_N = flag_V = 0;
38816 flag_X = flag_C = src << M68K_SR_C_SFT;
38819 WRITE_WORD_F(adr, res)
38831 adr += AREG((Opcode >> 0) & 7);
38833 READ_WORD_F(adr, src)
38834 flag_N = flag_V = 0;
38835 flag_X = flag_C = src << M68K_SR_C_SFT;
38838 WRITE_WORD_F(adr, res)
38849 adr = AREG((Opcode >> 0) & 7);
38852 READ_WORD_F(adr, src)
38853 flag_N = flag_V = 0;
38854 flag_X = flag_C = src << M68K_SR_C_SFT;
38857 WRITE_WORD_F(adr, res)
38870 READ_WORD_F(adr, src)
38871 flag_N = flag_V = 0;
38872 flag_X = flag_C = src << M68K_SR_C_SFT;
38875 WRITE_WORD_F(adr, res)
38888 READ_WORD_F(adr, src)
38889 flag_N = flag_V = 0;
38890 flag_X = flag_C = src << M68K_SR_C_SFT;
38893 WRITE_WORD_F(adr, res)
38907 READ_WORD_F(adr, src)
38908 flag_N = flag_V = 0;
38909 flag_X = flag_C = src << M68K_SR_C_SFT;
38912 WRITE_WORD_F(adr, res)
38926 READ_WORD_F(adr, src)
38927 flag_N = flag_V = 0;
38928 flag_X = flag_C = src << M68K_SR_C_SFT;
38931 WRITE_WORD_F(adr, res)
38942 adr = AREG((Opcode >> 0) & 7);
38944 READ_WORD_F(adr, src)
38946 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38947 flag_C = flag_X = src << M68K_SR_C_SFT;
38950 WRITE_WORD_F(adr, res)
38961 adr = AREG((Opcode >> 0) & 7);
38962 AREG((Opcode >> 0) & 7) += 2;
38964 READ_WORD_F(adr, src)
38966 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38967 flag_C = flag_X = src << M68K_SR_C_SFT;
38970 WRITE_WORD_F(adr, res)
38981 adr = AREG((Opcode >> 0) & 7) - 2;
38982 AREG((Opcode >> 0) & 7) = adr;
38984 READ_WORD_F(adr, src)
38986 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38987 flag_C = flag_X = src << M68K_SR_C_SFT;
38990 WRITE_WORD_F(adr, res)
39002 adr += AREG((Opcode >> 0) & 7);
39004 READ_WORD_F(adr, src)
39006 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39007 flag_C = flag_X = src << M68K_SR_C_SFT;
39010 WRITE_WORD_F(adr, res)
39021 adr = AREG((Opcode >> 0) & 7);
39024 READ_WORD_F(adr, src)
39026 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39027 flag_C = flag_X = src << M68K_SR_C_SFT;
39030 WRITE_WORD_F(adr, res)
39043 READ_WORD_F(adr, src)
39045 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39046 flag_C = flag_X = src << M68K_SR_C_SFT;
39049 WRITE_WORD_F(adr, res)
39062 READ_WORD_F(adr, src)
39064 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39065 flag_C = flag_X = src << M68K_SR_C_SFT;
39068 WRITE_WORD_F(adr, res)
39082 READ_WORD_F(adr, src)
39084 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39085 flag_C = flag_X = src << M68K_SR_C_SFT;
39088 WRITE_WORD_F(adr, res)
39102 READ_WORD_F(adr, src)
39104 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39105 flag_C = flag_X = src << M68K_SR_C_SFT;
39108 WRITE_WORD_F(adr, res)
39119 adr = AREG((Opcode >> 0) & 7);
39121 READ_WORD_F(adr, src)
39123 flag_C = src << M68K_SR_C_SFT;
39124 res = (src >> 1) | (src << 15);
39126 flag_NotZ = res & 0x0000FFFF;
39127 WRITE_WORD_F(adr, res)
39138 adr = AREG((Opcode >> 0) & 7);
39139 AREG((Opcode >> 0) & 7) += 2;
39141 READ_WORD_F(adr, src)
39143 flag_C = src << M68K_SR_C_SFT;
39144 res = (src >> 1) | (src << 15);
39146 flag_NotZ = res & 0x0000FFFF;
39147 WRITE_WORD_F(adr, res)
39158 adr = AREG((Opcode >> 0) & 7) - 2;
39159 AREG((Opcode >> 0) & 7) = adr;
39161 READ_WORD_F(adr, src)
39163 flag_C = src << M68K_SR_C_SFT;
39164 res = (src >> 1) | (src << 15);
39166 flag_NotZ = res & 0x0000FFFF;
39167 WRITE_WORD_F(adr, res)
39179 adr += AREG((Opcode >> 0) & 7);
39181 READ_WORD_F(adr, src)
39183 flag_C = src << M68K_SR_C_SFT;
39184 res = (src >> 1) | (src << 15);
39186 flag_NotZ = res & 0x0000FFFF;
39187 WRITE_WORD_F(adr, res)
39198 adr = AREG((Opcode >> 0) & 7);
39201 READ_WORD_F(adr, src)
39203 flag_C = src << M68K_SR_C_SFT;
39204 res = (src >> 1) | (src << 15);
39206 flag_NotZ = res & 0x0000FFFF;
39207 WRITE_WORD_F(adr, res)
39220 READ_WORD_F(adr, src)
39222 flag_C = src << M68K_SR_C_SFT;
39223 res = (src >> 1) | (src << 15);
39225 flag_NotZ = res & 0x0000FFFF;
39226 WRITE_WORD_F(adr, res)
39239 READ_WORD_F(adr, src)
39241 flag_C = src << M68K_SR_C_SFT;
39242 res = (src >> 1) | (src << 15);
39244 flag_NotZ = res & 0x0000FFFF;
39245 WRITE_WORD_F(adr, res)
39259 READ_WORD_F(adr, src)
39261 flag_C = src << M68K_SR_C_SFT;
39262 res = (src >> 1) | (src << 15);
39264 flag_NotZ = res & 0x0000FFFF;
39265 WRITE_WORD_F(adr, res)
39279 READ_WORD_F(adr, src)
39281 flag_C = src << M68K_SR_C_SFT;
39282 res = (src >> 1) | (src << 15);
39284 flag_NotZ = res & 0x0000FFFF;
39285 WRITE_WORD_F(adr, res)
39296 adr = AREG((Opcode >> 0) & 7);
39298 READ_WORD_F(adr, src)
39299 flag_X = flag_C = src >> 7;
39301 flag_V = (src ^ res) >> 8;
39303 flag_NotZ = res & 0x0000FFFF;
39304 WRITE_WORD_F(adr, res)
39315 adr = AREG((Opcode >> 0) & 7);
39316 AREG((Opcode >> 0) & 7) += 2;
39318 READ_WORD_F(adr, src)
39319 flag_X = flag_C = src >> 7;
39321 flag_V = (src ^ res) >> 8;
39323 flag_NotZ = res & 0x0000FFFF;
39324 WRITE_WORD_F(adr, res)
39335 adr = AREG((Opcode >> 0) & 7) - 2;
39336 AREG((Opcode >> 0) & 7) = adr;
39338 READ_WORD_F(adr, src)
39339 flag_X = flag_C = src >> 7;
39341 flag_V = (src ^ res) >> 8;
39343 flag_NotZ = res & 0x0000FFFF;
39344 WRITE_WORD_F(adr, res)
39356 adr += AREG((Opcode >> 0) & 7);
39358 READ_WORD_F(adr, src)
39359 flag_X = flag_C = src >> 7;
39361 flag_V = (src ^ res) >> 8;
39363 flag_NotZ = res & 0x0000FFFF;
39364 WRITE_WORD_F(adr, res)
39375 adr = AREG((Opcode >> 0) & 7);
39378 READ_WORD_F(adr, src)
39379 flag_X = flag_C = src >> 7;
39381 flag_V = (src ^ res) >> 8;
39383 flag_NotZ = res & 0x0000FFFF;
39384 WRITE_WORD_F(adr, res)
39397 READ_WORD_F(adr, src)
39398 flag_X = flag_C = src >> 7;
39400 flag_V = (src ^ res) >> 8;
39402 flag_NotZ = res & 0x0000FFFF;
39403 WRITE_WORD_F(adr, res)
39416 READ_WORD_F(adr, src)
39417 flag_X = flag_C = src >> 7;
39419 flag_V = (src ^ res) >> 8;
39421 flag_NotZ = res & 0x0000FFFF;
39422 WRITE_WORD_F(adr, res)
39436 READ_WORD_F(adr, src)
39437 flag_X = flag_C = src >> 7;
39439 flag_V = (src ^ res) >> 8;
39441 flag_NotZ = res & 0x0000FFFF;
39442 WRITE_WORD_F(adr, res)
39456 READ_WORD_F(adr, src)
39457 flag_X = flag_C = src >> 7;
39459 flag_V = (src ^ res) >> 8;
39461 flag_NotZ = res & 0x0000FFFF;
39462 WRITE_WORD_F(adr, res)
39473 adr = AREG((Opcode >> 0) & 7);
39475 READ_WORD_F(adr, src)
39477 flag_X = flag_C = src >> 7;
39480 flag_NotZ = res & 0x0000FFFF;
39481 WRITE_WORD_F(adr, res)
39492 adr = AREG((Opcode >> 0) & 7);
39493 AREG((Opcode >> 0) & 7) += 2;
39495 READ_WORD_F(adr, src)
39497 flag_X = flag_C = src >> 7;
39500 flag_NotZ = res & 0x0000FFFF;
39501 WRITE_WORD_F(adr, res)
39512 adr = AREG((Opcode >> 0) & 7) - 2;
39513 AREG((Opcode >> 0) & 7) = adr;
39515 READ_WORD_F(adr, src)
39517 flag_X = flag_C = src >> 7;
39520 flag_NotZ = res & 0x0000FFFF;
39521 WRITE_WORD_F(adr, res)
39533 adr += AREG((Opcode >> 0) & 7);
39535 READ_WORD_F(adr, src)
39537 flag_X = flag_C = src >> 7;
39540 flag_NotZ = res & 0x0000FFFF;
39541 WRITE_WORD_F(adr, res)
39552 adr = AREG((Opcode >> 0) & 7);
39555 READ_WORD_F(adr, src)
39557 flag_X = flag_C = src >> 7;
39560 flag_NotZ = res & 0x0000FFFF;
39561 WRITE_WORD_F(adr, res)
39574 READ_WORD_F(adr, src)
39576 flag_X = flag_C = src >> 7;
39579 flag_NotZ = res & 0x0000FFFF;
39580 WRITE_WORD_F(adr, res)
39593 READ_WORD_F(adr, src)
39595 flag_X = flag_C = src >> 7;
39598 flag_NotZ = res & 0x0000FFFF;
39599 WRITE_WORD_F(adr, res)
39613 READ_WORD_F(adr, src)
39615 flag_X = flag_C = src >> 7;
39618 flag_NotZ = res & 0x0000FFFF;
39619 WRITE_WORD_F(adr, res)
39633 READ_WORD_F(adr, src)
39635 flag_X = flag_C = src >> 7;
39638 flag_NotZ = res & 0x0000FFFF;
39639 WRITE_WORD_F(adr, res)
39650 adr = AREG((Opcode >> 0) & 7);
39652 READ_WORD_F(adr, src)
39654 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39655 flag_X = flag_C = src >> 7;
39657 flag_NotZ = res & 0x0000FFFF;
39658 WRITE_WORD_F(adr, res)
39669 adr = AREG((Opcode >> 0) & 7);
39670 AREG((Opcode >> 0) & 7) += 2;
39672 READ_WORD_F(adr, src)
39674 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39675 flag_X = flag_C = src >> 7;
39677 flag_NotZ = res & 0x0000FFFF;
39678 WRITE_WORD_F(adr, res)
39689 adr = AREG((Opcode >> 0) & 7) - 2;
39690 AREG((Opcode >> 0) & 7) = adr;
39692 READ_WORD_F(adr, src)
39694 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39695 flag_X = flag_C = src >> 7;
39697 flag_NotZ = res & 0x0000FFFF;
39698 WRITE_WORD_F(adr, res)
39710 adr += AREG((Opcode >> 0) & 7);
39712 READ_WORD_F(adr, src)
39714 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39715 flag_X = flag_C = src >> 7;
39717 flag_NotZ = res & 0x0000FFFF;
39718 WRITE_WORD_F(adr, res)
39729 adr = AREG((Opcode >> 0) & 7);
39732 READ_WORD_F(adr, src)
39734 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39735 flag_X = flag_C = src >> 7;
39737 flag_NotZ = res & 0x0000FFFF;
39738 WRITE_WORD_F(adr, res)
39751 READ_WORD_F(adr, src)
39753 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39754 flag_X = flag_C = src >> 7;
39756 flag_NotZ = res & 0x0000FFFF;
39757 WRITE_WORD_F(adr, res)
39770 READ_WORD_F(adr, src)
39772 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39773 flag_X = flag_C = src >> 7;
39775 flag_NotZ = res & 0x0000FFFF;
39776 WRITE_WORD_F(adr, res)
39790 READ_WORD_F(adr, src)
39792 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39793 flag_X = flag_C = src >> 7;
39795 flag_NotZ = res & 0x0000FFFF;
39796 WRITE_WORD_F(adr, res)
39810 READ_WORD_F(adr, src)
39812 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39813 flag_X = flag_C = src >> 7;
39815 flag_NotZ = res & 0x0000FFFF;
39816 WRITE_WORD_F(adr, res)
39827 adr = AREG((Opcode >> 0) & 7);
39829 READ_WORD_F(adr, src)
39832 res = (src << 1) | (src >> 15);
39834 flag_NotZ = res & 0x0000FFFF;
39835 WRITE_WORD_F(adr, res)
39846 adr = AREG((Opcode >> 0) & 7);
39847 AREG((Opcode >> 0) & 7) += 2;
39849 READ_WORD_F(adr, src)
39852 res = (src << 1) | (src >> 15);
39854 flag_NotZ = res & 0x0000FFFF;
39855 WRITE_WORD_F(adr, res)
39866 adr = AREG((Opcode >> 0) & 7) - 2;
39867 AREG((Opcode >> 0) & 7) = adr;
39869 READ_WORD_F(adr, src)
39872 res = (src << 1) | (src >> 15);
39874 flag_NotZ = res & 0x0000FFFF;
39875 WRITE_WORD_F(adr, res)
39887 adr += AREG((Opcode >> 0) & 7);
39889 READ_WORD_F(adr, src)
39892 res = (src << 1) | (src >> 15);
39894 flag_NotZ = res & 0x0000FFFF;
39895 WRITE_WORD_F(adr, res)
39906 adr = AREG((Opcode >> 0) & 7);
39909 READ_WORD_F(adr, src)
39912 res = (src << 1) | (src >> 15);
39914 flag_NotZ = res & 0x0000FFFF;
39915 WRITE_WORD_F(adr, res)
39928 READ_WORD_F(adr, src)
39931 res = (src << 1) | (src >> 15);
39933 flag_NotZ = res & 0x0000FFFF;
39934 WRITE_WORD_F(adr, res)
39947 READ_WORD_F(adr, src)
39950 res = (src << 1) | (src >> 15);
39952 flag_NotZ = res & 0x0000FFFF;
39953 WRITE_WORD_F(adr, res)
39967 READ_WORD_F(adr, src)
39970 res = (src << 1) | (src >> 15);
39972 flag_NotZ = res & 0x0000FFFF;
39973 WRITE_WORD_F(adr, res)
39987 READ_WORD_F(adr, src)
39990 res = (src << 1) | (src >> 15);
39992 flag_NotZ = res & 0x0000FFFF;
39993 WRITE_WORD_F(adr, res)
39998 #ifdef PICODRIVE_HACK
40000 #define UPDATE_IDLE_COUNT { \
40001 extern int idle_hit_counter; \
40002 idle_hit_counter++; \
40005 #define UPDATE_IDLE_COUNT
40009 OPCODE(0x6001_idle)
40011 #ifdef FAMEC_CHECK_BRANCHES
40012 u32 newPC = GET_PC;
40016 CHECK_BRANCH_EXCEPTION(offs)
40018 PC += ((s8)(Opcode & 0xFE)) >> 1;
40025 OPCODE(0x6601_idle)
40030 PC += ((s8)(Opcode & 0xFE)) >> 1;
40037 OPCODE(0x6701_idle)
40042 PC += ((s8)(Opcode & 0xFE)) >> 1;
40050 extern int SekIsIdleReady(void);
40051 extern int SekIsIdleCode(unsigned short *dst, int bytes);
40052 extern int SekRegisterIdlePatch(unsigned int pc, int oldop, int newop, void *ctx);
40054 OPCODE(idle_detector_bcc8)
40056 int frame_count, cond_true, bytes, ret, newop;
40059 dest_pc = PC + (((s8)(Opcode & 0xFE)) >> 1);
40061 if (!SekIsIdleReady())
40064 bytes = 0 - (s8)(Opcode & 0xFE) - 2;
40065 ret = SekIsIdleCode(dest_pc, bytes);
40066 newop = (Opcode & 0xfe) | 0x7100;
40067 if (!ret) newop |= 0x200;
40068 if ( Opcode & 0x0100) newop |= 0x400; // beq
40069 if (!(Opcode & 0x0f00)) newop |= 0xc00; // bra
40071 ret = SekRegisterIdlePatch(GET_PC - 2, Opcode, newop, &m68kcontext);
40074 case 0: PC[-1] = newop; break;
40076 case 2: JumpTable[Opcode] = (Opcode & 0x0f00) ?
40077 ((Opcode & 0x0100) ? CAST_OP(0x6701) : CAST_OP(0x6601)) :
40078 CAST_OP(0x6001); break;
40082 if ((Opcode & 0xff00) == 0x6000) cond_true = 1;
40083 else cond_true = (Opcode & 0x0100) ? !flag_NotZ : flag_NotZ; // beq?
40087 m68kcontext.io_cycle_counter -= 2;
40092 #endif // PICODRIVE_HACK