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)
19579 src = DREGu16((Opcode >> 0) & 7);
19580 res = DREGu16((Opcode >> 9) & 7);
19581 if (((s32)res < 0) || (res > src))
19584 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19595 adr = AREG((Opcode >> 0) & 7);
19597 READ_WORD_F(adr, src)
19598 res = DREGu16((Opcode >> 9) & 7);
19599 if (((s32)res < 0) || (res > src))
19602 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19614 adr = AREG((Opcode >> 0) & 7);
19615 AREG((Opcode >> 0) & 7) += 2;
19617 READ_WORD_F(adr, src)
19618 res = DREGu16((Opcode >> 9) & 7);
19619 if (((s32)res < 0) || (res > src))
19622 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19634 adr = AREG((Opcode >> 0) & 7) - 2;
19635 AREG((Opcode >> 0) & 7) = adr;
19637 READ_WORD_F(adr, src)
19638 res = DREGu16((Opcode >> 9) & 7);
19639 if (((s32)res < 0) || (res > src))
19642 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19655 adr += AREG((Opcode >> 0) & 7);
19657 READ_WORD_F(adr, src)
19658 res = DREGu16((Opcode >> 9) & 7);
19659 if (((s32)res < 0) || (res > src))
19662 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19674 adr = AREG((Opcode >> 0) & 7);
19677 READ_WORD_F(adr, src)
19678 res = DREGu16((Opcode >> 9) & 7);
19679 if (((s32)res < 0) || (res > src))
19682 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19696 READ_WORD_F(adr, src)
19697 res = DREGu16((Opcode >> 9) & 7);
19698 if (((s32)res < 0) || (res > src))
19701 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19715 READ_WORD_F(adr, src)
19716 res = DREGu16((Opcode >> 9) & 7);
19717 if (((s32)res < 0) || (res > src))
19720 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19732 adr = GET_SWORD + GET_PC;
19735 READ_WORD_F(adr, src)
19736 res = DREGu16((Opcode >> 9) & 7);
19737 if (((s32)res < 0) || (res > src))
19740 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19755 READ_WORD_F(adr, src)
19756 res = DREGu16((Opcode >> 9) & 7);
19757 if (((s32)res < 0) || (res > src))
19760 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19773 res = DREGu16((Opcode >> 9) & 7);
19774 if (((s32)res < 0) || (res > src))
19777 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19792 READ_WORD_F(adr, src)
19793 res = DREGu16((Opcode >> 9) & 7);
19794 if (((s32)res < 0) || (res > src))
19797 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19812 READ_WORD_F(adr, src)
19813 res = DREGu16((Opcode >> 9) & 7);
19814 if (((s32)res < 0) || (res > src))
19817 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19829 adr = AREG((Opcode >> 0) & 7);
19831 AREG((Opcode >> 9) & 7) = res;
19842 adr += AREG((Opcode >> 0) & 7);
19844 AREG((Opcode >> 9) & 7) = res;
19854 adr = AREG((Opcode >> 0) & 7);
19857 AREG((Opcode >> 9) & 7) = res;
19869 AREG((Opcode >> 9) & 7) = res;
19881 AREG((Opcode >> 9) & 7) = res;
19891 adr = GET_SWORD + GET_PC;
19894 AREG((Opcode >> 9) & 7) = res;
19907 AREG((Opcode >> 9) & 7) = res;
19918 DREGu8((Opcode >> 0) & 7) = res;
19929 DREGu8((Opcode >> 0) & 7) = res;
19939 if (flag_NotZ && (!(flag_C & 0x100)))
19942 DREGu8((Opcode >> 0) & 7) = res;
19946 DREGu8((Opcode >> 0) & 7) = res;
19956 if ((!flag_NotZ) || (flag_C & 0x100))
19959 DREGu8((Opcode >> 0) & 7) = res;
19963 DREGu8((Opcode >> 0) & 7) = res;
19973 if (!(flag_C & 0x100))
19976 DREGu8((Opcode >> 0) & 7) = res;
19980 DREGu8((Opcode >> 0) & 7) = res;
19990 if (flag_C & 0x100)
19993 DREGu8((Opcode >> 0) & 7) = res;
19997 DREGu8((Opcode >> 0) & 7) = res;
20010 DREGu8((Opcode >> 0) & 7) = res;
20014 DREGu8((Opcode >> 0) & 7) = res;
20027 DREGu8((Opcode >> 0) & 7) = res;
20031 DREGu8((Opcode >> 0) & 7) = res;
20041 if (!(flag_V & 0x80))
20044 DREGu8((Opcode >> 0) & 7) = res;
20048 DREGu8((Opcode >> 0) & 7) = res;
20061 DREGu8((Opcode >> 0) & 7) = res;
20065 DREGu8((Opcode >> 0) & 7) = res;
20075 if (!(flag_N & 0x80))
20078 DREGu8((Opcode >> 0) & 7) = res;
20082 DREGu8((Opcode >> 0) & 7) = res;
20095 DREGu8((Opcode >> 0) & 7) = res;
20099 DREGu8((Opcode >> 0) & 7) = res;
20109 if (!((flag_N ^ flag_V) & 0x80))
20112 DREGu8((Opcode >> 0) & 7) = res;
20116 DREGu8((Opcode >> 0) & 7) = res;
20126 if ((flag_N ^ flag_V) & 0x80)
20129 DREGu8((Opcode >> 0) & 7) = res;
20133 DREGu8((Opcode >> 0) & 7) = res;
20143 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20146 DREGu8((Opcode >> 0) & 7) = res;
20150 DREGu8((Opcode >> 0) & 7) = res;
20160 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20163 DREGu8((Opcode >> 0) & 7) = res;
20167 DREGu8((Opcode >> 0) & 7) = res;
20177 adr = AREG((Opcode >> 0) & 7);
20180 WRITE_BYTE_F(adr, res)
20191 adr = AREG((Opcode >> 0) & 7);
20194 WRITE_BYTE_F(adr, res)
20205 adr = AREG((Opcode >> 0) & 7);
20206 if (flag_NotZ && (!(flag_C & 0x100)))
20210 WRITE_BYTE_F(adr, res)
20216 WRITE_BYTE_F(adr, res)
20227 adr = AREG((Opcode >> 0) & 7);
20228 if ((!flag_NotZ) || (flag_C & 0x100))
20232 WRITE_BYTE_F(adr, res)
20238 WRITE_BYTE_F(adr, res)
20249 adr = AREG((Opcode >> 0) & 7);
20250 if (!(flag_C & 0x100))
20254 WRITE_BYTE_F(adr, res)
20260 WRITE_BYTE_F(adr, res)
20271 adr = AREG((Opcode >> 0) & 7);
20272 if (flag_C & 0x100)
20276 WRITE_BYTE_F(adr, res)
20282 WRITE_BYTE_F(adr, res)
20293 adr = AREG((Opcode >> 0) & 7);
20298 WRITE_BYTE_F(adr, res)
20304 WRITE_BYTE_F(adr, res)
20315 adr = AREG((Opcode >> 0) & 7);
20320 WRITE_BYTE_F(adr, res)
20326 WRITE_BYTE_F(adr, res)
20337 adr = AREG((Opcode >> 0) & 7);
20338 if (!(flag_V & 0x80))
20342 WRITE_BYTE_F(adr, res)
20348 WRITE_BYTE_F(adr, res)
20359 adr = AREG((Opcode >> 0) & 7);
20364 WRITE_BYTE_F(adr, res)
20370 WRITE_BYTE_F(adr, res)
20381 adr = AREG((Opcode >> 0) & 7);
20382 if (!(flag_N & 0x80))
20386 WRITE_BYTE_F(adr, res)
20392 WRITE_BYTE_F(adr, res)
20403 adr = AREG((Opcode >> 0) & 7);
20408 WRITE_BYTE_F(adr, res)
20414 WRITE_BYTE_F(adr, res)
20425 adr = AREG((Opcode >> 0) & 7);
20426 if (!((flag_N ^ flag_V) & 0x80))
20430 WRITE_BYTE_F(adr, res)
20436 WRITE_BYTE_F(adr, res)
20447 adr = AREG((Opcode >> 0) & 7);
20448 if ((flag_N ^ flag_V) & 0x80)
20452 WRITE_BYTE_F(adr, res)
20458 WRITE_BYTE_F(adr, res)
20469 adr = AREG((Opcode >> 0) & 7);
20470 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20474 WRITE_BYTE_F(adr, res)
20480 WRITE_BYTE_F(adr, res)
20491 adr = AREG((Opcode >> 0) & 7);
20492 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20496 WRITE_BYTE_F(adr, res)
20502 WRITE_BYTE_F(adr, res)
20513 adr = AREG((Opcode >> 0) & 7);
20514 AREG((Opcode >> 0) & 7) += 1;
20517 WRITE_BYTE_F(adr, res)
20528 adr = AREG((Opcode >> 0) & 7);
20529 AREG((Opcode >> 0) & 7) += 1;
20532 WRITE_BYTE_F(adr, res)
20543 adr = AREG((Opcode >> 0) & 7);
20544 AREG((Opcode >> 0) & 7) += 1;
20545 if (flag_NotZ && (!(flag_C & 0x100)))
20549 WRITE_BYTE_F(adr, res)
20555 WRITE_BYTE_F(adr, res)
20566 adr = AREG((Opcode >> 0) & 7);
20567 AREG((Opcode >> 0) & 7) += 1;
20568 if ((!flag_NotZ) || (flag_C & 0x100))
20572 WRITE_BYTE_F(adr, res)
20578 WRITE_BYTE_F(adr, res)
20589 adr = AREG((Opcode >> 0) & 7);
20590 AREG((Opcode >> 0) & 7) += 1;
20591 if (!(flag_C & 0x100))
20595 WRITE_BYTE_F(adr, res)
20601 WRITE_BYTE_F(adr, res)
20612 adr = AREG((Opcode >> 0) & 7);
20613 AREG((Opcode >> 0) & 7) += 1;
20614 if (flag_C & 0x100)
20618 WRITE_BYTE_F(adr, res)
20624 WRITE_BYTE_F(adr, res)
20635 adr = AREG((Opcode >> 0) & 7);
20636 AREG((Opcode >> 0) & 7) += 1;
20641 WRITE_BYTE_F(adr, res)
20647 WRITE_BYTE_F(adr, res)
20658 adr = AREG((Opcode >> 0) & 7);
20659 AREG((Opcode >> 0) & 7) += 1;
20664 WRITE_BYTE_F(adr, res)
20670 WRITE_BYTE_F(adr, res)
20681 adr = AREG((Opcode >> 0) & 7);
20682 AREG((Opcode >> 0) & 7) += 1;
20683 if (!(flag_V & 0x80))
20687 WRITE_BYTE_F(adr, res)
20693 WRITE_BYTE_F(adr, res)
20704 adr = AREG((Opcode >> 0) & 7);
20705 AREG((Opcode >> 0) & 7) += 1;
20710 WRITE_BYTE_F(adr, res)
20716 WRITE_BYTE_F(adr, res)
20727 adr = AREG((Opcode >> 0) & 7);
20728 AREG((Opcode >> 0) & 7) += 1;
20729 if (!(flag_N & 0x80))
20733 WRITE_BYTE_F(adr, res)
20739 WRITE_BYTE_F(adr, res)
20750 adr = AREG((Opcode >> 0) & 7);
20751 AREG((Opcode >> 0) & 7) += 1;
20756 WRITE_BYTE_F(adr, res)
20762 WRITE_BYTE_F(adr, res)
20773 adr = AREG((Opcode >> 0) & 7);
20774 AREG((Opcode >> 0) & 7) += 1;
20775 if (!((flag_N ^ flag_V) & 0x80))
20779 WRITE_BYTE_F(adr, res)
20785 WRITE_BYTE_F(adr, res)
20796 adr = AREG((Opcode >> 0) & 7);
20797 AREG((Opcode >> 0) & 7) += 1;
20798 if ((flag_N ^ flag_V) & 0x80)
20802 WRITE_BYTE_F(adr, res)
20808 WRITE_BYTE_F(adr, res)
20819 adr = AREG((Opcode >> 0) & 7);
20820 AREG((Opcode >> 0) & 7) += 1;
20821 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20825 WRITE_BYTE_F(adr, res)
20831 WRITE_BYTE_F(adr, res)
20842 adr = AREG((Opcode >> 0) & 7);
20843 AREG((Opcode >> 0) & 7) += 1;
20844 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20848 WRITE_BYTE_F(adr, res)
20854 WRITE_BYTE_F(adr, res)
20865 adr = AREG((Opcode >> 0) & 7) - 1;
20866 AREG((Opcode >> 0) & 7) = adr;
20869 WRITE_BYTE_F(adr, res)
20880 adr = AREG((Opcode >> 0) & 7) - 1;
20881 AREG((Opcode >> 0) & 7) = adr;
20884 WRITE_BYTE_F(adr, res)
20895 adr = AREG((Opcode >> 0) & 7) - 1;
20896 AREG((Opcode >> 0) & 7) = adr;
20897 if (flag_NotZ && (!(flag_C & 0x100)))
20901 WRITE_BYTE_F(adr, res)
20907 WRITE_BYTE_F(adr, res)
20918 adr = AREG((Opcode >> 0) & 7) - 1;
20919 AREG((Opcode >> 0) & 7) = adr;
20920 if ((!flag_NotZ) || (flag_C & 0x100))
20924 WRITE_BYTE_F(adr, res)
20930 WRITE_BYTE_F(adr, res)
20941 adr = AREG((Opcode >> 0) & 7) - 1;
20942 AREG((Opcode >> 0) & 7) = adr;
20943 if (!(flag_C & 0x100))
20947 WRITE_BYTE_F(adr, res)
20953 WRITE_BYTE_F(adr, res)
20964 adr = AREG((Opcode >> 0) & 7) - 1;
20965 AREG((Opcode >> 0) & 7) = adr;
20966 if (flag_C & 0x100)
20970 WRITE_BYTE_F(adr, res)
20976 WRITE_BYTE_F(adr, res)
20987 adr = AREG((Opcode >> 0) & 7) - 1;
20988 AREG((Opcode >> 0) & 7) = adr;
20993 WRITE_BYTE_F(adr, res)
20999 WRITE_BYTE_F(adr, res)
21010 adr = AREG((Opcode >> 0) & 7) - 1;
21011 AREG((Opcode >> 0) & 7) = adr;
21016 WRITE_BYTE_F(adr, res)
21022 WRITE_BYTE_F(adr, res)
21033 adr = AREG((Opcode >> 0) & 7) - 1;
21034 AREG((Opcode >> 0) & 7) = adr;
21035 if (!(flag_V & 0x80))
21039 WRITE_BYTE_F(adr, res)
21045 WRITE_BYTE_F(adr, res)
21056 adr = AREG((Opcode >> 0) & 7) - 1;
21057 AREG((Opcode >> 0) & 7) = adr;
21062 WRITE_BYTE_F(adr, res)
21068 WRITE_BYTE_F(adr, res)
21079 adr = AREG((Opcode >> 0) & 7) - 1;
21080 AREG((Opcode >> 0) & 7) = adr;
21081 if (!(flag_N & 0x80))
21085 WRITE_BYTE_F(adr, res)
21091 WRITE_BYTE_F(adr, res)
21102 adr = AREG((Opcode >> 0) & 7) - 1;
21103 AREG((Opcode >> 0) & 7) = adr;
21108 WRITE_BYTE_F(adr, res)
21114 WRITE_BYTE_F(adr, res)
21125 adr = AREG((Opcode >> 0) & 7) - 1;
21126 AREG((Opcode >> 0) & 7) = adr;
21127 if (!((flag_N ^ flag_V) & 0x80))
21131 WRITE_BYTE_F(adr, res)
21137 WRITE_BYTE_F(adr, res)
21148 adr = AREG((Opcode >> 0) & 7) - 1;
21149 AREG((Opcode >> 0) & 7) = adr;
21150 if ((flag_N ^ flag_V) & 0x80)
21154 WRITE_BYTE_F(adr, res)
21160 WRITE_BYTE_F(adr, res)
21171 adr = AREG((Opcode >> 0) & 7) - 1;
21172 AREG((Opcode >> 0) & 7) = adr;
21173 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21177 WRITE_BYTE_F(adr, res)
21183 WRITE_BYTE_F(adr, res)
21194 adr = AREG((Opcode >> 0) & 7) - 1;
21195 AREG((Opcode >> 0) & 7) = adr;
21196 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21200 WRITE_BYTE_F(adr, res)
21206 WRITE_BYTE_F(adr, res)
21218 adr += AREG((Opcode >> 0) & 7);
21221 WRITE_BYTE_F(adr, res)
21233 adr += AREG((Opcode >> 0) & 7);
21236 WRITE_BYTE_F(adr, res)
21248 adr += AREG((Opcode >> 0) & 7);
21249 if (flag_NotZ && (!(flag_C & 0x100)))
21253 WRITE_BYTE_F(adr, res)
21259 WRITE_BYTE_F(adr, res)
21271 adr += AREG((Opcode >> 0) & 7);
21272 if ((!flag_NotZ) || (flag_C & 0x100))
21276 WRITE_BYTE_F(adr, res)
21282 WRITE_BYTE_F(adr, res)
21294 adr += AREG((Opcode >> 0) & 7);
21295 if (!(flag_C & 0x100))
21299 WRITE_BYTE_F(adr, res)
21305 WRITE_BYTE_F(adr, res)
21317 adr += AREG((Opcode >> 0) & 7);
21318 if (flag_C & 0x100)
21322 WRITE_BYTE_F(adr, res)
21328 WRITE_BYTE_F(adr, res)
21340 adr += AREG((Opcode >> 0) & 7);
21345 WRITE_BYTE_F(adr, res)
21351 WRITE_BYTE_F(adr, res)
21363 adr += AREG((Opcode >> 0) & 7);
21368 WRITE_BYTE_F(adr, res)
21374 WRITE_BYTE_F(adr, res)
21386 adr += AREG((Opcode >> 0) & 7);
21387 if (!(flag_V & 0x80))
21391 WRITE_BYTE_F(adr, res)
21397 WRITE_BYTE_F(adr, res)
21409 adr += AREG((Opcode >> 0) & 7);
21414 WRITE_BYTE_F(adr, res)
21420 WRITE_BYTE_F(adr, res)
21432 adr += AREG((Opcode >> 0) & 7);
21433 if (!(flag_N & 0x80))
21437 WRITE_BYTE_F(adr, res)
21443 WRITE_BYTE_F(adr, res)
21455 adr += AREG((Opcode >> 0) & 7);
21460 WRITE_BYTE_F(adr, res)
21466 WRITE_BYTE_F(adr, res)
21478 adr += AREG((Opcode >> 0) & 7);
21479 if (!((flag_N ^ flag_V) & 0x80))
21483 WRITE_BYTE_F(adr, res)
21489 WRITE_BYTE_F(adr, res)
21501 adr += AREG((Opcode >> 0) & 7);
21502 if ((flag_N ^ flag_V) & 0x80)
21506 WRITE_BYTE_F(adr, res)
21512 WRITE_BYTE_F(adr, res)
21524 adr += AREG((Opcode >> 0) & 7);
21525 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21529 WRITE_BYTE_F(adr, res)
21535 WRITE_BYTE_F(adr, res)
21547 adr += AREG((Opcode >> 0) & 7);
21548 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21552 WRITE_BYTE_F(adr, res)
21558 WRITE_BYTE_F(adr, res)
21569 adr = AREG((Opcode >> 0) & 7);
21573 WRITE_BYTE_F(adr, res)
21584 adr = AREG((Opcode >> 0) & 7);
21588 WRITE_BYTE_F(adr, res)
21599 adr = AREG((Opcode >> 0) & 7);
21601 if (flag_NotZ && (!(flag_C & 0x100)))
21605 WRITE_BYTE_F(adr, res)
21611 WRITE_BYTE_F(adr, res)
21622 adr = AREG((Opcode >> 0) & 7);
21624 if ((!flag_NotZ) || (flag_C & 0x100))
21628 WRITE_BYTE_F(adr, res)
21634 WRITE_BYTE_F(adr, res)
21645 adr = AREG((Opcode >> 0) & 7);
21647 if (!(flag_C & 0x100))
21651 WRITE_BYTE_F(adr, res)
21657 WRITE_BYTE_F(adr, res)
21668 adr = AREG((Opcode >> 0) & 7);
21670 if (flag_C & 0x100)
21674 WRITE_BYTE_F(adr, res)
21680 WRITE_BYTE_F(adr, res)
21691 adr = AREG((Opcode >> 0) & 7);
21697 WRITE_BYTE_F(adr, res)
21703 WRITE_BYTE_F(adr, res)
21714 adr = AREG((Opcode >> 0) & 7);
21720 WRITE_BYTE_F(adr, res)
21726 WRITE_BYTE_F(adr, res)
21737 adr = AREG((Opcode >> 0) & 7);
21739 if (!(flag_V & 0x80))
21743 WRITE_BYTE_F(adr, res)
21749 WRITE_BYTE_F(adr, res)
21760 adr = AREG((Opcode >> 0) & 7);
21766 WRITE_BYTE_F(adr, res)
21772 WRITE_BYTE_F(adr, res)
21783 adr = AREG((Opcode >> 0) & 7);
21785 if (!(flag_N & 0x80))
21789 WRITE_BYTE_F(adr, res)
21795 WRITE_BYTE_F(adr, res)
21806 adr = AREG((Opcode >> 0) & 7);
21812 WRITE_BYTE_F(adr, res)
21818 WRITE_BYTE_F(adr, res)
21829 adr = AREG((Opcode >> 0) & 7);
21831 if (!((flag_N ^ flag_V) & 0x80))
21835 WRITE_BYTE_F(adr, res)
21841 WRITE_BYTE_F(adr, res)
21852 adr = AREG((Opcode >> 0) & 7);
21854 if ((flag_N ^ flag_V) & 0x80)
21858 WRITE_BYTE_F(adr, res)
21864 WRITE_BYTE_F(adr, res)
21875 adr = AREG((Opcode >> 0) & 7);
21877 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21881 WRITE_BYTE_F(adr, res)
21887 WRITE_BYTE_F(adr, res)
21898 adr = AREG((Opcode >> 0) & 7);
21900 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21904 WRITE_BYTE_F(adr, res)
21910 WRITE_BYTE_F(adr, res)
21924 WRITE_BYTE_F(adr, res)
21938 WRITE_BYTE_F(adr, res)
21950 if (flag_NotZ && (!(flag_C & 0x100)))
21954 WRITE_BYTE_F(adr, res)
21960 WRITE_BYTE_F(adr, res)
21972 if ((!flag_NotZ) || (flag_C & 0x100))
21976 WRITE_BYTE_F(adr, res)
21982 WRITE_BYTE_F(adr, res)
21994 if (!(flag_C & 0x100))
21998 WRITE_BYTE_F(adr, res)
22004 WRITE_BYTE_F(adr, res)
22016 if (flag_C & 0x100)
22020 WRITE_BYTE_F(adr, res)
22026 WRITE_BYTE_F(adr, res)
22042 WRITE_BYTE_F(adr, res)
22048 WRITE_BYTE_F(adr, res)
22064 WRITE_BYTE_F(adr, res)
22070 WRITE_BYTE_F(adr, res)
22082 if (!(flag_V & 0x80))
22086 WRITE_BYTE_F(adr, res)
22092 WRITE_BYTE_F(adr, res)
22108 WRITE_BYTE_F(adr, res)
22114 WRITE_BYTE_F(adr, res)
22126 if (!(flag_N & 0x80))
22130 WRITE_BYTE_F(adr, res)
22136 WRITE_BYTE_F(adr, res)
22152 WRITE_BYTE_F(adr, res)
22158 WRITE_BYTE_F(adr, res)
22170 if (!((flag_N ^ flag_V) & 0x80))
22174 WRITE_BYTE_F(adr, res)
22180 WRITE_BYTE_F(adr, res)
22192 if ((flag_N ^ flag_V) & 0x80)
22196 WRITE_BYTE_F(adr, res)
22202 WRITE_BYTE_F(adr, res)
22214 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22218 WRITE_BYTE_F(adr, res)
22224 WRITE_BYTE_F(adr, res)
22236 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22240 WRITE_BYTE_F(adr, res)
22246 WRITE_BYTE_F(adr, res)
22260 WRITE_BYTE_F(adr, res)
22274 WRITE_BYTE_F(adr, res)
22286 if (flag_NotZ && (!(flag_C & 0x100)))
22290 WRITE_BYTE_F(adr, res)
22296 WRITE_BYTE_F(adr, res)
22308 if ((!flag_NotZ) || (flag_C & 0x100))
22312 WRITE_BYTE_F(adr, res)
22318 WRITE_BYTE_F(adr, res)
22330 if (!(flag_C & 0x100))
22334 WRITE_BYTE_F(adr, res)
22340 WRITE_BYTE_F(adr, res)
22352 if (flag_C & 0x100)
22356 WRITE_BYTE_F(adr, res)
22362 WRITE_BYTE_F(adr, res)
22378 WRITE_BYTE_F(adr, res)
22384 WRITE_BYTE_F(adr, res)
22400 WRITE_BYTE_F(adr, res)
22406 WRITE_BYTE_F(adr, res)
22418 if (!(flag_V & 0x80))
22422 WRITE_BYTE_F(adr, res)
22428 WRITE_BYTE_F(adr, res)
22444 WRITE_BYTE_F(adr, res)
22450 WRITE_BYTE_F(adr, res)
22462 if (!(flag_N & 0x80))
22466 WRITE_BYTE_F(adr, res)
22472 WRITE_BYTE_F(adr, res)
22488 WRITE_BYTE_F(adr, res)
22494 WRITE_BYTE_F(adr, res)
22506 if (!((flag_N ^ flag_V) & 0x80))
22510 WRITE_BYTE_F(adr, res)
22516 WRITE_BYTE_F(adr, res)
22528 if ((flag_N ^ flag_V) & 0x80)
22532 WRITE_BYTE_F(adr, res)
22538 WRITE_BYTE_F(adr, res)
22550 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22554 WRITE_BYTE_F(adr, res)
22560 WRITE_BYTE_F(adr, res)
22572 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22576 WRITE_BYTE_F(adr, res)
22582 WRITE_BYTE_F(adr, res)
22597 WRITE_BYTE_F(adr, res)
22612 WRITE_BYTE_F(adr, res)
22625 if (flag_NotZ && (!(flag_C & 0x100)))
22629 WRITE_BYTE_F(adr, res)
22635 WRITE_BYTE_F(adr, res)
22648 if ((!flag_NotZ) || (flag_C & 0x100))
22652 WRITE_BYTE_F(adr, res)
22658 WRITE_BYTE_F(adr, res)
22671 if (!(flag_C & 0x100))
22675 WRITE_BYTE_F(adr, res)
22681 WRITE_BYTE_F(adr, res)
22694 if (flag_C & 0x100)
22698 WRITE_BYTE_F(adr, res)
22704 WRITE_BYTE_F(adr, res)
22721 WRITE_BYTE_F(adr, res)
22727 WRITE_BYTE_F(adr, res)
22744 WRITE_BYTE_F(adr, res)
22750 WRITE_BYTE_F(adr, res)
22763 if (!(flag_V & 0x80))
22767 WRITE_BYTE_F(adr, res)
22773 WRITE_BYTE_F(adr, res)
22790 WRITE_BYTE_F(adr, res)
22796 WRITE_BYTE_F(adr, res)
22809 if (!(flag_N & 0x80))
22813 WRITE_BYTE_F(adr, res)
22819 WRITE_BYTE_F(adr, res)
22836 WRITE_BYTE_F(adr, res)
22842 WRITE_BYTE_F(adr, res)
22855 if (!((flag_N ^ flag_V) & 0x80))
22859 WRITE_BYTE_F(adr, res)
22865 WRITE_BYTE_F(adr, res)
22878 if ((flag_N ^ flag_V) & 0x80)
22882 WRITE_BYTE_F(adr, res)
22888 WRITE_BYTE_F(adr, res)
22901 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22905 WRITE_BYTE_F(adr, res)
22911 WRITE_BYTE_F(adr, res)
22924 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22928 WRITE_BYTE_F(adr, res)
22934 WRITE_BYTE_F(adr, res)
22949 WRITE_BYTE_F(adr, res)
22964 WRITE_BYTE_F(adr, res)
22977 if (flag_NotZ && (!(flag_C & 0x100)))
22981 WRITE_BYTE_F(adr, res)
22987 WRITE_BYTE_F(adr, res)
23000 if ((!flag_NotZ) || (flag_C & 0x100))
23004 WRITE_BYTE_F(adr, res)
23010 WRITE_BYTE_F(adr, res)
23023 if (!(flag_C & 0x100))
23027 WRITE_BYTE_F(adr, res)
23033 WRITE_BYTE_F(adr, res)
23046 if (flag_C & 0x100)
23050 WRITE_BYTE_F(adr, res)
23056 WRITE_BYTE_F(adr, res)
23073 WRITE_BYTE_F(adr, res)
23079 WRITE_BYTE_F(adr, res)
23096 WRITE_BYTE_F(adr, res)
23102 WRITE_BYTE_F(adr, res)
23115 if (!(flag_V & 0x80))
23119 WRITE_BYTE_F(adr, res)
23125 WRITE_BYTE_F(adr, res)
23142 WRITE_BYTE_F(adr, res)
23148 WRITE_BYTE_F(adr, res)
23161 if (!(flag_N & 0x80))
23165 WRITE_BYTE_F(adr, res)
23171 WRITE_BYTE_F(adr, res)
23188 WRITE_BYTE_F(adr, res)
23194 WRITE_BYTE_F(adr, res)
23207 if (!((flag_N ^ flag_V) & 0x80))
23211 WRITE_BYTE_F(adr, res)
23217 WRITE_BYTE_F(adr, res)
23230 if ((flag_N ^ flag_V) & 0x80)
23234 WRITE_BYTE_F(adr, res)
23240 WRITE_BYTE_F(adr, res)
23253 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
23257 WRITE_BYTE_F(adr, res)
23263 WRITE_BYTE_F(adr, res)
23276 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
23280 WRITE_BYTE_F(adr, res)
23286 WRITE_BYTE_F(adr, res)
23309 res = DREGu16((Opcode >> 0) & 7);
23311 DREGu16((Opcode >> 0) & 7) = res;
23312 if ((s32)res != -1)
23317 newPC += GET_SWORD;
23319 CHECK_BRANCH_EXCEPTION(newPC)
23334 if ((!flag_NotZ) || (flag_C & 0x100))
23336 res = DREGu16((Opcode >> 0) & 7);
23338 DREGu16((Opcode >> 0) & 7) = res;
23339 if ((s32)res != -1)
23344 newPC += GET_SWORD;
23346 CHECK_BRANCH_EXCEPTION(newPC)
23367 if (flag_NotZ && (!(flag_C & 0x100)))
23369 res = DREGu16((Opcode >> 0) & 7);
23371 DREGu16((Opcode >> 0) & 7) = res;
23372 if ((s32)res != -1)
23377 newPC += GET_SWORD;
23379 CHECK_BRANCH_EXCEPTION(newPC)
23400 if (flag_C & 0x100)
23402 res = DREGu16((Opcode >> 0) & 7);
23404 DREGu16((Opcode >> 0) & 7) = res;
23405 if ((s32)res != -1)
23410 newPC += GET_SWORD;
23412 CHECK_BRANCH_EXCEPTION(newPC)
23433 if (!(flag_C & 0x100))
23435 res = DREGu16((Opcode >> 0) & 7);
23437 DREGu16((Opcode >> 0) & 7) = res;
23438 if ((s32)res != -1)
23443 newPC += GET_SWORD;
23445 CHECK_BRANCH_EXCEPTION(newPC)
23468 res = DREGu16((Opcode >> 0) & 7);
23470 DREGu16((Opcode >> 0) & 7) = res;
23471 if ((s32)res != -1)
23476 newPC += GET_SWORD;
23478 CHECK_BRANCH_EXCEPTION(newPC)
23501 res = DREGu16((Opcode >> 0) & 7);
23503 DREGu16((Opcode >> 0) & 7) = res;
23504 if ((s32)res != -1)
23509 newPC += GET_SWORD;
23511 CHECK_BRANCH_EXCEPTION(newPC)
23534 res = DREGu16((Opcode >> 0) & 7);
23536 DREGu16((Opcode >> 0) & 7) = res;
23537 if ((s32)res != -1)
23542 newPC += GET_SWORD;
23544 CHECK_BRANCH_EXCEPTION(newPC)
23565 if (!(flag_V & 0x80))
23567 res = DREGu16((Opcode >> 0) & 7);
23569 DREGu16((Opcode >> 0) & 7) = res;
23570 if ((s32)res != -1)
23575 newPC += GET_SWORD;
23577 CHECK_BRANCH_EXCEPTION(newPC)
23600 res = DREGu16((Opcode >> 0) & 7);
23602 DREGu16((Opcode >> 0) & 7) = res;
23603 if ((s32)res != -1)
23608 newPC += GET_SWORD;
23610 CHECK_BRANCH_EXCEPTION(newPC)
23631 if (!(flag_N & 0x80))
23633 res = DREGu16((Opcode >> 0) & 7);
23635 DREGu16((Opcode >> 0) & 7) = res;
23636 if ((s32)res != -1)
23641 newPC += GET_SWORD;
23643 CHECK_BRANCH_EXCEPTION(newPC)
23664 if ((flag_N ^ flag_V) & 0x80)
23666 res = DREGu16((Opcode >> 0) & 7);
23668 DREGu16((Opcode >> 0) & 7) = res;
23669 if ((s32)res != -1)
23674 newPC += GET_SWORD;
23676 CHECK_BRANCH_EXCEPTION(newPC)
23697 if (!((flag_N ^ flag_V) & 0x80))
23699 res = DREGu16((Opcode >> 0) & 7);
23701 DREGu16((Opcode >> 0) & 7) = res;
23702 if ((s32)res != -1)
23707 newPC += GET_SWORD;
23709 CHECK_BRANCH_EXCEPTION(newPC)
23730 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
23732 res = DREGu16((Opcode >> 0) & 7);
23734 DREGu16((Opcode >> 0) & 7) = res;
23735 if ((s32)res != -1)
23740 newPC += GET_SWORD;
23742 CHECK_BRANCH_EXCEPTION(newPC)
23763 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
23765 res = DREGu16((Opcode >> 0) & 7);
23767 DREGu16((Opcode >> 0) & 7) = res;
23768 if ((s32)res != -1)
23773 newPC += GET_SWORD;
23775 CHECK_BRANCH_EXCEPTION(newPC)
23794 src = (((Opcode >> 9) - 1) & 7) + 1;
23795 dst = DREGu8((Opcode >> 0) & 7);
23797 flag_N = flag_X = flag_C = res;
23798 flag_V = (src ^ res) & (dst ^ res);
23799 flag_NotZ = res & 0xFF;
23800 DREGu8((Opcode >> 0) & 7) = res;
23810 src = (((Opcode >> 9) - 1) & 7) + 1;
23811 adr = AREG((Opcode >> 0) & 7);
23813 READ_BYTE_F(adr, dst)
23815 flag_N = flag_X = flag_C = res;
23816 flag_V = (src ^ res) & (dst ^ res);
23817 flag_NotZ = res & 0xFF;
23818 WRITE_BYTE_F(adr, res)
23829 src = (((Opcode >> 9) - 1) & 7) + 1;
23830 adr = AREG((Opcode >> 0) & 7);
23831 AREG((Opcode >> 0) & 7) += 1;
23833 READ_BYTE_F(adr, dst)
23835 flag_N = flag_X = flag_C = res;
23836 flag_V = (src ^ res) & (dst ^ res);
23837 flag_NotZ = res & 0xFF;
23838 WRITE_BYTE_F(adr, res)
23849 src = (((Opcode >> 9) - 1) & 7) + 1;
23850 adr = AREG((Opcode >> 0) & 7) - 1;
23851 AREG((Opcode >> 0) & 7) = adr;
23853 READ_BYTE_F(adr, dst)
23855 flag_N = flag_X = flag_C = res;
23856 flag_V = (src ^ res) & (dst ^ res);
23857 flag_NotZ = res & 0xFF;
23858 WRITE_BYTE_F(adr, res)
23869 src = (((Opcode >> 9) - 1) & 7) + 1;
23871 adr += AREG((Opcode >> 0) & 7);
23873 READ_BYTE_F(adr, dst)
23875 flag_N = flag_X = flag_C = res;
23876 flag_V = (src ^ res) & (dst ^ res);
23877 flag_NotZ = res & 0xFF;
23878 WRITE_BYTE_F(adr, res)
23889 src = (((Opcode >> 9) - 1) & 7) + 1;
23890 adr = AREG((Opcode >> 0) & 7);
23893 READ_BYTE_F(adr, dst)
23895 flag_N = flag_X = flag_C = res;
23896 flag_V = (src ^ res) & (dst ^ res);
23897 flag_NotZ = res & 0xFF;
23898 WRITE_BYTE_F(adr, res)
23909 src = (((Opcode >> 9) - 1) & 7) + 1;
23912 READ_BYTE_F(adr, dst)
23914 flag_N = flag_X = flag_C = res;
23915 flag_V = (src ^ res) & (dst ^ res);
23916 flag_NotZ = res & 0xFF;
23917 WRITE_BYTE_F(adr, res)
23928 src = (((Opcode >> 9) - 1) & 7) + 1;
23931 READ_BYTE_F(adr, dst)
23933 flag_N = flag_X = flag_C = res;
23934 flag_V = (src ^ res) & (dst ^ res);
23935 flag_NotZ = res & 0xFF;
23936 WRITE_BYTE_F(adr, res)
23947 src = (((Opcode >> 9) - 1) & 7) + 1;
23951 READ_BYTE_F(adr, dst)
23953 flag_N = flag_X = flag_C = res;
23954 flag_V = (src ^ res) & (dst ^ res);
23955 flag_NotZ = res & 0xFF;
23956 WRITE_BYTE_F(adr, res)
23967 src = (((Opcode >> 9) - 1) & 7) + 1;
23971 READ_BYTE_F(adr, dst)
23973 flag_N = flag_X = flag_C = res;
23974 flag_V = (src ^ res) & (dst ^ res);
23975 flag_NotZ = res & 0xFF;
23976 WRITE_BYTE_F(adr, res)
23987 src = (((Opcode >> 9) - 1) & 7) + 1;
23988 dst = DREGu16((Opcode >> 0) & 7);
23990 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
23991 flag_N = flag_X = flag_C = res >> 8;
23992 flag_NotZ = res & 0xFFFF;
23993 DREGu16((Opcode >> 0) & 7) = res;
24003 src = (((Opcode >> 9) - 1) & 7) + 1;
24004 dst = AREGu32((Opcode >> 0) & 7);
24006 AREG((Opcode >> 0) & 7) = res;
24007 #ifdef USE_CYCLONE_TIMING
24020 src = (((Opcode >> 9) - 1) & 7) + 1;
24021 adr = AREG((Opcode >> 0) & 7);
24023 READ_WORD_F(adr, dst)
24025 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24026 flag_N = flag_X = flag_C = res >> 8;
24027 flag_NotZ = res & 0xFFFF;
24028 WRITE_WORD_F(adr, res)
24039 src = (((Opcode >> 9) - 1) & 7) + 1;
24040 adr = AREG((Opcode >> 0) & 7);
24041 AREG((Opcode >> 0) & 7) += 2;
24043 READ_WORD_F(adr, dst)
24045 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24046 flag_N = flag_X = flag_C = res >> 8;
24047 flag_NotZ = res & 0xFFFF;
24048 WRITE_WORD_F(adr, res)
24059 src = (((Opcode >> 9) - 1) & 7) + 1;
24060 adr = AREG((Opcode >> 0) & 7) - 2;
24061 AREG((Opcode >> 0) & 7) = adr;
24063 READ_WORD_F(adr, dst)
24065 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24066 flag_N = flag_X = flag_C = res >> 8;
24067 flag_NotZ = res & 0xFFFF;
24068 WRITE_WORD_F(adr, res)
24079 src = (((Opcode >> 9) - 1) & 7) + 1;
24081 adr += AREG((Opcode >> 0) & 7);
24083 READ_WORD_F(adr, dst)
24085 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24086 flag_N = flag_X = flag_C = res >> 8;
24087 flag_NotZ = res & 0xFFFF;
24088 WRITE_WORD_F(adr, res)
24099 src = (((Opcode >> 9) - 1) & 7) + 1;
24100 adr = AREG((Opcode >> 0) & 7);
24103 READ_WORD_F(adr, dst)
24105 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24106 flag_N = flag_X = flag_C = res >> 8;
24107 flag_NotZ = res & 0xFFFF;
24108 WRITE_WORD_F(adr, res)
24119 src = (((Opcode >> 9) - 1) & 7) + 1;
24122 READ_WORD_F(adr, dst)
24124 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24125 flag_N = flag_X = flag_C = res >> 8;
24126 flag_NotZ = res & 0xFFFF;
24127 WRITE_WORD_F(adr, res)
24138 src = (((Opcode >> 9) - 1) & 7) + 1;
24141 READ_WORD_F(adr, dst)
24143 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24144 flag_N = flag_X = flag_C = res >> 8;
24145 flag_NotZ = res & 0xFFFF;
24146 WRITE_WORD_F(adr, res)
24157 src = (((Opcode >> 9) - 1) & 7) + 1;
24161 READ_WORD_F(adr, dst)
24163 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24164 flag_N = flag_X = flag_C = res >> 8;
24165 flag_NotZ = res & 0xFFFF;
24166 WRITE_WORD_F(adr, res)
24177 src = (((Opcode >> 9) - 1) & 7) + 1;
24181 READ_WORD_F(adr, dst)
24183 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24184 flag_N = flag_X = flag_C = res >> 8;
24185 flag_NotZ = res & 0xFFFF;
24186 WRITE_WORD_F(adr, res)
24197 src = (((Opcode >> 9) - 1) & 7) + 1;
24198 dst = DREGu32((Opcode >> 0) & 7);
24201 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24202 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24203 flag_N = res >> 24;
24204 DREGu32((Opcode >> 0) & 7) = res;
24214 src = (((Opcode >> 9) - 1) & 7) + 1;
24215 dst = AREGu32((Opcode >> 0) & 7);
24217 AREG((Opcode >> 0) & 7) = res;
24227 src = (((Opcode >> 9) - 1) & 7) + 1;
24228 adr = AREG((Opcode >> 0) & 7);
24230 READ_LONG_F(adr, dst)
24233 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24234 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24235 flag_N = res >> 24;
24236 WRITE_LONG_F(adr, res)
24247 src = (((Opcode >> 9) - 1) & 7) + 1;
24248 adr = AREG((Opcode >> 0) & 7);
24249 AREG((Opcode >> 0) & 7) += 4;
24251 READ_LONG_F(adr, dst)
24254 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24255 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24256 flag_N = res >> 24;
24257 WRITE_LONG_F(adr, res)
24268 src = (((Opcode >> 9) - 1) & 7) + 1;
24269 adr = AREG((Opcode >> 0) & 7) - 4;
24270 AREG((Opcode >> 0) & 7) = adr;
24272 READ_LONG_F(adr, dst)
24275 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24276 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24277 flag_N = res >> 24;
24278 WRITE_LONG_F(adr, res)
24289 src = (((Opcode >> 9) - 1) & 7) + 1;
24291 adr += AREG((Opcode >> 0) & 7);
24293 READ_LONG_F(adr, dst)
24296 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24297 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24298 flag_N = res >> 24;
24299 WRITE_LONG_F(adr, res)
24310 src = (((Opcode >> 9) - 1) & 7) + 1;
24311 adr = AREG((Opcode >> 0) & 7);
24314 READ_LONG_F(adr, dst)
24317 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24318 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24319 flag_N = res >> 24;
24320 WRITE_LONG_F(adr, res)
24331 src = (((Opcode >> 9) - 1) & 7) + 1;
24334 READ_LONG_F(adr, dst)
24337 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24338 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24339 flag_N = res >> 24;
24340 WRITE_LONG_F(adr, res)
24351 src = (((Opcode >> 9) - 1) & 7) + 1;
24354 READ_LONG_F(adr, dst)
24357 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24358 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24359 flag_N = res >> 24;
24360 WRITE_LONG_F(adr, res)
24371 src = (((Opcode >> 9) - 1) & 7) + 1;
24375 READ_LONG_F(adr, dst)
24378 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24379 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24380 flag_N = res >> 24;
24381 WRITE_LONG_F(adr, res)
24392 src = (((Opcode >> 9) - 1) & 7) + 1;
24396 READ_LONG_F(adr, dst)
24399 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24400 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24401 flag_N = res >> 24;
24402 WRITE_LONG_F(adr, res)
24413 src = (((Opcode >> 9) - 1) & 7) + 1;
24414 dst = DREGu8((Opcode >> 0) & 7);
24416 flag_N = flag_X = flag_C = res;
24417 flag_V = (src ^ dst) & (res ^ dst);
24418 flag_NotZ = res & 0xFF;
24419 DREGu8((Opcode >> 0) & 7) = res;
24429 src = (((Opcode >> 9) - 1) & 7) + 1;
24430 adr = AREG((Opcode >> 0) & 7);
24432 READ_BYTE_F(adr, dst)
24434 flag_N = flag_X = flag_C = res;
24435 flag_V = (src ^ dst) & (res ^ dst);
24436 flag_NotZ = res & 0xFF;
24437 WRITE_BYTE_F(adr, res)
24448 src = (((Opcode >> 9) - 1) & 7) + 1;
24449 adr = AREG((Opcode >> 0) & 7);
24450 AREG((Opcode >> 0) & 7) += 1;
24452 READ_BYTE_F(adr, dst)
24454 flag_N = flag_X = flag_C = res;
24455 flag_V = (src ^ dst) & (res ^ dst);
24456 flag_NotZ = res & 0xFF;
24457 WRITE_BYTE_F(adr, res)
24468 src = (((Opcode >> 9) - 1) & 7) + 1;
24469 adr = AREG((Opcode >> 0) & 7) - 1;
24470 AREG((Opcode >> 0) & 7) = adr;
24472 READ_BYTE_F(adr, dst)
24474 flag_N = flag_X = flag_C = res;
24475 flag_V = (src ^ dst) & (res ^ dst);
24476 flag_NotZ = res & 0xFF;
24477 WRITE_BYTE_F(adr, res)
24488 src = (((Opcode >> 9) - 1) & 7) + 1;
24490 adr += AREG((Opcode >> 0) & 7);
24492 READ_BYTE_F(adr, dst)
24494 flag_N = flag_X = flag_C = res;
24495 flag_V = (src ^ dst) & (res ^ dst);
24496 flag_NotZ = res & 0xFF;
24497 WRITE_BYTE_F(adr, res)
24508 src = (((Opcode >> 9) - 1) & 7) + 1;
24509 adr = AREG((Opcode >> 0) & 7);
24512 READ_BYTE_F(adr, dst)
24514 flag_N = flag_X = flag_C = res;
24515 flag_V = (src ^ dst) & (res ^ dst);
24516 flag_NotZ = res & 0xFF;
24517 WRITE_BYTE_F(adr, res)
24528 src = (((Opcode >> 9) - 1) & 7) + 1;
24531 READ_BYTE_F(adr, dst)
24533 flag_N = flag_X = flag_C = res;
24534 flag_V = (src ^ dst) & (res ^ dst);
24535 flag_NotZ = res & 0xFF;
24536 WRITE_BYTE_F(adr, res)
24547 src = (((Opcode >> 9) - 1) & 7) + 1;
24550 READ_BYTE_F(adr, dst)
24552 flag_N = flag_X = flag_C = res;
24553 flag_V = (src ^ dst) & (res ^ dst);
24554 flag_NotZ = res & 0xFF;
24555 WRITE_BYTE_F(adr, res)
24566 src = (((Opcode >> 9) - 1) & 7) + 1;
24570 READ_BYTE_F(adr, dst)
24572 flag_N = flag_X = flag_C = res;
24573 flag_V = (src ^ dst) & (res ^ dst);
24574 flag_NotZ = res & 0xFF;
24575 WRITE_BYTE_F(adr, res)
24586 src = (((Opcode >> 9) - 1) & 7) + 1;
24590 READ_BYTE_F(adr, dst)
24592 flag_N = flag_X = flag_C = res;
24593 flag_V = (src ^ dst) & (res ^ dst);
24594 flag_NotZ = res & 0xFF;
24595 WRITE_BYTE_F(adr, res)
24606 src = (((Opcode >> 9) - 1) & 7) + 1;
24607 dst = DREGu16((Opcode >> 0) & 7);
24609 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24610 flag_N = flag_X = flag_C = res >> 8;
24611 flag_NotZ = res & 0xFFFF;
24612 DREGu16((Opcode >> 0) & 7) = res;
24622 src = (((Opcode >> 9) - 1) & 7) + 1;
24623 dst = AREGu32((Opcode >> 0) & 7);
24625 AREG((Opcode >> 0) & 7) = res;
24635 src = (((Opcode >> 9) - 1) & 7) + 1;
24636 adr = AREG((Opcode >> 0) & 7);
24638 READ_WORD_F(adr, dst)
24640 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24641 flag_N = flag_X = flag_C = res >> 8;
24642 flag_NotZ = res & 0xFFFF;
24643 WRITE_WORD_F(adr, res)
24654 src = (((Opcode >> 9) - 1) & 7) + 1;
24655 adr = AREG((Opcode >> 0) & 7);
24656 AREG((Opcode >> 0) & 7) += 2;
24658 READ_WORD_F(adr, dst)
24660 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24661 flag_N = flag_X = flag_C = res >> 8;
24662 flag_NotZ = res & 0xFFFF;
24663 WRITE_WORD_F(adr, res)
24674 src = (((Opcode >> 9) - 1) & 7) + 1;
24675 adr = AREG((Opcode >> 0) & 7) - 2;
24676 AREG((Opcode >> 0) & 7) = adr;
24678 READ_WORD_F(adr, dst)
24680 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24681 flag_N = flag_X = flag_C = res >> 8;
24682 flag_NotZ = res & 0xFFFF;
24683 WRITE_WORD_F(adr, res)
24694 src = (((Opcode >> 9) - 1) & 7) + 1;
24696 adr += AREG((Opcode >> 0) & 7);
24698 READ_WORD_F(adr, dst)
24700 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24701 flag_N = flag_X = flag_C = res >> 8;
24702 flag_NotZ = res & 0xFFFF;
24703 WRITE_WORD_F(adr, res)
24714 src = (((Opcode >> 9) - 1) & 7) + 1;
24715 adr = AREG((Opcode >> 0) & 7);
24718 READ_WORD_F(adr, dst)
24720 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24721 flag_N = flag_X = flag_C = res >> 8;
24722 flag_NotZ = res & 0xFFFF;
24723 WRITE_WORD_F(adr, res)
24734 src = (((Opcode >> 9) - 1) & 7) + 1;
24737 READ_WORD_F(adr, dst)
24739 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24740 flag_N = flag_X = flag_C = res >> 8;
24741 flag_NotZ = res & 0xFFFF;
24742 WRITE_WORD_F(adr, res)
24753 src = (((Opcode >> 9) - 1) & 7) + 1;
24756 READ_WORD_F(adr, dst)
24758 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24759 flag_N = flag_X = flag_C = res >> 8;
24760 flag_NotZ = res & 0xFFFF;
24761 WRITE_WORD_F(adr, res)
24772 src = (((Opcode >> 9) - 1) & 7) + 1;
24776 READ_WORD_F(adr, dst)
24778 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24779 flag_N = flag_X = flag_C = res >> 8;
24780 flag_NotZ = res & 0xFFFF;
24781 WRITE_WORD_F(adr, res)
24792 src = (((Opcode >> 9) - 1) & 7) + 1;
24796 READ_WORD_F(adr, dst)
24798 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24799 flag_N = flag_X = flag_C = res >> 8;
24800 flag_NotZ = res & 0xFFFF;
24801 WRITE_WORD_F(adr, res)
24812 src = (((Opcode >> 9) - 1) & 7) + 1;
24813 dst = DREGu32((Opcode >> 0) & 7);
24816 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24817 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24818 flag_N = res >> 24;
24819 DREGu32((Opcode >> 0) & 7) = res;
24829 src = (((Opcode >> 9) - 1) & 7) + 1;
24830 dst = AREGu32((Opcode >> 0) & 7);
24832 AREG((Opcode >> 0) & 7) = res;
24842 src = (((Opcode >> 9) - 1) & 7) + 1;
24843 adr = AREG((Opcode >> 0) & 7);
24845 READ_LONG_F(adr, dst)
24848 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24849 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24850 flag_N = res >> 24;
24851 WRITE_LONG_F(adr, res)
24862 src = (((Opcode >> 9) - 1) & 7) + 1;
24863 adr = AREG((Opcode >> 0) & 7);
24864 AREG((Opcode >> 0) & 7) += 4;
24866 READ_LONG_F(adr, dst)
24869 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24870 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24871 flag_N = res >> 24;
24872 WRITE_LONG_F(adr, res)
24883 src = (((Opcode >> 9) - 1) & 7) + 1;
24884 adr = AREG((Opcode >> 0) & 7) - 4;
24885 AREG((Opcode >> 0) & 7) = adr;
24887 READ_LONG_F(adr, dst)
24890 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24891 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24892 flag_N = res >> 24;
24893 WRITE_LONG_F(adr, res)
24904 src = (((Opcode >> 9) - 1) & 7) + 1;
24906 adr += AREG((Opcode >> 0) & 7);
24908 READ_LONG_F(adr, dst)
24911 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24912 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24913 flag_N = res >> 24;
24914 WRITE_LONG_F(adr, res)
24925 src = (((Opcode >> 9) - 1) & 7) + 1;
24926 adr = AREG((Opcode >> 0) & 7);
24929 READ_LONG_F(adr, dst)
24932 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24933 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24934 flag_N = res >> 24;
24935 WRITE_LONG_F(adr, res)
24946 src = (((Opcode >> 9) - 1) & 7) + 1;
24949 READ_LONG_F(adr, dst)
24952 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24953 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24954 flag_N = res >> 24;
24955 WRITE_LONG_F(adr, res)
24966 src = (((Opcode >> 9) - 1) & 7) + 1;
24969 READ_LONG_F(adr, dst)
24972 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24973 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24974 flag_N = res >> 24;
24975 WRITE_LONG_F(adr, res)
24986 src = (((Opcode >> 9) - 1) & 7) + 1;
24990 READ_LONG_F(adr, dst)
24993 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24994 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24995 flag_N = res >> 24;
24996 WRITE_LONG_F(adr, res)
25007 src = (((Opcode >> 9) - 1) & 7) + 1;
25011 READ_LONG_F(adr, dst)
25014 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
25015 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
25016 flag_N = res >> 24;
25017 WRITE_LONG_F(adr, res)
25028 if (flag_NotZ && (!(flag_C & 0x100)))
25030 PC += ((s8)(Opcode & 0xFE)) >> 1;
25031 m68kcontext.io_cycle_counter -= 2;
25042 if ((!flag_NotZ) || (flag_C & 0x100))
25044 PC += ((s8)(Opcode & 0xFE)) >> 1;
25045 m68kcontext.io_cycle_counter -= 2;
25056 if (!(flag_C & 0x100))
25058 PC += ((s8)(Opcode & 0xFE)) >> 1;
25059 m68kcontext.io_cycle_counter -= 2;
25070 if (flag_C & 0x100)
25072 PC += ((s8)(Opcode & 0xFE)) >> 1;
25073 m68kcontext.io_cycle_counter -= 2;
25086 PC += ((s8)(Opcode & 0xFE)) >> 1;
25087 m68kcontext.io_cycle_counter -= 2;
25100 PC += ((s8)(Opcode & 0xFE)) >> 1;
25101 m68kcontext.io_cycle_counter -= 2;
25112 if (!(flag_V & 0x80))
25114 PC += ((s8)(Opcode & 0xFE)) >> 1;
25115 m68kcontext.io_cycle_counter -= 2;
25128 PC += ((s8)(Opcode & 0xFE)) >> 1;
25129 m68kcontext.io_cycle_counter -= 2;
25140 if (!(flag_N & 0x80))
25142 PC += ((s8)(Opcode & 0xFE)) >> 1;
25143 m68kcontext.io_cycle_counter -= 2;
25156 PC += ((s8)(Opcode & 0xFE)) >> 1;
25157 m68kcontext.io_cycle_counter -= 2;
25168 if (!((flag_N ^ flag_V) & 0x80))
25170 PC += ((s8)(Opcode & 0xFE)) >> 1;
25171 m68kcontext.io_cycle_counter -= 2;
25182 if ((flag_N ^ flag_V) & 0x80)
25184 PC += ((s8)(Opcode & 0xFE)) >> 1;
25185 m68kcontext.io_cycle_counter -= 2;
25196 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
25198 PC += ((s8)(Opcode & 0xFE)) >> 1;
25199 m68kcontext.io_cycle_counter -= 2;
25210 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
25212 PC += ((s8)(Opcode & 0xFE)) >> 1;
25213 m68kcontext.io_cycle_counter -= 2;
25224 if (flag_NotZ && (!(flag_C & 0x100)))
25229 newPC += GET_SWORD;
25231 CHECK_BRANCH_EXCEPTION(newPC)
25244 if ((!flag_NotZ) || (flag_C & 0x100))
25249 newPC += GET_SWORD;
25251 CHECK_BRANCH_EXCEPTION(newPC)
25264 if (!(flag_C & 0x100))
25269 newPC += GET_SWORD;
25271 CHECK_BRANCH_EXCEPTION(newPC)
25284 if (flag_C & 0x100)
25289 newPC += GET_SWORD;
25291 CHECK_BRANCH_EXCEPTION(newPC)
25309 newPC += GET_SWORD;
25311 CHECK_BRANCH_EXCEPTION(newPC)
25329 newPC += GET_SWORD;
25331 CHECK_BRANCH_EXCEPTION(newPC)
25344 if (!(flag_V & 0x80))
25349 newPC += GET_SWORD;
25351 CHECK_BRANCH_EXCEPTION(newPC)
25369 newPC += GET_SWORD;
25371 CHECK_BRANCH_EXCEPTION(newPC)
25384 if (!(flag_N & 0x80))
25389 newPC += GET_SWORD;
25391 CHECK_BRANCH_EXCEPTION(newPC)
25409 newPC += GET_SWORD;
25411 CHECK_BRANCH_EXCEPTION(newPC)
25424 if (!((flag_N ^ flag_V) & 0x80))
25429 newPC += GET_SWORD;
25431 CHECK_BRANCH_EXCEPTION(newPC)
25444 if ((flag_N ^ flag_V) & 0x80)
25449 newPC += GET_SWORD;
25451 CHECK_BRANCH_EXCEPTION(newPC)
25464 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
25469 newPC += GET_SWORD;
25471 CHECK_BRANCH_EXCEPTION(newPC)
25484 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
25489 newPC += GET_SWORD;
25491 CHECK_BRANCH_EXCEPTION(newPC)
25501 #ifdef FAMEC_CHECK_BRANCHES
25502 u32 newPC = GET_PC;
25506 CHECK_BRANCH_EXCEPTION(offs)
25508 PC += ((s8)(Opcode & 0xFE)) >> 1;
25523 newPC += GET_SWORD;
25525 CHECK_BRANCH_EXCEPTION(newPC)
25542 #ifdef FAMEC_CHECK_BRANCHES
25546 CHECK_BRANCH_EXCEPTION(offs)
25548 PC += ((s8)(Opcode & 0xFE)) >> 1;
25567 newPC += GET_SWORD;
25569 CHECK_BRANCH_EXCEPTION(newPC)
25581 res = (s32)(s8)Opcode;
25582 flag_C = flag_V = 0;
25583 flag_N = flag_NotZ = res;
25584 DREGu32((Opcode >> 9) & 7) = res;
25594 src = DREGu8((Opcode >> 0) & 7);
25595 res = DREGu8((Opcode >> 9) & 7);
25601 DREGu8((Opcode >> 9) & 7) = res;
25611 adr = AREG((Opcode >> 0) & 7);
25613 READ_BYTE_F(adr, src)
25614 res = DREGu8((Opcode >> 9) & 7);
25620 DREGu8((Opcode >> 9) & 7) = res;
25631 adr = AREG((Opcode >> 0) & 7);
25632 AREG((Opcode >> 0) & 7) += 1;
25634 READ_BYTE_F(adr, src)
25635 res = DREGu8((Opcode >> 9) & 7);
25641 DREGu8((Opcode >> 9) & 7) = res;
25652 adr = AREG((Opcode >> 0) & 7) - 1;
25653 AREG((Opcode >> 0) & 7) = adr;
25655 READ_BYTE_F(adr, src)
25656 res = DREGu8((Opcode >> 9) & 7);
25662 DREGu8((Opcode >> 9) & 7) = res;
25674 adr += AREG((Opcode >> 0) & 7);
25676 READ_BYTE_F(adr, src)
25677 res = DREGu8((Opcode >> 9) & 7);
25683 DREGu8((Opcode >> 9) & 7) = res;
25694 adr = AREG((Opcode >> 0) & 7);
25697 READ_BYTE_F(adr, src)
25698 res = DREGu8((Opcode >> 9) & 7);
25704 DREGu8((Opcode >> 9) & 7) = res;
25717 READ_BYTE_F(adr, src)
25718 res = DREGu8((Opcode >> 9) & 7);
25724 DREGu8((Opcode >> 9) & 7) = res;
25737 READ_BYTE_F(adr, src)
25738 res = DREGu8((Opcode >> 9) & 7);
25744 DREGu8((Opcode >> 9) & 7) = res;
25755 adr = GET_SWORD + GET_PC;
25758 READ_BYTE_F(adr, src)
25759 res = DREGu8((Opcode >> 9) & 7);
25765 DREGu8((Opcode >> 9) & 7) = res;
25779 READ_BYTE_F(adr, src)
25780 res = DREGu8((Opcode >> 9) & 7);
25786 DREGu8((Opcode >> 9) & 7) = res;
25798 res = DREGu8((Opcode >> 9) & 7);
25804 DREGu8((Opcode >> 9) & 7) = res;
25817 READ_BYTE_F(adr, src)
25818 res = DREGu8((Opcode >> 9) & 7);
25824 DREGu8((Opcode >> 9) & 7) = res;
25838 READ_BYTE_F(adr, src)
25839 res = DREGu8((Opcode >> 9) & 7);
25845 DREGu8((Opcode >> 9) & 7) = res;
25856 src = DREGu16((Opcode >> 0) & 7);
25857 res = DREGu16((Opcode >> 9) & 7);
25863 DREGu16((Opcode >> 9) & 7) = res;
25873 adr = AREG((Opcode >> 0) & 7);
25875 READ_WORD_F(adr, src)
25876 res = DREGu16((Opcode >> 9) & 7);
25882 DREGu16((Opcode >> 9) & 7) = res;
25893 adr = AREG((Opcode >> 0) & 7);
25894 AREG((Opcode >> 0) & 7) += 2;
25896 READ_WORD_F(adr, src)
25897 res = DREGu16((Opcode >> 9) & 7);
25903 DREGu16((Opcode >> 9) & 7) = res;
25914 adr = AREG((Opcode >> 0) & 7) - 2;
25915 AREG((Opcode >> 0) & 7) = adr;
25917 READ_WORD_F(adr, src)
25918 res = DREGu16((Opcode >> 9) & 7);
25924 DREGu16((Opcode >> 9) & 7) = res;
25936 adr += AREG((Opcode >> 0) & 7);
25938 READ_WORD_F(adr, src)
25939 res = DREGu16((Opcode >> 9) & 7);
25945 DREGu16((Opcode >> 9) & 7) = res;
25956 adr = AREG((Opcode >> 0) & 7);
25959 READ_WORD_F(adr, src)
25960 res = DREGu16((Opcode >> 9) & 7);
25966 DREGu16((Opcode >> 9) & 7) = res;
25979 READ_WORD_F(adr, src)
25980 res = DREGu16((Opcode >> 9) & 7);
25986 DREGu16((Opcode >> 9) & 7) = res;
25999 READ_WORD_F(adr, src)
26000 res = DREGu16((Opcode >> 9) & 7);
26006 DREGu16((Opcode >> 9) & 7) = res;
26017 adr = GET_SWORD + GET_PC;
26020 READ_WORD_F(adr, src)
26021 res = DREGu16((Opcode >> 9) & 7);
26027 DREGu16((Opcode >> 9) & 7) = res;
26041 READ_WORD_F(adr, src)
26042 res = DREGu16((Opcode >> 9) & 7);
26048 DREGu16((Opcode >> 9) & 7) = res;
26060 res = DREGu16((Opcode >> 9) & 7);
26066 DREGu16((Opcode >> 9) & 7) = res;
26079 READ_WORD_F(adr, src)
26080 res = DREGu16((Opcode >> 9) & 7);
26086 DREGu16((Opcode >> 9) & 7) = res;
26100 READ_WORD_F(adr, src)
26101 res = DREGu16((Opcode >> 9) & 7);
26107 DREGu16((Opcode >> 9) & 7) = res;
26118 src = DREGu32((Opcode >> 0) & 7);
26119 res = DREGu32((Opcode >> 9) & 7);
26124 flag_N = res >> 24;
26125 DREGu32((Opcode >> 9) & 7) = res;
26135 adr = AREG((Opcode >> 0) & 7);
26137 READ_LONG_F(adr, src)
26138 res = DREGu32((Opcode >> 9) & 7);
26143 flag_N = res >> 24;
26144 DREGu32((Opcode >> 9) & 7) = res;
26155 adr = AREG((Opcode >> 0) & 7);
26156 AREG((Opcode >> 0) & 7) += 4;
26158 READ_LONG_F(adr, src)
26159 res = DREGu32((Opcode >> 9) & 7);
26164 flag_N = res >> 24;
26165 DREGu32((Opcode >> 9) & 7) = res;
26176 adr = AREG((Opcode >> 0) & 7) - 4;
26177 AREG((Opcode >> 0) & 7) = adr;
26179 READ_LONG_F(adr, src)
26180 res = DREGu32((Opcode >> 9) & 7);
26185 flag_N = res >> 24;
26186 DREGu32((Opcode >> 9) & 7) = res;
26198 adr += AREG((Opcode >> 0) & 7);
26200 READ_LONG_F(adr, src)
26201 res = DREGu32((Opcode >> 9) & 7);
26206 flag_N = res >> 24;
26207 DREGu32((Opcode >> 9) & 7) = res;
26218 adr = AREG((Opcode >> 0) & 7);
26221 READ_LONG_F(adr, src)
26222 res = DREGu32((Opcode >> 9) & 7);
26227 flag_N = res >> 24;
26228 DREGu32((Opcode >> 9) & 7) = res;
26241 READ_LONG_F(adr, src)
26242 res = DREGu32((Opcode >> 9) & 7);
26247 flag_N = res >> 24;
26248 DREGu32((Opcode >> 9) & 7) = res;
26261 READ_LONG_F(adr, src)
26262 res = DREGu32((Opcode >> 9) & 7);
26267 flag_N = res >> 24;
26268 DREGu32((Opcode >> 9) & 7) = res;
26279 adr = GET_SWORD + GET_PC;
26282 READ_LONG_F(adr, src)
26283 res = DREGu32((Opcode >> 9) & 7);
26288 flag_N = res >> 24;
26289 DREGu32((Opcode >> 9) & 7) = res;
26303 READ_LONG_F(adr, src)
26304 res = DREGu32((Opcode >> 9) & 7);
26309 flag_N = res >> 24;
26310 DREGu32((Opcode >> 9) & 7) = res;
26322 res = DREGu32((Opcode >> 9) & 7);
26327 flag_N = res >> 24;
26328 DREGu32((Opcode >> 9) & 7) = res;
26341 READ_LONG_F(adr, src)
26342 res = DREGu32((Opcode >> 9) & 7);
26347 flag_N = res >> 24;
26348 DREGu32((Opcode >> 9) & 7) = res;
26362 READ_LONG_F(adr, src)
26363 res = DREGu32((Opcode >> 9) & 7);
26368 flag_N = res >> 24;
26369 DREGu32((Opcode >> 9) & 7) = res;
26380 src = DREGu8((Opcode >> 9) & 7);
26381 adr = AREG((Opcode >> 0) & 7);
26383 READ_BYTE_F(adr, res)
26389 WRITE_BYTE_F(adr, res)
26400 src = DREGu8((Opcode >> 9) & 7);
26401 adr = AREG((Opcode >> 0) & 7);
26402 AREG((Opcode >> 0) & 7) += 1;
26404 READ_BYTE_F(adr, res)
26410 WRITE_BYTE_F(adr, res)
26421 src = DREGu8((Opcode >> 9) & 7);
26422 adr = AREG((Opcode >> 0) & 7) - 1;
26423 AREG((Opcode >> 0) & 7) = adr;
26425 READ_BYTE_F(adr, res)
26431 WRITE_BYTE_F(adr, res)
26442 src = DREGu8((Opcode >> 9) & 7);
26444 adr += AREG((Opcode >> 0) & 7);
26446 READ_BYTE_F(adr, res)
26452 WRITE_BYTE_F(adr, res)
26463 src = DREGu8((Opcode >> 9) & 7);
26464 adr = AREG((Opcode >> 0) & 7);
26467 READ_BYTE_F(adr, res)
26473 WRITE_BYTE_F(adr, res)
26484 src = DREGu8((Opcode >> 9) & 7);
26487 READ_BYTE_F(adr, res)
26493 WRITE_BYTE_F(adr, res)
26504 src = DREGu8((Opcode >> 9) & 7);
26507 READ_BYTE_F(adr, res)
26513 WRITE_BYTE_F(adr, res)
26524 src = DREGu8((Opcode >> 9) & 7);
26528 READ_BYTE_F(adr, res)
26534 WRITE_BYTE_F(adr, res)
26545 src = DREGu8((Opcode >> 9) & 7);
26549 READ_BYTE_F(adr, res)
26555 WRITE_BYTE_F(adr, res)
26566 src = DREGu16((Opcode >> 9) & 7);
26567 adr = AREG((Opcode >> 0) & 7);
26569 READ_WORD_F(adr, res)
26575 WRITE_WORD_F(adr, res)
26586 src = DREGu16((Opcode >> 9) & 7);
26587 adr = AREG((Opcode >> 0) & 7);
26588 AREG((Opcode >> 0) & 7) += 2;
26590 READ_WORD_F(adr, res)
26596 WRITE_WORD_F(adr, res)
26607 src = DREGu16((Opcode >> 9) & 7);
26608 adr = AREG((Opcode >> 0) & 7) - 2;
26609 AREG((Opcode >> 0) & 7) = adr;
26611 READ_WORD_F(adr, res)
26617 WRITE_WORD_F(adr, res)
26628 src = DREGu16((Opcode >> 9) & 7);
26630 adr += AREG((Opcode >> 0) & 7);
26632 READ_WORD_F(adr, res)
26638 WRITE_WORD_F(adr, res)
26649 src = DREGu16((Opcode >> 9) & 7);
26650 adr = AREG((Opcode >> 0) & 7);
26653 READ_WORD_F(adr, res)
26659 WRITE_WORD_F(adr, res)
26670 src = DREGu16((Opcode >> 9) & 7);
26673 READ_WORD_F(adr, res)
26679 WRITE_WORD_F(adr, res)
26690 src = DREGu16((Opcode >> 9) & 7);
26693 READ_WORD_F(adr, res)
26699 WRITE_WORD_F(adr, res)
26710 src = DREGu16((Opcode >> 9) & 7);
26714 READ_WORD_F(adr, res)
26720 WRITE_WORD_F(adr, res)
26731 src = DREGu16((Opcode >> 9) & 7);
26735 READ_WORD_F(adr, res)
26741 WRITE_WORD_F(adr, res)
26752 src = DREGu32((Opcode >> 9) & 7);
26753 adr = AREG((Opcode >> 0) & 7);
26755 READ_LONG_F(adr, res)
26760 flag_N = res >> 24;
26761 WRITE_LONG_F(adr, res)
26772 src = DREGu32((Opcode >> 9) & 7);
26773 adr = AREG((Opcode >> 0) & 7);
26774 AREG((Opcode >> 0) & 7) += 4;
26776 READ_LONG_F(adr, res)
26781 flag_N = res >> 24;
26782 WRITE_LONG_F(adr, res)
26793 src = DREGu32((Opcode >> 9) & 7);
26794 adr = AREG((Opcode >> 0) & 7) - 4;
26795 AREG((Opcode >> 0) & 7) = adr;
26797 READ_LONG_F(adr, res)
26802 flag_N = res >> 24;
26803 WRITE_LONG_F(adr, res)
26814 src = DREGu32((Opcode >> 9) & 7);
26816 adr += AREG((Opcode >> 0) & 7);
26818 READ_LONG_F(adr, res)
26823 flag_N = res >> 24;
26824 WRITE_LONG_F(adr, res)
26835 src = DREGu32((Opcode >> 9) & 7);
26836 adr = AREG((Opcode >> 0) & 7);
26839 READ_LONG_F(adr, res)
26844 flag_N = res >> 24;
26845 WRITE_LONG_F(adr, res)
26856 src = DREGu32((Opcode >> 9) & 7);
26859 READ_LONG_F(adr, res)
26864 flag_N = res >> 24;
26865 WRITE_LONG_F(adr, res)
26876 src = DREGu32((Opcode >> 9) & 7);
26879 READ_LONG_F(adr, res)
26884 flag_N = res >> 24;
26885 WRITE_LONG_F(adr, res)
26896 src = DREGu32((Opcode >> 9) & 7);
26900 READ_LONG_F(adr, res)
26905 flag_N = res >> 24;
26906 WRITE_LONG_F(adr, res)
26917 src = DREGu32((Opcode >> 9) & 7);
26921 READ_LONG_F(adr, res)
26926 flag_N = res >> 24;
26927 WRITE_LONG_F(adr, res)
26938 src = DREGu8((Opcode >> 0) & 7);
26939 dst = DREGu8((Opcode >> 9) & 7);
26940 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26941 if (res > 9) res -= 6;
26942 res += (dst & 0xF0) - (src & 0xF0);
26946 flag_X = flag_C = M68K_SR_C;
26948 else flag_X = flag_C = 0;
26949 flag_NotZ |= res & 0xFF;
26951 DREGu8((Opcode >> 9) & 7) = res;
26961 adr = AREG((Opcode >> 0) & 7) - 1;
26962 AREG((Opcode >> 0) & 7) = adr;
26964 READ_BYTE_F(adr, src)
26965 adr = AREG((Opcode >> 9) & 7) - 1;
26966 AREG((Opcode >> 9) & 7) = adr;
26967 READ_BYTE_F(adr, dst)
26968 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26969 if (res > 9) res -= 6;
26970 res += (dst & 0xF0) - (src & 0xF0);
26974 flag_X = flag_C = M68K_SR_C;
26976 else flag_X = flag_C = 0;
26977 flag_NotZ |= res & 0xFF;
26979 WRITE_BYTE_F(adr, res)
26993 READ_BYTE_F(adr, src)
26994 adr = AREG((Opcode >> 9) & 7) - 1;
26995 AREG((Opcode >> 9) & 7) = adr;
26996 READ_BYTE_F(adr, dst)
26997 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26998 if (res > 9) res -= 6;
26999 res += (dst & 0xF0) - (src & 0xF0);
27003 flag_X = flag_C = M68K_SR_C;
27005 else flag_X = flag_C = 0;
27006 flag_NotZ |= res & 0xFF;
27008 WRITE_BYTE_F(adr, res)
27019 adr = AREG((Opcode >> 0) & 7) - 1;
27020 AREG((Opcode >> 0) & 7) = adr;
27022 READ_BYTE_F(adr, src)
27025 READ_BYTE_F(adr, dst)
27026 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
27027 if (res > 9) res -= 6;
27028 res += (dst & 0xF0) - (src & 0xF0);
27032 flag_X = flag_C = M68K_SR_C;
27034 else flag_X = flag_C = 0;
27035 flag_NotZ |= res & 0xFF;
27037 WRITE_BYTE_F(adr, res)
27051 READ_BYTE_F(adr, src)
27054 READ_BYTE_F(adr, dst)
27055 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
27056 if (res > 9) res -= 6;
27057 res += (dst & 0xF0) - (src & 0xF0);
27061 flag_X = flag_C = M68K_SR_C;
27063 else flag_X = flag_C = 0;
27064 flag_NotZ |= res & 0xFF;
27066 WRITE_BYTE_F(adr, res)
27077 src = DREGu16((Opcode >> 0) & 7);
27080 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27081 #ifdef USE_CYCLONE_TIMING_DIV
27087 dst = DREGu32((Opcode >> 9) & 7);
27094 if (q & 0xFFFF0000)
27096 flag_V = M68K_SR_V;
27097 #ifdef USE_CYCLONE_TIMING_DIV
27106 flag_V = flag_C = 0;
27107 res = q | (r << 16);
27108 DREGu32((Opcode >> 9) & 7) = res;
27110 #ifdef USE_CYCLONE_TIMING_DIV
27123 adr = AREG((Opcode >> 0) & 7);
27125 READ_WORD_F(adr, src)
27128 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27129 #ifdef USE_CYCLONE_TIMING_DIV
27135 dst = DREGu32((Opcode >> 9) & 7);
27142 if (q & 0xFFFF0000)
27144 flag_V = M68K_SR_V;
27145 #ifdef USE_CYCLONE_TIMING_DIV
27154 flag_V = flag_C = 0;
27155 res = q | (r << 16);
27156 DREGu32((Opcode >> 9) & 7) = res;
27158 #ifdef USE_CYCLONE_TIMING_DIV
27171 adr = AREG((Opcode >> 0) & 7);
27172 AREG((Opcode >> 0) & 7) += 2;
27174 READ_WORD_F(adr, src)
27177 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27178 #ifdef USE_CYCLONE_TIMING_DIV
27184 dst = DREGu32((Opcode >> 9) & 7);
27191 if (q & 0xFFFF0000)
27193 flag_V = M68K_SR_V;
27194 #ifdef USE_CYCLONE_TIMING_DIV
27203 flag_V = flag_C = 0;
27204 res = q | (r << 16);
27205 DREGu32((Opcode >> 9) & 7) = res;
27207 #ifdef USE_CYCLONE_TIMING_DIV
27220 adr = AREG((Opcode >> 0) & 7) - 2;
27221 AREG((Opcode >> 0) & 7) = adr;
27223 READ_WORD_F(adr, src)
27226 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27227 #ifdef USE_CYCLONE_TIMING_DIV
27233 dst = DREGu32((Opcode >> 9) & 7);
27240 if (q & 0xFFFF0000)
27242 flag_V = M68K_SR_V;
27243 #ifdef USE_CYCLONE_TIMING_DIV
27252 flag_V = flag_C = 0;
27253 res = q | (r << 16);
27254 DREGu32((Opcode >> 9) & 7) = res;
27256 #ifdef USE_CYCLONE_TIMING_DIV
27270 adr += AREG((Opcode >> 0) & 7);
27272 READ_WORD_F(adr, src)
27275 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27276 #ifdef USE_CYCLONE_TIMING_DIV
27282 dst = DREGu32((Opcode >> 9) & 7);
27289 if (q & 0xFFFF0000)
27291 flag_V = M68K_SR_V;
27292 #ifdef USE_CYCLONE_TIMING_DIV
27301 flag_V = flag_C = 0;
27302 res = q | (r << 16);
27303 DREGu32((Opcode >> 9) & 7) = res;
27305 #ifdef USE_CYCLONE_TIMING_DIV
27318 adr = AREG((Opcode >> 0) & 7);
27321 READ_WORD_F(adr, src)
27324 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27325 #ifdef USE_CYCLONE_TIMING_DIV
27331 dst = DREGu32((Opcode >> 9) & 7);
27338 if (q & 0xFFFF0000)
27340 flag_V = M68K_SR_V;
27341 #ifdef USE_CYCLONE_TIMING_DIV
27350 flag_V = flag_C = 0;
27351 res = q | (r << 16);
27352 DREGu32((Opcode >> 9) & 7) = res;
27354 #ifdef USE_CYCLONE_TIMING_DIV
27369 READ_WORD_F(adr, src)
27372 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27373 #ifdef USE_CYCLONE_TIMING_DIV
27379 dst = DREGu32((Opcode >> 9) & 7);
27386 if (q & 0xFFFF0000)
27388 flag_V = M68K_SR_V;
27389 #ifdef USE_CYCLONE_TIMING_DIV
27398 flag_V = flag_C = 0;
27399 res = q | (r << 16);
27400 DREGu32((Opcode >> 9) & 7) = res;
27402 #ifdef USE_CYCLONE_TIMING_DIV
27417 READ_WORD_F(adr, src)
27420 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27421 #ifdef USE_CYCLONE_TIMING_DIV
27427 dst = DREGu32((Opcode >> 9) & 7);
27434 if (q & 0xFFFF0000)
27436 flag_V = M68K_SR_V;
27437 #ifdef USE_CYCLONE_TIMING_DIV
27446 flag_V = flag_C = 0;
27447 res = q | (r << 16);
27448 DREGu32((Opcode >> 9) & 7) = res;
27450 #ifdef USE_CYCLONE_TIMING_DIV
27463 adr = GET_SWORD + GET_PC;
27466 READ_WORD_F(adr, src)
27469 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27470 #ifdef USE_CYCLONE_TIMING_DIV
27476 dst = DREGu32((Opcode >> 9) & 7);
27483 if (q & 0xFFFF0000)
27485 flag_V = M68K_SR_V;
27486 #ifdef USE_CYCLONE_TIMING_DIV
27495 flag_V = flag_C = 0;
27496 res = q | (r << 16);
27497 DREGu32((Opcode >> 9) & 7) = res;
27499 #ifdef USE_CYCLONE_TIMING_DIV
27515 READ_WORD_F(adr, src)
27518 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27519 #ifdef USE_CYCLONE_TIMING_DIV
27525 dst = DREGu32((Opcode >> 9) & 7);
27532 if (q & 0xFFFF0000)
27534 flag_V = M68K_SR_V;
27535 #ifdef USE_CYCLONE_TIMING_DIV
27544 flag_V = flag_C = 0;
27545 res = q | (r << 16);
27546 DREGu32((Opcode >> 9) & 7) = res;
27548 #ifdef USE_CYCLONE_TIMING_DIV
27564 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27565 #ifdef USE_CYCLONE_TIMING_DIV
27571 dst = DREGu32((Opcode >> 9) & 7);
27578 if (q & 0xFFFF0000)
27580 flag_V = M68K_SR_V;
27581 #ifdef USE_CYCLONE_TIMING_DIV
27590 flag_V = flag_C = 0;
27591 res = q | (r << 16);
27592 DREGu32((Opcode >> 9) & 7) = res;
27594 #ifdef USE_CYCLONE_TIMING_DIV
27610 READ_WORD_F(adr, src)
27613 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27614 #ifdef USE_CYCLONE_TIMING_DIV
27620 dst = DREGu32((Opcode >> 9) & 7);
27627 if (q & 0xFFFF0000)
27629 flag_V = M68K_SR_V;
27630 #ifdef USE_CYCLONE_TIMING_DIV
27639 flag_V = flag_C = 0;
27640 res = q | (r << 16);
27641 DREGu32((Opcode >> 9) & 7) = res;
27643 #ifdef USE_CYCLONE_TIMING_DIV
27659 READ_WORD_F(adr, src)
27662 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27663 #ifdef USE_CYCLONE_TIMING_DIV
27669 dst = DREGu32((Opcode >> 9) & 7);
27676 if (q & 0xFFFF0000)
27678 flag_V = M68K_SR_V;
27679 #ifdef USE_CYCLONE_TIMING_DIV
27688 flag_V = flag_C = 0;
27689 res = q | (r << 16);
27690 DREGu32((Opcode >> 9) & 7) = res;
27692 #ifdef USE_CYCLONE_TIMING_DIV
27705 src = (s32)DREGs16((Opcode >> 0) & 7);
27708 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27709 #ifdef USE_CYCLONE_TIMING_DIV
27714 dst = DREGu32((Opcode >> 9) & 7);
27715 if ((dst == 0x80000000) && (src == (u32)-1))
27717 flag_NotZ = flag_N = 0;
27718 flag_V = flag_C = 0;
27720 DREGu32((Opcode >> 9) & 7) = res;
27721 #ifdef USE_CYCLONE_TIMING_DIV
27729 q = (s32)dst / (s32)src;
27730 r = (s32)dst % (s32)src;
27732 if ((q > 0x7FFF) || (q < -0x8000))
27734 flag_V = M68K_SR_V;
27735 #ifdef USE_CYCLONE_TIMING_DIV
27743 flag_V = flag_C = 0;
27744 res = q | (r << 16);
27745 DREGu32((Opcode >> 9) & 7) = res;
27747 #ifdef USE_CYCLONE_TIMING_DIV
27748 end81C0: m68kcontext.io_cycle_counter -= 50;
27759 adr = AREG((Opcode >> 0) & 7);
27761 READSX_WORD_F(adr, src)
27764 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27765 #ifdef USE_CYCLONE_TIMING_DIV
27770 dst = DREGu32((Opcode >> 9) & 7);
27771 if ((dst == 0x80000000) && (src == (u32)-1))
27773 flag_NotZ = flag_N = 0;
27774 flag_V = flag_C = 0;
27776 DREGu32((Opcode >> 9) & 7) = res;
27777 #ifdef USE_CYCLONE_TIMING_DIV
27785 q = (s32)dst / (s32)src;
27786 r = (s32)dst % (s32)src;
27788 if ((q > 0x7FFF) || (q < -0x8000))
27790 flag_V = M68K_SR_V;
27791 #ifdef USE_CYCLONE_TIMING_DIV
27799 flag_V = flag_C = 0;
27800 res = q | (r << 16);
27801 DREGu32((Opcode >> 9) & 7) = res;
27803 #ifdef USE_CYCLONE_TIMING_DIV
27804 end81D0: m68kcontext.io_cycle_counter -= 50;
27815 adr = AREG((Opcode >> 0) & 7);
27816 AREG((Opcode >> 0) & 7) += 2;
27818 READSX_WORD_F(adr, src)
27821 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27822 #ifdef USE_CYCLONE_TIMING_DIV
27827 dst = DREGu32((Opcode >> 9) & 7);
27828 if ((dst == 0x80000000) && (src == (u32)-1))
27830 flag_NotZ = flag_N = 0;
27831 flag_V = flag_C = 0;
27833 DREGu32((Opcode >> 9) & 7) = res;
27834 #ifdef USE_CYCLONE_TIMING_DIV
27842 q = (s32)dst / (s32)src;
27843 r = (s32)dst % (s32)src;
27845 if ((q > 0x7FFF) || (q < -0x8000))
27847 flag_V = M68K_SR_V;
27848 #ifdef USE_CYCLONE_TIMING_DIV
27856 flag_V = flag_C = 0;
27857 res = q | (r << 16);
27858 DREGu32((Opcode >> 9) & 7) = res;
27860 #ifdef USE_CYCLONE_TIMING_DIV
27861 end81D8: m68kcontext.io_cycle_counter -= 50;
27872 adr = AREG((Opcode >> 0) & 7) - 2;
27873 AREG((Opcode >> 0) & 7) = adr;
27875 READSX_WORD_F(adr, src)
27878 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27879 #ifdef USE_CYCLONE_TIMING_DIV
27884 dst = DREGu32((Opcode >> 9) & 7);
27885 if ((dst == 0x80000000) && (src == (u32)-1))
27887 flag_NotZ = flag_N = 0;
27888 flag_V = flag_C = 0;
27890 DREGu32((Opcode >> 9) & 7) = res;
27891 #ifdef USE_CYCLONE_TIMING_DIV
27899 q = (s32)dst / (s32)src;
27900 r = (s32)dst % (s32)src;
27902 if ((q > 0x7FFF) || (q < -0x8000))
27904 flag_V = M68K_SR_V;
27905 #ifdef USE_CYCLONE_TIMING_DIV
27913 flag_V = flag_C = 0;
27914 res = q | (r << 16);
27915 DREGu32((Opcode >> 9) & 7) = res;
27917 #ifdef USE_CYCLONE_TIMING_DIV
27918 end81E0: m68kcontext.io_cycle_counter -= 50;
27930 adr += AREG((Opcode >> 0) & 7);
27932 READSX_WORD_F(adr, src)
27935 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27936 #ifdef USE_CYCLONE_TIMING_DIV
27941 dst = DREGu32((Opcode >> 9) & 7);
27942 if ((dst == 0x80000000) && (src == (u32)-1))
27944 flag_NotZ = flag_N = 0;
27945 flag_V = flag_C = 0;
27947 DREGu32((Opcode >> 9) & 7) = res;
27948 #ifdef USE_CYCLONE_TIMING_DIV
27956 q = (s32)dst / (s32)src;
27957 r = (s32)dst % (s32)src;
27959 if ((q > 0x7FFF) || (q < -0x8000))
27961 flag_V = M68K_SR_V;
27962 #ifdef USE_CYCLONE_TIMING_DIV
27970 flag_V = flag_C = 0;
27971 res = q | (r << 16);
27972 DREGu32((Opcode >> 9) & 7) = res;
27974 #ifdef USE_CYCLONE_TIMING_DIV
27975 end81E8: m68kcontext.io_cycle_counter -= 50;
27986 adr = AREG((Opcode >> 0) & 7);
27989 READSX_WORD_F(adr, src)
27992 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27993 #ifdef USE_CYCLONE_TIMING_DIV
27998 dst = DREGu32((Opcode >> 9) & 7);
27999 if ((dst == 0x80000000) && (src == (u32)-1))
28001 flag_NotZ = flag_N = 0;
28002 flag_V = flag_C = 0;
28004 DREGu32((Opcode >> 9) & 7) = res;
28005 #ifdef USE_CYCLONE_TIMING_DIV
28013 q = (s32)dst / (s32)src;
28014 r = (s32)dst % (s32)src;
28016 if ((q > 0x7FFF) || (q < -0x8000))
28018 flag_V = M68K_SR_V;
28019 #ifdef USE_CYCLONE_TIMING_DIV
28027 flag_V = flag_C = 0;
28028 res = q | (r << 16);
28029 DREGu32((Opcode >> 9) & 7) = res;
28031 #ifdef USE_CYCLONE_TIMING_DIV
28032 end81F0: m68kcontext.io_cycle_counter -= 50;
28045 READSX_WORD_F(adr, src)
28048 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28049 #ifdef USE_CYCLONE_TIMING_DIV
28054 dst = DREGu32((Opcode >> 9) & 7);
28055 if ((dst == 0x80000000) && (src == (u32)-1))
28057 flag_NotZ = flag_N = 0;
28058 flag_V = flag_C = 0;
28060 DREGu32((Opcode >> 9) & 7) = res;
28061 #ifdef USE_CYCLONE_TIMING_DIV
28069 q = (s32)dst / (s32)src;
28070 r = (s32)dst % (s32)src;
28072 if ((q > 0x7FFF) || (q < -0x8000))
28074 flag_V = M68K_SR_V;
28075 #ifdef USE_CYCLONE_TIMING_DIV
28083 flag_V = flag_C = 0;
28084 res = q | (r << 16);
28085 DREGu32((Opcode >> 9) & 7) = res;
28087 #ifdef USE_CYCLONE_TIMING_DIV
28088 end81F8: m68kcontext.io_cycle_counter -= 50;
28101 READSX_WORD_F(adr, src)
28104 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28105 #ifdef USE_CYCLONE_TIMING_DIV
28110 dst = DREGu32((Opcode >> 9) & 7);
28111 if ((dst == 0x80000000) && (src == (u32)-1))
28113 flag_NotZ = flag_N = 0;
28114 flag_V = flag_C = 0;
28116 DREGu32((Opcode >> 9) & 7) = res;
28117 #ifdef USE_CYCLONE_TIMING_DIV
28125 q = (s32)dst / (s32)src;
28126 r = (s32)dst % (s32)src;
28128 if ((q > 0x7FFF) || (q < -0x8000))
28130 flag_V = M68K_SR_V;
28131 #ifdef USE_CYCLONE_TIMING_DIV
28139 flag_V = flag_C = 0;
28140 res = q | (r << 16);
28141 DREGu32((Opcode >> 9) & 7) = res;
28143 #ifdef USE_CYCLONE_TIMING_DIV
28144 end81F9: m68kcontext.io_cycle_counter -= 50;
28155 adr = GET_SWORD + GET_PC;
28158 READSX_WORD_F(adr, src)
28161 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28162 #ifdef USE_CYCLONE_TIMING_DIV
28167 dst = DREGu32((Opcode >> 9) & 7);
28168 if ((dst == 0x80000000) && (src == (u32)-1))
28170 flag_NotZ = flag_N = 0;
28171 flag_V = flag_C = 0;
28173 DREGu32((Opcode >> 9) & 7) = res;
28174 #ifdef USE_CYCLONE_TIMING_DIV
28182 q = (s32)dst / (s32)src;
28183 r = (s32)dst % (s32)src;
28185 if ((q > 0x7FFF) || (q < -0x8000))
28187 flag_V = M68K_SR_V;
28188 #ifdef USE_CYCLONE_TIMING_DIV
28196 flag_V = flag_C = 0;
28197 res = q | (r << 16);
28198 DREGu32((Opcode >> 9) & 7) = res;
28200 #ifdef USE_CYCLONE_TIMING_DIV
28201 end81FA: m68kcontext.io_cycle_counter -= 50;
28215 READSX_WORD_F(adr, src)
28218 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28219 #ifdef USE_CYCLONE_TIMING_DIV
28224 dst = DREGu32((Opcode >> 9) & 7);
28225 if ((dst == 0x80000000) && (src == (u32)-1))
28227 flag_NotZ = flag_N = 0;
28228 flag_V = flag_C = 0;
28230 DREGu32((Opcode >> 9) & 7) = res;
28231 #ifdef USE_CYCLONE_TIMING_DIV
28239 q = (s32)dst / (s32)src;
28240 r = (s32)dst % (s32)src;
28242 if ((q > 0x7FFF) || (q < -0x8000))
28244 flag_V = M68K_SR_V;
28245 #ifdef USE_CYCLONE_TIMING_DIV
28253 flag_V = flag_C = 0;
28254 res = q | (r << 16);
28255 DREGu32((Opcode >> 9) & 7) = res;
28257 #ifdef USE_CYCLONE_TIMING_DIV
28258 end81FB: m68kcontext.io_cycle_counter -= 50;
28272 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28273 #ifdef USE_CYCLONE_TIMING_DIV
28278 dst = DREGu32((Opcode >> 9) & 7);
28279 if ((dst == 0x80000000) && (src == (u32)-1))
28281 flag_NotZ = flag_N = 0;
28282 flag_V = flag_C = 0;
28284 DREGu32((Opcode >> 9) & 7) = res;
28285 #ifdef USE_CYCLONE_TIMING_DIV
28293 q = (s32)dst / (s32)src;
28294 r = (s32)dst % (s32)src;
28296 if ((q > 0x7FFF) || (q < -0x8000))
28298 flag_V = M68K_SR_V;
28299 #ifdef USE_CYCLONE_TIMING_DIV
28307 flag_V = flag_C = 0;
28308 res = q | (r << 16);
28309 DREGu32((Opcode >> 9) & 7) = res;
28311 #ifdef USE_CYCLONE_TIMING_DIV
28312 end81FC: m68kcontext.io_cycle_counter -= 50;
28326 READSX_WORD_F(adr, src)
28329 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28330 #ifdef USE_CYCLONE_TIMING_DIV
28335 dst = DREGu32((Opcode >> 9) & 7);
28336 if ((dst == 0x80000000) && (src == (u32)-1))
28338 flag_NotZ = flag_N = 0;
28339 flag_V = flag_C = 0;
28341 DREGu32((Opcode >> 9) & 7) = res;
28342 #ifdef USE_CYCLONE_TIMING_DIV
28350 q = (s32)dst / (s32)src;
28351 r = (s32)dst % (s32)src;
28353 if ((q > 0x7FFF) || (q < -0x8000))
28355 flag_V = M68K_SR_V;
28356 #ifdef USE_CYCLONE_TIMING_DIV
28364 flag_V = flag_C = 0;
28365 res = q | (r << 16);
28366 DREGu32((Opcode >> 9) & 7) = res;
28368 #ifdef USE_CYCLONE_TIMING_DIV
28369 end81DF: m68kcontext.io_cycle_counter -= 50;
28383 READSX_WORD_F(adr, src)
28386 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28387 #ifdef USE_CYCLONE_TIMING_DIV
28392 dst = DREGu32((Opcode >> 9) & 7);
28393 if ((dst == 0x80000000) && (src == (u32)-1))
28395 flag_NotZ = flag_N = 0;
28396 flag_V = flag_C = 0;
28398 DREGu32((Opcode >> 9) & 7) = res;
28399 #ifdef USE_CYCLONE_TIMING_DIV
28407 q = (s32)dst / (s32)src;
28408 r = (s32)dst % (s32)src;
28410 if ((q > 0x7FFF) || (q < -0x8000))
28412 flag_V = M68K_SR_V;
28413 #ifdef USE_CYCLONE_TIMING_DIV
28421 flag_V = flag_C = 0;
28422 res = q | (r << 16);
28423 DREGu32((Opcode >> 9) & 7) = res;
28425 #ifdef USE_CYCLONE_TIMING_DIV
28426 end81E7: m68kcontext.io_cycle_counter -= 50;
28437 src = DREGu8((Opcode >> 0) & 7);
28438 dst = DREGu8((Opcode >> 9) & 7);
28440 flag_N = flag_X = flag_C = res;
28441 flag_V = (src ^ dst) & (res ^ dst);
28442 flag_NotZ = res & 0xFF;
28443 DREGu8((Opcode >> 9) & 7) = res;
28454 // can't read byte from Ax registers !
28455 m68kcontext.execinfo |= M68K_FAULTED;
28456 m68kcontext.io_cycle_counter = 0;
28458 goto famec_Exec_End;
28459 dst = DREGu8((Opcode >> 9) & 7);
28461 flag_N = flag_X = flag_C = res;
28462 flag_V = (src ^ dst) & (res ^ dst);
28463 flag_NotZ = res & 0xFF;
28464 DREGu8((Opcode >> 9) & 7) = res;
28476 adr = AREG((Opcode >> 0) & 7);
28478 READ_BYTE_F(adr, src)
28479 dst = DREGu8((Opcode >> 9) & 7);
28481 flag_N = flag_X = flag_C = res;
28482 flag_V = (src ^ dst) & (res ^ dst);
28483 flag_NotZ = res & 0xFF;
28484 DREGu8((Opcode >> 9) & 7) = res;
28495 adr = AREG((Opcode >> 0) & 7);
28496 AREG((Opcode >> 0) & 7) += 1;
28498 READ_BYTE_F(adr, src)
28499 dst = DREGu8((Opcode >> 9) & 7);
28501 flag_N = flag_X = flag_C = res;
28502 flag_V = (src ^ dst) & (res ^ dst);
28503 flag_NotZ = res & 0xFF;
28504 DREGu8((Opcode >> 9) & 7) = res;
28515 adr = AREG((Opcode >> 0) & 7) - 1;
28516 AREG((Opcode >> 0) & 7) = adr;
28518 READ_BYTE_F(adr, src)
28519 dst = DREGu8((Opcode >> 9) & 7);
28521 flag_N = flag_X = flag_C = res;
28522 flag_V = (src ^ dst) & (res ^ dst);
28523 flag_NotZ = res & 0xFF;
28524 DREGu8((Opcode >> 9) & 7) = res;
28536 adr += AREG((Opcode >> 0) & 7);
28538 READ_BYTE_F(adr, src)
28539 dst = DREGu8((Opcode >> 9) & 7);
28541 flag_N = flag_X = flag_C = res;
28542 flag_V = (src ^ dst) & (res ^ dst);
28543 flag_NotZ = res & 0xFF;
28544 DREGu8((Opcode >> 9) & 7) = res;
28555 adr = AREG((Opcode >> 0) & 7);
28558 READ_BYTE_F(adr, src)
28559 dst = DREGu8((Opcode >> 9) & 7);
28561 flag_N = flag_X = flag_C = res;
28562 flag_V = (src ^ dst) & (res ^ dst);
28563 flag_NotZ = res & 0xFF;
28564 DREGu8((Opcode >> 9) & 7) = res;
28577 READ_BYTE_F(adr, src)
28578 dst = DREGu8((Opcode >> 9) & 7);
28580 flag_N = flag_X = flag_C = res;
28581 flag_V = (src ^ dst) & (res ^ dst);
28582 flag_NotZ = res & 0xFF;
28583 DREGu8((Opcode >> 9) & 7) = res;
28596 READ_BYTE_F(adr, src)
28597 dst = DREGu8((Opcode >> 9) & 7);
28599 flag_N = flag_X = flag_C = res;
28600 flag_V = (src ^ dst) & (res ^ dst);
28601 flag_NotZ = res & 0xFF;
28602 DREGu8((Opcode >> 9) & 7) = res;
28613 adr = GET_SWORD + GET_PC;
28616 READ_BYTE_F(adr, src)
28617 dst = DREGu8((Opcode >> 9) & 7);
28619 flag_N = flag_X = flag_C = res;
28620 flag_V = (src ^ dst) & (res ^ dst);
28621 flag_NotZ = res & 0xFF;
28622 DREGu8((Opcode >> 9) & 7) = res;
28636 READ_BYTE_F(adr, src)
28637 dst = DREGu8((Opcode >> 9) & 7);
28639 flag_N = flag_X = flag_C = res;
28640 flag_V = (src ^ dst) & (res ^ dst);
28641 flag_NotZ = res & 0xFF;
28642 DREGu8((Opcode >> 9) & 7) = res;
28654 dst = DREGu8((Opcode >> 9) & 7);
28656 flag_N = flag_X = flag_C = res;
28657 flag_V = (src ^ dst) & (res ^ dst);
28658 flag_NotZ = res & 0xFF;
28659 DREGu8((Opcode >> 9) & 7) = res;
28672 READ_BYTE_F(adr, src)
28673 dst = DREGu8((Opcode >> 9) & 7);
28675 flag_N = flag_X = flag_C = res;
28676 flag_V = (src ^ dst) & (res ^ dst);
28677 flag_NotZ = res & 0xFF;
28678 DREGu8((Opcode >> 9) & 7) = res;
28692 READ_BYTE_F(adr, src)
28693 dst = DREGu8((Opcode >> 9) & 7);
28695 flag_N = flag_X = flag_C = res;
28696 flag_V = (src ^ dst) & (res ^ dst);
28697 flag_NotZ = res & 0xFF;
28698 DREGu8((Opcode >> 9) & 7) = res;
28709 src = DREGu16((Opcode >> 0) & 7);
28710 dst = DREGu16((Opcode >> 9) & 7);
28712 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28713 flag_N = flag_X = flag_C = res >> 8;
28714 flag_NotZ = res & 0xFFFF;
28715 DREGu16((Opcode >> 9) & 7) = res;
28725 src = AREGu16((Opcode >> 0) & 7);
28726 dst = DREGu16((Opcode >> 9) & 7);
28728 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28729 flag_N = flag_X = flag_C = res >> 8;
28730 flag_NotZ = res & 0xFFFF;
28731 DREGu16((Opcode >> 9) & 7) = res;
28741 adr = AREG((Opcode >> 0) & 7);
28743 READ_WORD_F(adr, src)
28744 dst = DREGu16((Opcode >> 9) & 7);
28746 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28747 flag_N = flag_X = flag_C = res >> 8;
28748 flag_NotZ = res & 0xFFFF;
28749 DREGu16((Opcode >> 9) & 7) = res;
28760 adr = AREG((Opcode >> 0) & 7);
28761 AREG((Opcode >> 0) & 7) += 2;
28763 READ_WORD_F(adr, src)
28764 dst = DREGu16((Opcode >> 9) & 7);
28766 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28767 flag_N = flag_X = flag_C = res >> 8;
28768 flag_NotZ = res & 0xFFFF;
28769 DREGu16((Opcode >> 9) & 7) = res;
28780 adr = AREG((Opcode >> 0) & 7) - 2;
28781 AREG((Opcode >> 0) & 7) = adr;
28783 READ_WORD_F(adr, src)
28784 dst = DREGu16((Opcode >> 9) & 7);
28786 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28787 flag_N = flag_X = flag_C = res >> 8;
28788 flag_NotZ = res & 0xFFFF;
28789 DREGu16((Opcode >> 9) & 7) = res;
28801 adr += AREG((Opcode >> 0) & 7);
28803 READ_WORD_F(adr, src)
28804 dst = DREGu16((Opcode >> 9) & 7);
28806 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28807 flag_N = flag_X = flag_C = res >> 8;
28808 flag_NotZ = res & 0xFFFF;
28809 DREGu16((Opcode >> 9) & 7) = res;
28820 adr = AREG((Opcode >> 0) & 7);
28823 READ_WORD_F(adr, src)
28824 dst = DREGu16((Opcode >> 9) & 7);
28826 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28827 flag_N = flag_X = flag_C = res >> 8;
28828 flag_NotZ = res & 0xFFFF;
28829 DREGu16((Opcode >> 9) & 7) = res;
28842 READ_WORD_F(adr, src)
28843 dst = DREGu16((Opcode >> 9) & 7);
28845 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28846 flag_N = flag_X = flag_C = res >> 8;
28847 flag_NotZ = res & 0xFFFF;
28848 DREGu16((Opcode >> 9) & 7) = res;
28861 READ_WORD_F(adr, src)
28862 dst = DREGu16((Opcode >> 9) & 7);
28864 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28865 flag_N = flag_X = flag_C = res >> 8;
28866 flag_NotZ = res & 0xFFFF;
28867 DREGu16((Opcode >> 9) & 7) = res;
28878 adr = GET_SWORD + GET_PC;
28881 READ_WORD_F(adr, src)
28882 dst = DREGu16((Opcode >> 9) & 7);
28884 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28885 flag_N = flag_X = flag_C = res >> 8;
28886 flag_NotZ = res & 0xFFFF;
28887 DREGu16((Opcode >> 9) & 7) = res;
28901 READ_WORD_F(adr, src)
28902 dst = DREGu16((Opcode >> 9) & 7);
28904 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28905 flag_N = flag_X = flag_C = res >> 8;
28906 flag_NotZ = res & 0xFFFF;
28907 DREGu16((Opcode >> 9) & 7) = res;
28919 dst = DREGu16((Opcode >> 9) & 7);
28921 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28922 flag_N = flag_X = flag_C = res >> 8;
28923 flag_NotZ = res & 0xFFFF;
28924 DREGu16((Opcode >> 9) & 7) = res;
28937 READ_WORD_F(adr, src)
28938 dst = DREGu16((Opcode >> 9) & 7);
28940 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28941 flag_N = flag_X = flag_C = res >> 8;
28942 flag_NotZ = res & 0xFFFF;
28943 DREGu16((Opcode >> 9) & 7) = res;
28957 READ_WORD_F(adr, src)
28958 dst = DREGu16((Opcode >> 9) & 7);
28960 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28961 flag_N = flag_X = flag_C = res >> 8;
28962 flag_NotZ = res & 0xFFFF;
28963 DREGu16((Opcode >> 9) & 7) = res;
28974 src = DREGu32((Opcode >> 0) & 7);
28975 dst = DREGu32((Opcode >> 9) & 7);
28978 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28979 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28980 flag_N = res >> 24;
28981 DREGu32((Opcode >> 9) & 7) = res;
28991 src = AREGu32((Opcode >> 0) & 7);
28992 dst = DREGu32((Opcode >> 9) & 7);
28995 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28996 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28997 flag_N = res >> 24;
28998 DREGu32((Opcode >> 9) & 7) = res;
29008 adr = AREG((Opcode >> 0) & 7);
29010 READ_LONG_F(adr, src)
29011 dst = DREGu32((Opcode >> 9) & 7);
29014 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29015 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29016 flag_N = res >> 24;
29017 DREGu32((Opcode >> 9) & 7) = res;
29028 adr = AREG((Opcode >> 0) & 7);
29029 AREG((Opcode >> 0) & 7) += 4;
29031 READ_LONG_F(adr, src)
29032 dst = DREGu32((Opcode >> 9) & 7);
29035 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29036 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29037 flag_N = res >> 24;
29038 DREGu32((Opcode >> 9) & 7) = res;
29049 adr = AREG((Opcode >> 0) & 7) - 4;
29050 AREG((Opcode >> 0) & 7) = adr;
29052 READ_LONG_F(adr, src)
29053 dst = DREGu32((Opcode >> 9) & 7);
29056 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29057 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29058 flag_N = res >> 24;
29059 DREGu32((Opcode >> 9) & 7) = res;
29071 adr += AREG((Opcode >> 0) & 7);
29073 READ_LONG_F(adr, src)
29074 dst = DREGu32((Opcode >> 9) & 7);
29077 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29078 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29079 flag_N = res >> 24;
29080 DREGu32((Opcode >> 9) & 7) = res;
29091 adr = AREG((Opcode >> 0) & 7);
29094 READ_LONG_F(adr, src)
29095 dst = DREGu32((Opcode >> 9) & 7);
29098 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29099 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29100 flag_N = res >> 24;
29101 DREGu32((Opcode >> 9) & 7) = res;
29114 READ_LONG_F(adr, src)
29115 dst = DREGu32((Opcode >> 9) & 7);
29118 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29119 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29120 flag_N = res >> 24;
29121 DREGu32((Opcode >> 9) & 7) = res;
29134 READ_LONG_F(adr, src)
29135 dst = DREGu32((Opcode >> 9) & 7);
29138 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29139 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29140 flag_N = res >> 24;
29141 DREGu32((Opcode >> 9) & 7) = res;
29152 adr = GET_SWORD + GET_PC;
29155 READ_LONG_F(adr, src)
29156 dst = DREGu32((Opcode >> 9) & 7);
29159 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29160 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29161 flag_N = res >> 24;
29162 DREGu32((Opcode >> 9) & 7) = res;
29176 READ_LONG_F(adr, src)
29177 dst = DREGu32((Opcode >> 9) & 7);
29180 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29181 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29182 flag_N = res >> 24;
29183 DREGu32((Opcode >> 9) & 7) = res;
29195 dst = DREGu32((Opcode >> 9) & 7);
29198 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29199 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29200 flag_N = res >> 24;
29201 DREGu32((Opcode >> 9) & 7) = res;
29214 READ_LONG_F(adr, src)
29215 dst = DREGu32((Opcode >> 9) & 7);
29218 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29219 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29220 flag_N = res >> 24;
29221 DREGu32((Opcode >> 9) & 7) = res;
29235 READ_LONG_F(adr, src)
29236 dst = DREGu32((Opcode >> 9) & 7);
29239 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29240 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29241 flag_N = res >> 24;
29242 DREGu32((Opcode >> 9) & 7) = res;
29253 src = DREGu8((Opcode >> 9) & 7);
29254 adr = AREG((Opcode >> 0) & 7);
29256 READ_BYTE_F(adr, dst)
29258 flag_N = flag_X = flag_C = res;
29259 flag_V = (src ^ dst) & (res ^ dst);
29260 flag_NotZ = res & 0xFF;
29261 WRITE_BYTE_F(adr, res)
29272 src = DREGu8((Opcode >> 9) & 7);
29273 adr = AREG((Opcode >> 0) & 7);
29274 AREG((Opcode >> 0) & 7) += 1;
29276 READ_BYTE_F(adr, dst)
29278 flag_N = flag_X = flag_C = res;
29279 flag_V = (src ^ dst) & (res ^ dst);
29280 flag_NotZ = res & 0xFF;
29281 WRITE_BYTE_F(adr, res)
29292 src = DREGu8((Opcode >> 9) & 7);
29293 adr = AREG((Opcode >> 0) & 7) - 1;
29294 AREG((Opcode >> 0) & 7) = adr;
29296 READ_BYTE_F(adr, dst)
29298 flag_N = flag_X = flag_C = res;
29299 flag_V = (src ^ dst) & (res ^ dst);
29300 flag_NotZ = res & 0xFF;
29301 WRITE_BYTE_F(adr, res)
29312 src = DREGu8((Opcode >> 9) & 7);
29314 adr += AREG((Opcode >> 0) & 7);
29316 READ_BYTE_F(adr, dst)
29318 flag_N = flag_X = flag_C = res;
29319 flag_V = (src ^ dst) & (res ^ dst);
29320 flag_NotZ = res & 0xFF;
29321 WRITE_BYTE_F(adr, res)
29332 src = DREGu8((Opcode >> 9) & 7);
29333 adr = AREG((Opcode >> 0) & 7);
29336 READ_BYTE_F(adr, dst)
29338 flag_N = flag_X = flag_C = res;
29339 flag_V = (src ^ dst) & (res ^ dst);
29340 flag_NotZ = res & 0xFF;
29341 WRITE_BYTE_F(adr, res)
29352 src = DREGu8((Opcode >> 9) & 7);
29355 READ_BYTE_F(adr, dst)
29357 flag_N = flag_X = flag_C = res;
29358 flag_V = (src ^ dst) & (res ^ dst);
29359 flag_NotZ = res & 0xFF;
29360 WRITE_BYTE_F(adr, res)
29371 src = DREGu8((Opcode >> 9) & 7);
29374 READ_BYTE_F(adr, dst)
29376 flag_N = flag_X = flag_C = res;
29377 flag_V = (src ^ dst) & (res ^ dst);
29378 flag_NotZ = res & 0xFF;
29379 WRITE_BYTE_F(adr, res)
29390 src = DREGu8((Opcode >> 9) & 7);
29394 READ_BYTE_F(adr, dst)
29396 flag_N = flag_X = flag_C = res;
29397 flag_V = (src ^ dst) & (res ^ dst);
29398 flag_NotZ = res & 0xFF;
29399 WRITE_BYTE_F(adr, res)
29410 src = DREGu8((Opcode >> 9) & 7);
29414 READ_BYTE_F(adr, dst)
29416 flag_N = flag_X = flag_C = res;
29417 flag_V = (src ^ dst) & (res ^ dst);
29418 flag_NotZ = res & 0xFF;
29419 WRITE_BYTE_F(adr, res)
29430 src = DREGu16((Opcode >> 9) & 7);
29431 adr = AREG((Opcode >> 0) & 7);
29433 READ_WORD_F(adr, dst)
29435 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29436 flag_N = flag_X = flag_C = res >> 8;
29437 flag_NotZ = res & 0xFFFF;
29438 WRITE_WORD_F(adr, res)
29449 src = DREGu16((Opcode >> 9) & 7);
29450 adr = AREG((Opcode >> 0) & 7);
29451 AREG((Opcode >> 0) & 7) += 2;
29453 READ_WORD_F(adr, dst)
29455 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29456 flag_N = flag_X = flag_C = res >> 8;
29457 flag_NotZ = res & 0xFFFF;
29458 WRITE_WORD_F(adr, res)
29469 src = DREGu16((Opcode >> 9) & 7);
29470 adr = AREG((Opcode >> 0) & 7) - 2;
29471 AREG((Opcode >> 0) & 7) = adr;
29473 READ_WORD_F(adr, dst)
29475 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29476 flag_N = flag_X = flag_C = res >> 8;
29477 flag_NotZ = res & 0xFFFF;
29478 WRITE_WORD_F(adr, res)
29489 src = DREGu16((Opcode >> 9) & 7);
29491 adr += AREG((Opcode >> 0) & 7);
29493 READ_WORD_F(adr, dst)
29495 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29496 flag_N = flag_X = flag_C = res >> 8;
29497 flag_NotZ = res & 0xFFFF;
29498 WRITE_WORD_F(adr, res)
29509 src = DREGu16((Opcode >> 9) & 7);
29510 adr = AREG((Opcode >> 0) & 7);
29513 READ_WORD_F(adr, dst)
29515 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29516 flag_N = flag_X = flag_C = res >> 8;
29517 flag_NotZ = res & 0xFFFF;
29518 WRITE_WORD_F(adr, res)
29529 src = DREGu16((Opcode >> 9) & 7);
29532 READ_WORD_F(adr, dst)
29534 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29535 flag_N = flag_X = flag_C = res >> 8;
29536 flag_NotZ = res & 0xFFFF;
29537 WRITE_WORD_F(adr, res)
29548 src = DREGu16((Opcode >> 9) & 7);
29551 READ_WORD_F(adr, dst)
29553 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29554 flag_N = flag_X = flag_C = res >> 8;
29555 flag_NotZ = res & 0xFFFF;
29556 WRITE_WORD_F(adr, res)
29567 src = DREGu16((Opcode >> 9) & 7);
29571 READ_WORD_F(adr, dst)
29573 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29574 flag_N = flag_X = flag_C = res >> 8;
29575 flag_NotZ = res & 0xFFFF;
29576 WRITE_WORD_F(adr, res)
29587 src = DREGu16((Opcode >> 9) & 7);
29591 READ_WORD_F(adr, dst)
29593 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29594 flag_N = flag_X = flag_C = res >> 8;
29595 flag_NotZ = res & 0xFFFF;
29596 WRITE_WORD_F(adr, res)
29607 src = DREGu32((Opcode >> 9) & 7);
29608 adr = AREG((Opcode >> 0) & 7);
29610 READ_LONG_F(adr, dst)
29613 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29614 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29615 flag_N = res >> 24;
29616 WRITE_LONG_F(adr, res)
29627 src = DREGu32((Opcode >> 9) & 7);
29628 adr = AREG((Opcode >> 0) & 7);
29629 AREG((Opcode >> 0) & 7) += 4;
29631 READ_LONG_F(adr, dst)
29634 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29635 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29636 flag_N = res >> 24;
29637 WRITE_LONG_F(adr, res)
29648 src = DREGu32((Opcode >> 9) & 7);
29649 adr = AREG((Opcode >> 0) & 7) - 4;
29650 AREG((Opcode >> 0) & 7) = adr;
29652 READ_LONG_F(adr, dst)
29655 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29656 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29657 flag_N = res >> 24;
29658 WRITE_LONG_F(adr, res)
29669 src = DREGu32((Opcode >> 9) & 7);
29671 adr += AREG((Opcode >> 0) & 7);
29673 READ_LONG_F(adr, dst)
29676 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29677 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29678 flag_N = res >> 24;
29679 WRITE_LONG_F(adr, res)
29690 src = DREGu32((Opcode >> 9) & 7);
29691 adr = AREG((Opcode >> 0) & 7);
29694 READ_LONG_F(adr, dst)
29697 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29698 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29699 flag_N = res >> 24;
29700 WRITE_LONG_F(adr, res)
29711 src = DREGu32((Opcode >> 9) & 7);
29714 READ_LONG_F(adr, dst)
29717 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29718 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29719 flag_N = res >> 24;
29720 WRITE_LONG_F(adr, res)
29731 src = DREGu32((Opcode >> 9) & 7);
29734 READ_LONG_F(adr, dst)
29737 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29738 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29739 flag_N = res >> 24;
29740 WRITE_LONG_F(adr, res)
29751 src = DREGu32((Opcode >> 9) & 7);
29755 READ_LONG_F(adr, dst)
29758 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29759 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29760 flag_N = res >> 24;
29761 WRITE_LONG_F(adr, res)
29772 src = DREGu32((Opcode >> 9) & 7);
29776 READ_LONG_F(adr, dst)
29779 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29780 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29781 flag_N = res >> 24;
29782 WRITE_LONG_F(adr, res)
29793 src = DREGu8((Opcode >> 0) & 7);
29794 dst = DREGu8((Opcode >> 9) & 7);
29795 res = dst - src - ((flag_X >> 8) & 1);
29796 flag_N = flag_X = flag_C = res;
29797 flag_V = (src ^ dst) & (res ^ dst);
29798 flag_NotZ |= res & 0xFF;
29799 DREGu8((Opcode >> 9) & 7) = res;
29809 src = DREGu16((Opcode >> 0) & 7);
29810 dst = DREGu16((Opcode >> 9) & 7);
29811 res = dst - src - ((flag_X >> 8) & 1);
29812 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29813 flag_N = flag_X = flag_C = res >> 8;
29814 flag_NotZ |= res & 0xFFFF;
29815 DREGu16((Opcode >> 9) & 7) = res;
29825 src = DREGu32((Opcode >> 0) & 7);
29826 dst = DREGu32((Opcode >> 9) & 7);
29827 res = dst - src - ((flag_X >> 8) & 1);
29829 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29830 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29831 flag_N = res >> 24;
29832 DREGu32((Opcode >> 9) & 7) = res;
29842 adr = AREG((Opcode >> 0) & 7) - 1;
29843 AREG((Opcode >> 0) & 7) = adr;
29845 READ_BYTE_F(adr, src)
29846 adr = AREG((Opcode >> 9) & 7) - 1;
29847 AREG((Opcode >> 9) & 7) = adr;
29848 READ_BYTE_F(adr, dst)
29849 res = dst - src - ((flag_X >> 8) & 1);
29850 flag_N = flag_X = flag_C = res;
29851 flag_V = (src ^ dst) & (res ^ dst);
29852 flag_NotZ |= res & 0xFF;
29853 WRITE_BYTE_F(adr, res)
29864 adr = AREG((Opcode >> 0) & 7) - 2;
29865 AREG((Opcode >> 0) & 7) = adr;
29867 READ_WORD_F(adr, src)
29868 adr = AREG((Opcode >> 9) & 7) - 2;
29869 AREG((Opcode >> 9) & 7) = adr;
29870 READ_WORD_F(adr, dst)
29871 res = dst - src - ((flag_X >> 8) & 1);
29872 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29873 flag_N = flag_X = flag_C = res >> 8;
29874 flag_NotZ |= res & 0xFFFF;
29875 WRITE_WORD_F(adr, res)
29886 adr = AREG((Opcode >> 0) & 7) - 4;
29887 AREG((Opcode >> 0) & 7) = adr;
29889 READ_LONG_F(adr, src)
29890 adr = AREG((Opcode >> 9) & 7) - 4;
29891 AREG((Opcode >> 9) & 7) = adr;
29892 READ_LONG_F(adr, dst)
29893 res = dst - src - ((flag_X >> 8) & 1);
29895 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29896 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29897 flag_N = res >> 24;
29898 WRITE_LONG_F(adr, res)
29912 READ_BYTE_F(adr, src)
29913 adr = AREG((Opcode >> 9) & 7) - 1;
29914 AREG((Opcode >> 9) & 7) = adr;
29915 READ_BYTE_F(adr, dst)
29916 res = dst - src - ((flag_X >> 8) & 1);
29917 flag_N = flag_X = flag_C = res;
29918 flag_V = (src ^ dst) & (res ^ dst);
29919 flag_NotZ |= res & 0xFF;
29920 WRITE_BYTE_F(adr, res)
29934 READ_WORD_F(adr, src)
29935 adr = AREG((Opcode >> 9) & 7) - 2;
29936 AREG((Opcode >> 9) & 7) = adr;
29937 READ_WORD_F(adr, dst)
29938 res = dst - src - ((flag_X >> 8) & 1);
29939 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29940 flag_N = flag_X = flag_C = res >> 8;
29941 flag_NotZ |= res & 0xFFFF;
29942 WRITE_WORD_F(adr, res)
29956 READ_LONG_F(adr, src)
29957 adr = AREG((Opcode >> 9) & 7) - 4;
29958 AREG((Opcode >> 9) & 7) = adr;
29959 READ_LONG_F(adr, dst)
29960 res = dst - src - ((flag_X >> 8) & 1);
29962 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29963 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29964 flag_N = res >> 24;
29965 WRITE_LONG_F(adr, res)
29976 adr = AREG((Opcode >> 0) & 7) - 1;
29977 AREG((Opcode >> 0) & 7) = adr;
29979 READ_BYTE_F(adr, src)
29982 READ_BYTE_F(adr, dst)
29983 res = dst - src - ((flag_X >> 8) & 1);
29984 flag_N = flag_X = flag_C = res;
29985 flag_V = (src ^ dst) & (res ^ dst);
29986 flag_NotZ |= res & 0xFF;
29987 WRITE_BYTE_F(adr, res)
29998 adr = AREG((Opcode >> 0) & 7) - 2;
29999 AREG((Opcode >> 0) & 7) = adr;
30001 READ_WORD_F(adr, src)
30004 READ_WORD_F(adr, dst)
30005 res = dst - src - ((flag_X >> 8) & 1);
30006 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30007 flag_N = flag_X = flag_C = res >> 8;
30008 flag_NotZ |= res & 0xFFFF;
30009 WRITE_WORD_F(adr, res)
30020 adr = AREG((Opcode >> 0) & 7) - 4;
30021 AREG((Opcode >> 0) & 7) = adr;
30023 READ_LONG_F(adr, src)
30026 READ_LONG_F(adr, dst)
30027 res = dst - src - ((flag_X >> 8) & 1);
30029 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
30030 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
30031 flag_N = res >> 24;
30032 WRITE_LONG_F(adr, res)
30046 READ_BYTE_F(adr, src)
30049 READ_BYTE_F(adr, dst)
30050 res = dst - src - ((flag_X >> 8) & 1);
30051 flag_N = flag_X = flag_C = res;
30052 flag_V = (src ^ dst) & (res ^ dst);
30053 flag_NotZ |= res & 0xFF;
30054 WRITE_BYTE_F(adr, res)
30068 READ_WORD_F(adr, src)
30071 READ_WORD_F(adr, dst)
30072 res = dst - src - ((flag_X >> 8) & 1);
30073 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30074 flag_N = flag_X = flag_C = res >> 8;
30075 flag_NotZ |= res & 0xFFFF;
30076 WRITE_WORD_F(adr, res)
30090 READ_LONG_F(adr, src)
30093 READ_LONG_F(adr, dst)
30094 res = dst - src - ((flag_X >> 8) & 1);
30096 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
30097 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
30098 flag_N = res >> 24;
30099 WRITE_LONG_F(adr, res)
30110 src = (s32)DREGs16((Opcode >> 0) & 7);
30111 dst = AREGu32((Opcode >> 9) & 7);
30113 AREG((Opcode >> 9) & 7) = res;
30123 src = (s32)AREGs16((Opcode >> 0) & 7);
30124 dst = AREGu32((Opcode >> 9) & 7);
30126 AREG((Opcode >> 9) & 7) = res;
30136 adr = AREG((Opcode >> 0) & 7);
30138 READSX_WORD_F(adr, src)
30139 dst = AREGu32((Opcode >> 9) & 7);
30141 AREG((Opcode >> 9) & 7) = res;
30143 #ifdef USE_CYCLONE_TIMING
30156 adr = AREG((Opcode >> 0) & 7);
30157 AREG((Opcode >> 0) & 7) += 2;
30159 READSX_WORD_F(adr, src)
30160 dst = AREGu32((Opcode >> 9) & 7);
30162 AREG((Opcode >> 9) & 7) = res;
30164 #ifdef USE_CYCLONE_TIMING
30177 adr = AREG((Opcode >> 0) & 7) - 2;
30178 AREG((Opcode >> 0) & 7) = adr;
30180 READSX_WORD_F(adr, src)
30181 dst = AREGu32((Opcode >> 9) & 7);
30183 AREG((Opcode >> 9) & 7) = res;
30185 #ifdef USE_CYCLONE_TIMING
30199 adr += AREG((Opcode >> 0) & 7);
30201 READSX_WORD_F(adr, src)
30202 dst = AREGu32((Opcode >> 9) & 7);
30204 AREG((Opcode >> 9) & 7) = res;
30206 #ifdef USE_CYCLONE_TIMING
30219 adr = AREG((Opcode >> 0) & 7);
30222 READSX_WORD_F(adr, src)
30223 dst = AREGu32((Opcode >> 9) & 7);
30225 AREG((Opcode >> 9) & 7) = res;
30227 #ifdef USE_CYCLONE_TIMING
30242 READSX_WORD_F(adr, src)
30243 dst = AREGu32((Opcode >> 9) & 7);
30245 AREG((Opcode >> 9) & 7) = res;
30247 #ifdef USE_CYCLONE_TIMING
30262 READSX_WORD_F(adr, src)
30263 dst = AREGu32((Opcode >> 9) & 7);
30265 AREG((Opcode >> 9) & 7) = res;
30267 #ifdef USE_CYCLONE_TIMING
30280 adr = GET_SWORD + GET_PC;
30283 READSX_WORD_F(adr, src)
30284 dst = AREGu32((Opcode >> 9) & 7);
30286 AREG((Opcode >> 9) & 7) = res;
30288 #ifdef USE_CYCLONE_TIMING
30304 READSX_WORD_F(adr, src)
30305 dst = AREGu32((Opcode >> 9) & 7);
30307 AREG((Opcode >> 9) & 7) = res;
30309 #ifdef USE_CYCLONE_TIMING
30323 dst = AREGu32((Opcode >> 9) & 7);
30325 AREG((Opcode >> 9) & 7) = res;
30338 READSX_WORD_F(adr, src)
30339 dst = AREGu32((Opcode >> 9) & 7);
30341 AREG((Opcode >> 9) & 7) = res;
30343 #ifdef USE_CYCLONE_TIMING
30359 READSX_WORD_F(adr, src)
30360 dst = AREGu32((Opcode >> 9) & 7);
30362 AREG((Opcode >> 9) & 7) = res;
30364 #ifdef USE_CYCLONE_TIMING
30377 src = (s32)DREGs32((Opcode >> 0) & 7);
30378 dst = AREGu32((Opcode >> 9) & 7);
30380 AREG((Opcode >> 9) & 7) = res;
30381 #ifdef USE_CYCLONE_TIMING
30394 src = (s32)AREGs32((Opcode >> 0) & 7);
30395 dst = AREGu32((Opcode >> 9) & 7);
30397 AREG((Opcode >> 9) & 7) = res;
30398 #ifdef USE_CYCLONE_TIMING
30411 adr = AREG((Opcode >> 0) & 7);
30413 READSX_LONG_F(adr, src)
30414 dst = AREGu32((Opcode >> 9) & 7);
30416 AREG((Opcode >> 9) & 7) = res;
30427 adr = AREG((Opcode >> 0) & 7);
30428 AREG((Opcode >> 0) & 7) += 4;
30430 READSX_LONG_F(adr, src)
30431 dst = AREGu32((Opcode >> 9) & 7);
30433 AREG((Opcode >> 9) & 7) = res;
30444 adr = AREG((Opcode >> 0) & 7) - 4;
30445 AREG((Opcode >> 0) & 7) = adr;
30447 READSX_LONG_F(adr, src)
30448 dst = AREGu32((Opcode >> 9) & 7);
30450 AREG((Opcode >> 9) & 7) = res;
30462 adr += AREG((Opcode >> 0) & 7);
30464 READSX_LONG_F(adr, src)
30465 dst = AREGu32((Opcode >> 9) & 7);
30467 AREG((Opcode >> 9) & 7) = res;
30478 adr = AREG((Opcode >> 0) & 7);
30481 READSX_LONG_F(adr, src)
30482 dst = AREGu32((Opcode >> 9) & 7);
30484 AREG((Opcode >> 9) & 7) = res;
30497 READSX_LONG_F(adr, src)
30498 dst = AREGu32((Opcode >> 9) & 7);
30500 AREG((Opcode >> 9) & 7) = res;
30513 READSX_LONG_F(adr, src)
30514 dst = AREGu32((Opcode >> 9) & 7);
30516 AREG((Opcode >> 9) & 7) = res;
30527 adr = GET_SWORD + GET_PC;
30530 READSX_LONG_F(adr, src)
30531 dst = AREGu32((Opcode >> 9) & 7);
30533 AREG((Opcode >> 9) & 7) = res;
30547 READSX_LONG_F(adr, src)
30548 dst = AREGu32((Opcode >> 9) & 7);
30550 AREG((Opcode >> 9) & 7) = res;
30562 dst = AREGu32((Opcode >> 9) & 7);
30564 AREG((Opcode >> 9) & 7) = res;
30565 #ifdef USE_CYCLONE_TIMING
30581 READSX_LONG_F(adr, src)
30582 dst = AREGu32((Opcode >> 9) & 7);
30584 AREG((Opcode >> 9) & 7) = res;
30598 READSX_LONG_F(adr, src)
30599 dst = AREGu32((Opcode >> 9) & 7);
30601 AREG((Opcode >> 9) & 7) = res;
30612 src = DREGu8((Opcode >> 0) & 7);
30613 dst = DREGu8((Opcode >> 9) & 7);
30615 flag_N = flag_C = res;
30616 flag_V = (src ^ dst) & (res ^ dst);
30617 flag_NotZ = res & 0xFF;
30628 // can't read byte from Ax registers !
30629 m68kcontext.execinfo |= M68K_FAULTED;
30630 m68kcontext.io_cycle_counter = 0;
30632 goto famec_Exec_End;
30633 dst = DREGu8((Opcode >> 9) & 7);
30635 flag_N = flag_C = res;
30636 flag_V = (src ^ dst) & (res ^ dst);
30637 flag_NotZ = res & 0xFF;
30649 adr = AREG((Opcode >> 0) & 7);
30651 READ_BYTE_F(adr, src)
30652 dst = DREGu8((Opcode >> 9) & 7);
30654 flag_N = flag_C = res;
30655 flag_V = (src ^ dst) & (res ^ dst);
30656 flag_NotZ = res & 0xFF;
30667 adr = AREG((Opcode >> 0) & 7);
30668 AREG((Opcode >> 0) & 7) += 1;
30670 READ_BYTE_F(adr, src)
30671 dst = DREGu8((Opcode >> 9) & 7);
30673 flag_N = flag_C = res;
30674 flag_V = (src ^ dst) & (res ^ dst);
30675 flag_NotZ = res & 0xFF;
30686 adr = AREG((Opcode >> 0) & 7) - 1;
30687 AREG((Opcode >> 0) & 7) = adr;
30689 READ_BYTE_F(adr, src)
30690 dst = DREGu8((Opcode >> 9) & 7);
30692 flag_N = flag_C = res;
30693 flag_V = (src ^ dst) & (res ^ dst);
30694 flag_NotZ = res & 0xFF;
30706 adr += AREG((Opcode >> 0) & 7);
30708 READ_BYTE_F(adr, src)
30709 dst = DREGu8((Opcode >> 9) & 7);
30711 flag_N = flag_C = res;
30712 flag_V = (src ^ dst) & (res ^ dst);
30713 flag_NotZ = res & 0xFF;
30724 adr = AREG((Opcode >> 0) & 7);
30727 READ_BYTE_F(adr, src)
30728 dst = DREGu8((Opcode >> 9) & 7);
30730 flag_N = flag_C = res;
30731 flag_V = (src ^ dst) & (res ^ dst);
30732 flag_NotZ = res & 0xFF;
30745 READ_BYTE_F(adr, src)
30746 dst = DREGu8((Opcode >> 9) & 7);
30748 flag_N = flag_C = res;
30749 flag_V = (src ^ dst) & (res ^ dst);
30750 flag_NotZ = res & 0xFF;
30763 READ_BYTE_F(adr, src)
30764 dst = DREGu8((Opcode >> 9) & 7);
30766 flag_N = flag_C = res;
30767 flag_V = (src ^ dst) & (res ^ dst);
30768 flag_NotZ = res & 0xFF;
30779 adr = GET_SWORD + GET_PC;
30782 READ_BYTE_F(adr, src)
30783 dst = DREGu8((Opcode >> 9) & 7);
30785 flag_N = flag_C = res;
30786 flag_V = (src ^ dst) & (res ^ dst);
30787 flag_NotZ = res & 0xFF;
30801 READ_BYTE_F(adr, src)
30802 dst = DREGu8((Opcode >> 9) & 7);
30804 flag_N = flag_C = res;
30805 flag_V = (src ^ dst) & (res ^ dst);
30806 flag_NotZ = res & 0xFF;
30818 dst = DREGu8((Opcode >> 9) & 7);
30820 flag_N = flag_C = res;
30821 flag_V = (src ^ dst) & (res ^ dst);
30822 flag_NotZ = res & 0xFF;
30835 READ_BYTE_F(adr, src)
30836 dst = DREGu8((Opcode >> 9) & 7);
30838 flag_N = flag_C = res;
30839 flag_V = (src ^ dst) & (res ^ dst);
30840 flag_NotZ = res & 0xFF;
30854 READ_BYTE_F(adr, src)
30855 dst = DREGu8((Opcode >> 9) & 7);
30857 flag_N = flag_C = res;
30858 flag_V = (src ^ dst) & (res ^ dst);
30859 flag_NotZ = res & 0xFF;
30870 src = DREGu16((Opcode >> 0) & 7);
30871 dst = DREGu16((Opcode >> 9) & 7);
30873 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30874 flag_N = flag_C = res >> 8;
30875 flag_NotZ = res & 0xFFFF;
30885 src = AREGu16((Opcode >> 0) & 7);
30886 dst = DREGu16((Opcode >> 9) & 7);
30888 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30889 flag_N = flag_C = res >> 8;
30890 flag_NotZ = res & 0xFFFF;
30900 adr = AREG((Opcode >> 0) & 7);
30902 READ_WORD_F(adr, src)
30903 dst = DREGu16((Opcode >> 9) & 7);
30905 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30906 flag_N = flag_C = res >> 8;
30907 flag_NotZ = res & 0xFFFF;
30918 adr = AREG((Opcode >> 0) & 7);
30919 AREG((Opcode >> 0) & 7) += 2;
30921 READ_WORD_F(adr, src)
30922 dst = DREGu16((Opcode >> 9) & 7);
30924 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30925 flag_N = flag_C = res >> 8;
30926 flag_NotZ = res & 0xFFFF;
30937 adr = AREG((Opcode >> 0) & 7) - 2;
30938 AREG((Opcode >> 0) & 7) = adr;
30940 READ_WORD_F(adr, src)
30941 dst = DREGu16((Opcode >> 9) & 7);
30943 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30944 flag_N = flag_C = res >> 8;
30945 flag_NotZ = res & 0xFFFF;
30957 adr += AREG((Opcode >> 0) & 7);
30959 READ_WORD_F(adr, src)
30960 dst = DREGu16((Opcode >> 9) & 7);
30962 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30963 flag_N = flag_C = res >> 8;
30964 flag_NotZ = res & 0xFFFF;
30975 adr = AREG((Opcode >> 0) & 7);
30978 READ_WORD_F(adr, src)
30979 dst = DREGu16((Opcode >> 9) & 7);
30981 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30982 flag_N = flag_C = res >> 8;
30983 flag_NotZ = res & 0xFFFF;
30996 READ_WORD_F(adr, src)
30997 dst = DREGu16((Opcode >> 9) & 7);
30999 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31000 flag_N = flag_C = res >> 8;
31001 flag_NotZ = res & 0xFFFF;
31014 READ_WORD_F(adr, src)
31015 dst = DREGu16((Opcode >> 9) & 7);
31017 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31018 flag_N = flag_C = res >> 8;
31019 flag_NotZ = res & 0xFFFF;
31030 adr = GET_SWORD + GET_PC;
31033 READ_WORD_F(adr, src)
31034 dst = DREGu16((Opcode >> 9) & 7);
31036 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31037 flag_N = flag_C = res >> 8;
31038 flag_NotZ = res & 0xFFFF;
31052 READ_WORD_F(adr, src)
31053 dst = DREGu16((Opcode >> 9) & 7);
31055 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31056 flag_N = flag_C = res >> 8;
31057 flag_NotZ = res & 0xFFFF;
31069 dst = DREGu16((Opcode >> 9) & 7);
31071 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31072 flag_N = flag_C = res >> 8;
31073 flag_NotZ = res & 0xFFFF;
31086 READ_WORD_F(adr, src)
31087 dst = DREGu16((Opcode >> 9) & 7);
31089 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31090 flag_N = flag_C = res >> 8;
31091 flag_NotZ = res & 0xFFFF;
31105 READ_WORD_F(adr, src)
31106 dst = DREGu16((Opcode >> 9) & 7);
31108 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31109 flag_N = flag_C = res >> 8;
31110 flag_NotZ = res & 0xFFFF;
31121 src = DREGu32((Opcode >> 0) & 7);
31122 dst = DREGu32((Opcode >> 9) & 7);
31125 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31126 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31127 flag_N = res >> 24;
31137 src = AREGu32((Opcode >> 0) & 7);
31138 dst = DREGu32((Opcode >> 9) & 7);
31141 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31142 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31143 flag_N = res >> 24;
31153 adr = AREG((Opcode >> 0) & 7);
31155 READ_LONG_F(adr, src)
31156 dst = DREGu32((Opcode >> 9) & 7);
31159 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31160 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31161 flag_N = res >> 24;
31172 adr = AREG((Opcode >> 0) & 7);
31173 AREG((Opcode >> 0) & 7) += 4;
31175 READ_LONG_F(adr, src)
31176 dst = DREGu32((Opcode >> 9) & 7);
31179 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31180 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31181 flag_N = res >> 24;
31192 adr = AREG((Opcode >> 0) & 7) - 4;
31193 AREG((Opcode >> 0) & 7) = adr;
31195 READ_LONG_F(adr, src)
31196 dst = DREGu32((Opcode >> 9) & 7);
31199 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31200 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31201 flag_N = res >> 24;
31213 adr += AREG((Opcode >> 0) & 7);
31215 READ_LONG_F(adr, src)
31216 dst = DREGu32((Opcode >> 9) & 7);
31219 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31220 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31221 flag_N = res >> 24;
31232 adr = AREG((Opcode >> 0) & 7);
31235 READ_LONG_F(adr, src)
31236 dst = DREGu32((Opcode >> 9) & 7);
31239 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31240 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31241 flag_N = res >> 24;
31254 READ_LONG_F(adr, src)
31255 dst = DREGu32((Opcode >> 9) & 7);
31258 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31259 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31260 flag_N = res >> 24;
31273 READ_LONG_F(adr, src)
31274 dst = DREGu32((Opcode >> 9) & 7);
31277 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31278 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31279 flag_N = res >> 24;
31290 adr = GET_SWORD + GET_PC;
31293 READ_LONG_F(adr, src)
31294 dst = DREGu32((Opcode >> 9) & 7);
31297 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31298 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31299 flag_N = res >> 24;
31313 READ_LONG_F(adr, src)
31314 dst = DREGu32((Opcode >> 9) & 7);
31317 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31318 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31319 flag_N = res >> 24;
31331 dst = DREGu32((Opcode >> 9) & 7);
31334 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31335 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31336 flag_N = res >> 24;
31349 READ_LONG_F(adr, src)
31350 dst = DREGu32((Opcode >> 9) & 7);
31353 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31354 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31355 flag_N = res >> 24;
31369 READ_LONG_F(adr, src)
31370 dst = DREGu32((Opcode >> 9) & 7);
31373 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31374 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31375 flag_N = res >> 24;
31386 adr = AREG((Opcode >> 0) & 7);
31387 AREG((Opcode >> 0) & 7) += 1;
31389 READ_BYTE_F(adr, src)
31390 adr = AREG((Opcode >> 9) & 7);
31391 AREG((Opcode >> 9) & 7) += 1;
31392 READ_BYTE_F(adr, dst)
31394 flag_N = flag_C = res;
31395 flag_V = (src ^ dst) & (res ^ dst);
31396 flag_NotZ = res & 0xFF;
31407 adr = AREG((Opcode >> 0) & 7);
31408 AREG((Opcode >> 0) & 7) += 2;
31410 READ_WORD_F(adr, src)
31411 adr = AREG((Opcode >> 9) & 7);
31412 AREG((Opcode >> 9) & 7) += 2;
31413 READ_WORD_F(adr, dst)
31415 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31416 flag_N = flag_C = res >> 8;
31417 flag_NotZ = res & 0xFFFF;
31428 adr = AREG((Opcode >> 0) & 7);
31429 AREG((Opcode >> 0) & 7) += 4;
31431 READ_LONG_F(adr, src)
31432 adr = AREG((Opcode >> 9) & 7);
31433 AREG((Opcode >> 9) & 7) += 4;
31434 READ_LONG_F(adr, dst)
31437 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31438 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31439 flag_N = res >> 24;
31453 READ_BYTE_F(adr, src)
31454 adr = AREG((Opcode >> 9) & 7);
31455 AREG((Opcode >> 9) & 7) += 1;
31456 READ_BYTE_F(adr, dst)
31458 flag_N = flag_C = res;
31459 flag_V = (src ^ dst) & (res ^ dst);
31460 flag_NotZ = res & 0xFF;
31474 READ_WORD_F(adr, src)
31475 adr = AREG((Opcode >> 9) & 7);
31476 AREG((Opcode >> 9) & 7) += 2;
31477 READ_WORD_F(adr, dst)
31479 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31480 flag_N = flag_C = res >> 8;
31481 flag_NotZ = res & 0xFFFF;
31495 READ_LONG_F(adr, src)
31496 adr = AREG((Opcode >> 9) & 7);
31497 AREG((Opcode >> 9) & 7) += 4;
31498 READ_LONG_F(adr, dst)
31501 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31502 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31503 flag_N = res >> 24;
31514 adr = AREG((Opcode >> 0) & 7);
31515 AREG((Opcode >> 0) & 7) += 1;
31517 READ_BYTE_F(adr, src)
31520 READ_BYTE_F(adr, dst)
31522 flag_N = flag_C = res;
31523 flag_V = (src ^ dst) & (res ^ dst);
31524 flag_NotZ = res & 0xFF;
31535 adr = AREG((Opcode >> 0) & 7);
31536 AREG((Opcode >> 0) & 7) += 2;
31538 READ_WORD_F(adr, src)
31541 READ_WORD_F(adr, dst)
31543 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31544 flag_N = flag_C = res >> 8;
31545 flag_NotZ = res & 0xFFFF;
31556 adr = AREG((Opcode >> 0) & 7);
31557 AREG((Opcode >> 0) & 7) += 4;
31559 READ_LONG_F(adr, src)
31562 READ_LONG_F(adr, dst)
31565 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31566 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31567 flag_N = res >> 24;
31581 READ_BYTE_F(adr, src)
31584 READ_BYTE_F(adr, dst)
31586 flag_N = flag_C = res;
31587 flag_V = (src ^ dst) & (res ^ dst);
31588 flag_NotZ = res & 0xFF;
31602 READ_WORD_F(adr, src)
31605 READ_WORD_F(adr, dst)
31607 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31608 flag_N = flag_C = res >> 8;
31609 flag_NotZ = res & 0xFFFF;
31623 READ_LONG_F(adr, src)
31626 READ_LONG_F(adr, dst)
31629 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31630 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31631 flag_N = res >> 24;
31642 src = DREGu8((Opcode >> 9) & 7);
31643 res = DREGu8((Opcode >> 0) & 7);
31649 DREGu8((Opcode >> 0) & 7) = res;
31659 src = DREGu8((Opcode >> 9) & 7);
31660 adr = AREG((Opcode >> 0) & 7);
31662 READ_BYTE_F(adr, res)
31668 WRITE_BYTE_F(adr, res)
31679 src = DREGu8((Opcode >> 9) & 7);
31680 adr = AREG((Opcode >> 0) & 7);
31681 AREG((Opcode >> 0) & 7) += 1;
31683 READ_BYTE_F(adr, res)
31689 WRITE_BYTE_F(adr, res)
31700 src = DREGu8((Opcode >> 9) & 7);
31701 adr = AREG((Opcode >> 0) & 7) - 1;
31702 AREG((Opcode >> 0) & 7) = adr;
31704 READ_BYTE_F(adr, res)
31710 WRITE_BYTE_F(adr, res)
31721 src = DREGu8((Opcode >> 9) & 7);
31723 adr += AREG((Opcode >> 0) & 7);
31725 READ_BYTE_F(adr, res)
31731 WRITE_BYTE_F(adr, res)
31742 src = DREGu8((Opcode >> 9) & 7);
31743 adr = AREG((Opcode >> 0) & 7);
31746 READ_BYTE_F(adr, res)
31752 WRITE_BYTE_F(adr, res)
31763 src = DREGu8((Opcode >> 9) & 7);
31766 READ_BYTE_F(adr, res)
31772 WRITE_BYTE_F(adr, res)
31783 src = DREGu8((Opcode >> 9) & 7);
31786 READ_BYTE_F(adr, res)
31792 WRITE_BYTE_F(adr, res)
31803 src = DREGu8((Opcode >> 9) & 7);
31807 READ_BYTE_F(adr, res)
31813 WRITE_BYTE_F(adr, res)
31824 src = DREGu8((Opcode >> 9) & 7);
31828 READ_BYTE_F(adr, res)
31834 WRITE_BYTE_F(adr, res)
31845 src = DREGu16((Opcode >> 9) & 7);
31846 res = DREGu16((Opcode >> 0) & 7);
31852 DREGu16((Opcode >> 0) & 7) = res;
31862 src = DREGu16((Opcode >> 9) & 7);
31863 adr = AREG((Opcode >> 0) & 7);
31865 READ_WORD_F(adr, res)
31871 WRITE_WORD_F(adr, res)
31882 src = DREGu16((Opcode >> 9) & 7);
31883 adr = AREG((Opcode >> 0) & 7);
31884 AREG((Opcode >> 0) & 7) += 2;
31886 READ_WORD_F(adr, res)
31892 WRITE_WORD_F(adr, res)
31903 src = DREGu16((Opcode >> 9) & 7);
31904 adr = AREG((Opcode >> 0) & 7) - 2;
31905 AREG((Opcode >> 0) & 7) = adr;
31907 READ_WORD_F(adr, res)
31913 WRITE_WORD_F(adr, res)
31924 src = DREGu16((Opcode >> 9) & 7);
31926 adr += AREG((Opcode >> 0) & 7);
31928 READ_WORD_F(adr, res)
31934 WRITE_WORD_F(adr, res)
31945 src = DREGu16((Opcode >> 9) & 7);
31946 adr = AREG((Opcode >> 0) & 7);
31949 READ_WORD_F(adr, res)
31955 WRITE_WORD_F(adr, res)
31966 src = DREGu16((Opcode >> 9) & 7);
31969 READ_WORD_F(adr, res)
31975 WRITE_WORD_F(adr, res)
31986 src = DREGu16((Opcode >> 9) & 7);
31989 READ_WORD_F(adr, res)
31995 WRITE_WORD_F(adr, res)
32006 src = DREGu16((Opcode >> 9) & 7);
32010 READ_WORD_F(adr, res)
32016 WRITE_WORD_F(adr, res)
32027 src = DREGu16((Opcode >> 9) & 7);
32031 READ_WORD_F(adr, res)
32037 WRITE_WORD_F(adr, res)
32048 src = DREGu32((Opcode >> 9) & 7);
32049 res = DREGu32((Opcode >> 0) & 7);
32054 flag_N = res >> 24;
32055 DREGu32((Opcode >> 0) & 7) = res;
32065 src = DREGu32((Opcode >> 9) & 7);
32066 adr = AREG((Opcode >> 0) & 7);
32068 READ_LONG_F(adr, res)
32073 flag_N = res >> 24;
32074 WRITE_LONG_F(adr, res)
32085 src = DREGu32((Opcode >> 9) & 7);
32086 adr = AREG((Opcode >> 0) & 7);
32087 AREG((Opcode >> 0) & 7) += 4;
32089 READ_LONG_F(adr, res)
32094 flag_N = res >> 24;
32095 WRITE_LONG_F(adr, res)
32106 src = DREGu32((Opcode >> 9) & 7);
32107 adr = AREG((Opcode >> 0) & 7) - 4;
32108 AREG((Opcode >> 0) & 7) = adr;
32110 READ_LONG_F(adr, res)
32115 flag_N = res >> 24;
32116 WRITE_LONG_F(adr, res)
32127 src = DREGu32((Opcode >> 9) & 7);
32129 adr += AREG((Opcode >> 0) & 7);
32131 READ_LONG_F(adr, res)
32136 flag_N = res >> 24;
32137 WRITE_LONG_F(adr, res)
32148 src = DREGu32((Opcode >> 9) & 7);
32149 adr = AREG((Opcode >> 0) & 7);
32152 READ_LONG_F(adr, res)
32157 flag_N = res >> 24;
32158 WRITE_LONG_F(adr, res)
32169 src = DREGu32((Opcode >> 9) & 7);
32172 READ_LONG_F(adr, res)
32177 flag_N = res >> 24;
32178 WRITE_LONG_F(adr, res)
32189 src = DREGu32((Opcode >> 9) & 7);
32192 READ_LONG_F(adr, res)
32197 flag_N = res >> 24;
32198 WRITE_LONG_F(adr, res)
32209 src = DREGu32((Opcode >> 9) & 7);
32213 READ_LONG_F(adr, res)
32218 flag_N = res >> 24;
32219 WRITE_LONG_F(adr, res)
32230 src = DREGu32((Opcode >> 9) & 7);
32234 READ_LONG_F(adr, res)
32239 flag_N = res >> 24;
32240 WRITE_LONG_F(adr, res)
32251 src = (s32)DREGs16((Opcode >> 0) & 7);
32252 dst = AREGu32((Opcode >> 9) & 7);
32255 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32256 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32257 flag_N = res >> 24;
32267 src = (s32)AREGs16((Opcode >> 0) & 7);
32268 dst = AREGu32((Opcode >> 9) & 7);
32271 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32272 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32273 flag_N = res >> 24;
32283 adr = AREG((Opcode >> 0) & 7);
32285 READSX_WORD_F(adr, src)
32286 dst = AREGu32((Opcode >> 9) & 7);
32289 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32290 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32291 flag_N = res >> 24;
32302 adr = AREG((Opcode >> 0) & 7);
32303 AREG((Opcode >> 0) & 7) += 2;
32305 READSX_WORD_F(adr, src)
32306 dst = AREGu32((Opcode >> 9) & 7);
32309 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32310 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32311 flag_N = res >> 24;
32322 adr = AREG((Opcode >> 0) & 7) - 2;
32323 AREG((Opcode >> 0) & 7) = adr;
32325 READSX_WORD_F(adr, src)
32326 dst = AREGu32((Opcode >> 9) & 7);
32329 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32330 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32331 flag_N = res >> 24;
32343 adr += AREG((Opcode >> 0) & 7);
32345 READSX_WORD_F(adr, src)
32346 dst = AREGu32((Opcode >> 9) & 7);
32349 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32350 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32351 flag_N = res >> 24;
32362 adr = AREG((Opcode >> 0) & 7);
32365 READSX_WORD_F(adr, src)
32366 dst = AREGu32((Opcode >> 9) & 7);
32369 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32370 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32371 flag_N = res >> 24;
32384 READSX_WORD_F(adr, src)
32385 dst = AREGu32((Opcode >> 9) & 7);
32388 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32389 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32390 flag_N = res >> 24;
32403 READSX_WORD_F(adr, src)
32404 dst = AREGu32((Opcode >> 9) & 7);
32407 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32408 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32409 flag_N = res >> 24;
32420 adr = GET_SWORD + GET_PC;
32423 READSX_WORD_F(adr, src)
32424 dst = AREGu32((Opcode >> 9) & 7);
32427 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32428 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32429 flag_N = res >> 24;
32443 READSX_WORD_F(adr, src)
32444 dst = AREGu32((Opcode >> 9) & 7);
32447 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32448 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32449 flag_N = res >> 24;
32461 dst = AREGu32((Opcode >> 9) & 7);
32464 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32465 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32466 flag_N = res >> 24;
32479 READSX_WORD_F(adr, src)
32480 dst = AREGu32((Opcode >> 9) & 7);
32483 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32484 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32485 flag_N = res >> 24;
32499 READSX_WORD_F(adr, src)
32500 dst = AREGu32((Opcode >> 9) & 7);
32503 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32504 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32505 flag_N = res >> 24;
32516 src = (s32)DREGs32((Opcode >> 0) & 7);
32517 dst = AREGu32((Opcode >> 9) & 7);
32520 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32521 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32522 flag_N = res >> 24;
32532 src = (s32)AREGs32((Opcode >> 0) & 7);
32533 dst = AREGu32((Opcode >> 9) & 7);
32536 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32537 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32538 flag_N = res >> 24;
32548 adr = AREG((Opcode >> 0) & 7);
32550 READSX_LONG_F(adr, src)
32551 dst = AREGu32((Opcode >> 9) & 7);
32554 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32555 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32556 flag_N = res >> 24;
32567 adr = AREG((Opcode >> 0) & 7);
32568 AREG((Opcode >> 0) & 7) += 4;
32570 READSX_LONG_F(adr, src)
32571 dst = AREGu32((Opcode >> 9) & 7);
32574 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32575 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32576 flag_N = res >> 24;
32587 adr = AREG((Opcode >> 0) & 7) - 4;
32588 AREG((Opcode >> 0) & 7) = adr;
32590 READSX_LONG_F(adr, src)
32591 dst = AREGu32((Opcode >> 9) & 7);
32594 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32595 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32596 flag_N = res >> 24;
32608 adr += AREG((Opcode >> 0) & 7);
32610 READSX_LONG_F(adr, src)
32611 dst = AREGu32((Opcode >> 9) & 7);
32614 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32615 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32616 flag_N = res >> 24;
32627 adr = AREG((Opcode >> 0) & 7);
32630 READSX_LONG_F(adr, src)
32631 dst = AREGu32((Opcode >> 9) & 7);
32634 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32635 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32636 flag_N = res >> 24;
32649 READSX_LONG_F(adr, src)
32650 dst = AREGu32((Opcode >> 9) & 7);
32653 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32654 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32655 flag_N = res >> 24;
32668 READSX_LONG_F(adr, src)
32669 dst = AREGu32((Opcode >> 9) & 7);
32672 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32673 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32674 flag_N = res >> 24;
32685 adr = GET_SWORD + GET_PC;
32688 READSX_LONG_F(adr, src)
32689 dst = AREGu32((Opcode >> 9) & 7);
32692 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32693 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32694 flag_N = res >> 24;
32708 READSX_LONG_F(adr, src)
32709 dst = AREGu32((Opcode >> 9) & 7);
32712 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32713 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32714 flag_N = res >> 24;
32726 dst = AREGu32((Opcode >> 9) & 7);
32729 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32730 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32731 flag_N = res >> 24;
32744 READSX_LONG_F(adr, src)
32745 dst = AREGu32((Opcode >> 9) & 7);
32748 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32749 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32750 flag_N = res >> 24;
32764 READSX_LONG_F(adr, src)
32765 dst = AREGu32((Opcode >> 9) & 7);
32768 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32769 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32770 flag_N = res >> 24;
32781 src = DREGu8((Opcode >> 0) & 7);
32782 res = DREGu8((Opcode >> 9) & 7);
32788 DREGu8((Opcode >> 9) & 7) = res;
32798 adr = AREG((Opcode >> 0) & 7);
32800 READ_BYTE_F(adr, src)
32801 res = DREGu8((Opcode >> 9) & 7);
32807 DREGu8((Opcode >> 9) & 7) = res;
32818 adr = AREG((Opcode >> 0) & 7);
32819 AREG((Opcode >> 0) & 7) += 1;
32821 READ_BYTE_F(adr, src)
32822 res = DREGu8((Opcode >> 9) & 7);
32828 DREGu8((Opcode >> 9) & 7) = res;
32839 adr = AREG((Opcode >> 0) & 7) - 1;
32840 AREG((Opcode >> 0) & 7) = adr;
32842 READ_BYTE_F(adr, src)
32843 res = DREGu8((Opcode >> 9) & 7);
32849 DREGu8((Opcode >> 9) & 7) = res;
32861 adr += AREG((Opcode >> 0) & 7);
32863 READ_BYTE_F(adr, src)
32864 res = DREGu8((Opcode >> 9) & 7);
32870 DREGu8((Opcode >> 9) & 7) = res;
32881 adr = AREG((Opcode >> 0) & 7);
32884 READ_BYTE_F(adr, src)
32885 res = DREGu8((Opcode >> 9) & 7);
32891 DREGu8((Opcode >> 9) & 7) = res;
32904 READ_BYTE_F(adr, src)
32905 res = DREGu8((Opcode >> 9) & 7);
32911 DREGu8((Opcode >> 9) & 7) = res;
32924 READ_BYTE_F(adr, src)
32925 res = DREGu8((Opcode >> 9) & 7);
32931 DREGu8((Opcode >> 9) & 7) = res;
32942 adr = GET_SWORD + GET_PC;
32945 READ_BYTE_F(adr, src)
32946 res = DREGu8((Opcode >> 9) & 7);
32952 DREGu8((Opcode >> 9) & 7) = res;
32966 READ_BYTE_F(adr, src)
32967 res = DREGu8((Opcode >> 9) & 7);
32973 DREGu8((Opcode >> 9) & 7) = res;
32985 res = DREGu8((Opcode >> 9) & 7);
32991 DREGu8((Opcode >> 9) & 7) = res;
33004 READ_BYTE_F(adr, src)
33005 res = DREGu8((Opcode >> 9) & 7);
33011 DREGu8((Opcode >> 9) & 7) = res;
33025 READ_BYTE_F(adr, src)
33026 res = DREGu8((Opcode >> 9) & 7);
33032 DREGu8((Opcode >> 9) & 7) = res;
33043 src = DREGu16((Opcode >> 0) & 7);
33044 res = DREGu16((Opcode >> 9) & 7);
33050 DREGu16((Opcode >> 9) & 7) = res;
33060 adr = AREG((Opcode >> 0) & 7);
33062 READ_WORD_F(adr, src)
33063 res = DREGu16((Opcode >> 9) & 7);
33069 DREGu16((Opcode >> 9) & 7) = res;
33080 adr = AREG((Opcode >> 0) & 7);
33081 AREG((Opcode >> 0) & 7) += 2;
33083 READ_WORD_F(adr, src)
33084 res = DREGu16((Opcode >> 9) & 7);
33090 DREGu16((Opcode >> 9) & 7) = res;
33101 adr = AREG((Opcode >> 0) & 7) - 2;
33102 AREG((Opcode >> 0) & 7) = adr;
33104 READ_WORD_F(adr, src)
33105 res = DREGu16((Opcode >> 9) & 7);
33111 DREGu16((Opcode >> 9) & 7) = res;
33123 adr += AREG((Opcode >> 0) & 7);
33125 READ_WORD_F(adr, src)
33126 res = DREGu16((Opcode >> 9) & 7);
33132 DREGu16((Opcode >> 9) & 7) = res;
33143 adr = AREG((Opcode >> 0) & 7);
33146 READ_WORD_F(adr, src)
33147 res = DREGu16((Opcode >> 9) & 7);
33153 DREGu16((Opcode >> 9) & 7) = res;
33166 READ_WORD_F(adr, src)
33167 res = DREGu16((Opcode >> 9) & 7);
33173 DREGu16((Opcode >> 9) & 7) = res;
33186 READ_WORD_F(adr, src)
33187 res = DREGu16((Opcode >> 9) & 7);
33193 DREGu16((Opcode >> 9) & 7) = res;
33204 adr = GET_SWORD + GET_PC;
33207 READ_WORD_F(adr, src)
33208 res = DREGu16((Opcode >> 9) & 7);
33214 DREGu16((Opcode >> 9) & 7) = res;
33228 READ_WORD_F(adr, src)
33229 res = DREGu16((Opcode >> 9) & 7);
33235 DREGu16((Opcode >> 9) & 7) = res;
33247 res = DREGu16((Opcode >> 9) & 7);
33253 DREGu16((Opcode >> 9) & 7) = res;
33266 READ_WORD_F(adr, src)
33267 res = DREGu16((Opcode >> 9) & 7);
33273 DREGu16((Opcode >> 9) & 7) = res;
33287 READ_WORD_F(adr, src)
33288 res = DREGu16((Opcode >> 9) & 7);
33294 DREGu16((Opcode >> 9) & 7) = res;
33305 src = DREGu32((Opcode >> 0) & 7);
33306 res = DREGu32((Opcode >> 9) & 7);
33311 flag_N = res >> 24;
33312 DREGu32((Opcode >> 9) & 7) = res;
33322 adr = AREG((Opcode >> 0) & 7);
33324 READ_LONG_F(adr, src)
33325 res = DREGu32((Opcode >> 9) & 7);
33330 flag_N = res >> 24;
33331 DREGu32((Opcode >> 9) & 7) = res;
33342 adr = AREG((Opcode >> 0) & 7);
33343 AREG((Opcode >> 0) & 7) += 4;
33345 READ_LONG_F(adr, src)
33346 res = DREGu32((Opcode >> 9) & 7);
33351 flag_N = res >> 24;
33352 DREGu32((Opcode >> 9) & 7) = res;
33363 adr = AREG((Opcode >> 0) & 7) - 4;
33364 AREG((Opcode >> 0) & 7) = adr;
33366 READ_LONG_F(adr, src)
33367 res = DREGu32((Opcode >> 9) & 7);
33372 flag_N = res >> 24;
33373 DREGu32((Opcode >> 9) & 7) = res;
33385 adr += AREG((Opcode >> 0) & 7);
33387 READ_LONG_F(adr, src)
33388 res = DREGu32((Opcode >> 9) & 7);
33393 flag_N = res >> 24;
33394 DREGu32((Opcode >> 9) & 7) = res;
33405 adr = AREG((Opcode >> 0) & 7);
33408 READ_LONG_F(adr, src)
33409 res = DREGu32((Opcode >> 9) & 7);
33414 flag_N = res >> 24;
33415 DREGu32((Opcode >> 9) & 7) = res;
33428 READ_LONG_F(adr, src)
33429 res = DREGu32((Opcode >> 9) & 7);
33434 flag_N = res >> 24;
33435 DREGu32((Opcode >> 9) & 7) = res;
33448 READ_LONG_F(adr, src)
33449 res = DREGu32((Opcode >> 9) & 7);
33454 flag_N = res >> 24;
33455 DREGu32((Opcode >> 9) & 7) = res;
33466 adr = GET_SWORD + GET_PC;
33469 READ_LONG_F(adr, src)
33470 res = DREGu32((Opcode >> 9) & 7);
33475 flag_N = res >> 24;
33476 DREGu32((Opcode >> 9) & 7) = res;
33490 READ_LONG_F(adr, src)
33491 res = DREGu32((Opcode >> 9) & 7);
33496 flag_N = res >> 24;
33497 DREGu32((Opcode >> 9) & 7) = res;
33509 res = DREGu32((Opcode >> 9) & 7);
33514 flag_N = res >> 24;
33515 DREGu32((Opcode >> 9) & 7) = res;
33528 READ_LONG_F(adr, src)
33529 res = DREGu32((Opcode >> 9) & 7);
33534 flag_N = res >> 24;
33535 DREGu32((Opcode >> 9) & 7) = res;
33549 READ_LONG_F(adr, src)
33550 res = DREGu32((Opcode >> 9) & 7);
33555 flag_N = res >> 24;
33556 DREGu32((Opcode >> 9) & 7) = res;
33567 src = DREGu8((Opcode >> 9) & 7);
33568 adr = AREG((Opcode >> 0) & 7);
33570 READ_BYTE_F(adr, res)
33576 WRITE_BYTE_F(adr, res)
33587 src = DREGu8((Opcode >> 9) & 7);
33588 adr = AREG((Opcode >> 0) & 7);
33589 AREG((Opcode >> 0) & 7) += 1;
33591 READ_BYTE_F(adr, res)
33597 WRITE_BYTE_F(adr, res)
33608 src = DREGu8((Opcode >> 9) & 7);
33609 adr = AREG((Opcode >> 0) & 7) - 1;
33610 AREG((Opcode >> 0) & 7) = adr;
33612 READ_BYTE_F(adr, res)
33618 WRITE_BYTE_F(adr, res)
33629 src = DREGu8((Opcode >> 9) & 7);
33631 adr += AREG((Opcode >> 0) & 7);
33633 READ_BYTE_F(adr, res)
33639 WRITE_BYTE_F(adr, res)
33650 src = DREGu8((Opcode >> 9) & 7);
33651 adr = AREG((Opcode >> 0) & 7);
33654 READ_BYTE_F(adr, res)
33660 WRITE_BYTE_F(adr, res)
33671 src = DREGu8((Opcode >> 9) & 7);
33674 READ_BYTE_F(adr, res)
33680 WRITE_BYTE_F(adr, res)
33691 src = DREGu8((Opcode >> 9) & 7);
33694 READ_BYTE_F(adr, res)
33700 WRITE_BYTE_F(adr, res)
33711 src = DREGu8((Opcode >> 9) & 7);
33715 READ_BYTE_F(adr, res)
33721 WRITE_BYTE_F(adr, res)
33732 src = DREGu8((Opcode >> 9) & 7);
33736 READ_BYTE_F(adr, res)
33742 WRITE_BYTE_F(adr, res)
33753 src = DREGu16((Opcode >> 9) & 7);
33754 adr = AREG((Opcode >> 0) & 7);
33756 READ_WORD_F(adr, res)
33762 WRITE_WORD_F(adr, res)
33773 src = DREGu16((Opcode >> 9) & 7);
33774 adr = AREG((Opcode >> 0) & 7);
33775 AREG((Opcode >> 0) & 7) += 2;
33777 READ_WORD_F(adr, res)
33783 WRITE_WORD_F(adr, res)
33794 src = DREGu16((Opcode >> 9) & 7);
33795 adr = AREG((Opcode >> 0) & 7) - 2;
33796 AREG((Opcode >> 0) & 7) = adr;
33798 READ_WORD_F(adr, res)
33804 WRITE_WORD_F(adr, res)
33815 src = DREGu16((Opcode >> 9) & 7);
33817 adr += AREG((Opcode >> 0) & 7);
33819 READ_WORD_F(adr, res)
33825 WRITE_WORD_F(adr, res)
33836 src = DREGu16((Opcode >> 9) & 7);
33837 adr = AREG((Opcode >> 0) & 7);
33840 READ_WORD_F(adr, res)
33846 WRITE_WORD_F(adr, res)
33857 src = DREGu16((Opcode >> 9) & 7);
33860 READ_WORD_F(adr, res)
33866 WRITE_WORD_F(adr, res)
33877 src = DREGu16((Opcode >> 9) & 7);
33880 READ_WORD_F(adr, res)
33886 WRITE_WORD_F(adr, res)
33897 src = DREGu16((Opcode >> 9) & 7);
33901 READ_WORD_F(adr, res)
33907 WRITE_WORD_F(adr, res)
33918 src = DREGu16((Opcode >> 9) & 7);
33922 READ_WORD_F(adr, res)
33928 WRITE_WORD_F(adr, res)
33939 src = DREGu32((Opcode >> 9) & 7);
33940 adr = AREG((Opcode >> 0) & 7);
33942 READ_LONG_F(adr, res)
33947 flag_N = res >> 24;
33948 WRITE_LONG_F(adr, res)
33959 src = DREGu32((Opcode >> 9) & 7);
33960 adr = AREG((Opcode >> 0) & 7);
33961 AREG((Opcode >> 0) & 7) += 4;
33963 READ_LONG_F(adr, res)
33968 flag_N = res >> 24;
33969 WRITE_LONG_F(adr, res)
33980 src = DREGu32((Opcode >> 9) & 7);
33981 adr = AREG((Opcode >> 0) & 7) - 4;
33982 AREG((Opcode >> 0) & 7) = adr;
33984 READ_LONG_F(adr, res)
33989 flag_N = res >> 24;
33990 WRITE_LONG_F(adr, res)
34001 src = DREGu32((Opcode >> 9) & 7);
34003 adr += AREG((Opcode >> 0) & 7);
34005 READ_LONG_F(adr, res)
34010 flag_N = res >> 24;
34011 WRITE_LONG_F(adr, res)
34022 src = DREGu32((Opcode >> 9) & 7);
34023 adr = AREG((Opcode >> 0) & 7);
34026 READ_LONG_F(adr, res)
34031 flag_N = res >> 24;
34032 WRITE_LONG_F(adr, res)
34043 src = DREGu32((Opcode >> 9) & 7);
34046 READ_LONG_F(adr, res)
34051 flag_N = res >> 24;
34052 WRITE_LONG_F(adr, res)
34063 src = DREGu32((Opcode >> 9) & 7);
34066 READ_LONG_F(adr, res)
34071 flag_N = res >> 24;
34072 WRITE_LONG_F(adr, res)
34083 src = DREGu32((Opcode >> 9) & 7);
34087 READ_LONG_F(adr, res)
34092 flag_N = res >> 24;
34093 WRITE_LONG_F(adr, res)
34104 src = DREGu32((Opcode >> 9) & 7);
34108 READ_LONG_F(adr, res)
34113 flag_N = res >> 24;
34114 WRITE_LONG_F(adr, res)
34125 src = DREGu8((Opcode >> 0) & 7);
34126 dst = DREGu8((Opcode >> 9) & 7);
34127 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34128 if (res > 9) res += 6;
34129 res += (dst & 0xF0) + (src & 0xF0);
34133 flag_X = flag_C = M68K_SR_C;
34135 else flag_X = flag_C = 0;
34136 flag_NotZ |= res & 0xFF;
34138 DREGu8((Opcode >> 9) & 7) = res;
34148 adr = AREG((Opcode >> 0) & 7) - 1;
34149 AREG((Opcode >> 0) & 7) = adr;
34151 READ_BYTE_F(adr, src)
34152 adr = AREG((Opcode >> 9) & 7) - 1;
34153 AREG((Opcode >> 9) & 7) = adr;
34154 READ_BYTE_F(adr, dst)
34155 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34156 if (res > 9) res += 6;
34157 res += (dst & 0xF0) + (src & 0xF0);
34161 flag_X = flag_C = M68K_SR_C;
34163 else flag_X = flag_C = 0;
34164 flag_NotZ |= res & 0xFF;
34166 WRITE_BYTE_F(adr, res)
34180 READ_BYTE_F(adr, src)
34181 adr = AREG((Opcode >> 9) & 7) - 1;
34182 AREG((Opcode >> 9) & 7) = adr;
34183 READ_BYTE_F(adr, dst)
34184 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34185 if (res > 9) res += 6;
34186 res += (dst & 0xF0) + (src & 0xF0);
34190 flag_X = flag_C = M68K_SR_C;
34192 else flag_X = flag_C = 0;
34193 flag_NotZ |= res & 0xFF;
34195 WRITE_BYTE_F(adr, res)
34206 adr = AREG((Opcode >> 0) & 7) - 1;
34207 AREG((Opcode >> 0) & 7) = adr;
34209 READ_BYTE_F(adr, src)
34212 READ_BYTE_F(adr, dst)
34213 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34214 if (res > 9) res += 6;
34215 res += (dst & 0xF0) + (src & 0xF0);
34219 flag_X = flag_C = M68K_SR_C;
34221 else flag_X = flag_C = 0;
34222 flag_NotZ |= res & 0xFF;
34224 WRITE_BYTE_F(adr, res)
34238 READ_BYTE_F(adr, src)
34241 READ_BYTE_F(adr, dst)
34242 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34243 if (res > 9) res += 6;
34244 res += (dst & 0xF0) + (src & 0xF0);
34248 flag_X = flag_C = M68K_SR_C;
34250 else flag_X = flag_C = 0;
34251 flag_NotZ |= res & 0xFF;
34253 WRITE_BYTE_F(adr, res)
34264 src = DREGu16((Opcode >> 0) & 7);
34265 res = DREGu16((Opcode >> 9) & 7);
34267 flag_N = res >> 24;
34269 flag_V = flag_C = 0;
34270 DREGu32((Opcode >> 9) & 7) = res;
34271 #ifdef USE_CYCLONE_TIMING
34284 adr = AREG((Opcode >> 0) & 7);
34286 READ_WORD_F(adr, src)
34287 res = DREGu16((Opcode >> 9) & 7);
34289 flag_N = res >> 24;
34291 flag_V = flag_C = 0;
34292 DREGu32((Opcode >> 9) & 7) = res;
34294 #ifdef USE_CYCLONE_TIMING
34307 adr = AREG((Opcode >> 0) & 7);
34308 AREG((Opcode >> 0) & 7) += 2;
34310 READ_WORD_F(adr, src)
34311 res = DREGu16((Opcode >> 9) & 7);
34313 flag_N = res >> 24;
34315 flag_V = flag_C = 0;
34316 DREGu32((Opcode >> 9) & 7) = res;
34318 #ifdef USE_CYCLONE_TIMING
34331 adr = AREG((Opcode >> 0) & 7) - 2;
34332 AREG((Opcode >> 0) & 7) = adr;
34334 READ_WORD_F(adr, src)
34335 res = DREGu16((Opcode >> 9) & 7);
34337 flag_N = res >> 24;
34339 flag_V = flag_C = 0;
34340 DREGu32((Opcode >> 9) & 7) = res;
34342 #ifdef USE_CYCLONE_TIMING
34356 adr += AREG((Opcode >> 0) & 7);
34358 READ_WORD_F(adr, src)
34359 res = DREGu16((Opcode >> 9) & 7);
34361 flag_N = res >> 24;
34363 flag_V = flag_C = 0;
34364 DREGu32((Opcode >> 9) & 7) = res;
34366 #ifdef USE_CYCLONE_TIMING
34379 adr = AREG((Opcode >> 0) & 7);
34382 READ_WORD_F(adr, src)
34383 res = DREGu16((Opcode >> 9) & 7);
34385 flag_N = res >> 24;
34387 flag_V = flag_C = 0;
34388 DREGu32((Opcode >> 9) & 7) = res;
34390 #ifdef USE_CYCLONE_TIMING
34405 READ_WORD_F(adr, src)
34406 res = DREGu16((Opcode >> 9) & 7);
34408 flag_N = res >> 24;
34410 flag_V = flag_C = 0;
34411 DREGu32((Opcode >> 9) & 7) = res;
34413 #ifdef USE_CYCLONE_TIMING
34428 READ_WORD_F(adr, src)
34429 res = DREGu16((Opcode >> 9) & 7);
34431 flag_N = res >> 24;
34433 flag_V = flag_C = 0;
34434 DREGu32((Opcode >> 9) & 7) = res;
34436 #ifdef USE_CYCLONE_TIMING
34449 adr = GET_SWORD + GET_PC;
34452 READ_WORD_F(adr, src)
34453 res = DREGu16((Opcode >> 9) & 7);
34455 flag_N = res >> 24;
34457 flag_V = flag_C = 0;
34458 DREGu32((Opcode >> 9) & 7) = res;
34460 #ifdef USE_CYCLONE_TIMING
34476 READ_WORD_F(adr, src)
34477 res = DREGu16((Opcode >> 9) & 7);
34479 flag_N = res >> 24;
34481 flag_V = flag_C = 0;
34482 DREGu32((Opcode >> 9) & 7) = res;
34484 #ifdef USE_CYCLONE_TIMING
34498 res = DREGu16((Opcode >> 9) & 7);
34500 flag_N = res >> 24;
34502 flag_V = flag_C = 0;
34503 DREGu32((Opcode >> 9) & 7) = res;
34504 #ifdef USE_CYCLONE_TIMING
34520 READ_WORD_F(adr, src)
34521 res = DREGu16((Opcode >> 9) & 7);
34523 flag_N = res >> 24;
34525 flag_V = flag_C = 0;
34526 DREGu32((Opcode >> 9) & 7) = res;
34528 #ifdef USE_CYCLONE_TIMING
34544 READ_WORD_F(adr, src)
34545 res = DREGu16((Opcode >> 9) & 7);
34547 flag_N = res >> 24;
34549 flag_V = flag_C = 0;
34550 DREGu32((Opcode >> 9) & 7) = res;
34552 #ifdef USE_CYCLONE_TIMING
34565 src = (s32)DREGs16((Opcode >> 0) & 7);
34566 res = (s32)DREGs16((Opcode >> 9) & 7);
34567 res = ((s32)res) * ((s32)src);
34568 flag_N = res >> 24;
34570 flag_V = flag_C = 0;
34571 DREGu32((Opcode >> 9) & 7) = res;
34572 #ifdef USE_CYCLONE_TIMING
34585 adr = AREG((Opcode >> 0) & 7);
34587 READSX_WORD_F(adr, src)
34588 res = (s32)DREGs16((Opcode >> 9) & 7);
34589 res = ((s32)res) * ((s32)src);
34590 flag_N = res >> 24;
34592 flag_V = flag_C = 0;
34593 DREGu32((Opcode >> 9) & 7) = res;
34595 #ifdef USE_CYCLONE_TIMING
34608 adr = AREG((Opcode >> 0) & 7);
34609 AREG((Opcode >> 0) & 7) += 2;
34611 READSX_WORD_F(adr, src)
34612 res = (s32)DREGs16((Opcode >> 9) & 7);
34613 res = ((s32)res) * ((s32)src);
34614 flag_N = res >> 24;
34616 flag_V = flag_C = 0;
34617 DREGu32((Opcode >> 9) & 7) = res;
34619 #ifdef USE_CYCLONE_TIMING
34632 adr = AREG((Opcode >> 0) & 7) - 2;
34633 AREG((Opcode >> 0) & 7) = adr;
34635 READSX_WORD_F(adr, src)
34636 res = (s32)DREGs16((Opcode >> 9) & 7);
34637 res = ((s32)res) * ((s32)src);
34638 flag_N = res >> 24;
34640 flag_V = flag_C = 0;
34641 DREGu32((Opcode >> 9) & 7) = res;
34643 #ifdef USE_CYCLONE_TIMING
34657 adr += AREG((Opcode >> 0) & 7);
34659 READSX_WORD_F(adr, src)
34660 res = (s32)DREGs16((Opcode >> 9) & 7);
34661 res = ((s32)res) * ((s32)src);
34662 flag_N = res >> 24;
34664 flag_V = flag_C = 0;
34665 DREGu32((Opcode >> 9) & 7) = res;
34667 #ifdef USE_CYCLONE_TIMING
34680 adr = AREG((Opcode >> 0) & 7);
34683 READSX_WORD_F(adr, src)
34684 res = (s32)DREGs16((Opcode >> 9) & 7);
34685 res = ((s32)res) * ((s32)src);
34686 flag_N = res >> 24;
34688 flag_V = flag_C = 0;
34689 DREGu32((Opcode >> 9) & 7) = res;
34691 #ifdef USE_CYCLONE_TIMING
34706 READSX_WORD_F(adr, src)
34707 res = (s32)DREGs16((Opcode >> 9) & 7);
34708 res = ((s32)res) * ((s32)src);
34709 flag_N = res >> 24;
34711 flag_V = flag_C = 0;
34712 DREGu32((Opcode >> 9) & 7) = res;
34714 #ifdef USE_CYCLONE_TIMING
34729 READSX_WORD_F(adr, src)
34730 res = (s32)DREGs16((Opcode >> 9) & 7);
34731 res = ((s32)res) * ((s32)src);
34732 flag_N = res >> 24;
34734 flag_V = flag_C = 0;
34735 DREGu32((Opcode >> 9) & 7) = res;
34737 #ifdef USE_CYCLONE_TIMING
34750 adr = GET_SWORD + GET_PC;
34753 READSX_WORD_F(adr, src)
34754 res = (s32)DREGs16((Opcode >> 9) & 7);
34755 res = ((s32)res) * ((s32)src);
34756 flag_N = res >> 24;
34758 flag_V = flag_C = 0;
34759 DREGu32((Opcode >> 9) & 7) = res;
34761 #ifdef USE_CYCLONE_TIMING
34777 READSX_WORD_F(adr, src)
34778 res = (s32)DREGs16((Opcode >> 9) & 7);
34779 res = ((s32)res) * ((s32)src);
34780 flag_N = res >> 24;
34782 flag_V = flag_C = 0;
34783 DREGu32((Opcode >> 9) & 7) = res;
34785 #ifdef USE_CYCLONE_TIMING
34799 res = (s32)DREGs16((Opcode >> 9) & 7);
34800 res = ((s32)res) * ((s32)src);
34801 flag_N = res >> 24;
34803 flag_V = flag_C = 0;
34804 DREGu32((Opcode >> 9) & 7) = res;
34805 #ifdef USE_CYCLONE_TIMING
34821 READSX_WORD_F(adr, src)
34822 res = (s32)DREGs16((Opcode >> 9) & 7);
34823 res = ((s32)res) * ((s32)src);
34824 flag_N = res >> 24;
34826 flag_V = flag_C = 0;
34827 DREGu32((Opcode >> 9) & 7) = res;
34829 #ifdef USE_CYCLONE_TIMING
34845 READSX_WORD_F(adr, src)
34846 res = (s32)DREGs16((Opcode >> 9) & 7);
34847 res = ((s32)res) * ((s32)src);
34848 flag_N = res >> 24;
34850 flag_V = flag_C = 0;
34851 DREGu32((Opcode >> 9) & 7) = res;
34853 #ifdef USE_CYCLONE_TIMING
34866 res = DREGu32((Opcode >> 0) & 7);
34867 src = DREGu32((Opcode >> 9) & 7);
34868 DREGu32((Opcode >> 9) & 7) = res;
34870 DREGu32((Opcode >> 0) & 7) = res;
34880 res = AREGu32((Opcode >> 0) & 7);
34881 src = AREGu32((Opcode >> 9) & 7);
34882 AREG((Opcode >> 9) & 7) = res;
34884 AREG((Opcode >> 0) & 7) = res;
34894 res = AREGu32((Opcode >> 0) & 7);
34895 src = DREGu32((Opcode >> 9) & 7);
34896 DREGu32((Opcode >> 9) & 7) = res;
34898 AREG((Opcode >> 0) & 7) = res;
34908 src = DREGu8((Opcode >> 0) & 7);
34909 dst = DREGu8((Opcode >> 9) & 7);
34911 flag_N = flag_X = flag_C = res;
34912 flag_V = (src ^ res) & (dst ^ res);
34913 flag_NotZ = res & 0xFF;
34914 DREGu8((Opcode >> 9) & 7) = res;
34925 // can't read byte from Ax registers !
34926 m68kcontext.execinfo |= M68K_FAULTED;
34927 m68kcontext.io_cycle_counter = 0;
34929 goto famec_Exec_End;
34930 dst = DREGu8((Opcode >> 9) & 7);
34932 flag_N = flag_X = flag_C = res;
34933 flag_V = (src ^ res) & (dst ^ res);
34934 flag_NotZ = res & 0xFF;
34935 DREGu8((Opcode >> 9) & 7) = res;
34947 adr = AREG((Opcode >> 0) & 7);
34949 READ_BYTE_F(adr, src)
34950 dst = DREGu8((Opcode >> 9) & 7);
34952 flag_N = flag_X = flag_C = res;
34953 flag_V = (src ^ res) & (dst ^ res);
34954 flag_NotZ = res & 0xFF;
34955 DREGu8((Opcode >> 9) & 7) = res;
34966 adr = AREG((Opcode >> 0) & 7);
34967 AREG((Opcode >> 0) & 7) += 1;
34969 READ_BYTE_F(adr, src)
34970 dst = DREGu8((Opcode >> 9) & 7);
34972 flag_N = flag_X = flag_C = res;
34973 flag_V = (src ^ res) & (dst ^ res);
34974 flag_NotZ = res & 0xFF;
34975 DREGu8((Opcode >> 9) & 7) = res;
34986 adr = AREG((Opcode >> 0) & 7) - 1;
34987 AREG((Opcode >> 0) & 7) = adr;
34989 READ_BYTE_F(adr, src)
34990 dst = DREGu8((Opcode >> 9) & 7);
34992 flag_N = flag_X = flag_C = res;
34993 flag_V = (src ^ res) & (dst ^ res);
34994 flag_NotZ = res & 0xFF;
34995 DREGu8((Opcode >> 9) & 7) = res;
35007 adr += AREG((Opcode >> 0) & 7);
35009 READ_BYTE_F(adr, src)
35010 dst = DREGu8((Opcode >> 9) & 7);
35012 flag_N = flag_X = flag_C = res;
35013 flag_V = (src ^ res) & (dst ^ res);
35014 flag_NotZ = res & 0xFF;
35015 DREGu8((Opcode >> 9) & 7) = res;
35026 adr = AREG((Opcode >> 0) & 7);
35029 READ_BYTE_F(adr, src)
35030 dst = DREGu8((Opcode >> 9) & 7);
35032 flag_N = flag_X = flag_C = res;
35033 flag_V = (src ^ res) & (dst ^ res);
35034 flag_NotZ = res & 0xFF;
35035 DREGu8((Opcode >> 9) & 7) = res;
35048 READ_BYTE_F(adr, src)
35049 dst = DREGu8((Opcode >> 9) & 7);
35051 flag_N = flag_X = flag_C = res;
35052 flag_V = (src ^ res) & (dst ^ res);
35053 flag_NotZ = res & 0xFF;
35054 DREGu8((Opcode >> 9) & 7) = res;
35067 READ_BYTE_F(adr, src)
35068 dst = DREGu8((Opcode >> 9) & 7);
35070 flag_N = flag_X = flag_C = res;
35071 flag_V = (src ^ res) & (dst ^ res);
35072 flag_NotZ = res & 0xFF;
35073 DREGu8((Opcode >> 9) & 7) = res;
35084 adr = GET_SWORD + GET_PC;
35087 READ_BYTE_F(adr, src)
35088 dst = DREGu8((Opcode >> 9) & 7);
35090 flag_N = flag_X = flag_C = res;
35091 flag_V = (src ^ res) & (dst ^ res);
35092 flag_NotZ = res & 0xFF;
35093 DREGu8((Opcode >> 9) & 7) = res;
35107 READ_BYTE_F(adr, src)
35108 dst = DREGu8((Opcode >> 9) & 7);
35110 flag_N = flag_X = flag_C = res;
35111 flag_V = (src ^ res) & (dst ^ res);
35112 flag_NotZ = res & 0xFF;
35113 DREGu8((Opcode >> 9) & 7) = res;
35125 dst = DREGu8((Opcode >> 9) & 7);
35127 flag_N = flag_X = flag_C = res;
35128 flag_V = (src ^ res) & (dst ^ res);
35129 flag_NotZ = res & 0xFF;
35130 DREGu8((Opcode >> 9) & 7) = res;
35143 READ_BYTE_F(adr, src)
35144 dst = DREGu8((Opcode >> 9) & 7);
35146 flag_N = flag_X = flag_C = res;
35147 flag_V = (src ^ res) & (dst ^ res);
35148 flag_NotZ = res & 0xFF;
35149 DREGu8((Opcode >> 9) & 7) = res;
35163 READ_BYTE_F(adr, src)
35164 dst = DREGu8((Opcode >> 9) & 7);
35166 flag_N = flag_X = flag_C = res;
35167 flag_V = (src ^ res) & (dst ^ res);
35168 flag_NotZ = res & 0xFF;
35169 DREGu8((Opcode >> 9) & 7) = res;
35180 src = DREGu16((Opcode >> 0) & 7);
35181 dst = DREGu16((Opcode >> 9) & 7);
35183 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35184 flag_N = flag_X = flag_C = res >> 8;
35185 flag_NotZ = res & 0xFFFF;
35186 DREGu16((Opcode >> 9) & 7) = res;
35196 src = AREGu16((Opcode >> 0) & 7);
35197 dst = DREGu16((Opcode >> 9) & 7);
35199 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35200 flag_N = flag_X = flag_C = res >> 8;
35201 flag_NotZ = res & 0xFFFF;
35202 DREGu16((Opcode >> 9) & 7) = res;
35212 adr = AREG((Opcode >> 0) & 7);
35214 READ_WORD_F(adr, src)
35215 dst = DREGu16((Opcode >> 9) & 7);
35217 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35218 flag_N = flag_X = flag_C = res >> 8;
35219 flag_NotZ = res & 0xFFFF;
35220 DREGu16((Opcode >> 9) & 7) = res;
35231 adr = AREG((Opcode >> 0) & 7);
35232 AREG((Opcode >> 0) & 7) += 2;
35234 READ_WORD_F(adr, src)
35235 dst = DREGu16((Opcode >> 9) & 7);
35237 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35238 flag_N = flag_X = flag_C = res >> 8;
35239 flag_NotZ = res & 0xFFFF;
35240 DREGu16((Opcode >> 9) & 7) = res;
35251 adr = AREG((Opcode >> 0) & 7) - 2;
35252 AREG((Opcode >> 0) & 7) = adr;
35254 READ_WORD_F(adr, src)
35255 dst = DREGu16((Opcode >> 9) & 7);
35257 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35258 flag_N = flag_X = flag_C = res >> 8;
35259 flag_NotZ = res & 0xFFFF;
35260 DREGu16((Opcode >> 9) & 7) = res;
35272 adr += AREG((Opcode >> 0) & 7);
35274 READ_WORD_F(adr, src)
35275 dst = DREGu16((Opcode >> 9) & 7);
35277 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35278 flag_N = flag_X = flag_C = res >> 8;
35279 flag_NotZ = res & 0xFFFF;
35280 DREGu16((Opcode >> 9) & 7) = res;
35291 adr = AREG((Opcode >> 0) & 7);
35294 READ_WORD_F(adr, src)
35295 dst = DREGu16((Opcode >> 9) & 7);
35297 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35298 flag_N = flag_X = flag_C = res >> 8;
35299 flag_NotZ = res & 0xFFFF;
35300 DREGu16((Opcode >> 9) & 7) = res;
35313 READ_WORD_F(adr, src)
35314 dst = DREGu16((Opcode >> 9) & 7);
35316 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35317 flag_N = flag_X = flag_C = res >> 8;
35318 flag_NotZ = res & 0xFFFF;
35319 DREGu16((Opcode >> 9) & 7) = res;
35332 READ_WORD_F(adr, src)
35333 dst = DREGu16((Opcode >> 9) & 7);
35335 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35336 flag_N = flag_X = flag_C = res >> 8;
35337 flag_NotZ = res & 0xFFFF;
35338 DREGu16((Opcode >> 9) & 7) = res;
35349 adr = GET_SWORD + GET_PC;
35352 READ_WORD_F(adr, src)
35353 dst = DREGu16((Opcode >> 9) & 7);
35355 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35356 flag_N = flag_X = flag_C = res >> 8;
35357 flag_NotZ = res & 0xFFFF;
35358 DREGu16((Opcode >> 9) & 7) = res;
35372 READ_WORD_F(adr, src)
35373 dst = DREGu16((Opcode >> 9) & 7);
35375 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35376 flag_N = flag_X = flag_C = res >> 8;
35377 flag_NotZ = res & 0xFFFF;
35378 DREGu16((Opcode >> 9) & 7) = res;
35390 dst = DREGu16((Opcode >> 9) & 7);
35392 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35393 flag_N = flag_X = flag_C = res >> 8;
35394 flag_NotZ = res & 0xFFFF;
35395 DREGu16((Opcode >> 9) & 7) = res;
35408 READ_WORD_F(adr, src)
35409 dst = DREGu16((Opcode >> 9) & 7);
35411 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35412 flag_N = flag_X = flag_C = res >> 8;
35413 flag_NotZ = res & 0xFFFF;
35414 DREGu16((Opcode >> 9) & 7) = res;
35428 READ_WORD_F(adr, src)
35429 dst = DREGu16((Opcode >> 9) & 7);
35431 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35432 flag_N = flag_X = flag_C = res >> 8;
35433 flag_NotZ = res & 0xFFFF;
35434 DREGu16((Opcode >> 9) & 7) = res;
35445 src = DREGu32((Opcode >> 0) & 7);
35446 dst = DREGu32((Opcode >> 9) & 7);
35449 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35450 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35451 flag_N = res >> 24;
35452 DREGu32((Opcode >> 9) & 7) = res;
35462 src = AREGu32((Opcode >> 0) & 7);
35463 dst = DREGu32((Opcode >> 9) & 7);
35466 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35467 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35468 flag_N = res >> 24;
35469 DREGu32((Opcode >> 9) & 7) = res;
35479 adr = AREG((Opcode >> 0) & 7);
35481 READ_LONG_F(adr, src)
35482 dst = DREGu32((Opcode >> 9) & 7);
35485 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35486 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35487 flag_N = res >> 24;
35488 DREGu32((Opcode >> 9) & 7) = res;
35499 adr = AREG((Opcode >> 0) & 7);
35500 AREG((Opcode >> 0) & 7) += 4;
35502 READ_LONG_F(adr, src)
35503 dst = DREGu32((Opcode >> 9) & 7);
35506 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35507 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35508 flag_N = res >> 24;
35509 DREGu32((Opcode >> 9) & 7) = res;
35520 adr = AREG((Opcode >> 0) & 7) - 4;
35521 AREG((Opcode >> 0) & 7) = adr;
35523 READ_LONG_F(adr, src)
35524 dst = DREGu32((Opcode >> 9) & 7);
35527 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35528 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35529 flag_N = res >> 24;
35530 DREGu32((Opcode >> 9) & 7) = res;
35542 adr += AREG((Opcode >> 0) & 7);
35544 READ_LONG_F(adr, src)
35545 dst = DREGu32((Opcode >> 9) & 7);
35548 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35549 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35550 flag_N = res >> 24;
35551 DREGu32((Opcode >> 9) & 7) = res;
35562 adr = AREG((Opcode >> 0) & 7);
35565 READ_LONG_F(adr, src)
35566 dst = DREGu32((Opcode >> 9) & 7);
35569 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35570 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35571 flag_N = res >> 24;
35572 DREGu32((Opcode >> 9) & 7) = res;
35585 READ_LONG_F(adr, src)
35586 dst = DREGu32((Opcode >> 9) & 7);
35589 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35590 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35591 flag_N = res >> 24;
35592 DREGu32((Opcode >> 9) & 7) = res;
35605 READ_LONG_F(adr, src)
35606 dst = DREGu32((Opcode >> 9) & 7);
35609 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35610 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35611 flag_N = res >> 24;
35612 DREGu32((Opcode >> 9) & 7) = res;
35623 adr = GET_SWORD + GET_PC;
35626 READ_LONG_F(adr, src)
35627 dst = DREGu32((Opcode >> 9) & 7);
35630 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35631 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35632 flag_N = res >> 24;
35633 DREGu32((Opcode >> 9) & 7) = res;
35647 READ_LONG_F(adr, src)
35648 dst = DREGu32((Opcode >> 9) & 7);
35651 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35652 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35653 flag_N = res >> 24;
35654 DREGu32((Opcode >> 9) & 7) = res;
35666 dst = DREGu32((Opcode >> 9) & 7);
35669 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35670 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35671 flag_N = res >> 24;
35672 DREGu32((Opcode >> 9) & 7) = res;
35685 READ_LONG_F(adr, src)
35686 dst = DREGu32((Opcode >> 9) & 7);
35689 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35690 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35691 flag_N = res >> 24;
35692 DREGu32((Opcode >> 9) & 7) = res;
35706 READ_LONG_F(adr, src)
35707 dst = DREGu32((Opcode >> 9) & 7);
35710 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35711 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35712 flag_N = res >> 24;
35713 DREGu32((Opcode >> 9) & 7) = res;
35724 src = DREGu8((Opcode >> 9) & 7);
35725 adr = AREG((Opcode >> 0) & 7);
35727 READ_BYTE_F(adr, dst)
35729 flag_N = flag_X = flag_C = res;
35730 flag_V = (src ^ res) & (dst ^ res);
35731 flag_NotZ = res & 0xFF;
35732 WRITE_BYTE_F(adr, res)
35743 src = DREGu8((Opcode >> 9) & 7);
35744 adr = AREG((Opcode >> 0) & 7);
35745 AREG((Opcode >> 0) & 7) += 1;
35747 READ_BYTE_F(adr, dst)
35749 flag_N = flag_X = flag_C = res;
35750 flag_V = (src ^ res) & (dst ^ res);
35751 flag_NotZ = res & 0xFF;
35752 WRITE_BYTE_F(adr, res)
35763 src = DREGu8((Opcode >> 9) & 7);
35764 adr = AREG((Opcode >> 0) & 7) - 1;
35765 AREG((Opcode >> 0) & 7) = adr;
35767 READ_BYTE_F(adr, dst)
35769 flag_N = flag_X = flag_C = res;
35770 flag_V = (src ^ res) & (dst ^ res);
35771 flag_NotZ = res & 0xFF;
35772 WRITE_BYTE_F(adr, res)
35783 src = DREGu8((Opcode >> 9) & 7);
35785 adr += AREG((Opcode >> 0) & 7);
35787 READ_BYTE_F(adr, dst)
35789 flag_N = flag_X = flag_C = res;
35790 flag_V = (src ^ res) & (dst ^ res);
35791 flag_NotZ = res & 0xFF;
35792 WRITE_BYTE_F(adr, res)
35803 src = DREGu8((Opcode >> 9) & 7);
35804 adr = AREG((Opcode >> 0) & 7);
35807 READ_BYTE_F(adr, dst)
35809 flag_N = flag_X = flag_C = res;
35810 flag_V = (src ^ res) & (dst ^ res);
35811 flag_NotZ = res & 0xFF;
35812 WRITE_BYTE_F(adr, res)
35823 src = DREGu8((Opcode >> 9) & 7);
35826 READ_BYTE_F(adr, dst)
35828 flag_N = flag_X = flag_C = res;
35829 flag_V = (src ^ res) & (dst ^ res);
35830 flag_NotZ = res & 0xFF;
35831 WRITE_BYTE_F(adr, res)
35842 src = DREGu8((Opcode >> 9) & 7);
35845 READ_BYTE_F(adr, dst)
35847 flag_N = flag_X = flag_C = res;
35848 flag_V = (src ^ res) & (dst ^ res);
35849 flag_NotZ = res & 0xFF;
35850 WRITE_BYTE_F(adr, res)
35861 src = DREGu8((Opcode >> 9) & 7);
35865 READ_BYTE_F(adr, dst)
35867 flag_N = flag_X = flag_C = res;
35868 flag_V = (src ^ res) & (dst ^ res);
35869 flag_NotZ = res & 0xFF;
35870 WRITE_BYTE_F(adr, res)
35881 src = DREGu8((Opcode >> 9) & 7);
35885 READ_BYTE_F(adr, dst)
35887 flag_N = flag_X = flag_C = res;
35888 flag_V = (src ^ res) & (dst ^ res);
35889 flag_NotZ = res & 0xFF;
35890 WRITE_BYTE_F(adr, res)
35901 src = DREGu16((Opcode >> 9) & 7);
35902 adr = AREG((Opcode >> 0) & 7);
35904 READ_WORD_F(adr, dst)
35906 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35907 flag_N = flag_X = flag_C = res >> 8;
35908 flag_NotZ = res & 0xFFFF;
35909 WRITE_WORD_F(adr, res)
35920 src = DREGu16((Opcode >> 9) & 7);
35921 adr = AREG((Opcode >> 0) & 7);
35922 AREG((Opcode >> 0) & 7) += 2;
35924 READ_WORD_F(adr, dst)
35926 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35927 flag_N = flag_X = flag_C = res >> 8;
35928 flag_NotZ = res & 0xFFFF;
35929 WRITE_WORD_F(adr, res)
35940 src = DREGu16((Opcode >> 9) & 7);
35941 adr = AREG((Opcode >> 0) & 7) - 2;
35942 AREG((Opcode >> 0) & 7) = adr;
35944 READ_WORD_F(adr, dst)
35946 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35947 flag_N = flag_X = flag_C = res >> 8;
35948 flag_NotZ = res & 0xFFFF;
35949 WRITE_WORD_F(adr, res)
35960 src = DREGu16((Opcode >> 9) & 7);
35962 adr += AREG((Opcode >> 0) & 7);
35964 READ_WORD_F(adr, dst)
35966 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35967 flag_N = flag_X = flag_C = res >> 8;
35968 flag_NotZ = res & 0xFFFF;
35969 WRITE_WORD_F(adr, res)
35980 src = DREGu16((Opcode >> 9) & 7);
35981 adr = AREG((Opcode >> 0) & 7);
35984 READ_WORD_F(adr, dst)
35986 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35987 flag_N = flag_X = flag_C = res >> 8;
35988 flag_NotZ = res & 0xFFFF;
35989 WRITE_WORD_F(adr, res)
36000 src = DREGu16((Opcode >> 9) & 7);
36003 READ_WORD_F(adr, dst)
36005 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36006 flag_N = flag_X = flag_C = res >> 8;
36007 flag_NotZ = res & 0xFFFF;
36008 WRITE_WORD_F(adr, res)
36019 src = DREGu16((Opcode >> 9) & 7);
36022 READ_WORD_F(adr, dst)
36024 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36025 flag_N = flag_X = flag_C = res >> 8;
36026 flag_NotZ = res & 0xFFFF;
36027 WRITE_WORD_F(adr, res)
36038 src = DREGu16((Opcode >> 9) & 7);
36042 READ_WORD_F(adr, dst)
36044 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36045 flag_N = flag_X = flag_C = res >> 8;
36046 flag_NotZ = res & 0xFFFF;
36047 WRITE_WORD_F(adr, res)
36058 src = DREGu16((Opcode >> 9) & 7);
36062 READ_WORD_F(adr, dst)
36064 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36065 flag_N = flag_X = flag_C = res >> 8;
36066 flag_NotZ = res & 0xFFFF;
36067 WRITE_WORD_F(adr, res)
36078 src = DREGu32((Opcode >> 9) & 7);
36079 adr = AREG((Opcode >> 0) & 7);
36081 READ_LONG_F(adr, dst)
36084 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36085 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36086 flag_N = res >> 24;
36087 WRITE_LONG_F(adr, res)
36098 src = DREGu32((Opcode >> 9) & 7);
36099 adr = AREG((Opcode >> 0) & 7);
36100 AREG((Opcode >> 0) & 7) += 4;
36102 READ_LONG_F(adr, dst)
36105 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36106 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36107 flag_N = res >> 24;
36108 WRITE_LONG_F(adr, res)
36119 src = DREGu32((Opcode >> 9) & 7);
36120 adr = AREG((Opcode >> 0) & 7) - 4;
36121 AREG((Opcode >> 0) & 7) = adr;
36123 READ_LONG_F(adr, dst)
36126 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36127 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36128 flag_N = res >> 24;
36129 WRITE_LONG_F(adr, res)
36140 src = DREGu32((Opcode >> 9) & 7);
36142 adr += AREG((Opcode >> 0) & 7);
36144 READ_LONG_F(adr, dst)
36147 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36148 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36149 flag_N = res >> 24;
36150 WRITE_LONG_F(adr, res)
36161 src = DREGu32((Opcode >> 9) & 7);
36162 adr = AREG((Opcode >> 0) & 7);
36165 READ_LONG_F(adr, dst)
36168 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36169 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36170 flag_N = res >> 24;
36171 WRITE_LONG_F(adr, res)
36182 src = DREGu32((Opcode >> 9) & 7);
36185 READ_LONG_F(adr, dst)
36188 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36189 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36190 flag_N = res >> 24;
36191 WRITE_LONG_F(adr, res)
36202 src = DREGu32((Opcode >> 9) & 7);
36205 READ_LONG_F(adr, dst)
36208 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36209 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36210 flag_N = res >> 24;
36211 WRITE_LONG_F(adr, res)
36222 src = DREGu32((Opcode >> 9) & 7);
36226 READ_LONG_F(adr, dst)
36229 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36230 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36231 flag_N = res >> 24;
36232 WRITE_LONG_F(adr, res)
36243 src = DREGu32((Opcode >> 9) & 7);
36247 READ_LONG_F(adr, dst)
36250 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36251 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36252 flag_N = res >> 24;
36253 WRITE_LONG_F(adr, res)
36264 src = DREGu8((Opcode >> 0) & 7);
36265 dst = DREGu8((Opcode >> 9) & 7);
36266 res = dst + src + ((flag_X >> 8) & 1);
36267 flag_N = flag_X = flag_C = res;
36268 flag_V = (src ^ res) & (dst ^ res);
36269 flag_NotZ |= res & 0xFF;
36270 DREGu8((Opcode >> 9) & 7) = res;
36280 src = DREGu16((Opcode >> 0) & 7);
36281 dst = DREGu16((Opcode >> 9) & 7);
36282 res = dst + src + ((flag_X >> 8) & 1);
36283 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36284 flag_N = flag_X = flag_C = res >> 8;
36285 flag_NotZ |= res & 0xFFFF;
36286 DREGu16((Opcode >> 9) & 7) = res;
36296 src = DREGu32((Opcode >> 0) & 7);
36297 dst = DREGu32((Opcode >> 9) & 7);
36298 res = dst + src + ((flag_X >> 8) & 1);
36300 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36301 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36302 flag_N = res >> 24;
36303 DREGu32((Opcode >> 9) & 7) = res;
36313 adr = AREG((Opcode >> 0) & 7) - 1;
36314 AREG((Opcode >> 0) & 7) = adr;
36316 READ_BYTE_F(adr, src)
36317 adr = AREG((Opcode >> 9) & 7) - 1;
36318 AREG((Opcode >> 9) & 7) = adr;
36319 READ_BYTE_F(adr, dst)
36320 res = dst + src + ((flag_X >> 8) & 1);
36321 flag_N = flag_X = flag_C = res;
36322 flag_V = (src ^ res) & (dst ^ res);
36323 flag_NotZ |= res & 0xFF;
36324 WRITE_BYTE_F(adr, res)
36335 adr = AREG((Opcode >> 0) & 7) - 2;
36336 AREG((Opcode >> 0) & 7) = adr;
36338 READ_WORD_F(adr, src)
36339 adr = AREG((Opcode >> 9) & 7) - 2;
36340 AREG((Opcode >> 9) & 7) = adr;
36341 READ_WORD_F(adr, dst)
36342 res = dst + src + ((flag_X >> 8) & 1);
36343 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36344 flag_N = flag_X = flag_C = res >> 8;
36345 flag_NotZ |= res & 0xFFFF;
36346 WRITE_WORD_F(adr, res)
36357 adr = AREG((Opcode >> 0) & 7) - 4;
36358 AREG((Opcode >> 0) & 7) = adr;
36360 READ_LONG_F(adr, src)
36361 adr = AREG((Opcode >> 9) & 7) - 4;
36362 AREG((Opcode >> 9) & 7) = adr;
36363 READ_LONG_F(adr, dst)
36364 res = dst + src + ((flag_X >> 8) & 1);
36366 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36367 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36368 flag_N = res >> 24;
36369 WRITE_LONG_F(adr, res)
36383 READ_BYTE_F(adr, src)
36384 adr = AREG((Opcode >> 9) & 7) - 1;
36385 AREG((Opcode >> 9) & 7) = adr;
36386 READ_BYTE_F(adr, dst)
36387 res = dst + src + ((flag_X >> 8) & 1);
36388 flag_N = flag_X = flag_C = res;
36389 flag_V = (src ^ res) & (dst ^ res);
36390 flag_NotZ |= res & 0xFF;
36391 WRITE_BYTE_F(adr, res)
36405 READ_WORD_F(adr, src)
36406 adr = AREG((Opcode >> 9) & 7) - 2;
36407 AREG((Opcode >> 9) & 7) = adr;
36408 READ_WORD_F(adr, dst)
36409 res = dst + src + ((flag_X >> 8) & 1);
36410 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36411 flag_N = flag_X = flag_C = res >> 8;
36412 flag_NotZ |= res & 0xFFFF;
36413 WRITE_WORD_F(adr, res)
36427 READ_LONG_F(adr, src)
36428 adr = AREG((Opcode >> 9) & 7) - 4;
36429 AREG((Opcode >> 9) & 7) = adr;
36430 READ_LONG_F(adr, dst)
36431 res = dst + src + ((flag_X >> 8) & 1);
36433 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36434 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36435 flag_N = res >> 24;
36436 WRITE_LONG_F(adr, res)
36447 adr = AREG((Opcode >> 0) & 7) - 1;
36448 AREG((Opcode >> 0) & 7) = adr;
36450 READ_BYTE_F(adr, src)
36453 READ_BYTE_F(adr, dst)
36454 res = dst + src + ((flag_X >> 8) & 1);
36455 flag_N = flag_X = flag_C = res;
36456 flag_V = (src ^ res) & (dst ^ res);
36457 flag_NotZ |= res & 0xFF;
36458 WRITE_BYTE_F(adr, res)
36469 adr = AREG((Opcode >> 0) & 7) - 2;
36470 AREG((Opcode >> 0) & 7) = adr;
36472 READ_WORD_F(adr, src)
36475 READ_WORD_F(adr, dst)
36476 res = dst + src + ((flag_X >> 8) & 1);
36477 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36478 flag_N = flag_X = flag_C = res >> 8;
36479 flag_NotZ |= res & 0xFFFF;
36480 WRITE_WORD_F(adr, res)
36491 adr = AREG((Opcode >> 0) & 7) - 4;
36492 AREG((Opcode >> 0) & 7) = adr;
36494 READ_LONG_F(adr, src)
36497 READ_LONG_F(adr, dst)
36498 res = dst + src + ((flag_X >> 8) & 1);
36500 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36501 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36502 flag_N = res >> 24;
36503 WRITE_LONG_F(adr, res)
36517 READ_BYTE_F(adr, src)
36520 READ_BYTE_F(adr, dst)
36521 res = dst + src + ((flag_X >> 8) & 1);
36522 flag_N = flag_X = flag_C = res;
36523 flag_V = (src ^ res) & (dst ^ res);
36524 flag_NotZ |= res & 0xFF;
36525 WRITE_BYTE_F(adr, res)
36539 READ_WORD_F(adr, src)
36542 READ_WORD_F(adr, dst)
36543 res = dst + src + ((flag_X >> 8) & 1);
36544 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36545 flag_N = flag_X = flag_C = res >> 8;
36546 flag_NotZ |= res & 0xFFFF;
36547 WRITE_WORD_F(adr, res)
36561 READ_LONG_F(adr, src)
36564 READ_LONG_F(adr, dst)
36565 res = dst + src + ((flag_X >> 8) & 1);
36567 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36568 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36569 flag_N = res >> 24;
36570 WRITE_LONG_F(adr, res)
36581 src = (s32)DREGs16((Opcode >> 0) & 7);
36582 dst = AREGu32((Opcode >> 9) & 7);
36584 AREG((Opcode >> 9) & 7) = res;
36594 src = (s32)AREGs16((Opcode >> 0) & 7);
36595 dst = AREGu32((Opcode >> 9) & 7);
36597 AREG((Opcode >> 9) & 7) = res;
36607 adr = AREG((Opcode >> 0) & 7);
36609 READSX_WORD_F(adr, src)
36610 dst = AREGu32((Opcode >> 9) & 7);
36612 AREG((Opcode >> 9) & 7) = res;
36614 #ifdef USE_CYCLONE_TIMING
36627 adr = AREG((Opcode >> 0) & 7);
36628 AREG((Opcode >> 0) & 7) += 2;
36630 READSX_WORD_F(adr, src)
36631 dst = AREGu32((Opcode >> 9) & 7);
36633 AREG((Opcode >> 9) & 7) = res;
36635 #ifdef USE_CYCLONE_TIMING
36648 adr = AREG((Opcode >> 0) & 7) - 2;
36649 AREG((Opcode >> 0) & 7) = adr;
36651 READSX_WORD_F(adr, src)
36652 dst = AREGu32((Opcode >> 9) & 7);
36654 AREG((Opcode >> 9) & 7) = res;
36656 #ifdef USE_CYCLONE_TIMING
36670 adr += AREG((Opcode >> 0) & 7);
36672 READSX_WORD_F(adr, src)
36673 dst = AREGu32((Opcode >> 9) & 7);
36675 AREG((Opcode >> 9) & 7) = res;
36677 #ifdef USE_CYCLONE_TIMING
36690 adr = AREG((Opcode >> 0) & 7);
36693 READSX_WORD_F(adr, src)
36694 dst = AREGu32((Opcode >> 9) & 7);
36696 AREG((Opcode >> 9) & 7) = res;
36698 #ifdef USE_CYCLONE_TIMING
36713 READSX_WORD_F(adr, src)
36714 dst = AREGu32((Opcode >> 9) & 7);
36716 AREG((Opcode >> 9) & 7) = res;
36718 #ifdef USE_CYCLONE_TIMING
36733 READSX_WORD_F(adr, src)
36734 dst = AREGu32((Opcode >> 9) & 7);
36736 AREG((Opcode >> 9) & 7) = res;
36738 #ifdef USE_CYCLONE_TIMING
36751 adr = GET_SWORD + GET_PC;
36754 READSX_WORD_F(adr, src)
36755 dst = AREGu32((Opcode >> 9) & 7);
36757 AREG((Opcode >> 9) & 7) = res;
36759 #ifdef USE_CYCLONE_TIMING
36775 READSX_WORD_F(adr, src)
36776 dst = AREGu32((Opcode >> 9) & 7);
36778 AREG((Opcode >> 9) & 7) = res;
36780 #ifdef USE_CYCLONE_TIMING
36794 dst = AREGu32((Opcode >> 9) & 7);
36796 AREG((Opcode >> 9) & 7) = res;
36809 READSX_WORD_F(adr, src)
36810 dst = AREGu32((Opcode >> 9) & 7);
36812 AREG((Opcode >> 9) & 7) = res;
36814 #ifdef USE_CYCLONE_TIMING
36830 READSX_WORD_F(adr, src)
36831 dst = AREGu32((Opcode >> 9) & 7);
36833 AREG((Opcode >> 9) & 7) = res;
36835 #ifdef USE_CYCLONE_TIMING
36848 src = (s32)DREGs32((Opcode >> 0) & 7);
36849 dst = AREGu32((Opcode >> 9) & 7);
36851 AREG((Opcode >> 9) & 7) = res;
36852 #ifdef USE_CYCLONE_TIMING
36865 src = (s32)AREGs32((Opcode >> 0) & 7);
36866 dst = AREGu32((Opcode >> 9) & 7);
36868 AREG((Opcode >> 9) & 7) = res;
36869 #ifdef USE_CYCLONE_TIMING
36882 adr = AREG((Opcode >> 0) & 7);
36884 READSX_LONG_F(adr, src)
36885 dst = AREGu32((Opcode >> 9) & 7);
36887 AREG((Opcode >> 9) & 7) = res;
36898 adr = AREG((Opcode >> 0) & 7);
36899 AREG((Opcode >> 0) & 7) += 4;
36901 READSX_LONG_F(adr, src)
36902 dst = AREGu32((Opcode >> 9) & 7);
36904 AREG((Opcode >> 9) & 7) = res;
36915 adr = AREG((Opcode >> 0) & 7) - 4;
36916 AREG((Opcode >> 0) & 7) = adr;
36918 READSX_LONG_F(adr, src)
36919 dst = AREGu32((Opcode >> 9) & 7);
36921 AREG((Opcode >> 9) & 7) = res;
36933 adr += AREG((Opcode >> 0) & 7);
36935 READSX_LONG_F(adr, src)
36936 dst = AREGu32((Opcode >> 9) & 7);
36938 AREG((Opcode >> 9) & 7) = res;
36949 adr = AREG((Opcode >> 0) & 7);
36952 READSX_LONG_F(adr, src)
36953 dst = AREGu32((Opcode >> 9) & 7);
36955 AREG((Opcode >> 9) & 7) = res;
36968 READSX_LONG_F(adr, src)
36969 dst = AREGu32((Opcode >> 9) & 7);
36971 AREG((Opcode >> 9) & 7) = res;
36984 READSX_LONG_F(adr, src)
36985 dst = AREGu32((Opcode >> 9) & 7);
36987 AREG((Opcode >> 9) & 7) = res;
36998 adr = GET_SWORD + GET_PC;
37001 READSX_LONG_F(adr, src)
37002 dst = AREGu32((Opcode >> 9) & 7);
37004 AREG((Opcode >> 9) & 7) = res;
37018 READSX_LONG_F(adr, src)
37019 dst = AREGu32((Opcode >> 9) & 7);
37021 AREG((Opcode >> 9) & 7) = res;
37033 dst = AREGu32((Opcode >> 9) & 7);
37035 AREG((Opcode >> 9) & 7) = res;
37036 #ifdef USE_CYCLONE_TIMING
37052 READSX_LONG_F(adr, src)
37053 dst = AREGu32((Opcode >> 9) & 7);
37055 AREG((Opcode >> 9) & 7) = res;
37069 READSX_LONG_F(adr, src)
37070 dst = AREGu32((Opcode >> 9) & 7);
37072 AREG((Opcode >> 9) & 7) = res;
37085 sft = (((Opcode >> 9) - 1) & 7) + 1;
37086 m68kcontext.io_cycle_counter -= sft * 2;
37087 src = (s32)DREGs8((Opcode >> 0) & 7);
37089 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37090 res = ((s32)src) >> sft;
37093 DREGu8((Opcode >> 0) & 7) = res;
37105 sft = (((Opcode >> 9) - 1) & 7) + 1;
37106 m68kcontext.io_cycle_counter -= sft * 2;
37107 src = (s32)DREGs16((Opcode >> 0) & 7);
37109 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37110 res = ((s32)src) >> sft;
37113 DREGu16((Opcode >> 0) & 7) = res;
37125 sft = (((Opcode >> 9) - 1) & 7) + 1;
37126 m68kcontext.io_cycle_counter -= sft * 2;
37127 src = (s32)DREGs32((Opcode >> 0) & 7);
37129 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37130 res = ((s32)src) >> sft;
37131 flag_N = res >> 24;
37133 DREGu32((Opcode >> 0) & 7) = res;
37145 sft = (((Opcode >> 9) - 1) & 7) + 1;
37146 m68kcontext.io_cycle_counter -= sft * 2;
37147 src = DREGu8((Opcode >> 0) & 7);
37148 flag_N = flag_V = 0;
37149 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37152 DREGu8((Opcode >> 0) & 7) = res;
37164 sft = (((Opcode >> 9) - 1) & 7) + 1;
37165 m68kcontext.io_cycle_counter -= sft * 2;
37166 src = DREGu16((Opcode >> 0) & 7);
37167 flag_N = flag_V = 0;
37168 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37171 DREGu16((Opcode >> 0) & 7) = res;
37183 sft = (((Opcode >> 9) - 1) & 7) + 1;
37184 m68kcontext.io_cycle_counter -= sft * 2;
37185 src = DREGu32((Opcode >> 0) & 7);
37186 flag_N = flag_V = 0;
37187 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37190 DREGu32((Opcode >> 0) & 7) = res;
37202 sft = (((Opcode >> 9) - 1) & 7) + 1;
37203 m68kcontext.io_cycle_counter -= sft * 2;
37204 src = DREGu8((Opcode >> 0) & 7);
37205 src |= (flag_X & M68K_SR_X) << 0;
37206 res = (src >> sft) | (src << (9 - sft));
37207 flag_X = flag_C = res >> 0;
37210 flag_NotZ = res & 0x000000FF;
37211 DREGu8((Opcode >> 0) & 7) = res;
37223 sft = (((Opcode >> 9) - 1) & 7) + 1;
37224 m68kcontext.io_cycle_counter -= sft * 2;
37225 src = DREGu16((Opcode >> 0) & 7);
37226 src |= (flag_X & M68K_SR_X) << 8;
37227 res = (src >> sft) | (src << (17 - sft));
37228 flag_X = flag_C = res >> 8;
37231 flag_NotZ = res & 0x0000FFFF;
37232 DREGu16((Opcode >> 0) & 7) = res;
37244 sft = (((Opcode >> 9) - 1) & 7) + 1;
37245 m68kcontext.io_cycle_counter -= sft * 2;
37246 src = DREGu32((Opcode >> 0) & 7);
37247 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37248 if (sft == 1) res = (src >> 1) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1)));
37249 else res = (src >> sft) | (src << (33 - sft)) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + sft)));
37252 flag_N = res >> 24;
37254 DREGu32((Opcode >> 0) & 7) = res;
37266 sft = (((Opcode >> 9) - 1) & 7) + 1;
37267 m68kcontext.io_cycle_counter -= sft * 2;
37268 src = DREGu8((Opcode >> 0) & 7);
37270 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37271 res = (src >> sft) | (src << (8 - sft));
37273 flag_NotZ = res & 0x000000FF;
37274 DREGu8((Opcode >> 0) & 7) = res;
37286 sft = (((Opcode >> 9) - 1) & 7) + 1;
37287 m68kcontext.io_cycle_counter -= sft * 2;
37288 src = DREGu16((Opcode >> 0) & 7);
37290 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37291 res = (src >> sft) | (src << (16 - sft));
37293 flag_NotZ = res & 0x0000FFFF;
37294 DREGu16((Opcode >> 0) & 7) = res;
37306 sft = (((Opcode >> 9) - 1) & 7) + 1;
37307 m68kcontext.io_cycle_counter -= sft * 2;
37308 src = DREGu32((Opcode >> 0) & 7);
37310 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37311 res = (src >> sft) | (src << (32 - sft));
37312 flag_N = res >> 24;
37314 DREGu32((Opcode >> 0) & 7) = res;
37326 sft = (((Opcode >> 9) - 1) & 7) + 1;
37327 m68kcontext.io_cycle_counter -= sft * 2;
37328 src = DREGu8((Opcode >> 0) & 7);
37331 flag_X = flag_C = src << (0 + sft);
37334 flag_NotZ = res & 0x000000FF;
37335 DREGu8((Opcode >> 0) & 7) = res;
37337 if ((sft > 7) && (src)) flag_V = M68K_SR_V;
37340 u32 msk = (((s32)0x80000000) >> (sft + 24)) & 0x000000FF;
37342 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37347 if (src) flag_V = M68K_SR_V;
37349 flag_X = flag_C = src << M68K_SR_C_SFT;
37351 DREGu8((Opcode >> 0) & 7) = res;
37365 sft = (((Opcode >> 9) - 1) & 7) + 1;
37366 m68kcontext.io_cycle_counter -= sft * 2;
37367 src = DREGu16((Opcode >> 0) & 7);
37368 flag_X = flag_C = src >> (8 - sft);
37371 flag_NotZ = res & 0x0000FFFF;
37372 DREGu16((Opcode >> 0) & 7) = res;
37375 u32 msk = (((s32)0x80000000) >> (sft + 16)) & 0x0000FFFF;
37377 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37390 sft = (((Opcode >> 9) - 1) & 7) + 1;
37391 m68kcontext.io_cycle_counter -= sft * 2;
37392 src = DREGu32((Opcode >> 0) & 7);
37393 flag_X = flag_C = src >> (24 - sft);
37395 flag_N = res >> 24;
37396 flag_NotZ = res & 0xFFFFFFFF;
37397 DREGu32((Opcode >> 0) & 7) = res;
37400 u32 msk = (((s32)0x80000000) >> (sft + 0)) & 0xFFFFFFFF;
37402 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37415 sft = (((Opcode >> 9) - 1) & 7) + 1;
37416 m68kcontext.io_cycle_counter -= sft * 2;
37417 src = DREGu8((Opcode >> 0) & 7);
37419 flag_X = flag_C = src << (0 + sft);
37422 flag_NotZ = res & 0x000000FF;
37423 DREGu8((Opcode >> 0) & 7) = res;
37435 sft = (((Opcode >> 9) - 1) & 7) + 1;
37436 m68kcontext.io_cycle_counter -= sft * 2;
37437 src = DREGu16((Opcode >> 0) & 7);
37439 flag_X = flag_C = src >> (8 - sft);
37442 flag_NotZ = res & 0x0000FFFF;
37443 DREGu16((Opcode >> 0) & 7) = res;
37455 sft = (((Opcode >> 9) - 1) & 7) + 1;
37456 m68kcontext.io_cycle_counter -= sft * 2;
37457 src = DREGu32((Opcode >> 0) & 7);
37459 flag_X = flag_C = src >> (24 - sft);
37461 flag_N = res >> 24;
37462 flag_NotZ = res & 0xFFFFFFFF;
37463 DREGu32((Opcode >> 0) & 7) = res;
37475 sft = (((Opcode >> 9) - 1) & 7) + 1;
37476 m68kcontext.io_cycle_counter -= sft * 2;
37477 src = DREGu8((Opcode >> 0) & 7);
37478 src |= (flag_X & M68K_SR_X) << 0;
37479 res = (src << sft) | (src >> (9 - sft));
37480 flag_X = flag_C = res >> 0;
37483 flag_NotZ = res & 0x000000FF;
37484 DREGu8((Opcode >> 0) & 7) = res;
37496 sft = (((Opcode >> 9) - 1) & 7) + 1;
37497 m68kcontext.io_cycle_counter -= sft * 2;
37498 src = DREGu16((Opcode >> 0) & 7);
37499 src |= (flag_X & M68K_SR_X) << 8;
37500 res = (src << sft) | (src >> (17 - sft));
37501 flag_X = flag_C = res >> 8;
37504 flag_NotZ = res & 0x0000FFFF;
37505 DREGu16((Opcode >> 0) & 7) = res;
37517 sft = (((Opcode >> 9) - 1) & 7) + 1;
37518 m68kcontext.io_cycle_counter -= sft * 2;
37519 src = DREGu32((Opcode >> 0) & 7);
37520 flag_C = src >> ((32 - M68K_SR_C_SFT) - sft);
37521 if (sft == 1) res = (src << 1) | ((flag_X & M68K_SR_X) >> ((M68K_SR_X_SFT + 1) - 1));
37522 else res = (src << sft) | (src >> (33 - sft)) | ((flag_X & M68K_SR_X) >> ((M68K_SR_X_SFT + 1) - sft));
37525 flag_N = res >> 24;
37527 DREGu32((Opcode >> 0) & 7) = res;
37539 sft = (((Opcode >> 9) - 1) & 7) + 1;
37540 m68kcontext.io_cycle_counter -= sft * 2;
37541 src = DREGu8((Opcode >> 0) & 7);
37543 flag_C = src << (0 + sft);
37544 res = (src << sft) | (src >> (8 - sft));
37546 flag_NotZ = res & 0x000000FF;
37547 DREGu8((Opcode >> 0) & 7) = res;
37559 sft = (((Opcode >> 9) - 1) & 7) + 1;
37560 m68kcontext.io_cycle_counter -= sft * 2;
37561 src = DREGu16((Opcode >> 0) & 7);
37563 flag_C = src >> (8 - sft);
37564 res = (src << sft) | (src >> (16 - sft));
37566 flag_NotZ = res & 0x0000FFFF;
37567 DREGu16((Opcode >> 0) & 7) = res;
37579 sft = (((Opcode >> 9) - 1) & 7) + 1;
37580 m68kcontext.io_cycle_counter -= sft * 2;
37581 src = DREGu32((Opcode >> 0) & 7);
37583 flag_C = src >> (24 - sft);
37584 res = (src << sft) | (src >> (32 - sft));
37585 flag_N = res >> 24;
37587 DREGu32((Opcode >> 0) & 7) = res;
37599 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37600 src = (s32)DREGs8((Opcode >> 0) & 7);
37603 m68kcontext.io_cycle_counter -= sft * 2;
37607 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37608 res = ((s32)src) >> sft;
37611 DREGu8((Opcode >> 0) & 7) = res;
37615 if (src & (1 << 7))
37617 flag_N = M68K_SR_N;
37620 flag_C = M68K_SR_C;
37621 flag_X = M68K_SR_X;
37623 DREGu8((Opcode >> 0) & 7) = res;
37633 DREGu8((Opcode >> 0) & 7) = res;
37652 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37653 src = (s32)DREGs16((Opcode >> 0) & 7);
37656 m68kcontext.io_cycle_counter -= sft * 2;
37660 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37661 res = ((s32)src) >> sft;
37664 DREGu16((Opcode >> 0) & 7) = res;
37668 if (src & (1 << 15))
37670 flag_N = M68K_SR_N;
37673 flag_C = M68K_SR_C;
37674 flag_X = M68K_SR_X;
37676 DREGu16((Opcode >> 0) & 7) = res;
37686 DREGu16((Opcode >> 0) & 7) = res;
37700 #ifdef USE_CYCLONE_TIMING
37710 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37711 src = (s32)DREGs32((Opcode >> 0) & 7);
37714 m68kcontext.io_cycle_counter -= sft * 2;
37718 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37719 res = ((s32)src) >> sft;
37720 flag_N = res >> 24;
37722 DREGu32((Opcode >> 0) & 7) = res;
37726 if (src & (1 << 31))
37728 flag_N = M68K_SR_N;
37731 flag_C = M68K_SR_C;
37732 flag_X = M68K_SR_X;
37734 DREGu32((Opcode >> 0) & 7) = res;
37744 DREGu32((Opcode >> 0) & 7) = res;
37750 flag_N = src >> 24;
37764 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37765 src = DREGu8((Opcode >> 0) & 7);
37768 m68kcontext.io_cycle_counter -= sft * 2;
37771 flag_N = flag_V = 0;
37772 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37775 DREGu8((Opcode >> 0) & 7) = res;
37779 flag_X = flag_C = 0;
37784 DREGu8((Opcode >> 0) & 7) = res;
37803 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37804 src = DREGu16((Opcode >> 0) & 7);
37807 m68kcontext.io_cycle_counter -= sft * 2;
37810 flag_N = flag_V = 0;
37811 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37814 DREGu16((Opcode >> 0) & 7) = res;
37818 flag_X = flag_C = 0;
37823 DREGu16((Opcode >> 0) & 7) = res;
37837 #ifdef USE_CYCLONE_TIMING
37847 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37848 src = DREGu32((Opcode >> 0) & 7);
37851 m68kcontext.io_cycle_counter -= sft * 2;
37854 flag_N = flag_V = 0;
37855 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37858 DREGu32((Opcode >> 0) & 7) = res;
37862 if (sft == 32) flag_C = src >> (31 - M68K_SR_C_SFT);
37869 DREGu32((Opcode >> 0) & 7) = res;
37875 flag_N = src >> 24;
37889 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37890 src = DREGu8((Opcode >> 0) & 7);
37893 m68kcontext.io_cycle_counter -= sft * 2;
37896 src |= (flag_X & M68K_SR_X) << 0;
37897 res = (src >> sft) | (src << (9 - sft));
37898 flag_X = flag_C = res >> 0;
37901 flag_NotZ = res & 0x000000FF;
37902 DREGu8((Opcode >> 0) & 7) = res;
37921 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37922 src = DREGu16((Opcode >> 0) & 7);
37925 m68kcontext.io_cycle_counter -= sft * 2;
37928 src |= (flag_X & M68K_SR_X) << 8;
37929 res = (src >> sft) | (src << (17 - sft));
37930 flag_X = flag_C = res >> 8;
37933 flag_NotZ = res & 0x0000FFFF;
37934 DREGu16((Opcode >> 0) & 7) = res;
37948 #ifdef USE_CYCLONE_TIMING
37958 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37959 src = DREGu32((Opcode >> 0) & 7);
37962 m68kcontext.io_cycle_counter -= sft * 2;
37967 if (sft == 1) res = (src >> 1) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1)));
37968 else res = (src >> sft) | (src << (33 - sft)) | (((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1))) >> (sft - 1));
37969 flag_X = (src >> (32 - sft)) << M68K_SR_X_SFT;
37974 flag_N = res >> 24;
37976 DREGu32((Opcode >> 0) & 7) = res;
37982 flag_N = src >> 24;
37996 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37997 src = DREGu8((Opcode >> 0) & 7);
38000 m68kcontext.io_cycle_counter -= sft * 2;
38003 flag_C = src << (M68K_SR_C_SFT - ((sft - 1) & 7));
38004 res = (src >> sft) | (src << (8 - sft));
38007 flag_NotZ = res & 0x000000FF;
38008 DREGu8((Opcode >> 0) & 7) = res;
38027 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38028 src = DREGu16((Opcode >> 0) & 7);
38031 m68kcontext.io_cycle_counter -= sft * 2;
38034 flag_C = (src >> ((sft - 1) & 15)) << M68K_SR_C_SFT;
38035 res = (src >> sft) | (src << (16 - sft));
38038 flag_NotZ = res & 0x0000FFFF;
38039 DREGu16((Opcode >> 0) & 7) = res;
38053 #ifdef USE_CYCLONE_TIMING
38063 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38064 src = DREGu32((Opcode >> 0) & 7);
38067 m68kcontext.io_cycle_counter -= sft * 2;
38070 flag_C = (src >> ((sft - 1) & 31)) << M68K_SR_C_SFT;
38071 res = (src >> sft) | (src << (32 - sft));
38073 flag_N = res >> 24;
38075 DREGu32((Opcode >> 0) & 7) = res;
38081 flag_N = src >> 24;
38095 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38096 src = DREGu8((Opcode >> 0) & 7);
38099 m68kcontext.io_cycle_counter -= sft * 2;
38102 flag_X = flag_C = (src << sft) >> 0;
38103 res = (src << sft) & 0x000000FF;
38106 DREGu8((Opcode >> 0) & 7) = res;
38109 u32 msk = (((s32)0x80000000) >> (sft + 24)) & 0x000000FF;
38111 if ((src) && (src != msk)) flag_V = M68K_SR_V;
38116 if (sft == 256) flag_C = src << M68K_SR_C_SFT;
38119 if (src) flag_V = M68K_SR_V;
38122 DREGu8((Opcode >> 0) & 7) = res;
38143 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38144 src = DREGu16((Opcode >> 0) & 7);
38147 m68kcontext.io_cycle_counter -= sft * 2;
38150 flag_X = flag_C = (src << sft) >> 8;
38151 res = (src << sft) & 0x0000FFFF;
38154 DREGu16((Opcode >> 0) & 7) = res;
38157 u32 msk = (((s32)0x80000000) >> (sft + 16)) & 0x0000FFFF;
38159 if ((src) && (src != msk)) flag_V = M68K_SR_V;
38164 if (sft == 65536) flag_C = src << M68K_SR_C_SFT;
38167 if (src) flag_V = M68K_SR_V;
38170 DREGu16((Opcode >> 0) & 7) = res;
38186 #ifdef USE_CYCLONE_TIMING
38196 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38197 src = DREGu32((Opcode >> 0) & 7);
38200 m68kcontext.io_cycle_counter -= sft * 2;
38203 flag_X = flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38205 flag_N = res >> 24;
38207 DREGu32((Opcode >> 0) & 7) = res;
38210 u32 msk = (((s32)0x80000000) >> (sft + 0)) & 0xFFFFFFFF;
38212 if ((src) && (src != msk)) flag_V = M68K_SR_V;
38217 if (sft == 0) flag_C = src << M68K_SR_C_SFT;
38220 if (src) flag_V = M68K_SR_V;
38223 DREGu32((Opcode >> 0) & 7) = res;
38231 flag_N = src >> 24;
38245 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38246 src = DREGu8((Opcode >> 0) & 7);
38249 m68kcontext.io_cycle_counter -= sft * 2;
38252 flag_X = flag_C = (src << sft) >> 0;
38253 res = (src << sft) & 0x000000FF;
38257 DREGu8((Opcode >> 0) & 7) = res;
38261 flag_X = flag_C = 0;
38266 DREGu8((Opcode >> 0) & 7) = res;
38285 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38286 src = DREGu16((Opcode >> 0) & 7);
38289 m68kcontext.io_cycle_counter -= sft * 2;
38292 flag_X = flag_C = (src << sft) >> 8;
38293 res = (src << sft) & 0x0000FFFF;
38297 DREGu16((Opcode >> 0) & 7) = res;
38301 flag_X = flag_C = 0;
38306 DREGu16((Opcode >> 0) & 7) = res;
38320 #ifdef USE_CYCLONE_TIMING
38330 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38331 src = DREGu32((Opcode >> 0) & 7);
38334 m68kcontext.io_cycle_counter -= sft * 2;
38337 flag_X = flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38340 flag_N = res >> 24;
38342 DREGu32((Opcode >> 0) & 7) = res;
38346 if (sft == 32) flag_C = src << M68K_SR_C_SFT;
38353 DREGu32((Opcode >> 0) & 7) = res;
38359 flag_N = src >> 24;
38373 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38374 src = DREGu8((Opcode >> 0) & 7);
38377 m68kcontext.io_cycle_counter -= sft * 2;
38380 src |= (flag_X & M68K_SR_X) << 0;
38381 res = (src << sft) | (src >> (9 - sft));
38382 flag_X = flag_C = res >> 0;
38385 flag_NotZ = res & 0x000000FF;
38386 DREGu8((Opcode >> 0) & 7) = res;
38405 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38406 src = DREGu16((Opcode >> 0) & 7);
38409 m68kcontext.io_cycle_counter -= sft * 2;
38412 src |= (flag_X & M68K_SR_X) << 8;
38413 res = (src << sft) | (src >> (17 - sft));
38414 flag_X = flag_C = res >> 8;
38417 flag_NotZ = res & 0x0000FFFF;
38418 DREGu16((Opcode >> 0) & 7) = res;
38432 #ifdef USE_CYCLONE_TIMING
38442 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38443 src = DREGu32((Opcode >> 0) & 7);
38446 m68kcontext.io_cycle_counter -= sft * 2;
38451 if (sft == 1) res = (src << 1) | ((flag_X >> ((M68K_SR_X_SFT + 1) - 1)) & 1);
38452 else res = (src << sft) | (src >> (33 - sft)) | (((flag_X >> ((M68K_SR_X_SFT + 1) - 1)) & 1) << (sft - 1));
38453 flag_X = (src >> (32 - sft)) << M68K_SR_X_SFT;
38458 flag_N = res >> 24;
38460 DREGu32((Opcode >> 0) & 7) = res;
38466 flag_N = src >> 24;
38480 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38481 src = DREGu8((Opcode >> 0) & 7);
38484 m68kcontext.io_cycle_counter -= sft * 2;
38487 flag_C = (src << sft) >> 0;
38488 res = ((src << sft) | (src >> (8 - sft))) & 0x000000FF;
38492 DREGu8((Opcode >> 0) & 7) = res;
38497 flag_C = src << M68K_SR_C_SFT;
38518 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38519 src = DREGu16((Opcode >> 0) & 7);
38522 m68kcontext.io_cycle_counter -= sft * 2;
38525 flag_C = (src << sft) >> 8;
38526 res = ((src << sft) | (src >> (16 - sft))) & 0x0000FFFF;
38530 DREGu16((Opcode >> 0) & 7) = res;
38535 flag_C = src << M68K_SR_C_SFT;
38551 #ifdef USE_CYCLONE_TIMING
38561 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38562 src = DREGu32((Opcode >> 0) & 7);
38565 m68kcontext.io_cycle_counter -= sft * 2;
38568 flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38569 res = (src << sft) | (src >> (32 - sft));
38571 flag_N = res >> 24;
38573 DREGu32((Opcode >> 0) & 7) = res;
38578 flag_C = src << M68K_SR_C_SFT;
38579 flag_N = src >> 24;
38586 flag_N = src >> 24;
38598 adr = AREG((Opcode >> 0) & 7);
38600 READ_WORD_F(adr, src)
38602 flag_X = flag_C = src << M68K_SR_C_SFT;
38603 res = (src >> 1) | (src & (1 << 15));
38606 WRITE_WORD_F(adr, res)
38617 adr = AREG((Opcode >> 0) & 7);
38618 AREG((Opcode >> 0) & 7) += 2;
38620 READ_WORD_F(adr, src)
38622 flag_X = flag_C = src << M68K_SR_C_SFT;
38623 res = (src >> 1) | (src & (1 << 15));
38626 WRITE_WORD_F(adr, res)
38637 adr = AREG((Opcode >> 0) & 7) - 2;
38638 AREG((Opcode >> 0) & 7) = adr;
38640 READ_WORD_F(adr, src)
38642 flag_X = flag_C = src << M68K_SR_C_SFT;
38643 res = (src >> 1) | (src & (1 << 15));
38646 WRITE_WORD_F(adr, res)
38658 adr += AREG((Opcode >> 0) & 7);
38660 READ_WORD_F(adr, src)
38662 flag_X = flag_C = src << M68K_SR_C_SFT;
38663 res = (src >> 1) | (src & (1 << 15));
38666 WRITE_WORD_F(adr, res)
38677 adr = AREG((Opcode >> 0) & 7);
38680 READ_WORD_F(adr, src)
38682 flag_X = flag_C = src << M68K_SR_C_SFT;
38683 res = (src >> 1) | (src & (1 << 15));
38686 WRITE_WORD_F(adr, res)
38699 READ_WORD_F(adr, src)
38701 flag_X = flag_C = src << M68K_SR_C_SFT;
38702 res = (src >> 1) | (src & (1 << 15));
38705 WRITE_WORD_F(adr, res)
38718 READ_WORD_F(adr, src)
38720 flag_X = flag_C = src << M68K_SR_C_SFT;
38721 res = (src >> 1) | (src & (1 << 15));
38724 WRITE_WORD_F(adr, res)
38738 READ_WORD_F(adr, src)
38740 flag_X = flag_C = src << M68K_SR_C_SFT;
38741 res = (src >> 1) | (src & (1 << 15));
38744 WRITE_WORD_F(adr, res)
38758 READ_WORD_F(adr, src)
38760 flag_X = flag_C = src << M68K_SR_C_SFT;
38761 res = (src >> 1) | (src & (1 << 15));
38764 WRITE_WORD_F(adr, res)
38775 adr = AREG((Opcode >> 0) & 7);
38777 READ_WORD_F(adr, src)
38778 flag_N = flag_V = 0;
38779 flag_X = flag_C = src << M68K_SR_C_SFT;
38782 WRITE_WORD_F(adr, res)
38793 adr = AREG((Opcode >> 0) & 7);
38794 AREG((Opcode >> 0) & 7) += 2;
38796 READ_WORD_F(adr, src)
38797 flag_N = flag_V = 0;
38798 flag_X = flag_C = src << M68K_SR_C_SFT;
38801 WRITE_WORD_F(adr, res)
38812 adr = AREG((Opcode >> 0) & 7) - 2;
38813 AREG((Opcode >> 0) & 7) = adr;
38815 READ_WORD_F(adr, src)
38816 flag_N = flag_V = 0;
38817 flag_X = flag_C = src << M68K_SR_C_SFT;
38820 WRITE_WORD_F(adr, res)
38832 adr += AREG((Opcode >> 0) & 7);
38834 READ_WORD_F(adr, src)
38835 flag_N = flag_V = 0;
38836 flag_X = flag_C = src << M68K_SR_C_SFT;
38839 WRITE_WORD_F(adr, res)
38850 adr = AREG((Opcode >> 0) & 7);
38853 READ_WORD_F(adr, src)
38854 flag_N = flag_V = 0;
38855 flag_X = flag_C = src << M68K_SR_C_SFT;
38858 WRITE_WORD_F(adr, res)
38871 READ_WORD_F(adr, src)
38872 flag_N = flag_V = 0;
38873 flag_X = flag_C = src << M68K_SR_C_SFT;
38876 WRITE_WORD_F(adr, res)
38889 READ_WORD_F(adr, src)
38890 flag_N = flag_V = 0;
38891 flag_X = flag_C = src << M68K_SR_C_SFT;
38894 WRITE_WORD_F(adr, res)
38908 READ_WORD_F(adr, src)
38909 flag_N = flag_V = 0;
38910 flag_X = flag_C = src << M68K_SR_C_SFT;
38913 WRITE_WORD_F(adr, res)
38927 READ_WORD_F(adr, src)
38928 flag_N = flag_V = 0;
38929 flag_X = flag_C = src << M68K_SR_C_SFT;
38932 WRITE_WORD_F(adr, res)
38943 adr = AREG((Opcode >> 0) & 7);
38945 READ_WORD_F(adr, src)
38947 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38948 flag_C = flag_X = src << M68K_SR_C_SFT;
38951 WRITE_WORD_F(adr, res)
38962 adr = AREG((Opcode >> 0) & 7);
38963 AREG((Opcode >> 0) & 7) += 2;
38965 READ_WORD_F(adr, src)
38967 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38968 flag_C = flag_X = src << M68K_SR_C_SFT;
38971 WRITE_WORD_F(adr, res)
38982 adr = AREG((Opcode >> 0) & 7) - 2;
38983 AREG((Opcode >> 0) & 7) = adr;
38985 READ_WORD_F(adr, src)
38987 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38988 flag_C = flag_X = src << M68K_SR_C_SFT;
38991 WRITE_WORD_F(adr, res)
39003 adr += AREG((Opcode >> 0) & 7);
39005 READ_WORD_F(adr, src)
39007 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39008 flag_C = flag_X = src << M68K_SR_C_SFT;
39011 WRITE_WORD_F(adr, res)
39022 adr = AREG((Opcode >> 0) & 7);
39025 READ_WORD_F(adr, src)
39027 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39028 flag_C = flag_X = src << M68K_SR_C_SFT;
39031 WRITE_WORD_F(adr, res)
39044 READ_WORD_F(adr, src)
39046 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39047 flag_C = flag_X = src << M68K_SR_C_SFT;
39050 WRITE_WORD_F(adr, res)
39063 READ_WORD_F(adr, src)
39065 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39066 flag_C = flag_X = src << M68K_SR_C_SFT;
39069 WRITE_WORD_F(adr, res)
39083 READ_WORD_F(adr, src)
39085 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39086 flag_C = flag_X = src << M68K_SR_C_SFT;
39089 WRITE_WORD_F(adr, res)
39103 READ_WORD_F(adr, src)
39105 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39106 flag_C = flag_X = src << M68K_SR_C_SFT;
39109 WRITE_WORD_F(adr, res)
39120 adr = AREG((Opcode >> 0) & 7);
39122 READ_WORD_F(adr, src)
39124 flag_C = src << M68K_SR_C_SFT;
39125 res = (src >> 1) | (src << 15);
39127 flag_NotZ = res & 0x0000FFFF;
39128 WRITE_WORD_F(adr, res)
39139 adr = AREG((Opcode >> 0) & 7);
39140 AREG((Opcode >> 0) & 7) += 2;
39142 READ_WORD_F(adr, src)
39144 flag_C = src << M68K_SR_C_SFT;
39145 res = (src >> 1) | (src << 15);
39147 flag_NotZ = res & 0x0000FFFF;
39148 WRITE_WORD_F(adr, res)
39159 adr = AREG((Opcode >> 0) & 7) - 2;
39160 AREG((Opcode >> 0) & 7) = adr;
39162 READ_WORD_F(adr, src)
39164 flag_C = src << M68K_SR_C_SFT;
39165 res = (src >> 1) | (src << 15);
39167 flag_NotZ = res & 0x0000FFFF;
39168 WRITE_WORD_F(adr, res)
39180 adr += AREG((Opcode >> 0) & 7);
39182 READ_WORD_F(adr, src)
39184 flag_C = src << M68K_SR_C_SFT;
39185 res = (src >> 1) | (src << 15);
39187 flag_NotZ = res & 0x0000FFFF;
39188 WRITE_WORD_F(adr, res)
39199 adr = AREG((Opcode >> 0) & 7);
39202 READ_WORD_F(adr, src)
39204 flag_C = src << M68K_SR_C_SFT;
39205 res = (src >> 1) | (src << 15);
39207 flag_NotZ = res & 0x0000FFFF;
39208 WRITE_WORD_F(adr, res)
39221 READ_WORD_F(adr, src)
39223 flag_C = src << M68K_SR_C_SFT;
39224 res = (src >> 1) | (src << 15);
39226 flag_NotZ = res & 0x0000FFFF;
39227 WRITE_WORD_F(adr, res)
39240 READ_WORD_F(adr, src)
39242 flag_C = src << M68K_SR_C_SFT;
39243 res = (src >> 1) | (src << 15);
39245 flag_NotZ = res & 0x0000FFFF;
39246 WRITE_WORD_F(adr, res)
39260 READ_WORD_F(adr, src)
39262 flag_C = src << M68K_SR_C_SFT;
39263 res = (src >> 1) | (src << 15);
39265 flag_NotZ = res & 0x0000FFFF;
39266 WRITE_WORD_F(adr, res)
39280 READ_WORD_F(adr, src)
39282 flag_C = src << M68K_SR_C_SFT;
39283 res = (src >> 1) | (src << 15);
39285 flag_NotZ = res & 0x0000FFFF;
39286 WRITE_WORD_F(adr, res)
39297 adr = AREG((Opcode >> 0) & 7);
39299 READ_WORD_F(adr, src)
39300 flag_X = flag_C = src >> 7;
39302 flag_V = (src ^ res) >> 8;
39304 flag_NotZ = res & 0x0000FFFF;
39305 WRITE_WORD_F(adr, res)
39316 adr = AREG((Opcode >> 0) & 7);
39317 AREG((Opcode >> 0) & 7) += 2;
39319 READ_WORD_F(adr, src)
39320 flag_X = flag_C = src >> 7;
39322 flag_V = (src ^ res) >> 8;
39324 flag_NotZ = res & 0x0000FFFF;
39325 WRITE_WORD_F(adr, res)
39336 adr = AREG((Opcode >> 0) & 7) - 2;
39337 AREG((Opcode >> 0) & 7) = adr;
39339 READ_WORD_F(adr, src)
39340 flag_X = flag_C = src >> 7;
39342 flag_V = (src ^ res) >> 8;
39344 flag_NotZ = res & 0x0000FFFF;
39345 WRITE_WORD_F(adr, res)
39357 adr += AREG((Opcode >> 0) & 7);
39359 READ_WORD_F(adr, src)
39360 flag_X = flag_C = src >> 7;
39362 flag_V = (src ^ res) >> 8;
39364 flag_NotZ = res & 0x0000FFFF;
39365 WRITE_WORD_F(adr, res)
39376 adr = AREG((Opcode >> 0) & 7);
39379 READ_WORD_F(adr, src)
39380 flag_X = flag_C = src >> 7;
39382 flag_V = (src ^ res) >> 8;
39384 flag_NotZ = res & 0x0000FFFF;
39385 WRITE_WORD_F(adr, res)
39398 READ_WORD_F(adr, src)
39399 flag_X = flag_C = src >> 7;
39401 flag_V = (src ^ res) >> 8;
39403 flag_NotZ = res & 0x0000FFFF;
39404 WRITE_WORD_F(adr, res)
39417 READ_WORD_F(adr, src)
39418 flag_X = flag_C = src >> 7;
39420 flag_V = (src ^ res) >> 8;
39422 flag_NotZ = res & 0x0000FFFF;
39423 WRITE_WORD_F(adr, res)
39437 READ_WORD_F(adr, src)
39438 flag_X = flag_C = src >> 7;
39440 flag_V = (src ^ res) >> 8;
39442 flag_NotZ = res & 0x0000FFFF;
39443 WRITE_WORD_F(adr, res)
39457 READ_WORD_F(adr, src)
39458 flag_X = flag_C = src >> 7;
39460 flag_V = (src ^ res) >> 8;
39462 flag_NotZ = res & 0x0000FFFF;
39463 WRITE_WORD_F(adr, res)
39474 adr = AREG((Opcode >> 0) & 7);
39476 READ_WORD_F(adr, src)
39478 flag_X = flag_C = src >> 7;
39481 flag_NotZ = res & 0x0000FFFF;
39482 WRITE_WORD_F(adr, res)
39493 adr = AREG((Opcode >> 0) & 7);
39494 AREG((Opcode >> 0) & 7) += 2;
39496 READ_WORD_F(adr, src)
39498 flag_X = flag_C = src >> 7;
39501 flag_NotZ = res & 0x0000FFFF;
39502 WRITE_WORD_F(adr, res)
39513 adr = AREG((Opcode >> 0) & 7) - 2;
39514 AREG((Opcode >> 0) & 7) = adr;
39516 READ_WORD_F(adr, src)
39518 flag_X = flag_C = src >> 7;
39521 flag_NotZ = res & 0x0000FFFF;
39522 WRITE_WORD_F(adr, res)
39534 adr += AREG((Opcode >> 0) & 7);
39536 READ_WORD_F(adr, src)
39538 flag_X = flag_C = src >> 7;
39541 flag_NotZ = res & 0x0000FFFF;
39542 WRITE_WORD_F(adr, res)
39553 adr = AREG((Opcode >> 0) & 7);
39556 READ_WORD_F(adr, src)
39558 flag_X = flag_C = src >> 7;
39561 flag_NotZ = res & 0x0000FFFF;
39562 WRITE_WORD_F(adr, res)
39575 READ_WORD_F(adr, src)
39577 flag_X = flag_C = src >> 7;
39580 flag_NotZ = res & 0x0000FFFF;
39581 WRITE_WORD_F(adr, res)
39594 READ_WORD_F(adr, src)
39596 flag_X = flag_C = src >> 7;
39599 flag_NotZ = res & 0x0000FFFF;
39600 WRITE_WORD_F(adr, res)
39614 READ_WORD_F(adr, src)
39616 flag_X = flag_C = src >> 7;
39619 flag_NotZ = res & 0x0000FFFF;
39620 WRITE_WORD_F(adr, res)
39634 READ_WORD_F(adr, src)
39636 flag_X = flag_C = src >> 7;
39639 flag_NotZ = res & 0x0000FFFF;
39640 WRITE_WORD_F(adr, res)
39651 adr = AREG((Opcode >> 0) & 7);
39653 READ_WORD_F(adr, src)
39655 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39656 flag_X = flag_C = src >> 7;
39658 flag_NotZ = res & 0x0000FFFF;
39659 WRITE_WORD_F(adr, res)
39670 adr = AREG((Opcode >> 0) & 7);
39671 AREG((Opcode >> 0) & 7) += 2;
39673 READ_WORD_F(adr, src)
39675 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39676 flag_X = flag_C = src >> 7;
39678 flag_NotZ = res & 0x0000FFFF;
39679 WRITE_WORD_F(adr, res)
39690 adr = AREG((Opcode >> 0) & 7) - 2;
39691 AREG((Opcode >> 0) & 7) = adr;
39693 READ_WORD_F(adr, src)
39695 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39696 flag_X = flag_C = src >> 7;
39698 flag_NotZ = res & 0x0000FFFF;
39699 WRITE_WORD_F(adr, res)
39711 adr += AREG((Opcode >> 0) & 7);
39713 READ_WORD_F(adr, src)
39715 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39716 flag_X = flag_C = src >> 7;
39718 flag_NotZ = res & 0x0000FFFF;
39719 WRITE_WORD_F(adr, res)
39730 adr = AREG((Opcode >> 0) & 7);
39733 READ_WORD_F(adr, src)
39735 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39736 flag_X = flag_C = src >> 7;
39738 flag_NotZ = res & 0x0000FFFF;
39739 WRITE_WORD_F(adr, res)
39752 READ_WORD_F(adr, src)
39754 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39755 flag_X = flag_C = src >> 7;
39757 flag_NotZ = res & 0x0000FFFF;
39758 WRITE_WORD_F(adr, res)
39771 READ_WORD_F(adr, src)
39773 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39774 flag_X = flag_C = src >> 7;
39776 flag_NotZ = res & 0x0000FFFF;
39777 WRITE_WORD_F(adr, res)
39791 READ_WORD_F(adr, src)
39793 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39794 flag_X = flag_C = src >> 7;
39796 flag_NotZ = res & 0x0000FFFF;
39797 WRITE_WORD_F(adr, res)
39811 READ_WORD_F(adr, src)
39813 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39814 flag_X = flag_C = src >> 7;
39816 flag_NotZ = res & 0x0000FFFF;
39817 WRITE_WORD_F(adr, res)
39828 adr = AREG((Opcode >> 0) & 7);
39830 READ_WORD_F(adr, src)
39833 res = (src << 1) | (src >> 15);
39835 flag_NotZ = res & 0x0000FFFF;
39836 WRITE_WORD_F(adr, res)
39847 adr = AREG((Opcode >> 0) & 7);
39848 AREG((Opcode >> 0) & 7) += 2;
39850 READ_WORD_F(adr, src)
39853 res = (src << 1) | (src >> 15);
39855 flag_NotZ = res & 0x0000FFFF;
39856 WRITE_WORD_F(adr, res)
39867 adr = AREG((Opcode >> 0) & 7) - 2;
39868 AREG((Opcode >> 0) & 7) = adr;
39870 READ_WORD_F(adr, src)
39873 res = (src << 1) | (src >> 15);
39875 flag_NotZ = res & 0x0000FFFF;
39876 WRITE_WORD_F(adr, res)
39888 adr += AREG((Opcode >> 0) & 7);
39890 READ_WORD_F(adr, src)
39893 res = (src << 1) | (src >> 15);
39895 flag_NotZ = res & 0x0000FFFF;
39896 WRITE_WORD_F(adr, res)
39907 adr = AREG((Opcode >> 0) & 7);
39910 READ_WORD_F(adr, src)
39913 res = (src << 1) | (src >> 15);
39915 flag_NotZ = res & 0x0000FFFF;
39916 WRITE_WORD_F(adr, res)
39929 READ_WORD_F(adr, src)
39932 res = (src << 1) | (src >> 15);
39934 flag_NotZ = res & 0x0000FFFF;
39935 WRITE_WORD_F(adr, res)
39948 READ_WORD_F(adr, src)
39951 res = (src << 1) | (src >> 15);
39953 flag_NotZ = res & 0x0000FFFF;
39954 WRITE_WORD_F(adr, res)
39968 READ_WORD_F(adr, src)
39971 res = (src << 1) | (src >> 15);
39973 flag_NotZ = res & 0x0000FFFF;
39974 WRITE_WORD_F(adr, res)
39988 READ_WORD_F(adr, src)
39991 res = (src << 1) | (src >> 15);
39993 flag_NotZ = res & 0x0000FFFF;
39994 WRITE_WORD_F(adr, res)
39999 #ifdef PICODRIVE_HACK
40001 #define UPDATE_IDLE_COUNT { \
40002 extern int idle_hit_counter; \
40003 idle_hit_counter++; \
40006 #define UPDATE_IDLE_COUNT
40010 OPCODE(0x6001_idle)
40012 #ifdef FAMEC_CHECK_BRANCHES
40013 u32 newPC = GET_PC;
40017 CHECK_BRANCH_EXCEPTION(offs)
40019 PC += ((s8)(Opcode & 0xFE)) >> 1;
40026 OPCODE(0x6601_idle)
40031 PC += ((s8)(Opcode & 0xFE)) >> 1;
40038 OPCODE(0x6701_idle)
40043 PC += ((s8)(Opcode & 0xFE)) >> 1;
40051 extern int SekIsIdleReady(void);
40052 extern int SekIsIdleCode(unsigned short *dst, int bytes);
40053 extern int SekRegisterIdlePatch(unsigned int pc, int oldop, int newop, void *ctx);
40055 OPCODE(idle_detector_bcc8)
40057 int frame_count, cond_true, bytes, ret, newop;
40060 dest_pc = PC + (((s8)(Opcode & 0xFE)) >> 1);
40062 if (!SekIsIdleReady())
40065 bytes = 0 - (s8)(Opcode & 0xFE) - 2;
40066 ret = SekIsIdleCode(dest_pc, bytes);
40067 newop = (Opcode & 0xfe) | 0x7100;
40068 if (!ret) newop |= 0x200;
40069 if ( Opcode & 0x0100) newop |= 0x400; // beq
40070 if (!(Opcode & 0x0f00)) newop |= 0xc00; // bra
40072 ret = SekRegisterIdlePatch(GET_PC - 2, Opcode, newop, &m68kcontext);
40075 case 0: PC[-1] = newop; break;
40077 case 2: JumpTable[Opcode] = (Opcode & 0x0f00) ?
40078 ((Opcode & 0x0100) ? CAST_OP(0x6701) : CAST_OP(0x6601)) :
40079 CAST_OP(0x6001); break;
40083 if ((Opcode & 0xff00) == 0x6000) cond_true = 1;
40084 else cond_true = (Opcode & 0x0100) ? !flag_NotZ : flag_NotZ; // beq?
40088 m68kcontext.io_cycle_counter -= 2;
40093 #endif // PICODRIVE_HACK