3 #define NOT_POLLING g_m68kcontext->not_polling = 1;
15 res = DREGu8((Opcode >> 0) & 7);
21 DREGu8((Opcode >> 0) & 7) = res;
32 adr = AREG((Opcode >> 0) & 7);
40 WRITE_BYTE_F(adr, res)
52 adr = AREG((Opcode >> 0) & 7);
53 AREG((Opcode >> 0) & 7) += 1;
61 WRITE_BYTE_F(adr, res)
73 adr = AREG((Opcode >> 0) & 7) - 1;
74 AREG((Opcode >> 0) & 7) = adr;
82 WRITE_BYTE_F(adr, res)
95 adr += AREG((Opcode >> 0) & 7);
103 WRITE_BYTE_F(adr, res)
115 adr = AREG((Opcode >> 0) & 7);
118 READ_BYTE_F(adr, res)
124 WRITE_BYTE_F(adr, res)
138 READ_BYTE_F(adr, res)
144 WRITE_BYTE_F(adr, res)
158 READ_BYTE_F(adr, res)
164 WRITE_BYTE_F(adr, res)
179 READ_BYTE_F(adr, res)
185 WRITE_BYTE_F(adr, res)
200 READ_BYTE_F(adr, res)
206 WRITE_BYTE_F(adr, res)
218 res = DREGu16((Opcode >> 0) & 7);
224 DREGu16((Opcode >> 0) & 7) = res;
235 adr = AREG((Opcode >> 0) & 7);
237 READ_WORD_F(adr, res)
243 WRITE_WORD_F(adr, res)
255 adr = AREG((Opcode >> 0) & 7);
256 AREG((Opcode >> 0) & 7) += 2;
258 READ_WORD_F(adr, res)
264 WRITE_WORD_F(adr, res)
276 adr = AREG((Opcode >> 0) & 7) - 2;
277 AREG((Opcode >> 0) & 7) = adr;
279 READ_WORD_F(adr, res)
285 WRITE_WORD_F(adr, res)
298 adr += AREG((Opcode >> 0) & 7);
300 READ_WORD_F(adr, res)
306 WRITE_WORD_F(adr, res)
318 adr = AREG((Opcode >> 0) & 7);
321 READ_WORD_F(adr, res)
327 WRITE_WORD_F(adr, res)
341 READ_WORD_F(adr, res)
347 WRITE_WORD_F(adr, res)
361 READ_WORD_F(adr, res)
367 WRITE_WORD_F(adr, res)
382 READ_WORD_F(adr, res)
388 WRITE_WORD_F(adr, res)
403 READ_WORD_F(adr, res)
409 WRITE_WORD_F(adr, res)
421 res = DREGu32((Opcode >> 0) & 7);
427 DREGu32((Opcode >> 0) & 7) = res;
438 adr = AREG((Opcode >> 0) & 7);
440 READ_LONG_F(adr, res)
446 WRITE_LONG_F(adr, res)
458 adr = AREG((Opcode >> 0) & 7);
459 AREG((Opcode >> 0) & 7) += 4;
461 READ_LONG_F(adr, res)
467 WRITE_LONG_F(adr, res)
479 adr = AREG((Opcode >> 0) & 7) - 4;
480 AREG((Opcode >> 0) & 7) = adr;
482 READ_LONG_F(adr, res)
488 WRITE_LONG_F(adr, res)
501 adr += AREG((Opcode >> 0) & 7);
503 READ_LONG_F(adr, res)
509 WRITE_LONG_F(adr, res)
521 adr = AREG((Opcode >> 0) & 7);
524 READ_LONG_F(adr, res)
530 WRITE_LONG_F(adr, res)
544 READ_LONG_F(adr, res)
550 WRITE_LONG_F(adr, res)
564 READ_LONG_F(adr, res)
570 WRITE_LONG_F(adr, res)
585 READ_LONG_F(adr, res)
591 WRITE_LONG_F(adr, res)
606 READ_LONG_F(adr, res)
612 WRITE_LONG_F(adr, res)
624 res &= M68K_CCR_MASK;
643 CHECK_INT_TO_JUMP(20)
647 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
648 #ifdef USE_CYCLONE_TIMING
664 res = DREGu8((Opcode >> 0) & 7);
670 DREGu8((Opcode >> 0) & 7) = res;
681 adr = AREG((Opcode >> 0) & 7);
683 READ_BYTE_F(adr, res)
689 WRITE_BYTE_F(adr, res)
701 adr = AREG((Opcode >> 0) & 7);
702 AREG((Opcode >> 0) & 7) += 1;
704 READ_BYTE_F(adr, res)
710 WRITE_BYTE_F(adr, res)
722 adr = AREG((Opcode >> 0) & 7) - 1;
723 AREG((Opcode >> 0) & 7) = adr;
725 READ_BYTE_F(adr, res)
731 WRITE_BYTE_F(adr, res)
744 adr += AREG((Opcode >> 0) & 7);
746 READ_BYTE_F(adr, res)
752 WRITE_BYTE_F(adr, res)
764 adr = AREG((Opcode >> 0) & 7);
767 READ_BYTE_F(adr, res)
773 WRITE_BYTE_F(adr, res)
787 READ_BYTE_F(adr, res)
793 WRITE_BYTE_F(adr, res)
807 READ_BYTE_F(adr, res)
813 WRITE_BYTE_F(adr, res)
828 READ_BYTE_F(adr, res)
834 WRITE_BYTE_F(adr, res)
849 READ_BYTE_F(adr, res)
855 WRITE_BYTE_F(adr, res)
867 res = DREGu16((Opcode >> 0) & 7);
873 DREGu16((Opcode >> 0) & 7) = res;
884 adr = AREG((Opcode >> 0) & 7);
886 READ_WORD_F(adr, res)
892 WRITE_WORD_F(adr, res)
904 adr = AREG((Opcode >> 0) & 7);
905 AREG((Opcode >> 0) & 7) += 2;
907 READ_WORD_F(adr, res)
913 WRITE_WORD_F(adr, res)
925 adr = AREG((Opcode >> 0) & 7) - 2;
926 AREG((Opcode >> 0) & 7) = adr;
928 READ_WORD_F(adr, res)
934 WRITE_WORD_F(adr, res)
947 adr += AREG((Opcode >> 0) & 7);
949 READ_WORD_F(adr, res)
955 WRITE_WORD_F(adr, res)
967 adr = AREG((Opcode >> 0) & 7);
970 READ_WORD_F(adr, res)
976 WRITE_WORD_F(adr, res)
990 READ_WORD_F(adr, res)
996 WRITE_WORD_F(adr, res)
1010 READ_WORD_F(adr, res)
1016 WRITE_WORD_F(adr, res)
1031 READ_WORD_F(adr, res)
1037 WRITE_WORD_F(adr, res)
1052 READ_WORD_F(adr, res)
1058 WRITE_WORD_F(adr, res)
1070 res = DREGu32((Opcode >> 0) & 7);
1076 DREGu32((Opcode >> 0) & 7) = res;
1077 #ifdef USE_CYCLONE_TIMING
1091 adr = AREG((Opcode >> 0) & 7);
1093 READ_LONG_F(adr, res)
1099 WRITE_LONG_F(adr, res)
1111 adr = AREG((Opcode >> 0) & 7);
1112 AREG((Opcode >> 0) & 7) += 4;
1114 READ_LONG_F(adr, res)
1120 WRITE_LONG_F(adr, res)
1132 adr = AREG((Opcode >> 0) & 7) - 4;
1133 AREG((Opcode >> 0) & 7) = adr;
1135 READ_LONG_F(adr, res)
1141 WRITE_LONG_F(adr, res)
1154 adr += AREG((Opcode >> 0) & 7);
1156 READ_LONG_F(adr, res)
1162 WRITE_LONG_F(adr, res)
1174 adr = AREG((Opcode >> 0) & 7);
1177 READ_LONG_F(adr, res)
1183 WRITE_LONG_F(adr, res)
1197 READ_LONG_F(adr, res)
1203 WRITE_LONG_F(adr, res)
1217 READ_LONG_F(adr, res)
1223 WRITE_LONG_F(adr, res)
1238 READ_LONG_F(adr, res)
1244 WRITE_LONG_F(adr, res)
1259 READ_LONG_F(adr, res)
1265 WRITE_LONG_F(adr, res)
1277 res &= M68K_CCR_MASK;
1292 res &= M68K_SR_MASK;
1301 CHECK_INT_TO_JUMP(20)
1305 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
1318 res = DREGu8((Opcode >> 0) & 7);
1324 DREGu8((Opcode >> 0) & 7) = res;
1335 adr = AREG((Opcode >> 0) & 7);
1337 READ_BYTE_F(adr, res)
1343 WRITE_BYTE_F(adr, res)
1355 adr = AREG((Opcode >> 0) & 7);
1356 AREG((Opcode >> 0) & 7) += 1;
1358 READ_BYTE_F(adr, res)
1364 WRITE_BYTE_F(adr, res)
1376 adr = AREG((Opcode >> 0) & 7) - 1;
1377 AREG((Opcode >> 0) & 7) = adr;
1379 READ_BYTE_F(adr, res)
1385 WRITE_BYTE_F(adr, res)
1398 adr += AREG((Opcode >> 0) & 7);
1400 READ_BYTE_F(adr, res)
1406 WRITE_BYTE_F(adr, res)
1418 adr = AREG((Opcode >> 0) & 7);
1421 READ_BYTE_F(adr, res)
1427 WRITE_BYTE_F(adr, res)
1441 READ_BYTE_F(adr, res)
1447 WRITE_BYTE_F(adr, res)
1461 READ_BYTE_F(adr, res)
1467 WRITE_BYTE_F(adr, res)
1482 READ_BYTE_F(adr, res)
1488 WRITE_BYTE_F(adr, res)
1503 READ_BYTE_F(adr, res)
1509 WRITE_BYTE_F(adr, res)
1521 res = DREGu16((Opcode >> 0) & 7);
1527 DREGu16((Opcode >> 0) & 7) = res;
1538 adr = AREG((Opcode >> 0) & 7);
1540 READ_WORD_F(adr, res)
1546 WRITE_WORD_F(adr, res)
1558 adr = AREG((Opcode >> 0) & 7);
1559 AREG((Opcode >> 0) & 7) += 2;
1561 READ_WORD_F(adr, res)
1567 WRITE_WORD_F(adr, res)
1579 adr = AREG((Opcode >> 0) & 7) - 2;
1580 AREG((Opcode >> 0) & 7) = adr;
1582 READ_WORD_F(adr, res)
1588 WRITE_WORD_F(adr, res)
1601 adr += AREG((Opcode >> 0) & 7);
1603 READ_WORD_F(adr, res)
1609 WRITE_WORD_F(adr, res)
1621 adr = AREG((Opcode >> 0) & 7);
1624 READ_WORD_F(adr, res)
1630 WRITE_WORD_F(adr, res)
1644 READ_WORD_F(adr, res)
1650 WRITE_WORD_F(adr, res)
1664 READ_WORD_F(adr, res)
1670 WRITE_WORD_F(adr, res)
1685 READ_WORD_F(adr, res)
1691 WRITE_WORD_F(adr, res)
1706 READ_WORD_F(adr, res)
1712 WRITE_WORD_F(adr, res)
1724 res = DREGu32((Opcode >> 0) & 7);
1730 DREGu32((Opcode >> 0) & 7) = res;
1741 adr = AREG((Opcode >> 0) & 7);
1743 READ_LONG_F(adr, res)
1749 WRITE_LONG_F(adr, res)
1761 adr = AREG((Opcode >> 0) & 7);
1762 AREG((Opcode >> 0) & 7) += 4;
1764 READ_LONG_F(adr, res)
1770 WRITE_LONG_F(adr, res)
1782 adr = AREG((Opcode >> 0) & 7) - 4;
1783 AREG((Opcode >> 0) & 7) = adr;
1785 READ_LONG_F(adr, res)
1791 WRITE_LONG_F(adr, res)
1804 adr += AREG((Opcode >> 0) & 7);
1806 READ_LONG_F(adr, res)
1812 WRITE_LONG_F(adr, res)
1824 adr = AREG((Opcode >> 0) & 7);
1827 READ_LONG_F(adr, res)
1833 WRITE_LONG_F(adr, res)
1847 READ_LONG_F(adr, res)
1853 WRITE_LONG_F(adr, res)
1867 READ_LONG_F(adr, res)
1873 WRITE_LONG_F(adr, res)
1888 READ_LONG_F(adr, res)
1894 WRITE_LONG_F(adr, res)
1909 READ_LONG_F(adr, res)
1915 WRITE_LONG_F(adr, res)
1927 res &= M68K_CCR_MASK;
1942 res &= M68K_SR_MASK;
1951 CHECK_INT_TO_JUMP(20)
1955 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
1968 dst = DREGu8((Opcode >> 0) & 7);
1970 flag_N = flag_X = flag_C = res;
1971 flag_V = (src ^ dst) & (res ^ dst);
1972 flag_NotZ = res & 0xFF;
1973 DREGu8((Opcode >> 0) & 7) = res;
1984 adr = AREG((Opcode >> 0) & 7);
1986 READ_BYTE_F(adr, dst)
1988 flag_N = flag_X = flag_C = res;
1989 flag_V = (src ^ dst) & (res ^ dst);
1990 flag_NotZ = res & 0xFF;
1991 WRITE_BYTE_F(adr, res)
2003 adr = AREG((Opcode >> 0) & 7);
2004 AREG((Opcode >> 0) & 7) += 1;
2006 READ_BYTE_F(adr, dst)
2008 flag_N = flag_X = flag_C = res;
2009 flag_V = (src ^ dst) & (res ^ dst);
2010 flag_NotZ = res & 0xFF;
2011 WRITE_BYTE_F(adr, res)
2023 adr = AREG((Opcode >> 0) & 7) - 1;
2024 AREG((Opcode >> 0) & 7) = adr;
2026 READ_BYTE_F(adr, dst)
2028 flag_N = flag_X = flag_C = res;
2029 flag_V = (src ^ dst) & (res ^ dst);
2030 flag_NotZ = res & 0xFF;
2031 WRITE_BYTE_F(adr, res)
2044 adr += AREG((Opcode >> 0) & 7);
2046 READ_BYTE_F(adr, dst)
2048 flag_N = flag_X = flag_C = res;
2049 flag_V = (src ^ dst) & (res ^ dst);
2050 flag_NotZ = res & 0xFF;
2051 WRITE_BYTE_F(adr, res)
2063 adr = AREG((Opcode >> 0) & 7);
2066 READ_BYTE_F(adr, dst)
2068 flag_N = flag_X = flag_C = res;
2069 flag_V = (src ^ dst) & (res ^ dst);
2070 flag_NotZ = res & 0xFF;
2071 WRITE_BYTE_F(adr, res)
2085 READ_BYTE_F(adr, dst)
2087 flag_N = flag_X = flag_C = res;
2088 flag_V = (src ^ dst) & (res ^ dst);
2089 flag_NotZ = res & 0xFF;
2090 WRITE_BYTE_F(adr, res)
2104 READ_BYTE_F(adr, dst)
2106 flag_N = flag_X = flag_C = res;
2107 flag_V = (src ^ dst) & (res ^ dst);
2108 flag_NotZ = res & 0xFF;
2109 WRITE_BYTE_F(adr, res)
2124 READ_BYTE_F(adr, dst)
2126 flag_N = flag_X = flag_C = res;
2127 flag_V = (src ^ dst) & (res ^ dst);
2128 flag_NotZ = res & 0xFF;
2129 WRITE_BYTE_F(adr, res)
2144 READ_BYTE_F(adr, dst)
2146 flag_N = flag_X = flag_C = res;
2147 flag_V = (src ^ dst) & (res ^ dst);
2148 flag_NotZ = res & 0xFF;
2149 WRITE_BYTE_F(adr, res)
2161 dst = DREGu16((Opcode >> 0) & 7);
2163 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2164 flag_N = flag_X = flag_C = res >> 8;
2165 flag_NotZ = res & 0xFFFF;
2166 DREGu16((Opcode >> 0) & 7) = res;
2177 adr = AREG((Opcode >> 0) & 7);
2179 READ_WORD_F(adr, dst)
2181 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2182 flag_N = flag_X = flag_C = res >> 8;
2183 flag_NotZ = res & 0xFFFF;
2184 WRITE_WORD_F(adr, res)
2196 adr = AREG((Opcode >> 0) & 7);
2197 AREG((Opcode >> 0) & 7) += 2;
2199 READ_WORD_F(adr, dst)
2201 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2202 flag_N = flag_X = flag_C = res >> 8;
2203 flag_NotZ = res & 0xFFFF;
2204 WRITE_WORD_F(adr, res)
2216 adr = AREG((Opcode >> 0) & 7) - 2;
2217 AREG((Opcode >> 0) & 7) = adr;
2219 READ_WORD_F(adr, dst)
2221 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2222 flag_N = flag_X = flag_C = res >> 8;
2223 flag_NotZ = res & 0xFFFF;
2224 WRITE_WORD_F(adr, res)
2237 adr += AREG((Opcode >> 0) & 7);
2239 READ_WORD_F(adr, dst)
2241 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2242 flag_N = flag_X = flag_C = res >> 8;
2243 flag_NotZ = res & 0xFFFF;
2244 WRITE_WORD_F(adr, res)
2256 adr = AREG((Opcode >> 0) & 7);
2259 READ_WORD_F(adr, dst)
2261 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2262 flag_N = flag_X = flag_C = res >> 8;
2263 flag_NotZ = res & 0xFFFF;
2264 WRITE_WORD_F(adr, res)
2278 READ_WORD_F(adr, dst)
2280 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2281 flag_N = flag_X = flag_C = res >> 8;
2282 flag_NotZ = res & 0xFFFF;
2283 WRITE_WORD_F(adr, res)
2297 READ_WORD_F(adr, dst)
2299 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2300 flag_N = flag_X = flag_C = res >> 8;
2301 flag_NotZ = res & 0xFFFF;
2302 WRITE_WORD_F(adr, res)
2317 READ_WORD_F(adr, dst)
2319 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2320 flag_N = flag_X = flag_C = res >> 8;
2321 flag_NotZ = res & 0xFFFF;
2322 WRITE_WORD_F(adr, res)
2337 READ_WORD_F(adr, dst)
2339 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2340 flag_N = flag_X = flag_C = res >> 8;
2341 flag_NotZ = res & 0xFFFF;
2342 WRITE_WORD_F(adr, res)
2354 dst = DREGu32((Opcode >> 0) & 7);
2357 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2358 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2360 DREGu32((Opcode >> 0) & 7) = res;
2371 adr = AREG((Opcode >> 0) & 7);
2373 READ_LONG_F(adr, dst)
2376 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2377 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2379 WRITE_LONG_F(adr, res)
2391 adr = AREG((Opcode >> 0) & 7);
2392 AREG((Opcode >> 0) & 7) += 4;
2394 READ_LONG_F(adr, dst)
2397 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2398 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2400 WRITE_LONG_F(adr, res)
2412 adr = AREG((Opcode >> 0) & 7) - 4;
2413 AREG((Opcode >> 0) & 7) = adr;
2415 READ_LONG_F(adr, dst)
2418 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2419 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2421 WRITE_LONG_F(adr, res)
2434 adr += AREG((Opcode >> 0) & 7);
2436 READ_LONG_F(adr, dst)
2439 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2440 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2442 WRITE_LONG_F(adr, res)
2454 adr = AREG((Opcode >> 0) & 7);
2457 READ_LONG_F(adr, dst)
2460 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2461 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2463 WRITE_LONG_F(adr, res)
2477 READ_LONG_F(adr, dst)
2480 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2481 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2483 WRITE_LONG_F(adr, res)
2497 READ_LONG_F(adr, dst)
2500 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2501 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2503 WRITE_LONG_F(adr, res)
2518 READ_LONG_F(adr, dst)
2521 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2522 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2524 WRITE_LONG_F(adr, res)
2539 READ_LONG_F(adr, dst)
2542 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2543 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2545 WRITE_LONG_F(adr, res)
2557 dst = DREGu8((Opcode >> 0) & 7);
2559 flag_N = flag_X = flag_C = res;
2560 flag_V = (src ^ res) & (dst ^ res);
2561 flag_NotZ = res & 0xFF;
2562 DREGu8((Opcode >> 0) & 7) = res;
2573 adr = AREG((Opcode >> 0) & 7);
2575 READ_BYTE_F(adr, dst)
2577 flag_N = flag_X = flag_C = res;
2578 flag_V = (src ^ res) & (dst ^ res);
2579 flag_NotZ = res & 0xFF;
2580 WRITE_BYTE_F(adr, res)
2592 adr = AREG((Opcode >> 0) & 7);
2593 AREG((Opcode >> 0) & 7) += 1;
2595 READ_BYTE_F(adr, dst)
2597 flag_N = flag_X = flag_C = res;
2598 flag_V = (src ^ res) & (dst ^ res);
2599 flag_NotZ = res & 0xFF;
2600 WRITE_BYTE_F(adr, res)
2612 adr = AREG((Opcode >> 0) & 7) - 1;
2613 AREG((Opcode >> 0) & 7) = adr;
2615 READ_BYTE_F(adr, dst)
2617 flag_N = flag_X = flag_C = res;
2618 flag_V = (src ^ res) & (dst ^ res);
2619 flag_NotZ = res & 0xFF;
2620 WRITE_BYTE_F(adr, res)
2633 adr += AREG((Opcode >> 0) & 7);
2635 READ_BYTE_F(adr, dst)
2637 flag_N = flag_X = flag_C = res;
2638 flag_V = (src ^ res) & (dst ^ res);
2639 flag_NotZ = res & 0xFF;
2640 WRITE_BYTE_F(adr, res)
2652 adr = AREG((Opcode >> 0) & 7);
2655 READ_BYTE_F(adr, dst)
2657 flag_N = flag_X = flag_C = res;
2658 flag_V = (src ^ res) & (dst ^ res);
2659 flag_NotZ = res & 0xFF;
2660 WRITE_BYTE_F(adr, res)
2674 READ_BYTE_F(adr, dst)
2676 flag_N = flag_X = flag_C = res;
2677 flag_V = (src ^ res) & (dst ^ res);
2678 flag_NotZ = res & 0xFF;
2679 WRITE_BYTE_F(adr, res)
2693 READ_BYTE_F(adr, dst)
2695 flag_N = flag_X = flag_C = res;
2696 flag_V = (src ^ res) & (dst ^ res);
2697 flag_NotZ = res & 0xFF;
2698 WRITE_BYTE_F(adr, res)
2713 READ_BYTE_F(adr, dst)
2715 flag_N = flag_X = flag_C = res;
2716 flag_V = (src ^ res) & (dst ^ res);
2717 flag_NotZ = res & 0xFF;
2718 WRITE_BYTE_F(adr, res)
2733 READ_BYTE_F(adr, dst)
2735 flag_N = flag_X = flag_C = res;
2736 flag_V = (src ^ res) & (dst ^ res);
2737 flag_NotZ = res & 0xFF;
2738 WRITE_BYTE_F(adr, res)
2750 dst = DREGu16((Opcode >> 0) & 7);
2752 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2753 flag_N = flag_X = flag_C = res >> 8;
2754 flag_NotZ = res & 0xFFFF;
2755 DREGu16((Opcode >> 0) & 7) = res;
2766 adr = AREG((Opcode >> 0) & 7);
2768 READ_WORD_F(adr, dst)
2770 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2771 flag_N = flag_X = flag_C = res >> 8;
2772 flag_NotZ = res & 0xFFFF;
2773 WRITE_WORD_F(adr, res)
2785 adr = AREG((Opcode >> 0) & 7);
2786 AREG((Opcode >> 0) & 7) += 2;
2788 READ_WORD_F(adr, dst)
2790 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2791 flag_N = flag_X = flag_C = res >> 8;
2792 flag_NotZ = res & 0xFFFF;
2793 WRITE_WORD_F(adr, res)
2805 adr = AREG((Opcode >> 0) & 7) - 2;
2806 AREG((Opcode >> 0) & 7) = adr;
2808 READ_WORD_F(adr, dst)
2810 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2811 flag_N = flag_X = flag_C = res >> 8;
2812 flag_NotZ = res & 0xFFFF;
2813 WRITE_WORD_F(adr, res)
2826 adr += AREG((Opcode >> 0) & 7);
2828 READ_WORD_F(adr, dst)
2830 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2831 flag_N = flag_X = flag_C = res >> 8;
2832 flag_NotZ = res & 0xFFFF;
2833 WRITE_WORD_F(adr, res)
2845 adr = AREG((Opcode >> 0) & 7);
2848 READ_WORD_F(adr, dst)
2850 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2851 flag_N = flag_X = flag_C = res >> 8;
2852 flag_NotZ = res & 0xFFFF;
2853 WRITE_WORD_F(adr, res)
2867 READ_WORD_F(adr, dst)
2869 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2870 flag_N = flag_X = flag_C = res >> 8;
2871 flag_NotZ = res & 0xFFFF;
2872 WRITE_WORD_F(adr, res)
2886 READ_WORD_F(adr, dst)
2888 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2889 flag_N = flag_X = flag_C = res >> 8;
2890 flag_NotZ = res & 0xFFFF;
2891 WRITE_WORD_F(adr, res)
2906 READ_WORD_F(adr, dst)
2908 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2909 flag_N = flag_X = flag_C = res >> 8;
2910 flag_NotZ = res & 0xFFFF;
2911 WRITE_WORD_F(adr, res)
2926 READ_WORD_F(adr, dst)
2928 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2929 flag_N = flag_X = flag_C = res >> 8;
2930 flag_NotZ = res & 0xFFFF;
2931 WRITE_WORD_F(adr, res)
2943 dst = DREGu32((Opcode >> 0) & 7);
2946 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
2947 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
2949 DREGu32((Opcode >> 0) & 7) = res;
2960 adr = AREG((Opcode >> 0) & 7);
2962 READ_LONG_F(adr, dst)
2965 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
2966 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
2968 WRITE_LONG_F(adr, res)
2980 adr = AREG((Opcode >> 0) & 7);
2981 AREG((Opcode >> 0) & 7) += 4;
2983 READ_LONG_F(adr, dst)
2986 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
2987 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
2989 WRITE_LONG_F(adr, res)
3001 adr = AREG((Opcode >> 0) & 7) - 4;
3002 AREG((Opcode >> 0) & 7) = adr;
3004 READ_LONG_F(adr, dst)
3007 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3008 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3010 WRITE_LONG_F(adr, res)
3023 adr += AREG((Opcode >> 0) & 7);
3025 READ_LONG_F(adr, dst)
3028 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3029 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3031 WRITE_LONG_F(adr, res)
3043 adr = AREG((Opcode >> 0) & 7);
3046 READ_LONG_F(adr, dst)
3049 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3050 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3052 WRITE_LONG_F(adr, res)
3066 READ_LONG_F(adr, dst)
3069 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3070 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3072 WRITE_LONG_F(adr, res)
3086 READ_LONG_F(adr, dst)
3089 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3090 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3092 WRITE_LONG_F(adr, res)
3107 READ_LONG_F(adr, dst)
3110 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3111 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3113 WRITE_LONG_F(adr, res)
3128 READ_LONG_F(adr, dst)
3131 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3132 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3134 WRITE_LONG_F(adr, res)
3146 dst = DREGu8((Opcode >> 0) & 7);
3148 flag_N = flag_C = res;
3149 flag_V = (src ^ dst) & (res ^ dst);
3150 flag_NotZ = res & 0xFF;
3161 adr = AREG((Opcode >> 0) & 7);
3163 READ_BYTE_F(adr, dst)
3165 flag_N = flag_C = res;
3166 flag_V = (src ^ dst) & (res ^ dst);
3167 flag_NotZ = res & 0xFF;
3179 adr = AREG((Opcode >> 0) & 7);
3180 AREG((Opcode >> 0) & 7) += 1;
3182 READ_BYTE_F(adr, dst)
3184 flag_N = flag_C = res;
3185 flag_V = (src ^ dst) & (res ^ dst);
3186 flag_NotZ = res & 0xFF;
3198 adr = AREG((Opcode >> 0) & 7) - 1;
3199 AREG((Opcode >> 0) & 7) = adr;
3201 READ_BYTE_F(adr, dst)
3203 flag_N = flag_C = res;
3204 flag_V = (src ^ dst) & (res ^ dst);
3205 flag_NotZ = res & 0xFF;
3218 adr += AREG((Opcode >> 0) & 7);
3220 READ_BYTE_F(adr, dst)
3222 flag_N = flag_C = res;
3223 flag_V = (src ^ dst) & (res ^ dst);
3224 flag_NotZ = res & 0xFF;
3236 adr = AREG((Opcode >> 0) & 7);
3239 READ_BYTE_F(adr, dst)
3241 flag_N = flag_C = res;
3242 flag_V = (src ^ dst) & (res ^ dst);
3243 flag_NotZ = res & 0xFF;
3257 READ_BYTE_F(adr, dst)
3259 flag_N = flag_C = res;
3260 flag_V = (src ^ dst) & (res ^ dst);
3261 flag_NotZ = res & 0xFF;
3275 READ_BYTE_F(adr, dst)
3277 flag_N = flag_C = res;
3278 flag_V = (src ^ dst) & (res ^ dst);
3279 flag_NotZ = res & 0xFF;
3294 READ_BYTE_F(adr, dst)
3296 flag_N = flag_C = res;
3297 flag_V = (src ^ dst) & (res ^ dst);
3298 flag_NotZ = res & 0xFF;
3313 READ_BYTE_F(adr, dst)
3315 flag_N = flag_C = res;
3316 flag_V = (src ^ dst) & (res ^ dst);
3317 flag_NotZ = res & 0xFF;
3329 dst = DREGu16((Opcode >> 0) & 7);
3331 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3332 flag_N = flag_C = res >> 8;
3333 flag_NotZ = res & 0xFFFF;
3344 adr = AREG((Opcode >> 0) & 7);
3346 READ_WORD_F(adr, dst)
3348 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3349 flag_N = flag_C = res >> 8;
3350 flag_NotZ = res & 0xFFFF;
3362 adr = AREG((Opcode >> 0) & 7);
3363 AREG((Opcode >> 0) & 7) += 2;
3365 READ_WORD_F(adr, dst)
3367 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3368 flag_N = flag_C = res >> 8;
3369 flag_NotZ = res & 0xFFFF;
3381 adr = AREG((Opcode >> 0) & 7) - 2;
3382 AREG((Opcode >> 0) & 7) = adr;
3384 READ_WORD_F(adr, dst)
3386 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3387 flag_N = flag_C = res >> 8;
3388 flag_NotZ = res & 0xFFFF;
3401 adr += AREG((Opcode >> 0) & 7);
3403 READ_WORD_F(adr, dst)
3405 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3406 flag_N = flag_C = res >> 8;
3407 flag_NotZ = res & 0xFFFF;
3419 adr = AREG((Opcode >> 0) & 7);
3422 READ_WORD_F(adr, dst)
3424 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3425 flag_N = flag_C = res >> 8;
3426 flag_NotZ = res & 0xFFFF;
3440 READ_WORD_F(adr, dst)
3442 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3443 flag_N = flag_C = res >> 8;
3444 flag_NotZ = res & 0xFFFF;
3458 READ_WORD_F(adr, dst)
3460 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3461 flag_N = flag_C = res >> 8;
3462 flag_NotZ = res & 0xFFFF;
3477 READ_WORD_F(adr, dst)
3479 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3480 flag_N = flag_C = res >> 8;
3481 flag_NotZ = res & 0xFFFF;
3496 READ_WORD_F(adr, dst)
3498 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3499 flag_N = flag_C = res >> 8;
3500 flag_NotZ = res & 0xFFFF;
3512 dst = DREGu32((Opcode >> 0) & 7);
3515 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3516 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3528 adr = AREG((Opcode >> 0) & 7);
3530 READ_LONG_F(adr, dst)
3533 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3534 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3547 adr = AREG((Opcode >> 0) & 7);
3548 AREG((Opcode >> 0) & 7) += 4;
3550 READ_LONG_F(adr, dst)
3553 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3554 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3567 adr = AREG((Opcode >> 0) & 7) - 4;
3568 AREG((Opcode >> 0) & 7) = adr;
3570 READ_LONG_F(adr, dst)
3573 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3574 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3588 adr += AREG((Opcode >> 0) & 7);
3590 READ_LONG_F(adr, dst)
3593 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3594 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3607 adr = AREG((Opcode >> 0) & 7);
3610 READ_LONG_F(adr, dst)
3613 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3614 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3629 READ_LONG_F(adr, dst)
3632 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3633 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3648 READ_LONG_F(adr, dst)
3651 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3652 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3668 READ_LONG_F(adr, dst)
3671 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3672 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3688 READ_LONG_F(adr, dst)
3691 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3692 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3705 src = 1 << (src & 31);
3706 res = DREGu32((Opcode >> 0) & 7);
3707 flag_NotZ = res & src;
3718 src = 1 << (src & 7);
3719 adr = AREG((Opcode >> 0) & 7);
3721 READ_BYTE_F(adr, res)
3722 flag_NotZ = res & src;
3734 src = 1 << (src & 7);
3735 adr = AREG((Opcode >> 0) & 7);
3736 AREG((Opcode >> 0) & 7) += 1;
3738 READ_BYTE_F(adr, res)
3739 flag_NotZ = res & src;
3751 src = 1 << (src & 7);
3752 adr = AREG((Opcode >> 0) & 7) - 1;
3753 AREG((Opcode >> 0) & 7) = adr;
3755 READ_BYTE_F(adr, res)
3756 flag_NotZ = res & src;
3768 src = 1 << (src & 7);
3770 adr += AREG((Opcode >> 0) & 7);
3772 READ_BYTE_F(adr, res)
3773 flag_NotZ = res & src;
3785 src = 1 << (src & 7);
3786 adr = AREG((Opcode >> 0) & 7);
3789 READ_BYTE_F(adr, res)
3790 flag_NotZ = res & src;
3802 src = 1 << (src & 7);
3805 READ_BYTE_F(adr, res)
3806 flag_NotZ = res & src;
3818 src = 1 << (src & 7);
3821 READ_BYTE_F(adr, res)
3822 flag_NotZ = res & src;
3834 src = 1 << (src & 7);
3835 adr = GET_SWORD + GET_PC;
3838 READ_BYTE_F(adr, res)
3839 flag_NotZ = res & src;
3851 src = 1 << (src & 7);
3852 adr = (uptr)(PC) - BasePC;
3855 READ_BYTE_F(adr, res)
3856 flag_NotZ = res & src;
3868 src = 1 << (src & 7);
3872 READ_BYTE_F(adr, res)
3873 flag_NotZ = res & src;
3885 src = 1 << (src & 7);
3889 READ_BYTE_F(adr, res)
3890 flag_NotZ = res & src;
3902 src = 1 << (src & 31);
3903 res = DREGu32((Opcode >> 0) & 7);
3904 flag_NotZ = res & src;
3906 DREGu32((Opcode >> 0) & 7) = res;
3917 src = 1 << (src & 7);
3918 adr = AREG((Opcode >> 0) & 7);
3920 READ_BYTE_F(adr, res)
3921 flag_NotZ = res & src;
3923 WRITE_BYTE_F(adr, res)
3935 src = 1 << (src & 7);
3936 adr = AREG((Opcode >> 0) & 7);
3937 AREG((Opcode >> 0) & 7) += 1;
3939 READ_BYTE_F(adr, res)
3940 flag_NotZ = res & src;
3942 WRITE_BYTE_F(adr, res)
3954 src = 1 << (src & 7);
3955 adr = AREG((Opcode >> 0) & 7) - 1;
3956 AREG((Opcode >> 0) & 7) = adr;
3958 READ_BYTE_F(adr, res)
3959 flag_NotZ = res & src;
3961 WRITE_BYTE_F(adr, res)
3973 src = 1 << (src & 7);
3975 adr += AREG((Opcode >> 0) & 7);
3977 READ_BYTE_F(adr, res)
3978 flag_NotZ = res & src;
3980 WRITE_BYTE_F(adr, res)
3992 src = 1 << (src & 7);
3993 adr = AREG((Opcode >> 0) & 7);
3996 READ_BYTE_F(adr, res)
3997 flag_NotZ = res & src;
3999 WRITE_BYTE_F(adr, res)
4011 src = 1 << (src & 7);
4014 READ_BYTE_F(adr, res)
4015 flag_NotZ = res & src;
4017 WRITE_BYTE_F(adr, res)
4029 src = 1 << (src & 7);
4032 READ_BYTE_F(adr, res)
4033 flag_NotZ = res & src;
4035 WRITE_BYTE_F(adr, res)
4047 src = 1 << (src & 7);
4051 READ_BYTE_F(adr, res)
4052 flag_NotZ = res & src;
4054 WRITE_BYTE_F(adr, res)
4066 src = 1 << (src & 7);
4070 READ_BYTE_F(adr, res)
4071 flag_NotZ = res & src;
4073 WRITE_BYTE_F(adr, res)
4085 src = 1 << (src & 31);
4086 res = DREGu32((Opcode >> 0) & 7);
4087 flag_NotZ = res & src;
4089 DREGu32((Opcode >> 0) & 7) = res;
4100 src = 1 << (src & 7);
4101 adr = AREG((Opcode >> 0) & 7);
4103 READ_BYTE_F(adr, res)
4104 flag_NotZ = res & src;
4106 WRITE_BYTE_F(adr, res)
4118 src = 1 << (src & 7);
4119 adr = AREG((Opcode >> 0) & 7);
4120 AREG((Opcode >> 0) & 7) += 1;
4122 READ_BYTE_F(adr, res)
4123 flag_NotZ = res & src;
4125 WRITE_BYTE_F(adr, res)
4137 src = 1 << (src & 7);
4138 adr = AREG((Opcode >> 0) & 7) - 1;
4139 AREG((Opcode >> 0) & 7) = adr;
4141 READ_BYTE_F(adr, res)
4142 flag_NotZ = res & src;
4144 WRITE_BYTE_F(adr, res)
4156 src = 1 << (src & 7);
4158 adr += AREG((Opcode >> 0) & 7);
4160 READ_BYTE_F(adr, res)
4161 flag_NotZ = res & src;
4163 WRITE_BYTE_F(adr, res)
4175 src = 1 << (src & 7);
4176 adr = AREG((Opcode >> 0) & 7);
4179 READ_BYTE_F(adr, res)
4180 flag_NotZ = res & src;
4182 WRITE_BYTE_F(adr, res)
4194 src = 1 << (src & 7);
4197 READ_BYTE_F(adr, res)
4198 flag_NotZ = res & src;
4200 WRITE_BYTE_F(adr, res)
4212 src = 1 << (src & 7);
4215 READ_BYTE_F(adr, res)
4216 flag_NotZ = res & src;
4218 WRITE_BYTE_F(adr, res)
4230 src = 1 << (src & 7);
4234 READ_BYTE_F(adr, res)
4235 flag_NotZ = res & src;
4237 WRITE_BYTE_F(adr, res)
4249 src = 1 << (src & 7);
4253 READ_BYTE_F(adr, res)
4254 flag_NotZ = res & src;
4256 WRITE_BYTE_F(adr, res)
4268 src = 1 << (src & 31);
4269 res = DREGu32((Opcode >> 0) & 7);
4270 flag_NotZ = res & src;
4272 DREGu32((Opcode >> 0) & 7) = res;
4283 src = 1 << (src & 7);
4284 adr = AREG((Opcode >> 0) & 7);
4286 READ_BYTE_F(adr, res)
4287 flag_NotZ = res & src;
4289 WRITE_BYTE_F(adr, res)
4301 src = 1 << (src & 7);
4302 adr = AREG((Opcode >> 0) & 7);
4303 AREG((Opcode >> 0) & 7) += 1;
4305 READ_BYTE_F(adr, res)
4306 flag_NotZ = res & src;
4308 WRITE_BYTE_F(adr, res)
4320 src = 1 << (src & 7);
4321 adr = AREG((Opcode >> 0) & 7) - 1;
4322 AREG((Opcode >> 0) & 7) = adr;
4324 READ_BYTE_F(adr, res)
4325 flag_NotZ = res & src;
4327 WRITE_BYTE_F(adr, res)
4339 src = 1 << (src & 7);
4341 adr += AREG((Opcode >> 0) & 7);
4343 READ_BYTE_F(adr, res)
4344 flag_NotZ = res & src;
4346 WRITE_BYTE_F(adr, res)
4358 src = 1 << (src & 7);
4359 adr = AREG((Opcode >> 0) & 7);
4362 READ_BYTE_F(adr, res)
4363 flag_NotZ = res & src;
4365 WRITE_BYTE_F(adr, res)
4377 src = 1 << (src & 7);
4380 READ_BYTE_F(adr, res)
4381 flag_NotZ = res & src;
4383 WRITE_BYTE_F(adr, res)
4395 src = 1 << (src & 7);
4398 READ_BYTE_F(adr, res)
4399 flag_NotZ = res & src;
4401 WRITE_BYTE_F(adr, res)
4413 src = 1 << (src & 7);
4417 READ_BYTE_F(adr, res)
4418 flag_NotZ = res & src;
4420 WRITE_BYTE_F(adr, res)
4432 src = 1 << (src & 7);
4436 READ_BYTE_F(adr, res)
4437 flag_NotZ = res & src;
4439 WRITE_BYTE_F(adr, res)
4450 src = DREGu32((Opcode >> 9) & 7);
4451 src = 1 << (src & 31);
4452 res = DREGu32((Opcode >> 0) & 7);
4453 flag_NotZ = res & src;
4463 src = DREGu8((Opcode >> 9) & 7);
4464 src = 1 << (src & 7);
4465 adr = AREG((Opcode >> 0) & 7);
4467 READ_BYTE_F(adr, res)
4468 flag_NotZ = res & src;
4479 src = DREGu8((Opcode >> 9) & 7);
4480 src = 1 << (src & 7);
4481 adr = AREG((Opcode >> 0) & 7);
4482 AREG((Opcode >> 0) & 7) += 1;
4484 READ_BYTE_F(adr, res)
4485 flag_NotZ = res & src;
4496 src = DREGu8((Opcode >> 9) & 7);
4497 src = 1 << (src & 7);
4498 adr = AREG((Opcode >> 0) & 7) - 1;
4499 AREG((Opcode >> 0) & 7) = adr;
4501 READ_BYTE_F(adr, res)
4502 flag_NotZ = res & src;
4513 src = DREGu8((Opcode >> 9) & 7);
4514 src = 1 << (src & 7);
4516 adr += AREG((Opcode >> 0) & 7);
4518 READ_BYTE_F(adr, res)
4519 flag_NotZ = res & src;
4530 src = DREGu8((Opcode >> 9) & 7);
4531 src = 1 << (src & 7);
4532 adr = AREG((Opcode >> 0) & 7);
4535 READ_BYTE_F(adr, res)
4536 flag_NotZ = res & src;
4547 src = DREGu8((Opcode >> 9) & 7);
4548 src = 1 << (src & 7);
4551 READ_BYTE_F(adr, res)
4552 flag_NotZ = res & src;
4563 src = DREGu8((Opcode >> 9) & 7);
4564 src = 1 << (src & 7);
4567 READ_BYTE_F(adr, res)
4568 flag_NotZ = res & src;
4579 src = DREGu8((Opcode >> 9) & 7);
4580 src = 1 << (src & 7);
4581 adr = GET_SWORD + GET_PC;
4584 READ_BYTE_F(adr, res)
4585 flag_NotZ = res & src;
4596 src = DREGu8((Opcode >> 9) & 7);
4597 src = 1 << (src & 7);
4598 adr = (uptr)(PC) - BasePC;
4601 READ_BYTE_F(adr, res)
4602 flag_NotZ = res & src;
4613 src = DREGu8((Opcode >> 9) & 7);
4614 src = 1 << (src & 7);
4616 flag_NotZ = res & src;
4626 src = DREGu8((Opcode >> 9) & 7);
4627 src = 1 << (src & 7);
4631 READ_BYTE_F(adr, res)
4632 flag_NotZ = res & src;
4643 src = DREGu8((Opcode >> 9) & 7);
4644 src = 1 << (src & 7);
4648 READ_BYTE_F(adr, res)
4649 flag_NotZ = res & src;
4660 src = DREGu32((Opcode >> 9) & 7);
4661 src = 1 << (src & 31);
4662 res = DREGu32((Opcode >> 0) & 7);
4663 flag_NotZ = res & src;
4665 DREGu32((Opcode >> 0) & 7) = res;
4675 src = DREGu8((Opcode >> 9) & 7);
4676 src = 1 << (src & 7);
4677 adr = AREG((Opcode >> 0) & 7);
4679 READ_BYTE_F(adr, res)
4680 flag_NotZ = res & src;
4682 WRITE_BYTE_F(adr, res)
4693 src = DREGu8((Opcode >> 9) & 7);
4694 src = 1 << (src & 7);
4695 adr = AREG((Opcode >> 0) & 7);
4696 AREG((Opcode >> 0) & 7) += 1;
4698 READ_BYTE_F(adr, res)
4699 flag_NotZ = res & src;
4701 WRITE_BYTE_F(adr, res)
4712 src = DREGu8((Opcode >> 9) & 7);
4713 src = 1 << (src & 7);
4714 adr = AREG((Opcode >> 0) & 7) - 1;
4715 AREG((Opcode >> 0) & 7) = adr;
4717 READ_BYTE_F(adr, res)
4718 flag_NotZ = res & src;
4720 WRITE_BYTE_F(adr, res)
4731 src = DREGu8((Opcode >> 9) & 7);
4732 src = 1 << (src & 7);
4734 adr += AREG((Opcode >> 0) & 7);
4736 READ_BYTE_F(adr, res)
4737 flag_NotZ = res & src;
4739 WRITE_BYTE_F(adr, res)
4750 src = DREGu8((Opcode >> 9) & 7);
4751 src = 1 << (src & 7);
4752 adr = AREG((Opcode >> 0) & 7);
4755 READ_BYTE_F(adr, res)
4756 flag_NotZ = res & src;
4758 WRITE_BYTE_F(adr, res)
4769 src = DREGu8((Opcode >> 9) & 7);
4770 src = 1 << (src & 7);
4773 READ_BYTE_F(adr, res)
4774 flag_NotZ = res & src;
4776 WRITE_BYTE_F(adr, res)
4787 src = DREGu8((Opcode >> 9) & 7);
4788 src = 1 << (src & 7);
4791 READ_BYTE_F(adr, res)
4792 flag_NotZ = res & src;
4794 WRITE_BYTE_F(adr, res)
4805 src = DREGu8((Opcode >> 9) & 7);
4806 src = 1 << (src & 7);
4810 READ_BYTE_F(adr, res)
4811 flag_NotZ = res & src;
4813 WRITE_BYTE_F(adr, res)
4824 src = DREGu8((Opcode >> 9) & 7);
4825 src = 1 << (src & 7);
4829 READ_BYTE_F(adr, res)
4830 flag_NotZ = res & src;
4832 WRITE_BYTE_F(adr, res)
4843 src = DREGu32((Opcode >> 9) & 7);
4844 src = 1 << (src & 31);
4845 res = DREGu32((Opcode >> 0) & 7);
4846 flag_NotZ = res & src;
4848 DREGu32((Opcode >> 0) & 7) = res;
4858 src = DREGu8((Opcode >> 9) & 7);
4859 src = 1 << (src & 7);
4860 adr = AREG((Opcode >> 0) & 7);
4862 READ_BYTE_F(adr, res)
4863 flag_NotZ = res & src;
4865 WRITE_BYTE_F(adr, res)
4876 src = DREGu8((Opcode >> 9) & 7);
4877 src = 1 << (src & 7);
4878 adr = AREG((Opcode >> 0) & 7);
4879 AREG((Opcode >> 0) & 7) += 1;
4881 READ_BYTE_F(adr, res)
4882 flag_NotZ = res & src;
4884 WRITE_BYTE_F(adr, res)
4895 src = DREGu8((Opcode >> 9) & 7);
4896 src = 1 << (src & 7);
4897 adr = AREG((Opcode >> 0) & 7) - 1;
4898 AREG((Opcode >> 0) & 7) = adr;
4900 READ_BYTE_F(adr, res)
4901 flag_NotZ = res & src;
4903 WRITE_BYTE_F(adr, res)
4914 src = DREGu8((Opcode >> 9) & 7);
4915 src = 1 << (src & 7);
4917 adr += AREG((Opcode >> 0) & 7);
4919 READ_BYTE_F(adr, res)
4920 flag_NotZ = res & src;
4922 WRITE_BYTE_F(adr, res)
4933 src = DREGu8((Opcode >> 9) & 7);
4934 src = 1 << (src & 7);
4935 adr = AREG((Opcode >> 0) & 7);
4938 READ_BYTE_F(adr, res)
4939 flag_NotZ = res & src;
4941 WRITE_BYTE_F(adr, res)
4952 src = DREGu8((Opcode >> 9) & 7);
4953 src = 1 << (src & 7);
4956 READ_BYTE_F(adr, res)
4957 flag_NotZ = res & src;
4959 WRITE_BYTE_F(adr, res)
4970 src = DREGu8((Opcode >> 9) & 7);
4971 src = 1 << (src & 7);
4974 READ_BYTE_F(adr, res)
4975 flag_NotZ = res & src;
4977 WRITE_BYTE_F(adr, res)
4988 src = DREGu8((Opcode >> 9) & 7);
4989 src = 1 << (src & 7);
4993 READ_BYTE_F(adr, res)
4994 flag_NotZ = res & src;
4996 WRITE_BYTE_F(adr, res)
5007 src = DREGu8((Opcode >> 9) & 7);
5008 src = 1 << (src & 7);
5012 READ_BYTE_F(adr, res)
5013 flag_NotZ = res & src;
5015 WRITE_BYTE_F(adr, res)
5026 src = DREGu32((Opcode >> 9) & 7);
5027 src = 1 << (src & 31);
5028 res = DREGu32((Opcode >> 0) & 7);
5029 flag_NotZ = res & src;
5031 DREGu32((Opcode >> 0) & 7) = res;
5041 src = DREGu8((Opcode >> 9) & 7);
5042 src = 1 << (src & 7);
5043 adr = AREG((Opcode >> 0) & 7);
5045 READ_BYTE_F(adr, res)
5046 flag_NotZ = res & src;
5048 WRITE_BYTE_F(adr, res)
5059 src = DREGu8((Opcode >> 9) & 7);
5060 src = 1 << (src & 7);
5061 adr = AREG((Opcode >> 0) & 7);
5062 AREG((Opcode >> 0) & 7) += 1;
5064 READ_BYTE_F(adr, res)
5065 flag_NotZ = res & src;
5067 WRITE_BYTE_F(adr, res)
5078 src = DREGu8((Opcode >> 9) & 7);
5079 src = 1 << (src & 7);
5080 adr = AREG((Opcode >> 0) & 7) - 1;
5081 AREG((Opcode >> 0) & 7) = adr;
5083 READ_BYTE_F(adr, res)
5084 flag_NotZ = res & src;
5086 WRITE_BYTE_F(adr, res)
5097 src = DREGu8((Opcode >> 9) & 7);
5098 src = 1 << (src & 7);
5100 adr += AREG((Opcode >> 0) & 7);
5102 READ_BYTE_F(adr, res)
5103 flag_NotZ = res & src;
5105 WRITE_BYTE_F(adr, res)
5116 src = DREGu8((Opcode >> 9) & 7);
5117 src = 1 << (src & 7);
5118 adr = AREG((Opcode >> 0) & 7);
5121 READ_BYTE_F(adr, res)
5122 flag_NotZ = res & src;
5124 WRITE_BYTE_F(adr, res)
5135 src = DREGu8((Opcode >> 9) & 7);
5136 src = 1 << (src & 7);
5139 READ_BYTE_F(adr, res)
5140 flag_NotZ = res & src;
5142 WRITE_BYTE_F(adr, res)
5153 src = DREGu8((Opcode >> 9) & 7);
5154 src = 1 << (src & 7);
5157 READ_BYTE_F(adr, res)
5158 flag_NotZ = res & src;
5160 WRITE_BYTE_F(adr, res)
5171 src = DREGu8((Opcode >> 9) & 7);
5172 src = 1 << (src & 7);
5176 READ_BYTE_F(adr, res)
5177 flag_NotZ = res & src;
5179 WRITE_BYTE_F(adr, res)
5190 src = DREGu8((Opcode >> 9) & 7);
5191 src = 1 << (src & 7);
5195 READ_BYTE_F(adr, res)
5196 flag_NotZ = res & src;
5198 WRITE_BYTE_F(adr, res)
5210 adr += AREG((Opcode >> 0) & 7);
5212 READ_BYTE_F(adr + 0, res)
5213 READ_BYTE_F(adr + 2, src)
5214 DREGu16((Opcode >> 9) & 7) = (res << 8) | src;
5216 #ifdef USE_CYCLONE_TIMING
5230 adr += AREG((Opcode >> 0) & 7);
5232 READ_BYTE_F(adr, res)
5235 READ_BYTE_F(adr, src)
5238 READ_BYTE_F(adr, src)
5241 READ_BYTE_F(adr, src)
5242 DREG((Opcode >> 9) & 7) = res | src;
5244 #ifdef USE_CYCLONE_TIMING
5257 res = DREGu32((Opcode >> 9) & 7);
5259 adr += AREG((Opcode >> 0) & 7);
5261 WRITE_BYTE_F(adr + 0, res >> 8)
5262 WRITE_BYTE_F(adr + 2, res >> 0)
5264 #ifdef USE_CYCLONE_TIMING
5277 res = DREGu32((Opcode >> 9) & 7);
5279 adr += AREG((Opcode >> 0) & 7);
5281 WRITE_BYTE_F(adr, res >> 24)
5283 WRITE_BYTE_F(adr, res >> 16)
5285 WRITE_BYTE_F(adr, res >> 8)
5287 WRITE_BYTE_F(adr, res >> 0)
5289 #ifdef USE_CYCLONE_TIMING
5302 res = DREGu8((Opcode >> 0) & 7);
5307 DREGu8((Opcode >> 9) & 7) = res;
5317 res = DREGu8((Opcode >> 0) & 7);
5322 adr = AREG((Opcode >> 9) & 7);
5324 WRITE_BYTE_F(adr, res)
5335 res = DREGu8((Opcode >> 0) & 7);
5340 adr = AREG((Opcode >> 9) & 7);
5341 AREG((Opcode >> 9) & 7) += 1;
5343 WRITE_BYTE_F(adr, res)
5354 res = DREGu8((Opcode >> 0) & 7);
5359 adr = AREG((Opcode >> 9) & 7) - 1;
5360 AREG((Opcode >> 9) & 7) = adr;
5362 WRITE_BYTE_F(adr, res)
5373 res = DREGu8((Opcode >> 0) & 7);
5379 adr += AREG((Opcode >> 9) & 7);
5381 WRITE_BYTE_F(adr, res)
5392 res = DREGu8((Opcode >> 0) & 7);
5397 adr = AREG((Opcode >> 9) & 7);
5400 WRITE_BYTE_F(adr, res)
5411 res = DREGu8((Opcode >> 0) & 7);
5418 WRITE_BYTE_F(adr, res)
5429 res = DREGu8((Opcode >> 0) & 7);
5436 WRITE_BYTE_F(adr, res)
5447 res = DREGu8((Opcode >> 0) & 7);
5455 WRITE_BYTE_F(adr, res)
5466 res = DREGu8((Opcode >> 0) & 7);
5474 WRITE_BYTE_F(adr, res)
5486 // can't read byte from Ax registers !
5487 m68kcontext.execinfo |= M68K_FAULTED;
5488 m68kcontext.io_cycle_counter = 0;
5490 goto famec_Exec_End;
5495 DREGu8((Opcode >> 9) & 7) = res;
5506 // can't read byte from Ax registers !
5507 m68kcontext.execinfo |= M68K_FAULTED;
5508 m68kcontext.io_cycle_counter = 0;
5510 goto famec_Exec_End;
5515 adr = AREG((Opcode >> 9) & 7);
5517 WRITE_BYTE_F(adr, res)
5529 // can't read byte from Ax registers !
5530 m68kcontext.execinfo |= M68K_FAULTED;
5531 m68kcontext.io_cycle_counter = 0;
5533 goto famec_Exec_End;
5538 adr = AREG((Opcode >> 9) & 7);
5539 AREG((Opcode >> 9) & 7) += 1;
5541 WRITE_BYTE_F(adr, res)
5553 // can't read byte from Ax registers !
5554 m68kcontext.execinfo |= M68K_FAULTED;
5555 m68kcontext.io_cycle_counter = 0;
5557 goto famec_Exec_End;
5562 adr = AREG((Opcode >> 9) & 7) - 1;
5563 AREG((Opcode >> 9) & 7) = adr;
5565 WRITE_BYTE_F(adr, res)
5577 // can't read byte from Ax registers !
5578 m68kcontext.execinfo |= M68K_FAULTED;
5579 m68kcontext.io_cycle_counter = 0;
5581 goto famec_Exec_End;
5587 adr += AREG((Opcode >> 9) & 7);
5589 WRITE_BYTE_F(adr, res)
5601 // can't read byte from Ax registers !
5602 m68kcontext.execinfo |= M68K_FAULTED;
5603 m68kcontext.io_cycle_counter = 0;
5605 goto famec_Exec_End;
5610 adr = AREG((Opcode >> 9) & 7);
5613 WRITE_BYTE_F(adr, res)
5625 // can't read byte from Ax registers !
5626 m68kcontext.execinfo |= M68K_FAULTED;
5627 m68kcontext.io_cycle_counter = 0;
5629 goto famec_Exec_End;
5636 WRITE_BYTE_F(adr, res)
5648 // can't read byte from Ax registers !
5649 m68kcontext.execinfo |= M68K_FAULTED;
5650 m68kcontext.io_cycle_counter = 0;
5652 goto famec_Exec_End;
5659 WRITE_BYTE_F(adr, res)
5671 // can't read byte from Ax registers !
5672 m68kcontext.execinfo |= M68K_FAULTED;
5673 m68kcontext.io_cycle_counter = 0;
5675 goto famec_Exec_End;
5683 WRITE_BYTE_F(adr, res)
5695 // can't read byte from Ax registers !
5696 m68kcontext.execinfo |= M68K_FAULTED;
5697 m68kcontext.io_cycle_counter = 0;
5699 goto famec_Exec_End;
5707 WRITE_BYTE_F(adr, res)
5720 adr = AREG((Opcode >> 0) & 7);
5722 READ_BYTE_F(adr, res)
5727 DREGu8((Opcode >> 9) & 7) = res;
5738 adr = AREG((Opcode >> 0) & 7);
5740 READ_BYTE_F(adr, res)
5745 adr = AREG((Opcode >> 9) & 7);
5746 WRITE_BYTE_F(adr, res)
5757 adr = AREG((Opcode >> 0) & 7);
5759 READ_BYTE_F(adr, res)
5764 adr = AREG((Opcode >> 9) & 7);
5765 AREG((Opcode >> 9) & 7) += 1;
5766 WRITE_BYTE_F(adr, res)
5777 adr = AREG((Opcode >> 0) & 7);
5779 READ_BYTE_F(adr, res)
5784 adr = AREG((Opcode >> 9) & 7) - 1;
5785 AREG((Opcode >> 9) & 7) = adr;
5786 WRITE_BYTE_F(adr, res)
5797 adr = AREG((Opcode >> 0) & 7);
5799 READ_BYTE_F(adr, res)
5805 adr += AREG((Opcode >> 9) & 7);
5806 WRITE_BYTE_F(adr, res)
5817 adr = AREG((Opcode >> 0) & 7);
5819 READ_BYTE_F(adr, res)
5824 adr = AREG((Opcode >> 9) & 7);
5826 WRITE_BYTE_F(adr, res)
5837 adr = AREG((Opcode >> 0) & 7);
5839 READ_BYTE_F(adr, res)
5845 WRITE_BYTE_F(adr, res)
5856 adr = AREG((Opcode >> 0) & 7);
5858 READ_BYTE_F(adr, res)
5864 WRITE_BYTE_F(adr, res)
5875 adr = AREG((Opcode >> 0) & 7);
5877 READ_BYTE_F(adr, res)
5884 WRITE_BYTE_F(adr, res)
5895 adr = AREG((Opcode >> 0) & 7);
5897 READ_BYTE_F(adr, res)
5904 WRITE_BYTE_F(adr, res)
5915 adr = AREG((Opcode >> 0) & 7);
5916 AREG((Opcode >> 0) & 7) += 1;
5918 READ_BYTE_F(adr, res)
5923 DREGu8((Opcode >> 9) & 7) = res;
5934 adr = AREG((Opcode >> 0) & 7);
5935 AREG((Opcode >> 0) & 7) += 1;
5937 READ_BYTE_F(adr, res)
5942 adr = AREG((Opcode >> 9) & 7);
5943 WRITE_BYTE_F(adr, res)
5954 adr = AREG((Opcode >> 0) & 7);
5955 AREG((Opcode >> 0) & 7) += 1;
5957 READ_BYTE_F(adr, res)
5962 adr = AREG((Opcode >> 9) & 7);
5963 AREG((Opcode >> 9) & 7) += 1;
5964 WRITE_BYTE_F(adr, res)
5975 adr = AREG((Opcode >> 0) & 7);
5976 AREG((Opcode >> 0) & 7) += 1;
5978 READ_BYTE_F(adr, res)
5983 adr = AREG((Opcode >> 9) & 7) - 1;
5984 AREG((Opcode >> 9) & 7) = adr;
5985 WRITE_BYTE_F(adr, res)
5996 adr = AREG((Opcode >> 0) & 7);
5997 AREG((Opcode >> 0) & 7) += 1;
5999 READ_BYTE_F(adr, res)
6005 adr += AREG((Opcode >> 9) & 7);
6006 WRITE_BYTE_F(adr, res)
6017 adr = AREG((Opcode >> 0) & 7);
6018 AREG((Opcode >> 0) & 7) += 1;
6020 READ_BYTE_F(adr, res)
6025 adr = AREG((Opcode >> 9) & 7);
6027 WRITE_BYTE_F(adr, res)
6038 adr = AREG((Opcode >> 0) & 7);
6039 AREG((Opcode >> 0) & 7) += 1;
6041 READ_BYTE_F(adr, res)
6047 WRITE_BYTE_F(adr, res)
6058 adr = AREG((Opcode >> 0) & 7);
6059 AREG((Opcode >> 0) & 7) += 1;
6061 READ_BYTE_F(adr, res)
6067 WRITE_BYTE_F(adr, res)
6078 adr = AREG((Opcode >> 0) & 7);
6079 AREG((Opcode >> 0) & 7) += 1;
6081 READ_BYTE_F(adr, res)
6088 WRITE_BYTE_F(adr, res)
6099 adr = AREG((Opcode >> 0) & 7);
6100 AREG((Opcode >> 0) & 7) += 1;
6102 READ_BYTE_F(adr, res)
6109 WRITE_BYTE_F(adr, res)
6120 adr = AREG((Opcode >> 0) & 7) - 1;
6121 AREG((Opcode >> 0) & 7) = adr;
6123 READ_BYTE_F(adr, res)
6128 DREGu8((Opcode >> 9) & 7) = res;
6139 adr = AREG((Opcode >> 0) & 7) - 1;
6140 AREG((Opcode >> 0) & 7) = adr;
6142 READ_BYTE_F(adr, res)
6147 adr = AREG((Opcode >> 9) & 7);
6148 WRITE_BYTE_F(adr, res)
6159 adr = AREG((Opcode >> 0) & 7) - 1;
6160 AREG((Opcode >> 0) & 7) = adr;
6162 READ_BYTE_F(adr, res)
6167 adr = AREG((Opcode >> 9) & 7);
6168 AREG((Opcode >> 9) & 7) += 1;
6169 WRITE_BYTE_F(adr, res)
6180 adr = AREG((Opcode >> 0) & 7) - 1;
6181 AREG((Opcode >> 0) & 7) = adr;
6183 READ_BYTE_F(adr, res)
6188 adr = AREG((Opcode >> 9) & 7) - 1;
6189 AREG((Opcode >> 9) & 7) = adr;
6190 WRITE_BYTE_F(adr, res)
6201 adr = AREG((Opcode >> 0) & 7) - 1;
6202 AREG((Opcode >> 0) & 7) = adr;
6204 READ_BYTE_F(adr, res)
6210 adr += AREG((Opcode >> 9) & 7);
6211 WRITE_BYTE_F(adr, res)
6222 adr = AREG((Opcode >> 0) & 7) - 1;
6223 AREG((Opcode >> 0) & 7) = adr;
6225 READ_BYTE_F(adr, res)
6230 adr = AREG((Opcode >> 9) & 7);
6232 WRITE_BYTE_F(adr, res)
6243 adr = AREG((Opcode >> 0) & 7) - 1;
6244 AREG((Opcode >> 0) & 7) = adr;
6246 READ_BYTE_F(adr, res)
6252 WRITE_BYTE_F(adr, res)
6263 adr = AREG((Opcode >> 0) & 7) - 1;
6264 AREG((Opcode >> 0) & 7) = adr;
6266 READ_BYTE_F(adr, res)
6272 WRITE_BYTE_F(adr, res)
6283 adr = AREG((Opcode >> 0) & 7) - 1;
6284 AREG((Opcode >> 0) & 7) = adr;
6286 READ_BYTE_F(adr, res)
6293 WRITE_BYTE_F(adr, res)
6304 adr = AREG((Opcode >> 0) & 7) - 1;
6305 AREG((Opcode >> 0) & 7) = adr;
6307 READ_BYTE_F(adr, res)
6314 WRITE_BYTE_F(adr, res)
6326 adr += AREG((Opcode >> 0) & 7);
6328 READ_BYTE_F(adr, res)
6333 DREGu8((Opcode >> 9) & 7) = res;
6345 adr += AREG((Opcode >> 0) & 7);
6347 READ_BYTE_F(adr, res)
6352 adr = AREG((Opcode >> 9) & 7);
6353 WRITE_BYTE_F(adr, res)
6365 adr += AREG((Opcode >> 0) & 7);
6367 READ_BYTE_F(adr, res)
6372 adr = AREG((Opcode >> 9) & 7);
6373 AREG((Opcode >> 9) & 7) += 1;
6374 WRITE_BYTE_F(adr, res)
6386 adr += AREG((Opcode >> 0) & 7);
6388 READ_BYTE_F(adr, res)
6393 adr = AREG((Opcode >> 9) & 7) - 1;
6394 AREG((Opcode >> 9) & 7) = adr;
6395 WRITE_BYTE_F(adr, res)
6407 adr += AREG((Opcode >> 0) & 7);
6409 READ_BYTE_F(adr, res)
6415 adr += AREG((Opcode >> 9) & 7);
6416 WRITE_BYTE_F(adr, res)
6428 adr += AREG((Opcode >> 0) & 7);
6430 READ_BYTE_F(adr, res)
6435 adr = AREG((Opcode >> 9) & 7);
6437 WRITE_BYTE_F(adr, res)
6449 adr += AREG((Opcode >> 0) & 7);
6451 READ_BYTE_F(adr, res)
6457 WRITE_BYTE_F(adr, res)
6469 adr += AREG((Opcode >> 0) & 7);
6471 READ_BYTE_F(adr, res)
6477 WRITE_BYTE_F(adr, res)
6489 adr += AREG((Opcode >> 0) & 7);
6491 READ_BYTE_F(adr, res)
6498 WRITE_BYTE_F(adr, res)
6510 adr += AREG((Opcode >> 0) & 7);
6512 READ_BYTE_F(adr, res)
6519 WRITE_BYTE_F(adr, res)
6530 adr = AREG((Opcode >> 0) & 7);
6533 READ_BYTE_F(adr, res)
6538 DREGu8((Opcode >> 9) & 7) = res;
6549 adr = AREG((Opcode >> 0) & 7);
6552 READ_BYTE_F(adr, res)
6557 adr = AREG((Opcode >> 9) & 7);
6558 WRITE_BYTE_F(adr, res)
6569 adr = AREG((Opcode >> 0) & 7);
6572 READ_BYTE_F(adr, res)
6577 adr = AREG((Opcode >> 9) & 7);
6578 AREG((Opcode >> 9) & 7) += 1;
6579 WRITE_BYTE_F(adr, res)
6590 adr = AREG((Opcode >> 0) & 7);
6593 READ_BYTE_F(adr, res)
6598 adr = AREG((Opcode >> 9) & 7) - 1;
6599 AREG((Opcode >> 9) & 7) = adr;
6600 WRITE_BYTE_F(adr, res)
6611 adr = AREG((Opcode >> 0) & 7);
6614 READ_BYTE_F(adr, res)
6620 adr += AREG((Opcode >> 9) & 7);
6621 WRITE_BYTE_F(adr, res)
6632 adr = AREG((Opcode >> 0) & 7);
6635 READ_BYTE_F(adr, res)
6640 adr = AREG((Opcode >> 9) & 7);
6642 WRITE_BYTE_F(adr, res)
6653 adr = AREG((Opcode >> 0) & 7);
6656 READ_BYTE_F(adr, res)
6662 WRITE_BYTE_F(adr, res)
6673 adr = AREG((Opcode >> 0) & 7);
6676 READ_BYTE_F(adr, res)
6682 WRITE_BYTE_F(adr, res)
6693 adr = AREG((Opcode >> 0) & 7);
6696 READ_BYTE_F(adr, res)
6703 WRITE_BYTE_F(adr, res)
6714 adr = AREG((Opcode >> 0) & 7);
6717 READ_BYTE_F(adr, res)
6724 WRITE_BYTE_F(adr, res)
6737 READ_BYTE_F(adr, res)
6742 DREGu8((Opcode >> 9) & 7) = res;
6755 READ_BYTE_F(adr, res)
6760 adr = AREG((Opcode >> 9) & 7);
6761 WRITE_BYTE_F(adr, res)
6774 READ_BYTE_F(adr, res)
6779 adr = AREG((Opcode >> 9) & 7);
6780 AREG((Opcode >> 9) & 7) += 1;
6781 WRITE_BYTE_F(adr, res)
6794 READ_BYTE_F(adr, res)
6799 adr = AREG((Opcode >> 9) & 7) - 1;
6800 AREG((Opcode >> 9) & 7) = adr;
6801 WRITE_BYTE_F(adr, res)
6814 READ_BYTE_F(adr, res)
6820 adr += AREG((Opcode >> 9) & 7);
6821 WRITE_BYTE_F(adr, res)
6834 READ_BYTE_F(adr, res)
6839 adr = AREG((Opcode >> 9) & 7);
6841 WRITE_BYTE_F(adr, res)
6854 READ_BYTE_F(adr, res)
6860 WRITE_BYTE_F(adr, res)
6873 READ_BYTE_F(adr, res)
6879 WRITE_BYTE_F(adr, res)
6892 READ_BYTE_F(adr, res)
6899 WRITE_BYTE_F(adr, res)
6912 READ_BYTE_F(adr, res)
6919 WRITE_BYTE_F(adr, res)
6932 READ_BYTE_F(adr, res)
6937 DREGu8((Opcode >> 9) & 7) = res;
6950 READ_BYTE_F(adr, res)
6955 adr = AREG((Opcode >> 9) & 7);
6956 WRITE_BYTE_F(adr, res)
6969 READ_BYTE_F(adr, res)
6974 adr = AREG((Opcode >> 9) & 7);
6975 AREG((Opcode >> 9) & 7) += 1;
6976 WRITE_BYTE_F(adr, res)
6989 READ_BYTE_F(adr, res)
6994 adr = AREG((Opcode >> 9) & 7) - 1;
6995 AREG((Opcode >> 9) & 7) = adr;
6996 WRITE_BYTE_F(adr, res)
7009 READ_BYTE_F(adr, res)
7015 adr += AREG((Opcode >> 9) & 7);
7016 WRITE_BYTE_F(adr, res)
7029 READ_BYTE_F(adr, res)
7034 adr = AREG((Opcode >> 9) & 7);
7036 WRITE_BYTE_F(adr, res)
7049 READ_BYTE_F(adr, res)
7055 WRITE_BYTE_F(adr, res)
7068 READ_BYTE_F(adr, res)
7074 WRITE_BYTE_F(adr, res)
7087 READ_BYTE_F(adr, res)
7094 WRITE_BYTE_F(adr, res)
7107 READ_BYTE_F(adr, res)
7114 WRITE_BYTE_F(adr, res)
7125 adr = GET_SWORD + GET_PC;
7128 READ_BYTE_F(adr, res)
7133 DREGu8((Opcode >> 9) & 7) = res;
7144 adr = GET_SWORD + GET_PC;
7147 READ_BYTE_F(adr, res)
7152 adr = AREG((Opcode >> 9) & 7);
7153 WRITE_BYTE_F(adr, res)
7164 adr = GET_SWORD + GET_PC;
7167 READ_BYTE_F(adr, res)
7172 adr = AREG((Opcode >> 9) & 7);
7173 AREG((Opcode >> 9) & 7) += 1;
7174 WRITE_BYTE_F(adr, res)
7185 adr = GET_SWORD + GET_PC;
7188 READ_BYTE_F(adr, res)
7193 adr = AREG((Opcode >> 9) & 7) - 1;
7194 AREG((Opcode >> 9) & 7) = adr;
7195 WRITE_BYTE_F(adr, res)
7206 adr = GET_SWORD + GET_PC;
7209 READ_BYTE_F(adr, res)
7215 adr += AREG((Opcode >> 9) & 7);
7216 WRITE_BYTE_F(adr, res)
7227 adr = GET_SWORD + GET_PC;
7230 READ_BYTE_F(adr, res)
7235 adr = AREG((Opcode >> 9) & 7);
7237 WRITE_BYTE_F(adr, res)
7248 adr = GET_SWORD + GET_PC;
7251 READ_BYTE_F(adr, res)
7257 WRITE_BYTE_F(adr, res)
7268 adr = GET_SWORD + GET_PC;
7271 READ_BYTE_F(adr, res)
7277 WRITE_BYTE_F(adr, res)
7288 adr = GET_SWORD + GET_PC;
7291 READ_BYTE_F(adr, res)
7298 WRITE_BYTE_F(adr, res)
7309 adr = GET_SWORD + GET_PC;
7312 READ_BYTE_F(adr, res)
7319 WRITE_BYTE_F(adr, res)
7330 adr = (uptr)(PC) - BasePC;
7333 READ_BYTE_F(adr, res)
7338 DREGu8((Opcode >> 9) & 7) = res;
7349 adr = (uptr)(PC) - BasePC;
7352 READ_BYTE_F(adr, res)
7357 adr = AREG((Opcode >> 9) & 7);
7358 WRITE_BYTE_F(adr, res)
7369 adr = (uptr)(PC) - BasePC;
7372 READ_BYTE_F(adr, res)
7377 adr = AREG((Opcode >> 9) & 7);
7378 AREG((Opcode >> 9) & 7) += 1;
7379 WRITE_BYTE_F(adr, res)
7390 adr = (uptr)(PC) - BasePC;
7393 READ_BYTE_F(adr, res)
7398 adr = AREG((Opcode >> 9) & 7) - 1;
7399 AREG((Opcode >> 9) & 7) = adr;
7400 WRITE_BYTE_F(adr, res)
7411 adr = (uptr)(PC) - BasePC;
7414 READ_BYTE_F(adr, res)
7420 adr += AREG((Opcode >> 9) & 7);
7421 WRITE_BYTE_F(adr, res)
7432 adr = (uptr)(PC) - BasePC;
7435 READ_BYTE_F(adr, res)
7440 adr = AREG((Opcode >> 9) & 7);
7442 WRITE_BYTE_F(adr, res)
7453 adr = (uptr)(PC) - BasePC;
7456 READ_BYTE_F(adr, res)
7462 WRITE_BYTE_F(adr, res)
7473 adr = (uptr)(PC) - BasePC;
7476 READ_BYTE_F(adr, res)
7482 WRITE_BYTE_F(adr, res)
7493 adr = (uptr)(PC) - BasePC;
7496 READ_BYTE_F(adr, res)
7503 WRITE_BYTE_F(adr, res)
7514 adr = (uptr)(PC) - BasePC;
7517 READ_BYTE_F(adr, res)
7524 WRITE_BYTE_F(adr, res)
7540 DREGu8((Opcode >> 9) & 7) = res;
7555 adr = AREG((Opcode >> 9) & 7);
7557 WRITE_BYTE_F(adr, res)
7573 adr = AREG((Opcode >> 9) & 7);
7574 AREG((Opcode >> 9) & 7) += 1;
7576 WRITE_BYTE_F(adr, res)
7592 adr = AREG((Opcode >> 9) & 7) - 1;
7593 AREG((Opcode >> 9) & 7) = adr;
7595 WRITE_BYTE_F(adr, res)
7612 adr += AREG((Opcode >> 9) & 7);
7614 WRITE_BYTE_F(adr, res)
7630 adr = AREG((Opcode >> 9) & 7);
7633 WRITE_BYTE_F(adr, res)
7651 WRITE_BYTE_F(adr, res)
7669 WRITE_BYTE_F(adr, res)
7688 WRITE_BYTE_F(adr, res)
7707 WRITE_BYTE_F(adr, res)
7721 READ_BYTE_F(adr, res)
7726 DREGu8((Opcode >> 9) & 7) = res;
7740 READ_BYTE_F(adr, res)
7745 adr = AREG((Opcode >> 9) & 7);
7746 WRITE_BYTE_F(adr, res)
7760 READ_BYTE_F(adr, res)
7765 adr = AREG((Opcode >> 9) & 7);
7766 AREG((Opcode >> 9) & 7) += 1;
7767 WRITE_BYTE_F(adr, res)
7781 READ_BYTE_F(adr, res)
7786 adr = AREG((Opcode >> 9) & 7) - 1;
7787 AREG((Opcode >> 9) & 7) = adr;
7788 WRITE_BYTE_F(adr, res)
7802 READ_BYTE_F(adr, res)
7808 adr += AREG((Opcode >> 9) & 7);
7809 WRITE_BYTE_F(adr, res)
7823 READ_BYTE_F(adr, res)
7828 adr = AREG((Opcode >> 9) & 7);
7830 WRITE_BYTE_F(adr, res)
7844 READ_BYTE_F(adr, res)
7850 WRITE_BYTE_F(adr, res)
7864 READ_BYTE_F(adr, res)
7870 WRITE_BYTE_F(adr, res)
7884 READ_BYTE_F(adr, res)
7891 WRITE_BYTE_F(adr, res)
7905 READ_BYTE_F(adr, res)
7912 WRITE_BYTE_F(adr, res)
7926 READ_BYTE_F(adr, res)
7931 DREGu8((Opcode >> 9) & 7) = res;
7945 READ_BYTE_F(adr, res)
7950 adr = AREG((Opcode >> 9) & 7);
7951 WRITE_BYTE_F(adr, res)
7965 READ_BYTE_F(adr, res)
7970 adr = AREG((Opcode >> 9) & 7);
7971 AREG((Opcode >> 9) & 7) += 1;
7972 WRITE_BYTE_F(adr, res)
7986 READ_BYTE_F(adr, res)
7991 adr = AREG((Opcode >> 9) & 7) - 1;
7992 AREG((Opcode >> 9) & 7) = adr;
7993 WRITE_BYTE_F(adr, res)
8007 READ_BYTE_F(adr, res)
8013 adr += AREG((Opcode >> 9) & 7);
8014 WRITE_BYTE_F(adr, res)
8028 READ_BYTE_F(adr, res)
8033 adr = AREG((Opcode >> 9) & 7);
8035 WRITE_BYTE_F(adr, res)
8049 READ_BYTE_F(adr, res)
8055 WRITE_BYTE_F(adr, res)
8069 READ_BYTE_F(adr, res)
8075 WRITE_BYTE_F(adr, res)
8089 READ_BYTE_F(adr, res)
8096 WRITE_BYTE_F(adr, res)
8110 READ_BYTE_F(adr, res)
8117 WRITE_BYTE_F(adr, res)
8128 res = DREGu32((Opcode >> 0) & 7);
8133 DREGu32((Opcode >> 9) & 7) = res;
8143 res = DREGu32((Opcode >> 0) & 7);
8148 adr = AREG((Opcode >> 9) & 7);
8150 WRITE_LONG_F(adr, res)
8161 res = DREGu32((Opcode >> 0) & 7);
8166 adr = AREG((Opcode >> 9) & 7);
8167 AREG((Opcode >> 9) & 7) += 4;
8169 WRITE_LONG_F(adr, res)
8180 res = DREGu32((Opcode >> 0) & 7);
8185 adr = AREG((Opcode >> 9) & 7) - 4;
8186 AREG((Opcode >> 9) & 7) = adr;
8188 WRITE_LONG_DEC_F(adr, res)
8199 res = DREGu32((Opcode >> 0) & 7);
8205 adr += AREG((Opcode >> 9) & 7);
8207 WRITE_LONG_F(adr, res)
8218 res = DREGu32((Opcode >> 0) & 7);
8223 adr = AREG((Opcode >> 9) & 7);
8226 WRITE_LONG_F(adr, res)
8237 res = DREGu32((Opcode >> 0) & 7);
8244 WRITE_LONG_F(adr, res)
8255 res = DREGu32((Opcode >> 0) & 7);
8262 WRITE_LONG_F(adr, res)
8273 res = DREGu32((Opcode >> 0) & 7);
8281 WRITE_LONG_F(adr, res)
8292 res = DREGu32((Opcode >> 0) & 7);
8300 WRITE_LONG_DEC_F(adr, res)
8311 res = AREGu32((Opcode >> 0) & 7);
8316 DREGu32((Opcode >> 9) & 7) = res;
8326 res = AREGu32((Opcode >> 0) & 7);
8331 adr = AREG((Opcode >> 9) & 7);
8333 WRITE_LONG_F(adr, res)
8344 res = AREGu32((Opcode >> 0) & 7);
8349 adr = AREG((Opcode >> 9) & 7);
8350 AREG((Opcode >> 9) & 7) += 4;
8352 WRITE_LONG_F(adr, res)
8363 res = AREGu32((Opcode >> 0) & 7);
8368 adr = AREG((Opcode >> 9) & 7) - 4;
8369 AREG((Opcode >> 9) & 7) = adr;
8371 WRITE_LONG_DEC_F(adr, res)
8382 res = AREGu32((Opcode >> 0) & 7);
8388 adr += AREG((Opcode >> 9) & 7);
8390 WRITE_LONG_F(adr, res)
8401 res = AREGu32((Opcode >> 0) & 7);
8406 adr = AREG((Opcode >> 9) & 7);
8409 WRITE_LONG_F(adr, res)
8420 res = AREGu32((Opcode >> 0) & 7);
8427 WRITE_LONG_F(adr, res)
8438 res = AREGu32((Opcode >> 0) & 7);
8445 WRITE_LONG_F(adr, res)
8456 res = AREGu32((Opcode >> 0) & 7);
8464 WRITE_LONG_F(adr, res)
8475 res = AREGu32((Opcode >> 0) & 7);
8483 WRITE_LONG_DEC_F(adr, res)
8494 adr = AREG((Opcode >> 0) & 7);
8496 READ_LONG_F(adr, res)
8501 DREGu32((Opcode >> 9) & 7) = res;
8512 adr = AREG((Opcode >> 0) & 7);
8514 READ_LONG_F(adr, res)
8519 adr = AREG((Opcode >> 9) & 7);
8520 WRITE_LONG_F(adr, res)
8531 adr = AREG((Opcode >> 0) & 7);
8533 READ_LONG_F(adr, res)
8538 adr = AREG((Opcode >> 9) & 7);
8539 AREG((Opcode >> 9) & 7) += 4;
8540 WRITE_LONG_F(adr, res)
8551 adr = AREG((Opcode >> 0) & 7);
8553 READ_LONG_F(adr, res)
8558 adr = AREG((Opcode >> 9) & 7) - 4;
8559 AREG((Opcode >> 9) & 7) = adr;
8560 WRITE_LONG_DEC_F(adr, res)
8571 adr = AREG((Opcode >> 0) & 7);
8573 READ_LONG_F(adr, res)
8579 adr += AREG((Opcode >> 9) & 7);
8580 WRITE_LONG_F(adr, res)
8591 adr = AREG((Opcode >> 0) & 7);
8593 READ_LONG_F(adr, res)
8598 adr = AREG((Opcode >> 9) & 7);
8600 WRITE_LONG_F(adr, res)
8611 adr = AREG((Opcode >> 0) & 7);
8613 READ_LONG_F(adr, res)
8619 WRITE_LONG_F(adr, res)
8630 adr = AREG((Opcode >> 0) & 7);
8632 READ_LONG_F(adr, res)
8638 WRITE_LONG_F(adr, res)
8649 adr = AREG((Opcode >> 0) & 7);
8651 READ_LONG_F(adr, res)
8658 WRITE_LONG_F(adr, res)
8669 adr = AREG((Opcode >> 0) & 7);
8671 READ_LONG_F(adr, res)
8678 WRITE_LONG_DEC_F(adr, res)
8689 adr = AREG((Opcode >> 0) & 7);
8690 AREG((Opcode >> 0) & 7) += 4;
8692 READ_LONG_F(adr, res)
8697 DREGu32((Opcode >> 9) & 7) = res;
8708 adr = AREG((Opcode >> 0) & 7);
8709 AREG((Opcode >> 0) & 7) += 4;
8711 READ_LONG_F(adr, res)
8716 adr = AREG((Opcode >> 9) & 7);
8717 WRITE_LONG_F(adr, res)
8728 adr = AREG((Opcode >> 0) & 7);
8729 AREG((Opcode >> 0) & 7) += 4;
8731 READ_LONG_F(adr, res)
8736 adr = AREG((Opcode >> 9) & 7);
8737 AREG((Opcode >> 9) & 7) += 4;
8738 WRITE_LONG_F(adr, res)
8749 adr = AREG((Opcode >> 0) & 7);
8750 AREG((Opcode >> 0) & 7) += 4;
8752 READ_LONG_F(adr, res)
8757 adr = AREG((Opcode >> 9) & 7) - 4;
8758 AREG((Opcode >> 9) & 7) = adr;
8759 WRITE_LONG_DEC_F(adr, res)
8770 adr = AREG((Opcode >> 0) & 7);
8771 AREG((Opcode >> 0) & 7) += 4;
8773 READ_LONG_F(adr, res)
8779 adr += AREG((Opcode >> 9) & 7);
8780 WRITE_LONG_F(adr, res)
8791 adr = AREG((Opcode >> 0) & 7);
8792 AREG((Opcode >> 0) & 7) += 4;
8794 READ_LONG_F(adr, res)
8799 adr = AREG((Opcode >> 9) & 7);
8801 WRITE_LONG_F(adr, res)
8812 adr = AREG((Opcode >> 0) & 7);
8813 AREG((Opcode >> 0) & 7) += 4;
8815 READ_LONG_F(adr, res)
8821 WRITE_LONG_F(adr, res)
8832 adr = AREG((Opcode >> 0) & 7);
8833 AREG((Opcode >> 0) & 7) += 4;
8835 READ_LONG_F(adr, res)
8841 WRITE_LONG_F(adr, res)
8852 adr = AREG((Opcode >> 0) & 7);
8853 AREG((Opcode >> 0) & 7) += 4;
8855 READ_LONG_F(adr, res)
8862 WRITE_LONG_F(adr, res)
8873 adr = AREG((Opcode >> 0) & 7);
8874 AREG((Opcode >> 0) & 7) += 4;
8876 READ_LONG_F(adr, res)
8883 WRITE_LONG_DEC_F(adr, res)
8894 adr = AREG((Opcode >> 0) & 7) - 4;
8895 AREG((Opcode >> 0) & 7) = adr;
8897 READ_LONG_F(adr, res)
8902 DREGu32((Opcode >> 9) & 7) = res;
8913 adr = AREG((Opcode >> 0) & 7) - 4;
8914 AREG((Opcode >> 0) & 7) = adr;
8916 READ_LONG_F(adr, res)
8921 adr = AREG((Opcode >> 9) & 7);
8922 WRITE_LONG_F(adr, res)
8933 adr = AREG((Opcode >> 0) & 7) - 4;
8934 AREG((Opcode >> 0) & 7) = adr;
8936 READ_LONG_F(adr, res)
8941 adr = AREG((Opcode >> 9) & 7);
8942 AREG((Opcode >> 9) & 7) += 4;
8943 WRITE_LONG_F(adr, res)
8954 adr = AREG((Opcode >> 0) & 7) - 4;
8955 AREG((Opcode >> 0) & 7) = adr;
8957 READ_LONG_F(adr, res)
8962 adr = AREG((Opcode >> 9) & 7) - 4;
8963 AREG((Opcode >> 9) & 7) = adr;
8964 WRITE_LONG_DEC_F(adr, res)
8975 adr = AREG((Opcode >> 0) & 7) - 4;
8976 AREG((Opcode >> 0) & 7) = adr;
8978 READ_LONG_F(adr, res)
8984 adr += AREG((Opcode >> 9) & 7);
8985 WRITE_LONG_F(adr, res)
8996 adr = AREG((Opcode >> 0) & 7) - 4;
8997 AREG((Opcode >> 0) & 7) = adr;
8999 READ_LONG_F(adr, res)
9004 adr = AREG((Opcode >> 9) & 7);
9006 WRITE_LONG_F(adr, res)
9017 adr = AREG((Opcode >> 0) & 7) - 4;
9018 AREG((Opcode >> 0) & 7) = adr;
9020 READ_LONG_F(adr, res)
9026 WRITE_LONG_F(adr, res)
9037 adr = AREG((Opcode >> 0) & 7) - 4;
9038 AREG((Opcode >> 0) & 7) = adr;
9040 READ_LONG_F(adr, res)
9046 WRITE_LONG_F(adr, res)
9057 adr = AREG((Opcode >> 0) & 7) - 4;
9058 AREG((Opcode >> 0) & 7) = adr;
9060 READ_LONG_F(adr, res)
9067 WRITE_LONG_F(adr, res)
9078 adr = AREG((Opcode >> 0) & 7) - 4;
9079 AREG((Opcode >> 0) & 7) = adr;
9081 READ_LONG_F(adr, res)
9088 WRITE_LONG_DEC_F(adr, res)
9100 adr += AREG((Opcode >> 0) & 7);
9102 READ_LONG_F(adr, res)
9107 DREGu32((Opcode >> 9) & 7) = res;
9119 adr += AREG((Opcode >> 0) & 7);
9121 READ_LONG_F(adr, res)
9126 adr = AREG((Opcode >> 9) & 7);
9127 WRITE_LONG_F(adr, res)
9139 adr += AREG((Opcode >> 0) & 7);
9141 READ_LONG_F(adr, res)
9146 adr = AREG((Opcode >> 9) & 7);
9147 AREG((Opcode >> 9) & 7) += 4;
9148 WRITE_LONG_F(adr, res)
9160 adr += AREG((Opcode >> 0) & 7);
9162 READ_LONG_F(adr, res)
9167 adr = AREG((Opcode >> 9) & 7) - 4;
9168 AREG((Opcode >> 9) & 7) = adr;
9169 WRITE_LONG_DEC_F(adr, res)
9181 adr += AREG((Opcode >> 0) & 7);
9183 READ_LONG_F(adr, res)
9189 adr += AREG((Opcode >> 9) & 7);
9190 WRITE_LONG_F(adr, res)
9202 adr += AREG((Opcode >> 0) & 7);
9204 READ_LONG_F(adr, res)
9209 adr = AREG((Opcode >> 9) & 7);
9211 WRITE_LONG_F(adr, res)
9223 adr += AREG((Opcode >> 0) & 7);
9225 READ_LONG_F(adr, res)
9231 WRITE_LONG_F(adr, res)
9243 adr += AREG((Opcode >> 0) & 7);
9245 READ_LONG_F(adr, res)
9251 WRITE_LONG_F(adr, res)
9263 adr += AREG((Opcode >> 0) & 7);
9265 READ_LONG_F(adr, res)
9272 WRITE_LONG_F(adr, res)
9284 adr += AREG((Opcode >> 0) & 7);
9286 READ_LONG_F(adr, res)
9293 WRITE_LONG_DEC_F(adr, res)
9304 adr = AREG((Opcode >> 0) & 7);
9307 READ_LONG_F(adr, res)
9312 DREGu32((Opcode >> 9) & 7) = res;
9323 adr = AREG((Opcode >> 0) & 7);
9326 READ_LONG_F(adr, res)
9331 adr = AREG((Opcode >> 9) & 7);
9332 WRITE_LONG_F(adr, res)
9343 adr = AREG((Opcode >> 0) & 7);
9346 READ_LONG_F(adr, res)
9351 adr = AREG((Opcode >> 9) & 7);
9352 AREG((Opcode >> 9) & 7) += 4;
9353 WRITE_LONG_F(adr, res)
9364 adr = AREG((Opcode >> 0) & 7);
9367 READ_LONG_F(adr, res)
9372 adr = AREG((Opcode >> 9) & 7) - 4;
9373 AREG((Opcode >> 9) & 7) = adr;
9374 WRITE_LONG_DEC_F(adr, res)
9385 adr = AREG((Opcode >> 0) & 7);
9388 READ_LONG_F(adr, res)
9394 adr += AREG((Opcode >> 9) & 7);
9395 WRITE_LONG_F(adr, res)
9406 adr = AREG((Opcode >> 0) & 7);
9409 READ_LONG_F(adr, res)
9414 adr = AREG((Opcode >> 9) & 7);
9416 WRITE_LONG_F(adr, res)
9427 adr = AREG((Opcode >> 0) & 7);
9430 READ_LONG_F(adr, res)
9436 WRITE_LONG_F(adr, res)
9447 adr = AREG((Opcode >> 0) & 7);
9450 READ_LONG_F(adr, res)
9456 WRITE_LONG_F(adr, res)
9467 adr = AREG((Opcode >> 0) & 7);
9470 READ_LONG_F(adr, res)
9477 WRITE_LONG_F(adr, res)
9488 adr = AREG((Opcode >> 0) & 7);
9491 READ_LONG_F(adr, res)
9498 WRITE_LONG_DEC_F(adr, res)
9511 READ_LONG_F(adr, res)
9516 DREGu32((Opcode >> 9) & 7) = res;
9529 READ_LONG_F(adr, res)
9534 adr = AREG((Opcode >> 9) & 7);
9535 WRITE_LONG_F(adr, res)
9548 READ_LONG_F(adr, res)
9553 adr = AREG((Opcode >> 9) & 7);
9554 AREG((Opcode >> 9) & 7) += 4;
9555 WRITE_LONG_F(adr, res)
9568 READ_LONG_F(adr, res)
9573 adr = AREG((Opcode >> 9) & 7) - 4;
9574 AREG((Opcode >> 9) & 7) = adr;
9575 WRITE_LONG_DEC_F(adr, res)
9588 READ_LONG_F(adr, res)
9594 adr += AREG((Opcode >> 9) & 7);
9595 WRITE_LONG_F(adr, res)
9608 READ_LONG_F(adr, res)
9613 adr = AREG((Opcode >> 9) & 7);
9615 WRITE_LONG_F(adr, res)
9628 READ_LONG_F(adr, res)
9634 WRITE_LONG_F(adr, res)
9647 READ_LONG_F(adr, res)
9653 WRITE_LONG_F(adr, res)
9666 READ_LONG_F(adr, res)
9673 WRITE_LONG_F(adr, res)
9686 READ_LONG_F(adr, res)
9693 WRITE_LONG_DEC_F(adr, res)
9706 READ_LONG_F(adr, res)
9711 DREGu32((Opcode >> 9) & 7) = res;
9724 READ_LONG_F(adr, res)
9729 adr = AREG((Opcode >> 9) & 7);
9730 WRITE_LONG_F(adr, res)
9743 READ_LONG_F(adr, res)
9748 adr = AREG((Opcode >> 9) & 7);
9749 AREG((Opcode >> 9) & 7) += 4;
9750 WRITE_LONG_F(adr, res)
9763 READ_LONG_F(adr, res)
9768 adr = AREG((Opcode >> 9) & 7) - 4;
9769 AREG((Opcode >> 9) & 7) = adr;
9770 WRITE_LONG_DEC_F(adr, res)
9783 READ_LONG_F(adr, res)
9789 adr += AREG((Opcode >> 9) & 7);
9790 WRITE_LONG_F(adr, res)
9803 READ_LONG_F(adr, res)
9808 adr = AREG((Opcode >> 9) & 7);
9810 WRITE_LONG_F(adr, res)
9823 READ_LONG_F(adr, res)
9829 WRITE_LONG_F(adr, res)
9842 READ_LONG_F(adr, res)
9848 WRITE_LONG_F(adr, res)
9861 READ_LONG_F(adr, res)
9868 WRITE_LONG_F(adr, res)
9881 READ_LONG_F(adr, res)
9888 WRITE_LONG_DEC_F(adr, res)
9899 adr = GET_SWORD + GET_PC;
9902 READ_LONG_F(adr, res)
9907 DREGu32((Opcode >> 9) & 7) = res;
9918 adr = GET_SWORD + GET_PC;
9921 READ_LONG_F(adr, res)
9926 adr = AREG((Opcode >> 9) & 7);
9927 WRITE_LONG_F(adr, res)
9938 adr = GET_SWORD + GET_PC;
9941 READ_LONG_F(adr, res)
9946 adr = AREG((Opcode >> 9) & 7);
9947 AREG((Opcode >> 9) & 7) += 4;
9948 WRITE_LONG_F(adr, res)
9959 adr = GET_SWORD + GET_PC;
9962 READ_LONG_F(adr, res)
9967 adr = AREG((Opcode >> 9) & 7) - 4;
9968 AREG((Opcode >> 9) & 7) = adr;
9969 WRITE_LONG_DEC_F(adr, res)
9980 adr = GET_SWORD + GET_PC;
9983 READ_LONG_F(adr, res)
9989 adr += AREG((Opcode >> 9) & 7);
9990 WRITE_LONG_F(adr, res)
10001 adr = GET_SWORD + GET_PC;
10004 READ_LONG_F(adr, res)
10008 flag_N = res >> 24;
10009 adr = AREG((Opcode >> 9) & 7);
10011 WRITE_LONG_F(adr, res)
10022 adr = GET_SWORD + GET_PC;
10025 READ_LONG_F(adr, res)
10029 flag_N = res >> 24;
10031 WRITE_LONG_F(adr, res)
10042 adr = GET_SWORD + GET_PC;
10045 READ_LONG_F(adr, res)
10049 flag_N = res >> 24;
10051 WRITE_LONG_F(adr, res)
10062 adr = GET_SWORD + GET_PC;
10065 READ_LONG_F(adr, res)
10069 flag_N = res >> 24;
10072 WRITE_LONG_F(adr, res)
10083 adr = GET_SWORD + GET_PC;
10086 READ_LONG_F(adr, res)
10090 flag_N = res >> 24;
10093 WRITE_LONG_DEC_F(adr, res)
10107 READ_LONG_F(adr, res)
10111 flag_N = res >> 24;
10112 DREGu32((Opcode >> 9) & 7) = res;
10126 READ_LONG_F(adr, res)
10130 flag_N = res >> 24;
10131 adr = AREG((Opcode >> 9) & 7);
10132 WRITE_LONG_F(adr, res)
10146 READ_LONG_F(adr, res)
10150 flag_N = res >> 24;
10151 adr = AREG((Opcode >> 9) & 7);
10152 AREG((Opcode >> 9) & 7) += 4;
10153 WRITE_LONG_F(adr, res)
10167 READ_LONG_F(adr, res)
10171 flag_N = res >> 24;
10172 adr = AREG((Opcode >> 9) & 7) - 4;
10173 AREG((Opcode >> 9) & 7) = adr;
10174 WRITE_LONG_DEC_F(adr, res)
10188 READ_LONG_F(adr, res)
10192 flag_N = res >> 24;
10194 adr += AREG((Opcode >> 9) & 7);
10195 WRITE_LONG_F(adr, res)
10209 READ_LONG_F(adr, res)
10213 flag_N = res >> 24;
10214 adr = AREG((Opcode >> 9) & 7);
10216 WRITE_LONG_F(adr, res)
10230 READ_LONG_F(adr, res)
10234 flag_N = res >> 24;
10236 WRITE_LONG_F(adr, res)
10250 READ_LONG_F(adr, res)
10254 flag_N = res >> 24;
10256 WRITE_LONG_F(adr, res)
10270 READ_LONG_F(adr, res)
10274 flag_N = res >> 24;
10277 WRITE_LONG_F(adr, res)
10291 READ_LONG_F(adr, res)
10295 flag_N = res >> 24;
10298 WRITE_LONG_DEC_F(adr, res)
10313 flag_N = res >> 24;
10314 DREGu32((Opcode >> 9) & 7) = res;
10328 flag_N = res >> 24;
10329 adr = AREG((Opcode >> 9) & 7);
10331 WRITE_LONG_F(adr, res)
10346 flag_N = res >> 24;
10347 adr = AREG((Opcode >> 9) & 7);
10348 AREG((Opcode >> 9) & 7) += 4;
10350 WRITE_LONG_F(adr, res)
10365 flag_N = res >> 24;
10366 adr = AREG((Opcode >> 9) & 7) - 4;
10367 AREG((Opcode >> 9) & 7) = adr;
10369 WRITE_LONG_DEC_F(adr, res)
10384 flag_N = res >> 24;
10386 adr += AREG((Opcode >> 9) & 7);
10388 WRITE_LONG_F(adr, res)
10403 flag_N = res >> 24;
10404 adr = AREG((Opcode >> 9) & 7);
10407 WRITE_LONG_F(adr, res)
10422 flag_N = res >> 24;
10425 WRITE_LONG_F(adr, res)
10440 flag_N = res >> 24;
10443 WRITE_LONG_F(adr, res)
10458 flag_N = res >> 24;
10462 WRITE_LONG_F(adr, res)
10477 flag_N = res >> 24;
10481 WRITE_LONG_DEC_F(adr, res)
10495 READ_LONG_F(adr, res)
10499 flag_N = res >> 24;
10500 DREGu32((Opcode >> 9) & 7) = res;
10514 READ_LONG_F(adr, res)
10518 flag_N = res >> 24;
10519 adr = AREG((Opcode >> 9) & 7);
10520 WRITE_LONG_F(adr, res)
10534 READ_LONG_F(adr, res)
10538 flag_N = res >> 24;
10539 adr = AREG((Opcode >> 9) & 7);
10540 AREG((Opcode >> 9) & 7) += 4;
10541 WRITE_LONG_F(adr, res)
10555 READ_LONG_F(adr, res)
10559 flag_N = res >> 24;
10560 adr = AREG((Opcode >> 9) & 7) - 4;
10561 AREG((Opcode >> 9) & 7) = adr;
10562 WRITE_LONG_DEC_F(adr, res)
10576 READ_LONG_F(adr, res)
10580 flag_N = res >> 24;
10582 adr += AREG((Opcode >> 9) & 7);
10583 WRITE_LONG_F(adr, res)
10597 READ_LONG_F(adr, res)
10601 flag_N = res >> 24;
10602 adr = AREG((Opcode >> 9) & 7);
10604 WRITE_LONG_F(adr, res)
10618 READ_LONG_F(adr, res)
10622 flag_N = res >> 24;
10624 WRITE_LONG_F(adr, res)
10638 READ_LONG_F(adr, res)
10642 flag_N = res >> 24;
10644 WRITE_LONG_F(adr, res)
10658 READ_LONG_F(adr, res)
10662 flag_N = res >> 24;
10665 WRITE_LONG_F(adr, res)
10679 READ_LONG_F(adr, res)
10683 flag_N = res >> 24;
10686 WRITE_LONG_DEC_F(adr, res)
10700 READ_LONG_F(adr, res)
10704 flag_N = res >> 24;
10705 DREGu32((Opcode >> 9) & 7) = res;
10719 READ_LONG_F(adr, res)
10723 flag_N = res >> 24;
10724 adr = AREG((Opcode >> 9) & 7);
10725 WRITE_LONG_F(adr, res)
10739 READ_LONG_F(adr, res)
10743 flag_N = res >> 24;
10744 adr = AREG((Opcode >> 9) & 7);
10745 AREG((Opcode >> 9) & 7) += 4;
10746 WRITE_LONG_F(adr, res)
10760 READ_LONG_F(adr, res)
10764 flag_N = res >> 24;
10765 adr = AREG((Opcode >> 9) & 7) - 4;
10766 AREG((Opcode >> 9) & 7) = adr;
10767 WRITE_LONG_DEC_F(adr, res)
10781 READ_LONG_F(adr, res)
10785 flag_N = res >> 24;
10787 adr += AREG((Opcode >> 9) & 7);
10788 WRITE_LONG_F(adr, res)
10802 READ_LONG_F(adr, res)
10806 flag_N = res >> 24;
10807 adr = AREG((Opcode >> 9) & 7);
10809 WRITE_LONG_F(adr, res)
10823 READ_LONG_F(adr, res)
10827 flag_N = res >> 24;
10829 WRITE_LONG_F(adr, res)
10843 READ_LONG_F(adr, res)
10847 flag_N = res >> 24;
10849 WRITE_LONG_F(adr, res)
10863 READ_LONG_F(adr, res)
10867 flag_N = res >> 24;
10870 WRITE_LONG_F(adr, res)
10884 READ_LONG_F(adr, res)
10888 flag_N = res >> 24;
10891 WRITE_LONG_DEC_F(adr, res)
10902 res = (s32)DREGs32((Opcode >> 0) & 7);
10903 AREG((Opcode >> 9) & 7) = res;
10913 res = (s32)AREGs32((Opcode >> 0) & 7);
10914 AREG((Opcode >> 9) & 7) = res;
10924 adr = AREG((Opcode >> 0) & 7);
10926 READSX_LONG_F(adr, res)
10927 AREG((Opcode >> 9) & 7) = res;
10938 adr = AREG((Opcode >> 0) & 7);
10939 AREG((Opcode >> 0) & 7) += 4;
10941 READSX_LONG_F(adr, res)
10942 AREG((Opcode >> 9) & 7) = res;
10953 adr = AREG((Opcode >> 0) & 7) - 4;
10954 AREG((Opcode >> 0) & 7) = adr;
10956 READSX_LONG_F(adr, res)
10957 AREG((Opcode >> 9) & 7) = res;
10969 adr += AREG((Opcode >> 0) & 7);
10971 READSX_LONG_F(adr, res)
10972 AREG((Opcode >> 9) & 7) = res;
10983 adr = AREG((Opcode >> 0) & 7);
10986 READSX_LONG_F(adr, res)
10987 AREG((Opcode >> 9) & 7) = res;
11000 READSX_LONG_F(adr, res)
11001 AREG((Opcode >> 9) & 7) = res;
11014 READSX_LONG_F(adr, res)
11015 AREG((Opcode >> 9) & 7) = res;
11026 adr = GET_SWORD + GET_PC;
11029 READSX_LONG_F(adr, res)
11030 AREG((Opcode >> 9) & 7) = res;
11044 READSX_LONG_F(adr, res)
11045 AREG((Opcode >> 9) & 7) = res;
11057 AREG((Opcode >> 9) & 7) = res;
11070 READSX_LONG_F(adr, res)
11071 AREG((Opcode >> 9) & 7) = res;
11085 READSX_LONG_F(adr, res)
11086 AREG((Opcode >> 9) & 7) = res;
11097 res = DREGu16((Opcode >> 0) & 7);
11102 DREGu16((Opcode >> 9) & 7) = res;
11112 res = DREGu16((Opcode >> 0) & 7);
11117 adr = AREG((Opcode >> 9) & 7);
11119 WRITE_WORD_F(adr, res)
11130 res = DREGu16((Opcode >> 0) & 7);
11135 adr = AREG((Opcode >> 9) & 7);
11136 AREG((Opcode >> 9) & 7) += 2;
11138 WRITE_WORD_F(adr, res)
11149 res = DREGu16((Opcode >> 0) & 7);
11154 adr = AREG((Opcode >> 9) & 7) - 2;
11155 AREG((Opcode >> 9) & 7) = adr;
11157 WRITE_WORD_F(adr, res)
11168 res = DREGu16((Opcode >> 0) & 7);
11174 adr += AREG((Opcode >> 9) & 7);
11176 WRITE_WORD_F(adr, res)
11187 res = DREGu16((Opcode >> 0) & 7);
11192 adr = AREG((Opcode >> 9) & 7);
11195 WRITE_WORD_F(adr, res)
11206 res = DREGu16((Opcode >> 0) & 7);
11213 WRITE_WORD_F(adr, res)
11224 res = DREGu16((Opcode >> 0) & 7);
11231 WRITE_WORD_F(adr, res)
11242 res = DREGu16((Opcode >> 0) & 7);
11250 WRITE_WORD_F(adr, res)
11261 res = DREGu16((Opcode >> 0) & 7);
11269 WRITE_WORD_F(adr, res)
11280 res = AREGu16((Opcode >> 0) & 7);
11285 DREGu16((Opcode >> 9) & 7) = res;
11295 res = AREGu16((Opcode >> 0) & 7);
11300 adr = AREG((Opcode >> 9) & 7);
11302 WRITE_WORD_F(adr, res)
11313 res = AREGu16((Opcode >> 0) & 7);
11318 adr = AREG((Opcode >> 9) & 7);
11319 AREG((Opcode >> 9) & 7) += 2;
11321 WRITE_WORD_F(adr, res)
11332 res = AREGu16((Opcode >> 0) & 7);
11337 adr = AREG((Opcode >> 9) & 7) - 2;
11338 AREG((Opcode >> 9) & 7) = adr;
11340 WRITE_WORD_F(adr, res)
11351 res = AREGu16((Opcode >> 0) & 7);
11357 adr += AREG((Opcode >> 9) & 7);
11359 WRITE_WORD_F(adr, res)
11370 res = AREGu16((Opcode >> 0) & 7);
11375 adr = AREG((Opcode >> 9) & 7);
11378 WRITE_WORD_F(adr, res)
11389 res = AREGu16((Opcode >> 0) & 7);
11396 WRITE_WORD_F(adr, res)
11407 res = AREGu16((Opcode >> 0) & 7);
11414 WRITE_WORD_F(adr, res)
11425 res = AREGu16((Opcode >> 0) & 7);
11433 WRITE_WORD_F(adr, res)
11444 res = AREGu16((Opcode >> 0) & 7);
11452 WRITE_WORD_F(adr, res)
11463 adr = AREG((Opcode >> 0) & 7);
11465 READ_WORD_F(adr, res)
11470 DREGu16((Opcode >> 9) & 7) = res;
11481 adr = AREG((Opcode >> 0) & 7);
11483 READ_WORD_F(adr, res)
11488 adr = AREG((Opcode >> 9) & 7);
11489 WRITE_WORD_F(adr, res)
11500 adr = AREG((Opcode >> 0) & 7);
11502 READ_WORD_F(adr, res)
11507 adr = AREG((Opcode >> 9) & 7);
11508 AREG((Opcode >> 9) & 7) += 2;
11509 WRITE_WORD_F(adr, res)
11520 adr = AREG((Opcode >> 0) & 7);
11522 READ_WORD_F(adr, res)
11527 adr = AREG((Opcode >> 9) & 7) - 2;
11528 AREG((Opcode >> 9) & 7) = adr;
11529 WRITE_WORD_F(adr, res)
11540 adr = AREG((Opcode >> 0) & 7);
11542 READ_WORD_F(adr, res)
11548 adr += AREG((Opcode >> 9) & 7);
11549 WRITE_WORD_F(adr, res)
11560 adr = AREG((Opcode >> 0) & 7);
11562 READ_WORD_F(adr, res)
11567 adr = AREG((Opcode >> 9) & 7);
11569 WRITE_WORD_F(adr, res)
11580 adr = AREG((Opcode >> 0) & 7);
11582 READ_WORD_F(adr, res)
11588 WRITE_WORD_F(adr, res)
11599 adr = AREG((Opcode >> 0) & 7);
11601 READ_WORD_F(adr, res)
11607 WRITE_WORD_F(adr, res)
11618 adr = AREG((Opcode >> 0) & 7);
11620 READ_WORD_F(adr, res)
11627 WRITE_WORD_F(adr, res)
11638 adr = AREG((Opcode >> 0) & 7);
11640 READ_WORD_F(adr, res)
11647 WRITE_WORD_F(adr, res)
11658 adr = AREG((Opcode >> 0) & 7);
11659 AREG((Opcode >> 0) & 7) += 2;
11661 READ_WORD_F(adr, res)
11666 DREGu16((Opcode >> 9) & 7) = res;
11677 adr = AREG((Opcode >> 0) & 7);
11678 AREG((Opcode >> 0) & 7) += 2;
11680 READ_WORD_F(adr, res)
11685 adr = AREG((Opcode >> 9) & 7);
11686 WRITE_WORD_F(adr, res)
11697 adr = AREG((Opcode >> 0) & 7);
11698 AREG((Opcode >> 0) & 7) += 2;
11700 READ_WORD_F(adr, res)
11705 adr = AREG((Opcode >> 9) & 7);
11706 AREG((Opcode >> 9) & 7) += 2;
11707 WRITE_WORD_F(adr, res)
11718 adr = AREG((Opcode >> 0) & 7);
11719 AREG((Opcode >> 0) & 7) += 2;
11721 READ_WORD_F(adr, res)
11726 adr = AREG((Opcode >> 9) & 7) - 2;
11727 AREG((Opcode >> 9) & 7) = adr;
11728 WRITE_WORD_F(adr, res)
11739 adr = AREG((Opcode >> 0) & 7);
11740 AREG((Opcode >> 0) & 7) += 2;
11742 READ_WORD_F(adr, res)
11748 adr += AREG((Opcode >> 9) & 7);
11749 WRITE_WORD_F(adr, res)
11760 adr = AREG((Opcode >> 0) & 7);
11761 AREG((Opcode >> 0) & 7) += 2;
11763 READ_WORD_F(adr, res)
11768 adr = AREG((Opcode >> 9) & 7);
11770 WRITE_WORD_F(adr, res)
11781 adr = AREG((Opcode >> 0) & 7);
11782 AREG((Opcode >> 0) & 7) += 2;
11784 READ_WORD_F(adr, res)
11790 WRITE_WORD_F(adr, res)
11801 adr = AREG((Opcode >> 0) & 7);
11802 AREG((Opcode >> 0) & 7) += 2;
11804 READ_WORD_F(adr, res)
11810 WRITE_WORD_F(adr, res)
11821 adr = AREG((Opcode >> 0) & 7);
11822 AREG((Opcode >> 0) & 7) += 2;
11824 READ_WORD_F(adr, res)
11831 WRITE_WORD_F(adr, res)
11842 adr = AREG((Opcode >> 0) & 7);
11843 AREG((Opcode >> 0) & 7) += 2;
11845 READ_WORD_F(adr, res)
11852 WRITE_WORD_F(adr, res)
11863 adr = AREG((Opcode >> 0) & 7) - 2;
11864 AREG((Opcode >> 0) & 7) = adr;
11866 READ_WORD_F(adr, res)
11871 DREGu16((Opcode >> 9) & 7) = res;
11882 adr = AREG((Opcode >> 0) & 7) - 2;
11883 AREG((Opcode >> 0) & 7) = adr;
11885 READ_WORD_F(adr, res)
11890 adr = AREG((Opcode >> 9) & 7);
11891 WRITE_WORD_F(adr, res)
11902 adr = AREG((Opcode >> 0) & 7) - 2;
11903 AREG((Opcode >> 0) & 7) = adr;
11905 READ_WORD_F(adr, res)
11910 adr = AREG((Opcode >> 9) & 7);
11911 AREG((Opcode >> 9) & 7) += 2;
11912 WRITE_WORD_F(adr, res)
11923 adr = AREG((Opcode >> 0) & 7) - 2;
11924 AREG((Opcode >> 0) & 7) = adr;
11926 READ_WORD_F(adr, res)
11931 adr = AREG((Opcode >> 9) & 7) - 2;
11932 AREG((Opcode >> 9) & 7) = adr;
11933 WRITE_WORD_F(adr, res)
11944 adr = AREG((Opcode >> 0) & 7) - 2;
11945 AREG((Opcode >> 0) & 7) = adr;
11947 READ_WORD_F(adr, res)
11953 adr += AREG((Opcode >> 9) & 7);
11954 WRITE_WORD_F(adr, res)
11965 adr = AREG((Opcode >> 0) & 7) - 2;
11966 AREG((Opcode >> 0) & 7) = adr;
11968 READ_WORD_F(adr, res)
11973 adr = AREG((Opcode >> 9) & 7);
11975 WRITE_WORD_F(adr, res)
11986 adr = AREG((Opcode >> 0) & 7) - 2;
11987 AREG((Opcode >> 0) & 7) = adr;
11989 READ_WORD_F(adr, res)
11995 WRITE_WORD_F(adr, res)
12006 adr = AREG((Opcode >> 0) & 7) - 2;
12007 AREG((Opcode >> 0) & 7) = adr;
12009 READ_WORD_F(adr, res)
12015 WRITE_WORD_F(adr, res)
12026 adr = AREG((Opcode >> 0) & 7) - 2;
12027 AREG((Opcode >> 0) & 7) = adr;
12029 READ_WORD_F(adr, res)
12036 WRITE_WORD_F(adr, res)
12047 adr = AREG((Opcode >> 0) & 7) - 2;
12048 AREG((Opcode >> 0) & 7) = adr;
12050 READ_WORD_F(adr, res)
12057 WRITE_WORD_F(adr, res)
12069 adr += AREG((Opcode >> 0) & 7);
12071 READ_WORD_F(adr, res)
12076 DREGu16((Opcode >> 9) & 7) = res;
12088 adr += AREG((Opcode >> 0) & 7);
12090 READ_WORD_F(adr, res)
12095 adr = AREG((Opcode >> 9) & 7);
12096 WRITE_WORD_F(adr, res)
12108 adr += AREG((Opcode >> 0) & 7);
12110 READ_WORD_F(adr, res)
12115 adr = AREG((Opcode >> 9) & 7);
12116 AREG((Opcode >> 9) & 7) += 2;
12117 WRITE_WORD_F(adr, res)
12129 adr += AREG((Opcode >> 0) & 7);
12131 READ_WORD_F(adr, res)
12136 adr = AREG((Opcode >> 9) & 7) - 2;
12137 AREG((Opcode >> 9) & 7) = adr;
12138 WRITE_WORD_F(adr, res)
12150 adr += AREG((Opcode >> 0) & 7);
12152 READ_WORD_F(adr, res)
12158 adr += AREG((Opcode >> 9) & 7);
12159 WRITE_WORD_F(adr, res)
12171 adr += AREG((Opcode >> 0) & 7);
12173 READ_WORD_F(adr, res)
12178 adr = AREG((Opcode >> 9) & 7);
12180 WRITE_WORD_F(adr, res)
12192 adr += AREG((Opcode >> 0) & 7);
12194 READ_WORD_F(adr, res)
12200 WRITE_WORD_F(adr, res)
12212 adr += AREG((Opcode >> 0) & 7);
12214 READ_WORD_F(adr, res)
12220 WRITE_WORD_F(adr, res)
12232 adr += AREG((Opcode >> 0) & 7);
12234 READ_WORD_F(adr, res)
12241 WRITE_WORD_F(adr, res)
12253 adr += AREG((Opcode >> 0) & 7);
12255 READ_WORD_F(adr, res)
12262 WRITE_WORD_F(adr, res)
12273 adr = AREG((Opcode >> 0) & 7);
12276 READ_WORD_F(adr, res)
12281 DREGu16((Opcode >> 9) & 7) = res;
12292 adr = AREG((Opcode >> 0) & 7);
12295 READ_WORD_F(adr, res)
12300 adr = AREG((Opcode >> 9) & 7);
12301 WRITE_WORD_F(adr, res)
12312 adr = AREG((Opcode >> 0) & 7);
12315 READ_WORD_F(adr, res)
12320 adr = AREG((Opcode >> 9) & 7);
12321 AREG((Opcode >> 9) & 7) += 2;
12322 WRITE_WORD_F(adr, res)
12333 adr = AREG((Opcode >> 0) & 7);
12336 READ_WORD_F(adr, res)
12341 adr = AREG((Opcode >> 9) & 7) - 2;
12342 AREG((Opcode >> 9) & 7) = adr;
12343 WRITE_WORD_F(adr, res)
12354 adr = AREG((Opcode >> 0) & 7);
12357 READ_WORD_F(adr, res)
12363 adr += AREG((Opcode >> 9) & 7);
12364 WRITE_WORD_F(adr, res)
12375 adr = AREG((Opcode >> 0) & 7);
12378 READ_WORD_F(adr, res)
12383 adr = AREG((Opcode >> 9) & 7);
12385 WRITE_WORD_F(adr, res)
12396 adr = AREG((Opcode >> 0) & 7);
12399 READ_WORD_F(adr, res)
12405 WRITE_WORD_F(adr, res)
12416 adr = AREG((Opcode >> 0) & 7);
12419 READ_WORD_F(adr, res)
12425 WRITE_WORD_F(adr, res)
12436 adr = AREG((Opcode >> 0) & 7);
12439 READ_WORD_F(adr, res)
12446 WRITE_WORD_F(adr, res)
12457 adr = AREG((Opcode >> 0) & 7);
12460 READ_WORD_F(adr, res)
12467 WRITE_WORD_F(adr, res)
12480 READ_WORD_F(adr, res)
12485 DREGu16((Opcode >> 9) & 7) = res;
12498 READ_WORD_F(adr, res)
12503 adr = AREG((Opcode >> 9) & 7);
12504 WRITE_WORD_F(adr, res)
12517 READ_WORD_F(adr, res)
12522 adr = AREG((Opcode >> 9) & 7);
12523 AREG((Opcode >> 9) & 7) += 2;
12524 WRITE_WORD_F(adr, res)
12537 READ_WORD_F(adr, res)
12542 adr = AREG((Opcode >> 9) & 7) - 2;
12543 AREG((Opcode >> 9) & 7) = adr;
12544 WRITE_WORD_F(adr, res)
12557 READ_WORD_F(adr, res)
12563 adr += AREG((Opcode >> 9) & 7);
12564 WRITE_WORD_F(adr, res)
12577 READ_WORD_F(adr, res)
12582 adr = AREG((Opcode >> 9) & 7);
12584 WRITE_WORD_F(adr, res)
12597 READ_WORD_F(adr, res)
12603 WRITE_WORD_F(adr, res)
12616 READ_WORD_F(adr, res)
12622 WRITE_WORD_F(adr, res)
12635 READ_WORD_F(adr, res)
12642 WRITE_WORD_F(adr, res)
12655 READ_WORD_F(adr, res)
12662 WRITE_WORD_F(adr, res)
12675 READ_WORD_F(adr, res)
12680 DREGu16((Opcode >> 9) & 7) = res;
12693 READ_WORD_F(adr, res)
12698 adr = AREG((Opcode >> 9) & 7);
12699 WRITE_WORD_F(adr, res)
12712 READ_WORD_F(adr, res)
12717 adr = AREG((Opcode >> 9) & 7);
12718 AREG((Opcode >> 9) & 7) += 2;
12719 WRITE_WORD_F(adr, res)
12732 READ_WORD_F(adr, res)
12737 adr = AREG((Opcode >> 9) & 7) - 2;
12738 AREG((Opcode >> 9) & 7) = adr;
12739 WRITE_WORD_F(adr, res)
12752 READ_WORD_F(adr, res)
12758 adr += AREG((Opcode >> 9) & 7);
12759 WRITE_WORD_F(adr, res)
12772 READ_WORD_F(adr, res)
12777 adr = AREG((Opcode >> 9) & 7);
12779 WRITE_WORD_F(adr, res)
12792 READ_WORD_F(adr, res)
12798 WRITE_WORD_F(adr, res)
12811 READ_WORD_F(adr, res)
12817 WRITE_WORD_F(adr, res)
12830 READ_WORD_F(adr, res)
12837 WRITE_WORD_F(adr, res)
12850 READ_WORD_F(adr, res)
12857 WRITE_WORD_F(adr, res)
12868 adr = GET_SWORD + GET_PC;
12871 READ_WORD_F(adr, res)
12876 DREGu16((Opcode >> 9) & 7) = res;
12887 adr = GET_SWORD + GET_PC;
12890 READ_WORD_F(adr, res)
12895 adr = AREG((Opcode >> 9) & 7);
12896 WRITE_WORD_F(adr, res)
12907 adr = GET_SWORD + GET_PC;
12910 READ_WORD_F(adr, res)
12915 adr = AREG((Opcode >> 9) & 7);
12916 AREG((Opcode >> 9) & 7) += 2;
12917 WRITE_WORD_F(adr, res)
12928 adr = GET_SWORD + GET_PC;
12931 READ_WORD_F(adr, res)
12936 adr = AREG((Opcode >> 9) & 7) - 2;
12937 AREG((Opcode >> 9) & 7) = adr;
12938 WRITE_WORD_F(adr, res)
12949 adr = GET_SWORD + GET_PC;
12952 READ_WORD_F(adr, res)
12958 adr += AREG((Opcode >> 9) & 7);
12959 WRITE_WORD_F(adr, res)
12970 adr = GET_SWORD + GET_PC;
12973 READ_WORD_F(adr, res)
12978 adr = AREG((Opcode >> 9) & 7);
12980 WRITE_WORD_F(adr, res)
12991 adr = GET_SWORD + GET_PC;
12994 READ_WORD_F(adr, res)
13000 WRITE_WORD_F(adr, res)
13011 adr = GET_SWORD + GET_PC;
13014 READ_WORD_F(adr, res)
13020 WRITE_WORD_F(adr, res)
13031 adr = GET_SWORD + GET_PC;
13034 READ_WORD_F(adr, res)
13041 WRITE_WORD_F(adr, res)
13052 adr = GET_SWORD + GET_PC;
13055 READ_WORD_F(adr, res)
13062 WRITE_WORD_F(adr, res)
13076 READ_WORD_F(adr, res)
13081 DREGu16((Opcode >> 9) & 7) = res;
13095 READ_WORD_F(adr, res)
13100 adr = AREG((Opcode >> 9) & 7);
13101 WRITE_WORD_F(adr, res)
13115 READ_WORD_F(adr, res)
13120 adr = AREG((Opcode >> 9) & 7);
13121 AREG((Opcode >> 9) & 7) += 2;
13122 WRITE_WORD_F(adr, res)
13136 READ_WORD_F(adr, res)
13141 adr = AREG((Opcode >> 9) & 7) - 2;
13142 AREG((Opcode >> 9) & 7) = adr;
13143 WRITE_WORD_F(adr, res)
13157 READ_WORD_F(adr, res)
13163 adr += AREG((Opcode >> 9) & 7);
13164 WRITE_WORD_F(adr, res)
13178 READ_WORD_F(adr, res)
13183 adr = AREG((Opcode >> 9) & 7);
13185 WRITE_WORD_F(adr, res)
13199 READ_WORD_F(adr, res)
13205 WRITE_WORD_F(adr, res)
13219 READ_WORD_F(adr, res)
13225 WRITE_WORD_F(adr, res)
13239 READ_WORD_F(adr, res)
13246 WRITE_WORD_F(adr, res)
13260 READ_WORD_F(adr, res)
13267 WRITE_WORD_F(adr, res)
13283 DREGu16((Opcode >> 9) & 7) = res;
13298 adr = AREG((Opcode >> 9) & 7);
13300 WRITE_WORD_F(adr, res)
13316 adr = AREG((Opcode >> 9) & 7);
13317 AREG((Opcode >> 9) & 7) += 2;
13319 WRITE_WORD_F(adr, res)
13335 adr = AREG((Opcode >> 9) & 7) - 2;
13336 AREG((Opcode >> 9) & 7) = adr;
13338 WRITE_WORD_F(adr, res)
13355 adr += AREG((Opcode >> 9) & 7);
13357 WRITE_WORD_F(adr, res)
13373 adr = AREG((Opcode >> 9) & 7);
13376 WRITE_WORD_F(adr, res)
13394 WRITE_WORD_F(adr, res)
13412 WRITE_WORD_F(adr, res)
13431 WRITE_WORD_F(adr, res)
13450 WRITE_WORD_F(adr, res)
13464 READ_WORD_F(adr, res)
13469 DREGu16((Opcode >> 9) & 7) = res;
13483 READ_WORD_F(adr, res)
13488 adr = AREG((Opcode >> 9) & 7);
13489 WRITE_WORD_F(adr, res)
13503 READ_WORD_F(adr, res)
13508 adr = AREG((Opcode >> 9) & 7);
13509 AREG((Opcode >> 9) & 7) += 2;
13510 WRITE_WORD_F(adr, res)
13524 READ_WORD_F(adr, res)
13529 adr = AREG((Opcode >> 9) & 7) - 2;
13530 AREG((Opcode >> 9) & 7) = adr;
13531 WRITE_WORD_F(adr, res)
13545 READ_WORD_F(adr, res)
13551 adr += AREG((Opcode >> 9) & 7);
13552 WRITE_WORD_F(adr, res)
13566 READ_WORD_F(adr, res)
13571 adr = AREG((Opcode >> 9) & 7);
13573 WRITE_WORD_F(adr, res)
13587 READ_WORD_F(adr, res)
13593 WRITE_WORD_F(adr, res)
13607 READ_WORD_F(adr, res)
13613 WRITE_WORD_F(adr, res)
13627 READ_WORD_F(adr, res)
13634 WRITE_WORD_F(adr, res)
13648 READ_WORD_F(adr, res)
13655 WRITE_WORD_F(adr, res)
13669 READ_WORD_F(adr, res)
13674 DREGu16((Opcode >> 9) & 7) = res;
13688 READ_WORD_F(adr, res)
13693 adr = AREG((Opcode >> 9) & 7);
13694 WRITE_WORD_F(adr, res)
13708 READ_WORD_F(adr, res)
13713 adr = AREG((Opcode >> 9) & 7);
13714 AREG((Opcode >> 9) & 7) += 2;
13715 WRITE_WORD_F(adr, res)
13729 READ_WORD_F(adr, res)
13734 adr = AREG((Opcode >> 9) & 7) - 2;
13735 AREG((Opcode >> 9) & 7) = adr;
13736 WRITE_WORD_F(adr, res)
13750 READ_WORD_F(adr, res)
13756 adr += AREG((Opcode >> 9) & 7);
13757 WRITE_WORD_F(adr, res)
13771 READ_WORD_F(adr, res)
13776 adr = AREG((Opcode >> 9) & 7);
13778 WRITE_WORD_F(adr, res)
13792 READ_WORD_F(adr, res)
13798 WRITE_WORD_F(adr, res)
13812 READ_WORD_F(adr, res)
13818 WRITE_WORD_F(adr, res)
13832 READ_WORD_F(adr, res)
13839 WRITE_WORD_F(adr, res)
13853 READ_WORD_F(adr, res)
13860 WRITE_WORD_F(adr, res)
13871 res = (s32)DREGs16((Opcode >> 0) & 7);
13872 AREG((Opcode >> 9) & 7) = res;
13882 res = (s32)AREGs16((Opcode >> 0) & 7);
13883 AREG((Opcode >> 9) & 7) = res;
13893 adr = AREG((Opcode >> 0) & 7);
13895 READSX_WORD_F(adr, res)
13896 AREG((Opcode >> 9) & 7) = res;
13907 adr = AREG((Opcode >> 0) & 7);
13908 AREG((Opcode >> 0) & 7) += 2;
13910 READSX_WORD_F(adr, res)
13911 AREG((Opcode >> 9) & 7) = res;
13922 adr = AREG((Opcode >> 0) & 7) - 2;
13923 AREG((Opcode >> 0) & 7) = adr;
13925 READSX_WORD_F(adr, res)
13926 AREG((Opcode >> 9) & 7) = res;
13938 adr += AREG((Opcode >> 0) & 7);
13940 READSX_WORD_F(adr, res)
13941 AREG((Opcode >> 9) & 7) = res;
13952 adr = AREG((Opcode >> 0) & 7);
13955 READSX_WORD_F(adr, res)
13956 AREG((Opcode >> 9) & 7) = res;
13969 READSX_WORD_F(adr, res)
13970 AREG((Opcode >> 9) & 7) = res;
13983 READSX_WORD_F(adr, res)
13984 AREG((Opcode >> 9) & 7) = res;
13995 adr = GET_SWORD + GET_PC;
13998 READSX_WORD_F(adr, res)
13999 AREG((Opcode >> 9) & 7) = res;
14013 READSX_WORD_F(adr, res)
14014 AREG((Opcode >> 9) & 7) = res;
14026 AREG((Opcode >> 9) & 7) = res;
14039 READSX_WORD_F(adr, res)
14040 AREG((Opcode >> 9) & 7) = res;
14054 READSX_WORD_F(adr, res)
14055 AREG((Opcode >> 9) & 7) = res;
14066 src = DREGu8((Opcode >> 0) & 7);
14067 res = -src - ((flag_X >> 8) & 1);
14068 flag_V = res & src;
14069 flag_N = flag_X = flag_C = res;
14070 flag_NotZ |= res & 0xFF;
14071 DREGu8((Opcode >> 0) & 7) = res;
14081 adr = AREG((Opcode >> 0) & 7);
14083 READ_BYTE_F(adr, src)
14084 res = -src - ((flag_X >> 8) & 1);
14085 flag_V = res & src;
14086 flag_N = flag_X = flag_C = res;
14087 flag_NotZ |= res & 0xFF;
14088 WRITE_BYTE_F(adr, res)
14099 adr = AREG((Opcode >> 0) & 7);
14100 AREG((Opcode >> 0) & 7) += 1;
14102 READ_BYTE_F(adr, src)
14103 res = -src - ((flag_X >> 8) & 1);
14104 flag_V = res & src;
14105 flag_N = flag_X = flag_C = res;
14106 flag_NotZ |= res & 0xFF;
14107 WRITE_BYTE_F(adr, res)
14118 adr = AREG((Opcode >> 0) & 7) - 1;
14119 AREG((Opcode >> 0) & 7) = adr;
14121 READ_BYTE_F(adr, src)
14122 res = -src - ((flag_X >> 8) & 1);
14123 flag_V = res & src;
14124 flag_N = flag_X = flag_C = res;
14125 flag_NotZ |= res & 0xFF;
14126 WRITE_BYTE_F(adr, res)
14138 adr += AREG((Opcode >> 0) & 7);
14140 READ_BYTE_F(adr, src)
14141 res = -src - ((flag_X >> 8) & 1);
14142 flag_V = res & src;
14143 flag_N = flag_X = flag_C = res;
14144 flag_NotZ |= res & 0xFF;
14145 WRITE_BYTE_F(adr, res)
14156 adr = AREG((Opcode >> 0) & 7);
14159 READ_BYTE_F(adr, src)
14160 res = -src - ((flag_X >> 8) & 1);
14161 flag_V = res & src;
14162 flag_N = flag_X = flag_C = res;
14163 flag_NotZ |= res & 0xFF;
14164 WRITE_BYTE_F(adr, res)
14177 READ_BYTE_F(adr, src)
14178 res = -src - ((flag_X >> 8) & 1);
14179 flag_V = res & src;
14180 flag_N = flag_X = flag_C = res;
14181 flag_NotZ |= res & 0xFF;
14182 WRITE_BYTE_F(adr, res)
14195 READ_BYTE_F(adr, src)
14196 res = -src - ((flag_X >> 8) & 1);
14197 flag_V = res & src;
14198 flag_N = flag_X = flag_C = res;
14199 flag_NotZ |= res & 0xFF;
14200 WRITE_BYTE_F(adr, res)
14214 READ_BYTE_F(adr, src)
14215 res = -src - ((flag_X >> 8) & 1);
14216 flag_V = res & src;
14217 flag_N = flag_X = flag_C = res;
14218 flag_NotZ |= res & 0xFF;
14219 WRITE_BYTE_F(adr, res)
14233 READ_BYTE_F(adr, src)
14234 res = -src - ((flag_X >> 8) & 1);
14235 flag_V = res & src;
14236 flag_N = flag_X = flag_C = res;
14237 flag_NotZ |= res & 0xFF;
14238 WRITE_BYTE_F(adr, res)
14249 src = DREGu16((Opcode >> 0) & 7);
14250 res = -src - ((flag_X >> 8) & 1);
14251 flag_V = (res & src) >> 8;
14252 flag_N = flag_X = flag_C = res >> 8;
14253 flag_NotZ |= res & 0xFFFF;
14254 DREGu16((Opcode >> 0) & 7) = res;
14264 adr = AREG((Opcode >> 0) & 7);
14266 READ_WORD_F(adr, src)
14267 res = -src - ((flag_X >> 8) & 1);
14268 flag_V = (res & src) >> 8;
14269 flag_N = flag_X = flag_C = res >> 8;
14270 flag_NotZ |= res & 0xFFFF;
14271 WRITE_WORD_F(adr, res)
14282 adr = AREG((Opcode >> 0) & 7);
14283 AREG((Opcode >> 0) & 7) += 2;
14285 READ_WORD_F(adr, src)
14286 res = -src - ((flag_X >> 8) & 1);
14287 flag_V = (res & src) >> 8;
14288 flag_N = flag_X = flag_C = res >> 8;
14289 flag_NotZ |= res & 0xFFFF;
14290 WRITE_WORD_F(adr, res)
14301 adr = AREG((Opcode >> 0) & 7) - 2;
14302 AREG((Opcode >> 0) & 7) = adr;
14304 READ_WORD_F(adr, src)
14305 res = -src - ((flag_X >> 8) & 1);
14306 flag_V = (res & src) >> 8;
14307 flag_N = flag_X = flag_C = res >> 8;
14308 flag_NotZ |= res & 0xFFFF;
14309 WRITE_WORD_F(adr, res)
14321 adr += AREG((Opcode >> 0) & 7);
14323 READ_WORD_F(adr, src)
14324 res = -src - ((flag_X >> 8) & 1);
14325 flag_V = (res & src) >> 8;
14326 flag_N = flag_X = flag_C = res >> 8;
14327 flag_NotZ |= res & 0xFFFF;
14328 WRITE_WORD_F(adr, res)
14339 adr = AREG((Opcode >> 0) & 7);
14342 READ_WORD_F(adr, src)
14343 res = -src - ((flag_X >> 8) & 1);
14344 flag_V = (res & src) >> 8;
14345 flag_N = flag_X = flag_C = res >> 8;
14346 flag_NotZ |= res & 0xFFFF;
14347 WRITE_WORD_F(adr, res)
14360 READ_WORD_F(adr, src)
14361 res = -src - ((flag_X >> 8) & 1);
14362 flag_V = (res & src) >> 8;
14363 flag_N = flag_X = flag_C = res >> 8;
14364 flag_NotZ |= res & 0xFFFF;
14365 WRITE_WORD_F(adr, res)
14378 READ_WORD_F(adr, src)
14379 res = -src - ((flag_X >> 8) & 1);
14380 flag_V = (res & src) >> 8;
14381 flag_N = flag_X = flag_C = res >> 8;
14382 flag_NotZ |= res & 0xFFFF;
14383 WRITE_WORD_F(adr, res)
14397 READ_WORD_F(adr, src)
14398 res = -src - ((flag_X >> 8) & 1);
14399 flag_V = (res & src) >> 8;
14400 flag_N = flag_X = flag_C = res >> 8;
14401 flag_NotZ |= res & 0xFFFF;
14402 WRITE_WORD_F(adr, res)
14416 READ_WORD_F(adr, src)
14417 res = -src - ((flag_X >> 8) & 1);
14418 flag_V = (res & src) >> 8;
14419 flag_N = flag_X = flag_C = res >> 8;
14420 flag_NotZ |= res & 0xFFFF;
14421 WRITE_WORD_F(adr, res)
14432 src = DREGu32((Opcode >> 0) & 7);
14433 res = -src - ((flag_X >> 8) & 1);
14435 flag_V = (res & src) >> 24;
14436 flag_X = flag_C = (res?1:0)<<8;
14437 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14438 flag_N = res >> 24;
14439 DREGu32((Opcode >> 0) & 7) = res;
14449 adr = AREG((Opcode >> 0) & 7);
14451 READ_LONG_F(adr, src)
14452 res = -src - ((flag_X >> 8) & 1);
14454 flag_V = (res & src) >> 24;
14455 flag_X = flag_C = (res?1:0)<<8;
14456 // flag_X = flag_C = ((src & res & 1) | (src >> 1) | (res >> 1)) >> 23;
14457 flag_N = res >> 24;
14458 WRITE_LONG_F(adr, res)
14469 adr = AREG((Opcode >> 0) & 7);
14470 AREG((Opcode >> 0) & 7) += 4;
14472 READ_LONG_F(adr, src)
14473 res = -src - ((flag_X >> 8) & 1);
14475 flag_V = (res & src) >> 24;
14476 flag_X = flag_C = (res?1:0)<<8;
14477 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14478 flag_N = res >> 24;
14479 WRITE_LONG_F(adr, res)
14490 adr = AREG((Opcode >> 0) & 7) - 4;
14491 AREG((Opcode >> 0) & 7) = adr;
14493 READ_LONG_F(adr, src)
14494 res = -src - ((flag_X >> 8) & 1);
14496 flag_V = (res & src) >> 24;
14497 flag_X = flag_C = (res?1:0)<<8;
14498 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14499 flag_N = res >> 24;
14500 WRITE_LONG_F(adr, res)
14512 adr += AREG((Opcode >> 0) & 7);
14514 READ_LONG_F(adr, src)
14515 res = -src - ((flag_X >> 8) & 1);
14517 flag_V = (res & src) >> 24;
14518 flag_X = flag_C = (res?1:0)<<8;
14519 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14520 flag_N = res >> 24;
14521 WRITE_LONG_F(adr, res)
14532 adr = AREG((Opcode >> 0) & 7);
14535 READ_LONG_F(adr, src)
14536 res = -src - ((flag_X >> 8) & 1);
14538 flag_V = (res & src) >> 24;
14539 flag_X = flag_C = (res?1:0)<<8;
14540 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14541 flag_N = res >> 24;
14542 WRITE_LONG_F(adr, res)
14555 READ_LONG_F(adr, src)
14556 res = -src - ((flag_X >> 8) & 1);
14558 flag_V = (res & src) >> 24;
14559 flag_X = flag_C = (res?1:0)<<8;
14560 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14561 flag_N = res >> 24;
14562 WRITE_LONG_F(adr, res)
14575 READ_LONG_F(adr, src)
14576 res = -src - ((flag_X >> 8) & 1);
14578 flag_V = (res & src) >> 24;
14579 flag_X = flag_C = (res?1:0)<<8;
14580 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14581 flag_N = res >> 24;
14582 WRITE_LONG_F(adr, res)
14596 READ_LONG_F(adr, src)
14597 res = -src - ((flag_X >> 8) & 1);
14599 flag_V = (res & src) >> 24;
14600 flag_X = flag_C = (res?1:0)<<8;
14601 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14602 flag_N = res >> 24;
14603 WRITE_LONG_F(adr, res)
14617 READ_LONG_F(adr, src)
14618 res = -src - ((flag_X >> 8) & 1);
14620 flag_V = (res & src) >> 24;
14621 flag_X = flag_C = (res?1:0)<<8;
14622 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14623 flag_N = res >> 24;
14624 WRITE_LONG_F(adr, res)
14636 flag_N = flag_NotZ = flag_V = flag_C = 0;
14637 DREGu8((Opcode >> 0) & 7) = res;
14647 adr = AREG((Opcode >> 0) & 7);
14649 flag_N = flag_NotZ = flag_V = flag_C = 0;
14651 WRITE_BYTE_F(adr, res)
14662 adr = AREG((Opcode >> 0) & 7);
14663 AREG((Opcode >> 0) & 7) += 1;
14665 flag_N = flag_NotZ = flag_V = flag_C = 0;
14667 WRITE_BYTE_F(adr, res)
14678 adr = AREG((Opcode >> 0) & 7) - 1;
14679 AREG((Opcode >> 0) & 7) = adr;
14681 flag_N = flag_NotZ = flag_V = flag_C = 0;
14683 WRITE_BYTE_F(adr, res)
14695 adr += AREG((Opcode >> 0) & 7);
14697 flag_N = flag_NotZ = flag_V = flag_C = 0;
14699 WRITE_BYTE_F(adr, res)
14710 adr = AREG((Opcode >> 0) & 7);
14713 flag_N = flag_NotZ = flag_V = flag_C = 0;
14715 WRITE_BYTE_F(adr, res)
14728 flag_N = flag_NotZ = flag_V = flag_C = 0;
14730 WRITE_BYTE_F(adr, res)
14743 flag_N = flag_NotZ = flag_V = flag_C = 0;
14745 WRITE_BYTE_F(adr, res)
14759 flag_N = flag_NotZ = flag_V = flag_C = 0;
14761 WRITE_BYTE_F(adr, res)
14775 flag_N = flag_NotZ = flag_V = flag_C = 0;
14777 WRITE_BYTE_F(adr, res)
14789 flag_N = flag_NotZ = flag_V = flag_C = 0;
14790 DREGu16((Opcode >> 0) & 7) = res;
14800 adr = AREG((Opcode >> 0) & 7);
14802 flag_N = flag_NotZ = flag_V = flag_C = 0;
14804 WRITE_WORD_F(adr, res)
14815 adr = AREG((Opcode >> 0) & 7);
14816 AREG((Opcode >> 0) & 7) += 2;
14818 flag_N = flag_NotZ = flag_V = flag_C = 0;
14820 WRITE_WORD_F(adr, res)
14831 adr = AREG((Opcode >> 0) & 7) - 2;
14832 AREG((Opcode >> 0) & 7) = adr;
14834 flag_N = flag_NotZ = flag_V = flag_C = 0;
14836 WRITE_WORD_F(adr, res)
14848 adr += AREG((Opcode >> 0) & 7);
14850 flag_N = flag_NotZ = flag_V = flag_C = 0;
14852 WRITE_WORD_F(adr, res)
14863 adr = AREG((Opcode >> 0) & 7);
14866 flag_N = flag_NotZ = flag_V = flag_C = 0;
14868 WRITE_WORD_F(adr, res)
14881 flag_N = flag_NotZ = flag_V = flag_C = 0;
14883 WRITE_WORD_F(adr, res)
14896 flag_N = flag_NotZ = flag_V = flag_C = 0;
14898 WRITE_WORD_F(adr, res)
14912 flag_N = flag_NotZ = flag_V = flag_C = 0;
14914 WRITE_WORD_F(adr, res)
14928 flag_N = flag_NotZ = flag_V = flag_C = 0;
14930 WRITE_WORD_F(adr, res)
14942 flag_N = flag_NotZ = flag_V = flag_C = 0;
14943 DREGu32((Opcode >> 0) & 7) = res;
14953 adr = AREG((Opcode >> 0) & 7);
14955 flag_N = flag_NotZ = flag_V = flag_C = 0;
14957 WRITE_LONG_F(adr, res)
14968 adr = AREG((Opcode >> 0) & 7);
14969 AREG((Opcode >> 0) & 7) += 4;
14971 flag_N = flag_NotZ = flag_V = flag_C = 0;
14973 WRITE_LONG_F(adr, res)
14984 adr = AREG((Opcode >> 0) & 7) - 4;
14985 AREG((Opcode >> 0) & 7) = adr;
14987 flag_N = flag_NotZ = flag_V = flag_C = 0;
14989 WRITE_LONG_F(adr, res)
15001 adr += AREG((Opcode >> 0) & 7);
15003 flag_N = flag_NotZ = flag_V = flag_C = 0;
15005 WRITE_LONG_F(adr, res)
15016 adr = AREG((Opcode >> 0) & 7);
15019 flag_N = flag_NotZ = flag_V = flag_C = 0;
15021 WRITE_LONG_F(adr, res)
15034 flag_N = flag_NotZ = flag_V = flag_C = 0;
15036 WRITE_LONG_F(adr, res)
15049 flag_N = flag_NotZ = flag_V = flag_C = 0;
15051 WRITE_LONG_F(adr, res)
15065 flag_N = flag_NotZ = flag_V = flag_C = 0;
15067 WRITE_LONG_F(adr, res)
15081 flag_N = flag_NotZ = flag_V = flag_C = 0;
15083 WRITE_LONG_F(adr, res)
15094 src = DREGu8((Opcode >> 0) & 7);
15096 flag_V = res & src;
15097 flag_N = flag_X = flag_C = res;
15098 flag_NotZ = res & 0xFF;
15099 DREGu8((Opcode >> 0) & 7) = res;
15109 adr = AREG((Opcode >> 0) & 7);
15111 READ_BYTE_F(adr, src)
15113 flag_V = res & src;
15114 flag_N = flag_X = flag_C = res;
15115 flag_NotZ = res & 0xFF;
15116 WRITE_BYTE_F(adr, res)
15127 adr = AREG((Opcode >> 0) & 7);
15128 AREG((Opcode >> 0) & 7) += 1;
15130 READ_BYTE_F(adr, src)
15132 flag_V = res & src;
15133 flag_N = flag_X = flag_C = res;
15134 flag_NotZ = res & 0xFF;
15135 WRITE_BYTE_F(adr, res)
15146 adr = AREG((Opcode >> 0) & 7) - 1;
15147 AREG((Opcode >> 0) & 7) = adr;
15149 READ_BYTE_F(adr, src)
15151 flag_V = res & src;
15152 flag_N = flag_X = flag_C = res;
15153 flag_NotZ = res & 0xFF;
15154 WRITE_BYTE_F(adr, res)
15166 adr += AREG((Opcode >> 0) & 7);
15168 READ_BYTE_F(adr, src)
15170 flag_V = res & src;
15171 flag_N = flag_X = flag_C = res;
15172 flag_NotZ = res & 0xFF;
15173 WRITE_BYTE_F(adr, res)
15184 adr = AREG((Opcode >> 0) & 7);
15187 READ_BYTE_F(adr, src)
15189 flag_V = res & src;
15190 flag_N = flag_X = flag_C = res;
15191 flag_NotZ = res & 0xFF;
15192 WRITE_BYTE_F(adr, res)
15205 READ_BYTE_F(adr, src)
15207 flag_V = res & src;
15208 flag_N = flag_X = flag_C = res;
15209 flag_NotZ = res & 0xFF;
15210 WRITE_BYTE_F(adr, res)
15223 READ_BYTE_F(adr, src)
15225 flag_V = res & src;
15226 flag_N = flag_X = flag_C = res;
15227 flag_NotZ = res & 0xFF;
15228 WRITE_BYTE_F(adr, res)
15242 READ_BYTE_F(adr, src)
15244 flag_V = res & src;
15245 flag_N = flag_X = flag_C = res;
15246 flag_NotZ = res & 0xFF;
15247 WRITE_BYTE_F(adr, res)
15261 READ_BYTE_F(adr, src)
15263 flag_V = res & src;
15264 flag_N = flag_X = flag_C = res;
15265 flag_NotZ = res & 0xFF;
15266 WRITE_BYTE_F(adr, res)
15277 src = DREGu16((Opcode >> 0) & 7);
15279 flag_V = (res & src) >> 8;
15280 flag_N = flag_X = flag_C = res >> 8;
15281 flag_NotZ = res & 0xFFFF;
15282 DREGu16((Opcode >> 0) & 7) = res;
15292 adr = AREG((Opcode >> 0) & 7);
15294 READ_WORD_F(adr, src)
15296 flag_V = (res & src) >> 8;
15297 flag_N = flag_X = flag_C = res >> 8;
15298 flag_NotZ = res & 0xFFFF;
15299 WRITE_WORD_F(adr, res)
15310 adr = AREG((Opcode >> 0) & 7);
15311 AREG((Opcode >> 0) & 7) += 2;
15313 READ_WORD_F(adr, src)
15315 flag_V = (res & src) >> 8;
15316 flag_N = flag_X = flag_C = res >> 8;
15317 flag_NotZ = res & 0xFFFF;
15318 WRITE_WORD_F(adr, res)
15329 adr = AREG((Opcode >> 0) & 7) - 2;
15330 AREG((Opcode >> 0) & 7) = adr;
15332 READ_WORD_F(adr, src)
15334 flag_V = (res & src) >> 8;
15335 flag_N = flag_X = flag_C = res >> 8;
15336 flag_NotZ = res & 0xFFFF;
15337 WRITE_WORD_F(adr, res)
15349 adr += AREG((Opcode >> 0) & 7);
15351 READ_WORD_F(adr, src)
15353 flag_V = (res & src) >> 8;
15354 flag_N = flag_X = flag_C = res >> 8;
15355 flag_NotZ = res & 0xFFFF;
15356 WRITE_WORD_F(adr, res)
15367 adr = AREG((Opcode >> 0) & 7);
15370 READ_WORD_F(adr, src)
15372 flag_V = (res & src) >> 8;
15373 flag_N = flag_X = flag_C = res >> 8;
15374 flag_NotZ = res & 0xFFFF;
15375 WRITE_WORD_F(adr, res)
15388 READ_WORD_F(adr, src)
15390 flag_V = (res & src) >> 8;
15391 flag_N = flag_X = flag_C = res >> 8;
15392 flag_NotZ = res & 0xFFFF;
15393 WRITE_WORD_F(adr, res)
15406 READ_WORD_F(adr, src)
15408 flag_V = (res & src) >> 8;
15409 flag_N = flag_X = flag_C = res >> 8;
15410 flag_NotZ = res & 0xFFFF;
15411 WRITE_WORD_F(adr, res)
15425 READ_WORD_F(adr, src)
15427 flag_V = (res & src) >> 8;
15428 flag_N = flag_X = flag_C = res >> 8;
15429 flag_NotZ = res & 0xFFFF;
15430 WRITE_WORD_F(adr, res)
15444 READ_WORD_F(adr, src)
15446 flag_V = (res & src) >> 8;
15447 flag_N = flag_X = flag_C = res >> 8;
15448 flag_NotZ = res & 0xFFFF;
15449 WRITE_WORD_F(adr, res)
15460 src = DREGu32((Opcode >> 0) & 7);
15463 flag_V = (res & src) >> 24;
15464 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15465 flag_N = res >> 24;
15466 DREGu32((Opcode >> 0) & 7) = res;
15476 adr = AREG((Opcode >> 0) & 7);
15478 READ_LONG_F(adr, src)
15481 flag_V = (res & src) >> 24;
15482 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15483 flag_N = res >> 24;
15484 WRITE_LONG_F(adr, res)
15495 adr = AREG((Opcode >> 0) & 7);
15496 AREG((Opcode >> 0) & 7) += 4;
15498 READ_LONG_F(adr, src)
15501 flag_V = (res & src) >> 24;
15502 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15503 flag_N = res >> 24;
15504 WRITE_LONG_F(adr, res)
15515 adr = AREG((Opcode >> 0) & 7) - 4;
15516 AREG((Opcode >> 0) & 7) = adr;
15518 READ_LONG_F(adr, src)
15521 flag_V = (res & src) >> 24;
15522 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15523 flag_N = res >> 24;
15524 WRITE_LONG_F(adr, res)
15536 adr += AREG((Opcode >> 0) & 7);
15538 READ_LONG_F(adr, src)
15541 flag_V = (res & src) >> 24;
15542 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15543 flag_N = res >> 24;
15544 WRITE_LONG_F(adr, res)
15555 adr = AREG((Opcode >> 0) & 7);
15558 READ_LONG_F(adr, src)
15561 flag_V = (res & src) >> 24;
15562 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15563 flag_N = res >> 24;
15564 WRITE_LONG_F(adr, res)
15577 READ_LONG_F(adr, src)
15580 flag_V = (res & src) >> 24;
15581 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15582 flag_N = res >> 24;
15583 WRITE_LONG_F(adr, res)
15596 READ_LONG_F(adr, src)
15599 flag_V = (res & src) >> 24;
15600 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15601 flag_N = res >> 24;
15602 WRITE_LONG_F(adr, res)
15616 READ_LONG_F(adr, src)
15619 flag_V = (res & src) >> 24;
15620 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15621 flag_N = res >> 24;
15622 WRITE_LONG_F(adr, res)
15636 READ_LONG_F(adr, src)
15639 flag_V = (res & src) >> 24;
15640 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15641 flag_N = res >> 24;
15642 WRITE_LONG_F(adr, res)
15653 src = DREGu8((Opcode >> 0) & 7);
15658 flag_NotZ = res & 0xFF;
15659 DREGu8((Opcode >> 0) & 7) = res;
15669 adr = AREG((Opcode >> 0) & 7);
15671 READ_BYTE_F(adr, src)
15676 flag_NotZ = res & 0xFF;
15677 WRITE_BYTE_F(adr, res)
15688 adr = AREG((Opcode >> 0) & 7);
15689 AREG((Opcode >> 0) & 7) += 1;
15691 READ_BYTE_F(adr, src)
15696 flag_NotZ = res & 0xFF;
15697 WRITE_BYTE_F(adr, res)
15708 adr = AREG((Opcode >> 0) & 7) - 1;
15709 AREG((Opcode >> 0) & 7) = adr;
15711 READ_BYTE_F(adr, src)
15716 flag_NotZ = res & 0xFF;
15717 WRITE_BYTE_F(adr, res)
15729 adr += AREG((Opcode >> 0) & 7);
15731 READ_BYTE_F(adr, src)
15736 flag_NotZ = res & 0xFF;
15737 WRITE_BYTE_F(adr, res)
15748 adr = AREG((Opcode >> 0) & 7);
15751 READ_BYTE_F(adr, src)
15756 flag_NotZ = res & 0xFF;
15757 WRITE_BYTE_F(adr, res)
15770 READ_BYTE_F(adr, src)
15775 flag_NotZ = res & 0xFF;
15776 WRITE_BYTE_F(adr, res)
15789 READ_BYTE_F(adr, src)
15794 flag_NotZ = res & 0xFF;
15795 WRITE_BYTE_F(adr, res)
15809 READ_BYTE_F(adr, src)
15814 flag_NotZ = res & 0xFF;
15815 WRITE_BYTE_F(adr, res)
15829 READ_BYTE_F(adr, src)
15834 flag_NotZ = res & 0xFF;
15835 WRITE_BYTE_F(adr, res)
15846 src = DREGu16((Opcode >> 0) & 7);
15850 flag_NotZ = res & 0xFFFF;
15852 DREGu16((Opcode >> 0) & 7) = res;
15862 adr = AREG((Opcode >> 0) & 7);
15864 READ_WORD_F(adr, src)
15868 flag_NotZ = res & 0xFFFF;
15870 WRITE_WORD_F(adr, res)
15881 adr = AREG((Opcode >> 0) & 7);
15882 AREG((Opcode >> 0) & 7) += 2;
15884 READ_WORD_F(adr, src)
15888 flag_NotZ = res & 0xFFFF;
15890 WRITE_WORD_F(adr, res)
15901 adr = AREG((Opcode >> 0) & 7) - 2;
15902 AREG((Opcode >> 0) & 7) = adr;
15904 READ_WORD_F(adr, src)
15908 flag_NotZ = res & 0xFFFF;
15910 WRITE_WORD_F(adr, res)
15922 adr += AREG((Opcode >> 0) & 7);
15924 READ_WORD_F(adr, src)
15928 flag_NotZ = res & 0xFFFF;
15930 WRITE_WORD_F(adr, res)
15941 adr = AREG((Opcode >> 0) & 7);
15944 READ_WORD_F(adr, src)
15948 flag_NotZ = res & 0xFFFF;
15950 WRITE_WORD_F(adr, res)
15963 READ_WORD_F(adr, src)
15967 flag_NotZ = res & 0xFFFF;
15969 WRITE_WORD_F(adr, res)
15982 READ_WORD_F(adr, src)
15986 flag_NotZ = res & 0xFFFF;
15988 WRITE_WORD_F(adr, res)
16002 READ_WORD_F(adr, src)
16006 flag_NotZ = res & 0xFFFF;
16008 WRITE_WORD_F(adr, res)
16022 READ_WORD_F(adr, src)
16026 flag_NotZ = res & 0xFFFF;
16028 WRITE_WORD_F(adr, res)
16039 src = DREGu32((Opcode >> 0) & 7);
16044 flag_N = res >> 24;
16045 DREGu32((Opcode >> 0) & 7) = res;
16055 adr = AREG((Opcode >> 0) & 7);
16057 READ_LONG_F(adr, src)
16062 flag_N = res >> 24;
16063 WRITE_LONG_F(adr, res)
16074 adr = AREG((Opcode >> 0) & 7);
16075 AREG((Opcode >> 0) & 7) += 4;
16077 READ_LONG_F(adr, src)
16082 flag_N = res >> 24;
16083 WRITE_LONG_F(adr, res)
16094 adr = AREG((Opcode >> 0) & 7) - 4;
16095 AREG((Opcode >> 0) & 7) = adr;
16097 READ_LONG_F(adr, src)
16102 flag_N = res >> 24;
16103 WRITE_LONG_F(adr, res)
16115 adr += AREG((Opcode >> 0) & 7);
16117 READ_LONG_F(adr, src)
16122 flag_N = res >> 24;
16123 WRITE_LONG_F(adr, res)
16134 adr = AREG((Opcode >> 0) & 7);
16137 READ_LONG_F(adr, src)
16142 flag_N = res >> 24;
16143 WRITE_LONG_F(adr, res)
16156 READ_LONG_F(adr, src)
16161 flag_N = res >> 24;
16162 WRITE_LONG_F(adr, res)
16175 READ_LONG_F(adr, src)
16180 flag_N = res >> 24;
16181 WRITE_LONG_F(adr, res)
16195 READ_LONG_F(adr, src)
16200 flag_N = res >> 24;
16201 WRITE_LONG_F(adr, res)
16215 READ_LONG_F(adr, src)
16220 flag_N = res >> 24;
16221 WRITE_LONG_F(adr, res)
16233 DREGu16((Opcode >> 0) & 7) = res;
16244 adr = AREG((Opcode >> 0) & 7);
16246 WRITE_WORD_F(adr, res)
16258 adr = AREG((Opcode >> 0) & 7);
16259 AREG((Opcode >> 0) & 7) += 2;
16261 WRITE_WORD_F(adr, res)
16273 adr = AREG((Opcode >> 0) & 7) - 2;
16274 AREG((Opcode >> 0) & 7) = adr;
16276 WRITE_WORD_F(adr, res)
16289 adr += AREG((Opcode >> 0) & 7);
16291 WRITE_WORD_F(adr, res)
16303 adr = AREG((Opcode >> 0) & 7);
16306 WRITE_WORD_F(adr, res)
16320 WRITE_WORD_F(adr, res)
16334 WRITE_WORD_F(adr, res)
16349 WRITE_WORD_F(adr, res)
16364 WRITE_WORD_F(adr, res)
16375 res = DREGu16((Opcode >> 0) & 7);
16386 adr = AREG((Opcode >> 0) & 7);
16388 READ_WORD_F(adr, res)
16400 adr = AREG((Opcode >> 0) & 7);
16401 AREG((Opcode >> 0) & 7) += 2;
16403 READ_WORD_F(adr, res)
16415 adr = AREG((Opcode >> 0) & 7) - 2;
16416 AREG((Opcode >> 0) & 7) = adr;
16418 READ_WORD_F(adr, res)
16431 adr += AREG((Opcode >> 0) & 7);
16433 READ_WORD_F(adr, res)
16445 adr = AREG((Opcode >> 0) & 7);
16448 READ_WORD_F(adr, res)
16462 READ_WORD_F(adr, res)
16476 READ_WORD_F(adr, res)
16488 adr = GET_SWORD + GET_PC;
16491 READ_WORD_F(adr, res)
16506 READ_WORD_F(adr, res)
16532 READ_WORD_F(adr, res)
16547 READ_WORD_F(adr, res)
16561 res = DREGu16((Opcode >> 0) & 7);
16569 CHECK_INT_TO_JUMP(12)
16573 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16587 adr = AREG((Opcode >> 0) & 7);
16589 READ_WORD_F(adr, res)
16598 CHECK_INT_TO_JUMP(16)
16602 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16616 adr = AREG((Opcode >> 0) & 7);
16617 AREG((Opcode >> 0) & 7) += 2;
16619 READ_WORD_F(adr, res)
16628 CHECK_INT_TO_JUMP(16)
16632 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16646 adr = AREG((Opcode >> 0) & 7) - 2;
16647 AREG((Opcode >> 0) & 7) = adr;
16649 READ_WORD_F(adr, res)
16658 CHECK_INT_TO_JUMP(18)
16662 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16677 adr += AREG((Opcode >> 0) & 7);
16679 READ_WORD_F(adr, res)
16688 CHECK_INT_TO_JUMP(20)
16692 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16706 adr = AREG((Opcode >> 0) & 7);
16709 READ_WORD_F(adr, res)
16718 CHECK_INT_TO_JUMP(22)
16722 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16739 READ_WORD_F(adr, res)
16748 CHECK_INT_TO_JUMP(20)
16752 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16768 READ_WORD_F(adr, res)
16777 CHECK_INT_TO_JUMP(24)
16781 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16795 adr = GET_SWORD + GET_PC;
16798 READ_WORD_F(adr, res)
16807 CHECK_INT_TO_JUMP(20)
16811 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16828 READ_WORD_F(adr, res)
16837 CHECK_INT_TO_JUMP(22)
16841 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16863 CHECK_INT_TO_JUMP(16)
16867 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16884 READ_WORD_F(adr, res)
16893 CHECK_INT_TO_JUMP(16)
16897 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16914 READ_WORD_F(adr, res)
16923 CHECK_INT_TO_JUMP(18)
16927 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16939 dst = DREGu8((Opcode >> 0) & 7);
16940 res = -dst - ((flag_X >> M68K_SR_X_SFT) & 1);
16945 if (((res|dst) & 0x0f) == 0) res = (res & 0xf0) + 6;
16946 res = (res + 0x9a) & 0xFF;
16947 DREGu8((Opcode >> 0) & 7) = res;
16950 flag_X = flag_C = M68K_SR_C;
16952 else flag_V = flag_X = flag_C = 0;
16963 adr = AREG((Opcode >> 0) & 7);
16965 READ_BYTE_F(adr, dst)
16966 res = -dst - ((flag_X >> M68K_SR_X_SFT) & 1);
16971 if (((res|dst) & 0x0f) == 0) res = (res & 0xf0) + 6;
16972 res = (res + 0x9a) & 0xFF;
16973 WRITE_BYTE_F(adr, res)
16976 flag_X = flag_C = M68K_SR_C;
16978 else flag_V = flag_X = flag_C = 0;
16990 adr = AREG((Opcode >> 0) & 7);
16991 AREG((Opcode >> 0) & 7) += 1;
16993 READ_BYTE_F(adr, dst)
16994 res = -dst - ((flag_X >> M68K_SR_X_SFT) & 1);
16999 if (((res|dst) & 0x0f) == 0) res = (res & 0xf0) + 6;
17000 res = (res + 0x9a) & 0xFF;
17001 WRITE_BYTE_F(adr, res)
17004 flag_X = flag_C = M68K_SR_C;
17006 else flag_V = flag_X = flag_C = 0;
17018 adr = AREG((Opcode >> 0) & 7) - 1;
17019 AREG((Opcode >> 0) & 7) = adr;
17021 READ_BYTE_F(adr, dst)
17022 res = -dst - ((flag_X >> M68K_SR_X_SFT) & 1);
17027 if (((res|dst) & 0x0f) == 0) res = (res & 0xf0) + 6;
17028 res = (res + 0x9a) & 0xFF;
17029 WRITE_BYTE_F(adr, res)
17032 flag_X = flag_C = M68K_SR_C;
17034 else flag_V = flag_X = flag_C = 0;
17047 adr += AREG((Opcode >> 0) & 7);
17049 READ_BYTE_F(adr, dst)
17050 res = -dst - ((flag_X >> M68K_SR_X_SFT) & 1);
17055 if (((res|dst) & 0x0f) == 0) res = (res & 0xf0) + 6;
17056 res = (res + 0x9a) & 0xFF;
17057 WRITE_BYTE_F(adr, res)
17060 flag_X = flag_C = M68K_SR_C;
17062 else flag_V = flag_X = flag_C = 0;
17074 adr = AREG((Opcode >> 0) & 7);
17077 READ_BYTE_F(adr, dst)
17078 res = -dst - ((flag_X >> M68K_SR_X_SFT) & 1);
17083 if (((res|dst) & 0x0f) == 0) res = (res & 0xf0) + 6;
17084 res = (res + 0x9a) & 0xFF;
17085 WRITE_BYTE_F(adr, res)
17088 flag_X = flag_C = M68K_SR_C;
17090 else flag_V = flag_X = flag_C = 0;
17104 READ_BYTE_F(adr, dst)
17105 res = -dst - ((flag_X >> M68K_SR_X_SFT) & 1);
17110 if (((res|dst) & 0x0f) == 0) res = (res & 0xf0) + 6;
17111 res = (res + 0x9a) & 0xFF;
17112 WRITE_BYTE_F(adr, res)
17115 flag_X = flag_C = M68K_SR_C;
17117 else flag_V = flag_X = flag_C = 0;
17131 READ_BYTE_F(adr, dst)
17132 res = -dst - ((flag_X >> M68K_SR_X_SFT) & 1);
17137 if (((res|dst) & 0x0f) == 0) res = (res & 0xf0) + 6;
17138 res = (res + 0x9a) & 0xFF;
17139 WRITE_BYTE_F(adr, res)
17142 flag_X = flag_C = M68K_SR_C;
17144 else flag_V = flag_X = flag_C = 0;
17159 READ_BYTE_F(adr, dst)
17160 res = -dst - ((flag_X >> M68K_SR_X_SFT) & 1);
17165 if (((res|dst) & 0x0f) == 0) res = (res & 0xf0) + 6;
17166 res = (res + 0x9a) & 0xFF;
17167 WRITE_BYTE_F(adr, res)
17170 flag_X = flag_C = M68K_SR_C;
17172 else flag_V = flag_X = flag_C = 0;
17187 READ_BYTE_F(adr, dst)
17188 res = -dst - ((flag_X >> M68K_SR_X_SFT) & 1);
17193 if (((res|dst) & 0x0f) == 0) res = (res & 0xf0) + 6;
17194 res = (res + 0x9a) & 0xFF;
17195 WRITE_BYTE_F(adr, res)
17198 flag_X = flag_C = M68K_SR_C;
17200 else flag_V = flag_X = flag_C = 0;
17212 adr = AREG((Opcode >> 0) & 7);
17226 adr += AREG((Opcode >> 0) & 7);
17239 adr = AREG((Opcode >> 0) & 7);
17279 adr = GET_SWORD + GET_PC;
17307 res = DREGu32((Opcode >> 0) & 7);
17308 res = (res >> 16) | (res << 16);
17312 flag_N = res >> 24;
17313 DREGu32((Opcode >> 0) & 7) = res;
17326 adr = AREG((Opcode >> 0) & 7);
17327 psrc = &DREGu32(0);
17334 WRITE_WORD_F(adr, *psrc)
17338 } while (res >>= 1);
17340 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17341 #ifdef USE_CYCLONE_TIMING
17357 adr = AREG((Opcode >> 0) & 7);
17358 psrc = &AREGu32(7);
17366 WRITE_WORD_F(adr, *psrc)
17369 } while (res >>= 1);
17370 AREG((Opcode >> 0) & 7) = adr;
17372 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17386 adr += AREG((Opcode >> 0) & 7);
17387 psrc = &DREGu32(0);
17394 WRITE_WORD_F(adr, *psrc)
17398 } while (res >>= 1);
17400 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17401 #ifdef USE_CYCLONE_TIMING
17417 adr = AREG((Opcode >> 0) & 7);
17419 psrc = &DREGu32(0);
17426 WRITE_WORD_F(adr, *psrc)
17430 } while (res >>= 1);
17432 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17433 #ifdef USE_CYCLONE_TIMING
17450 psrc = &DREGu32(0);
17457 WRITE_WORD_F(adr, *psrc)
17461 } while (res >>= 1);
17463 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17464 #ifdef USE_CYCLONE_TIMING
17481 psrc = &DREGu32(0);
17488 WRITE_WORD_F(adr, *psrc)
17492 } while (res >>= 1);
17494 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17495 #ifdef USE_CYCLONE_TIMING
17512 psrc = &AREGu32(7);
17520 WRITE_WORD_F(adr, *psrc)
17523 } while (res >>= 1);
17526 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17539 adr = AREG((Opcode >> 0) & 7);
17540 psrc = &DREGu32(0);
17547 WRITE_LONG_F(adr, *psrc)
17551 } while (res >>= 1);
17553 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17554 #ifdef USE_CYCLONE_TIMING
17570 adr = AREG((Opcode >> 0) & 7);
17571 psrc = &AREGu32(7);
17579 WRITE_LONG_DEC_F(adr, *psrc)
17582 } while (res >>= 1);
17583 AREG((Opcode >> 0) & 7) = adr;
17585 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17599 adr += AREG((Opcode >> 0) & 7);
17600 psrc = &DREGu32(0);
17607 WRITE_LONG_F(adr, *psrc)
17611 } while (res >>= 1);
17613 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17614 #ifdef USE_CYCLONE_TIMING
17630 adr = AREG((Opcode >> 0) & 7);
17632 psrc = &DREGu32(0);
17639 WRITE_LONG_F(adr, *psrc)
17643 } while (res >>= 1);
17645 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17646 #ifdef USE_CYCLONE_TIMING
17663 psrc = &DREGu32(0);
17670 WRITE_LONG_F(adr, *psrc)
17674 } while (res >>= 1);
17676 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17677 #ifdef USE_CYCLONE_TIMING
17694 psrc = &DREGu32(0);
17701 WRITE_LONG_F(adr, *psrc)
17705 } while (res >>= 1);
17707 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17708 #ifdef USE_CYCLONE_TIMING
17725 psrc = &AREGu32(7);
17733 WRITE_LONG_DEC_F(adr, *psrc)
17736 } while (res >>= 1);
17739 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17749 res = (s32)DREGs8((Opcode >> 0) & 7);
17754 DREGu16((Opcode >> 0) & 7) = res;
17764 res = (s32)DREGs16((Opcode >> 0) & 7);
17769 DREGu32((Opcode >> 0) & 7) = res;
17779 res = DREGu8((Opcode >> 0) & 7);
17793 adr = AREG((Opcode >> 0) & 7);
17795 READ_BYTE_F(adr, res)
17810 adr = AREG((Opcode >> 0) & 7);
17811 AREG((Opcode >> 0) & 7) += 1;
17813 READ_BYTE_F(adr, res)
17828 adr = AREG((Opcode >> 0) & 7) - 1;
17829 AREG((Opcode >> 0) & 7) = adr;
17831 READ_BYTE_F(adr, res)
17847 adr += AREG((Opcode >> 0) & 7);
17849 READ_BYTE_F(adr, res)
17864 adr = AREG((Opcode >> 0) & 7);
17867 READ_BYTE_F(adr, res)
17884 READ_BYTE_F(adr, res)
17901 READ_BYTE_F(adr, res)
17919 READ_BYTE_F(adr, res)
17937 READ_BYTE_F(adr, res)
17952 res = DREGu16((Opcode >> 0) & 7);
17966 adr = AREG((Opcode >> 0) & 7);
17968 READ_WORD_F(adr, res)
17983 adr = AREG((Opcode >> 0) & 7);
17984 AREG((Opcode >> 0) & 7) += 2;
17986 READ_WORD_F(adr, res)
18001 adr = AREG((Opcode >> 0) & 7) - 2;
18002 AREG((Opcode >> 0) & 7) = adr;
18004 READ_WORD_F(adr, res)
18020 adr += AREG((Opcode >> 0) & 7);
18022 READ_WORD_F(adr, res)
18037 adr = AREG((Opcode >> 0) & 7);
18040 READ_WORD_F(adr, res)
18057 READ_WORD_F(adr, res)
18074 READ_WORD_F(adr, res)
18092 READ_WORD_F(adr, res)
18110 READ_WORD_F(adr, res)
18125 res = DREGu32((Opcode >> 0) & 7);
18129 flag_N = res >> 24;
18139 adr = AREG((Opcode >> 0) & 7);
18141 READ_LONG_F(adr, res)
18145 flag_N = res >> 24;
18156 adr = AREG((Opcode >> 0) & 7);
18157 AREG((Opcode >> 0) & 7) += 4;
18159 READ_LONG_F(adr, res)
18163 flag_N = res >> 24;
18174 adr = AREG((Opcode >> 0) & 7) - 4;
18175 AREG((Opcode >> 0) & 7) = adr;
18177 READ_LONG_F(adr, res)
18181 flag_N = res >> 24;
18193 adr += AREG((Opcode >> 0) & 7);
18195 READ_LONG_F(adr, res)
18199 flag_N = res >> 24;
18210 adr = AREG((Opcode >> 0) & 7);
18213 READ_LONG_F(adr, res)
18217 flag_N = res >> 24;
18230 READ_LONG_F(adr, res)
18234 flag_N = res >> 24;
18247 READ_LONG_F(adr, res)
18251 flag_N = res >> 24;
18265 READ_LONG_F(adr, res)
18269 flag_N = res >> 24;
18283 READ_LONG_F(adr, res)
18287 flag_N = res >> 24;
18298 res = DREGu8((Opcode >> 0) & 7);
18304 DREGu8((Opcode >> 0) & 7) = res;
18314 adr = AREG((Opcode >> 0) & 7);
18316 READ_BYTE_F(adr, res)
18321 #ifdef PICODRIVE_HACK
18322 if (g_m68kcontext == &PicoCpuFS68k) {
18324 WRITE_BYTE_F(adr, res);
18329 #ifdef USE_CYCLONE_TIMING
18342 adr = AREG((Opcode >> 0) & 7);
18343 AREG((Opcode >> 0) & 7) += 1;
18345 READ_BYTE_F(adr, res)
18351 #ifdef PICODRIVE_HACK
18352 if (g_m68kcontext == &PicoCpuFS68k) {
18354 WRITE_BYTE_F(adr, res);
18359 #ifdef USE_CYCLONE_TIMING
18372 adr = AREG((Opcode >> 0) & 7) - 1;
18373 AREG((Opcode >> 0) & 7) = adr;
18375 READ_BYTE_F(adr, res)
18381 #ifdef PICODRIVE_HACK
18382 if (g_m68kcontext == &PicoCpuFS68k) {
18384 WRITE_BYTE_F(adr, res);
18389 #ifdef USE_CYCLONE_TIMING
18403 adr += AREG((Opcode >> 0) & 7);
18405 READ_BYTE_F(adr, res)
18411 #ifdef PICODRIVE_HACK
18412 if (g_m68kcontext == &PicoCpuFS68k) {
18414 WRITE_BYTE_F(adr, res);
18419 #ifdef USE_CYCLONE_TIMING
18432 adr = AREG((Opcode >> 0) & 7);
18435 READ_BYTE_F(adr, res)
18441 #ifdef PICODRIVE_HACK
18442 if (g_m68kcontext == &PicoCpuFS68k) {
18444 WRITE_BYTE_F(adr, res);
18449 #ifdef USE_CYCLONE_TIMING
18464 READ_BYTE_F(adr, res)
18470 #ifdef PICODRIVE_HACK
18471 if (g_m68kcontext == &PicoCpuFS68k) {
18473 WRITE_BYTE_F(adr, res);
18478 #ifdef USE_CYCLONE_TIMING
18493 READ_BYTE_F(adr, res)
18499 #ifdef PICODRIVE_HACK
18500 if (g_m68kcontext == &PicoCpuFS68k) {
18502 WRITE_BYTE_F(adr, res);
18507 #ifdef USE_CYCLONE_TIMING
18523 READ_BYTE_F(adr, res)
18529 #ifdef PICODRIVE_HACK
18530 if (g_m68kcontext == &PicoCpuFS68k) {
18532 WRITE_BYTE_F(adr, res);
18537 #ifdef USE_CYCLONE_TIMING
18553 READ_BYTE_F(adr, res)
18559 #ifdef PICODRIVE_HACK
18560 if (g_m68kcontext == &PicoCpuFS68k) {
18562 WRITE_BYTE_F(adr, res);
18567 #ifdef USE_CYCLONE_TIMING
18577 SET_PC(execute_exception(M68K_ILLEGAL_INSTRUCTION_EX, GET_PC-2, GET_SR));
18581 // ILLEGAL A000-AFFF
18584 SET_PC(execute_exception(M68K_1010_EX, GET_PC-2, GET_SR));
18588 // ILLEGAL F000-FFFF
18591 SET_PC(execute_exception(M68K_1111_EX, GET_PC-2, GET_SR));
18592 RET(0) // 4 already taken by exc. handler
18604 adr = AREG((Opcode >> 0) & 7);
18605 psrc = &DREGs32(0);
18612 READSX_WORD_F(adr, *psrc)
18616 } while (res >>= 1);
18618 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18619 #ifdef USE_CYCLONE_TIMING
18635 adr = AREG((Opcode >> 0) & 7);
18636 psrc = &DREGs32(0);
18643 READSX_WORD_F(adr, *psrc)
18647 } while (res >>= 1);
18648 AREG((Opcode >> 0) & 7) = adr;
18650 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18664 adr += AREG((Opcode >> 0) & 7);
18665 psrc = &DREGs32(0);
18672 READSX_WORD_F(adr, *psrc)
18676 } while (res >>= 1);
18678 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18679 #ifdef USE_CYCLONE_TIMING
18695 adr = AREG((Opcode >> 0) & 7);
18697 psrc = &DREGs32(0);
18704 READSX_WORD_F(adr, *psrc)
18708 } while (res >>= 1);
18710 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18711 #ifdef USE_CYCLONE_TIMING
18728 psrc = &DREGs32(0);
18735 READSX_WORD_F(adr, *psrc)
18739 } while (res >>= 1);
18741 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18742 #ifdef USE_CYCLONE_TIMING
18759 psrc = &DREGs32(0);
18766 READSX_WORD_F(adr, *psrc)
18770 } while (res >>= 1);
18772 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18773 #ifdef USE_CYCLONE_TIMING
18789 adr = GET_SWORD + GET_PC;
18791 psrc = &DREGs32(0);
18798 READSX_WORD_F(adr, *psrc)
18802 } while (res >>= 1);
18804 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18805 #ifdef USE_CYCLONE_TIMING
18823 psrc = &DREGs32(0);
18830 READSX_WORD_F(adr, *psrc)
18834 } while (res >>= 1);
18836 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18837 #ifdef USE_CYCLONE_TIMING
18854 psrc = &DREGs32(0);
18861 READSX_WORD_F(adr, *psrc)
18865 } while (res >>= 1);
18868 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18881 adr = AREG((Opcode >> 0) & 7);
18882 psrc = &DREGu32(0);
18889 READ_LONG_F(adr, *psrc)
18893 } while (res >>= 1);
18895 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18896 #ifdef USE_CYCLONE_TIMING
18912 adr = AREG((Opcode >> 0) & 7);
18913 psrc = &DREGu32(0);
18920 READ_LONG_F(adr, *psrc)
18924 } while (res >>= 1);
18925 AREG((Opcode >> 0) & 7) = adr;
18927 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18941 adr += AREG((Opcode >> 0) & 7);
18942 psrc = &DREGu32(0);
18949 READ_LONG_F(adr, *psrc)
18953 } while (res >>= 1);
18955 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18956 #ifdef USE_CYCLONE_TIMING
18972 adr = AREG((Opcode >> 0) & 7);
18974 psrc = &DREGu32(0);
18981 READ_LONG_F(adr, *psrc)
18985 } while (res >>= 1);
18987 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18988 #ifdef USE_CYCLONE_TIMING
19005 psrc = &DREGu32(0);
19012 READ_LONG_F(adr, *psrc)
19016 } while (res >>= 1);
19018 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
19019 #ifdef USE_CYCLONE_TIMING
19036 psrc = &DREGu32(0);
19043 READ_LONG_F(adr, *psrc)
19047 } while (res >>= 1);
19049 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
19050 #ifdef USE_CYCLONE_TIMING
19066 adr = GET_SWORD + GET_PC;
19068 psrc = &DREGu32(0);
19075 READ_LONG_F(adr, *psrc)
19079 } while (res >>= 1);
19081 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
19082 #ifdef USE_CYCLONE_TIMING
19100 psrc = &DREGu32(0);
19107 READ_LONG_F(adr, *psrc)
19111 } while (res >>= 1);
19113 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
19114 #ifdef USE_CYCLONE_TIMING
19131 psrc = &DREGu32(0);
19138 READ_LONG_F(adr, *psrc)
19142 } while (res >>= 1);
19145 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
19152 SET_PC(execute_exception(M68K_TRAP_BASE_EX + (Opcode & 0xF), GET_PC, GET_SR));
19162 res = AREGu32((Opcode >> 0) & 7);
19166 AREG((Opcode >> 0) & 7) = res;
19181 WRITE_LONG_DEC_F(AREG(7), AREG(7))
19194 src = AREGu32((Opcode >> 0) & 7);
19197 READ_LONG_F(src, res)
19198 AREG((Opcode >> 0) & 7) = res;
19210 READ_LONG_F(AREG(7), AREG(7))
19223 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19226 res = AREGu32((Opcode >> 0) & 7);
19239 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19243 AREG((Opcode >> 0) & 7) = res;
19255 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19259 if (m68kcontext.reset_handler) m68kcontext.reset_handler();
19260 // CPU->Reset_CallBack();
19279 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19283 res &= M68K_SR_MASK;
19291 m68kcontext.execinfo |= FM68K_HALTED;
19303 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19318 m68kcontext.execinfo &= ~(FM68K_EMULATE_GROUP_0|FM68K_EMULATE_TRACE|FM68K_DO_TRACE);
19319 CHECK_INT_TO_JUMP(20)
19332 CHECK_BRANCH_EXCEPTION(res)
19341 SET_PC(execute_exception(M68K_TRAPV_EX, GET_PC, GET_SR));
19356 CHECK_BRANCH_EXCEPTION(res)
19367 adr = AREG((Opcode >> 0) & 7);
19376 CHECK_BRANCH_EXCEPTION(adr)
19388 adr += AREG((Opcode >> 0) & 7);
19397 CHECK_BRANCH_EXCEPTION(adr)
19408 adr = AREG((Opcode >> 0) & 7);
19418 CHECK_BRANCH_EXCEPTION(adr)
19438 CHECK_BRANCH_EXCEPTION(adr)
19458 CHECK_BRANCH_EXCEPTION(adr)
19469 adr = GET_SWORD + GET_PC;
19479 CHECK_BRANCH_EXCEPTION(adr)
19500 CHECK_BRANCH_EXCEPTION(adr)
19511 adr = AREG((Opcode >> 0) & 7);
19513 CHECK_BRANCH_EXCEPTION(adr)
19524 adr += AREG((Opcode >> 0) & 7);
19526 CHECK_BRANCH_EXCEPTION(adr)
19536 adr = AREG((Opcode >> 0) & 7);
19539 CHECK_BRANCH_EXCEPTION(adr)
19551 CHECK_BRANCH_EXCEPTION(adr)
19563 CHECK_BRANCH_EXCEPTION(adr)
19573 adr = GET_SWORD + GET_PC;
19576 CHECK_BRANCH_EXCEPTION(adr)
19589 CHECK_BRANCH_EXCEPTION(adr)
19598 src = DREGs16((Opcode >> 0) & 7);
19599 res = DREGs16((Opcode >> 9) & 7);
19600 if ((res < 0) || (res > src))
19603 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19614 adr = AREG((Opcode >> 0) & 7);
19616 READSX_WORD_F(adr, src)
19617 res = DREGs16((Opcode >> 9) & 7);
19618 if ((res < 0) || (res > src))
19621 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19633 adr = AREG((Opcode >> 0) & 7);
19634 AREG((Opcode >> 0) & 7) += 2;
19636 READSX_WORD_F(adr, src)
19637 res = DREGs16((Opcode >> 9) & 7);
19638 if ((res < 0) || (res > src))
19641 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19653 adr = AREG((Opcode >> 0) & 7) - 2;
19654 AREG((Opcode >> 0) & 7) = adr;
19656 READSX_WORD_F(adr, src)
19657 res = DREGs16((Opcode >> 9) & 7);
19658 if ((res < 0) || (res > src))
19661 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19674 adr += AREG((Opcode >> 0) & 7);
19676 READSX_WORD_F(adr, src)
19677 res = DREGs16((Opcode >> 9) & 7);
19678 if ((res < 0) || (res > src))
19681 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19693 adr = AREG((Opcode >> 0) & 7);
19696 READSX_WORD_F(adr, src)
19697 res = DREGs16((Opcode >> 9) & 7);
19698 if ((res < 0) || (res > src))
19701 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19715 READSX_WORD_F(adr, src)
19716 res = DREGs16((Opcode >> 9) & 7);
19717 if ((res < 0) || (res > src))
19720 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19734 READSX_WORD_F(adr, src)
19735 res = DREGs16((Opcode >> 9) & 7);
19736 if ((res < 0) || (res > src))
19739 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19751 adr = GET_SWORD + GET_PC;
19754 READSX_WORD_F(adr, src)
19755 res = DREGs16((Opcode >> 9) & 7);
19756 if ((res < 0) || (res > src))
19759 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19774 READSX_WORD_F(adr, src)
19775 res = DREGs16((Opcode >> 9) & 7);
19776 if ((res < 0) || (res > src))
19779 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19792 res = DREGs16((Opcode >> 9) & 7);
19793 if ((res < 0) || (res > src))
19796 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19811 READSX_WORD_F(adr, src)
19812 res = DREGs16((Opcode >> 9) & 7);
19813 if ((res < 0) || (res > src))
19816 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19831 READSX_WORD_F(adr, src)
19832 res = DREGs16((Opcode >> 9) & 7);
19833 if ((res < 0) || (res > src))
19836 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19848 adr = AREG((Opcode >> 0) & 7);
19850 AREG((Opcode >> 9) & 7) = res;
19861 adr += AREG((Opcode >> 0) & 7);
19863 AREG((Opcode >> 9) & 7) = res;
19873 adr = AREG((Opcode >> 0) & 7);
19876 AREG((Opcode >> 9) & 7) = res;
19888 AREG((Opcode >> 9) & 7) = res;
19900 AREG((Opcode >> 9) & 7) = res;
19910 adr = GET_SWORD + GET_PC;
19913 AREG((Opcode >> 9) & 7) = res;
19926 AREG((Opcode >> 9) & 7) = res;
19937 DREGu8((Opcode >> 0) & 7) = res;
19948 DREGu8((Opcode >> 0) & 7) = res;
19958 if (flag_NotZ && (!(flag_C & 0x100)))
19961 DREGu8((Opcode >> 0) & 7) = res;
19965 DREGu8((Opcode >> 0) & 7) = res;
19975 if ((!flag_NotZ) || (flag_C & 0x100))
19978 DREGu8((Opcode >> 0) & 7) = res;
19982 DREGu8((Opcode >> 0) & 7) = res;
19992 if (!(flag_C & 0x100))
19995 DREGu8((Opcode >> 0) & 7) = res;
19999 DREGu8((Opcode >> 0) & 7) = res;
20009 if (flag_C & 0x100)
20012 DREGu8((Opcode >> 0) & 7) = res;
20016 DREGu8((Opcode >> 0) & 7) = res;
20029 DREGu8((Opcode >> 0) & 7) = res;
20033 DREGu8((Opcode >> 0) & 7) = res;
20046 DREGu8((Opcode >> 0) & 7) = res;
20050 DREGu8((Opcode >> 0) & 7) = res;
20060 if (!(flag_V & 0x80))
20063 DREGu8((Opcode >> 0) & 7) = res;
20067 DREGu8((Opcode >> 0) & 7) = res;
20080 DREGu8((Opcode >> 0) & 7) = res;
20084 DREGu8((Opcode >> 0) & 7) = res;
20094 if (!(flag_N & 0x80))
20097 DREGu8((Opcode >> 0) & 7) = res;
20101 DREGu8((Opcode >> 0) & 7) = res;
20114 DREGu8((Opcode >> 0) & 7) = res;
20118 DREGu8((Opcode >> 0) & 7) = res;
20128 if (!((flag_N ^ flag_V) & 0x80))
20131 DREGu8((Opcode >> 0) & 7) = res;
20135 DREGu8((Opcode >> 0) & 7) = res;
20145 if ((flag_N ^ flag_V) & 0x80)
20148 DREGu8((Opcode >> 0) & 7) = res;
20152 DREGu8((Opcode >> 0) & 7) = res;
20162 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20165 DREGu8((Opcode >> 0) & 7) = res;
20169 DREGu8((Opcode >> 0) & 7) = res;
20179 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20182 DREGu8((Opcode >> 0) & 7) = res;
20186 DREGu8((Opcode >> 0) & 7) = res;
20196 adr = AREG((Opcode >> 0) & 7);
20199 WRITE_BYTE_F(adr, res)
20210 adr = AREG((Opcode >> 0) & 7);
20213 WRITE_BYTE_F(adr, res)
20224 adr = AREG((Opcode >> 0) & 7);
20225 if (flag_NotZ && (!(flag_C & 0x100)))
20229 WRITE_BYTE_F(adr, res)
20235 WRITE_BYTE_F(adr, res)
20246 adr = AREG((Opcode >> 0) & 7);
20247 if ((!flag_NotZ) || (flag_C & 0x100))
20251 WRITE_BYTE_F(adr, res)
20257 WRITE_BYTE_F(adr, res)
20268 adr = AREG((Opcode >> 0) & 7);
20269 if (!(flag_C & 0x100))
20273 WRITE_BYTE_F(adr, res)
20279 WRITE_BYTE_F(adr, res)
20290 adr = AREG((Opcode >> 0) & 7);
20291 if (flag_C & 0x100)
20295 WRITE_BYTE_F(adr, res)
20301 WRITE_BYTE_F(adr, res)
20312 adr = AREG((Opcode >> 0) & 7);
20317 WRITE_BYTE_F(adr, res)
20323 WRITE_BYTE_F(adr, res)
20334 adr = AREG((Opcode >> 0) & 7);
20339 WRITE_BYTE_F(adr, res)
20345 WRITE_BYTE_F(adr, res)
20356 adr = AREG((Opcode >> 0) & 7);
20357 if (!(flag_V & 0x80))
20361 WRITE_BYTE_F(adr, res)
20367 WRITE_BYTE_F(adr, res)
20378 adr = AREG((Opcode >> 0) & 7);
20383 WRITE_BYTE_F(adr, res)
20389 WRITE_BYTE_F(adr, res)
20400 adr = AREG((Opcode >> 0) & 7);
20401 if (!(flag_N & 0x80))
20405 WRITE_BYTE_F(adr, res)
20411 WRITE_BYTE_F(adr, res)
20422 adr = AREG((Opcode >> 0) & 7);
20427 WRITE_BYTE_F(adr, res)
20433 WRITE_BYTE_F(adr, res)
20444 adr = AREG((Opcode >> 0) & 7);
20445 if (!((flag_N ^ flag_V) & 0x80))
20449 WRITE_BYTE_F(adr, res)
20455 WRITE_BYTE_F(adr, res)
20466 adr = AREG((Opcode >> 0) & 7);
20467 if ((flag_N ^ flag_V) & 0x80)
20471 WRITE_BYTE_F(adr, res)
20477 WRITE_BYTE_F(adr, res)
20488 adr = AREG((Opcode >> 0) & 7);
20489 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20493 WRITE_BYTE_F(adr, res)
20499 WRITE_BYTE_F(adr, res)
20510 adr = AREG((Opcode >> 0) & 7);
20511 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20515 WRITE_BYTE_F(adr, res)
20521 WRITE_BYTE_F(adr, res)
20532 adr = AREG((Opcode >> 0) & 7);
20533 AREG((Opcode >> 0) & 7) += 1;
20536 WRITE_BYTE_F(adr, res)
20547 adr = AREG((Opcode >> 0) & 7);
20548 AREG((Opcode >> 0) & 7) += 1;
20551 WRITE_BYTE_F(adr, res)
20562 adr = AREG((Opcode >> 0) & 7);
20563 AREG((Opcode >> 0) & 7) += 1;
20564 if (flag_NotZ && (!(flag_C & 0x100)))
20568 WRITE_BYTE_F(adr, res)
20574 WRITE_BYTE_F(adr, res)
20585 adr = AREG((Opcode >> 0) & 7);
20586 AREG((Opcode >> 0) & 7) += 1;
20587 if ((!flag_NotZ) || (flag_C & 0x100))
20591 WRITE_BYTE_F(adr, res)
20597 WRITE_BYTE_F(adr, res)
20608 adr = AREG((Opcode >> 0) & 7);
20609 AREG((Opcode >> 0) & 7) += 1;
20610 if (!(flag_C & 0x100))
20614 WRITE_BYTE_F(adr, res)
20620 WRITE_BYTE_F(adr, res)
20631 adr = AREG((Opcode >> 0) & 7);
20632 AREG((Opcode >> 0) & 7) += 1;
20633 if (flag_C & 0x100)
20637 WRITE_BYTE_F(adr, res)
20643 WRITE_BYTE_F(adr, res)
20654 adr = AREG((Opcode >> 0) & 7);
20655 AREG((Opcode >> 0) & 7) += 1;
20660 WRITE_BYTE_F(adr, res)
20666 WRITE_BYTE_F(adr, res)
20677 adr = AREG((Opcode >> 0) & 7);
20678 AREG((Opcode >> 0) & 7) += 1;
20683 WRITE_BYTE_F(adr, res)
20689 WRITE_BYTE_F(adr, res)
20700 adr = AREG((Opcode >> 0) & 7);
20701 AREG((Opcode >> 0) & 7) += 1;
20702 if (!(flag_V & 0x80))
20706 WRITE_BYTE_F(adr, res)
20712 WRITE_BYTE_F(adr, res)
20723 adr = AREG((Opcode >> 0) & 7);
20724 AREG((Opcode >> 0) & 7) += 1;
20729 WRITE_BYTE_F(adr, res)
20735 WRITE_BYTE_F(adr, res)
20746 adr = AREG((Opcode >> 0) & 7);
20747 AREG((Opcode >> 0) & 7) += 1;
20748 if (!(flag_N & 0x80))
20752 WRITE_BYTE_F(adr, res)
20758 WRITE_BYTE_F(adr, res)
20769 adr = AREG((Opcode >> 0) & 7);
20770 AREG((Opcode >> 0) & 7) += 1;
20775 WRITE_BYTE_F(adr, res)
20781 WRITE_BYTE_F(adr, res)
20792 adr = AREG((Opcode >> 0) & 7);
20793 AREG((Opcode >> 0) & 7) += 1;
20794 if (!((flag_N ^ flag_V) & 0x80))
20798 WRITE_BYTE_F(adr, res)
20804 WRITE_BYTE_F(adr, res)
20815 adr = AREG((Opcode >> 0) & 7);
20816 AREG((Opcode >> 0) & 7) += 1;
20817 if ((flag_N ^ flag_V) & 0x80)
20821 WRITE_BYTE_F(adr, res)
20827 WRITE_BYTE_F(adr, res)
20838 adr = AREG((Opcode >> 0) & 7);
20839 AREG((Opcode >> 0) & 7) += 1;
20840 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20844 WRITE_BYTE_F(adr, res)
20850 WRITE_BYTE_F(adr, res)
20861 adr = AREG((Opcode >> 0) & 7);
20862 AREG((Opcode >> 0) & 7) += 1;
20863 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20867 WRITE_BYTE_F(adr, res)
20873 WRITE_BYTE_F(adr, res)
20884 adr = AREG((Opcode >> 0) & 7) - 1;
20885 AREG((Opcode >> 0) & 7) = adr;
20888 WRITE_BYTE_F(adr, res)
20899 adr = AREG((Opcode >> 0) & 7) - 1;
20900 AREG((Opcode >> 0) & 7) = adr;
20903 WRITE_BYTE_F(adr, res)
20914 adr = AREG((Opcode >> 0) & 7) - 1;
20915 AREG((Opcode >> 0) & 7) = adr;
20916 if (flag_NotZ && (!(flag_C & 0x100)))
20920 WRITE_BYTE_F(adr, res)
20926 WRITE_BYTE_F(adr, res)
20937 adr = AREG((Opcode >> 0) & 7) - 1;
20938 AREG((Opcode >> 0) & 7) = adr;
20939 if ((!flag_NotZ) || (flag_C & 0x100))
20943 WRITE_BYTE_F(adr, res)
20949 WRITE_BYTE_F(adr, res)
20960 adr = AREG((Opcode >> 0) & 7) - 1;
20961 AREG((Opcode >> 0) & 7) = adr;
20962 if (!(flag_C & 0x100))
20966 WRITE_BYTE_F(adr, res)
20972 WRITE_BYTE_F(adr, res)
20983 adr = AREG((Opcode >> 0) & 7) - 1;
20984 AREG((Opcode >> 0) & 7) = adr;
20985 if (flag_C & 0x100)
20989 WRITE_BYTE_F(adr, res)
20995 WRITE_BYTE_F(adr, res)
21006 adr = AREG((Opcode >> 0) & 7) - 1;
21007 AREG((Opcode >> 0) & 7) = adr;
21012 WRITE_BYTE_F(adr, res)
21018 WRITE_BYTE_F(adr, res)
21029 adr = AREG((Opcode >> 0) & 7) - 1;
21030 AREG((Opcode >> 0) & 7) = adr;
21035 WRITE_BYTE_F(adr, res)
21041 WRITE_BYTE_F(adr, res)
21052 adr = AREG((Opcode >> 0) & 7) - 1;
21053 AREG((Opcode >> 0) & 7) = adr;
21054 if (!(flag_V & 0x80))
21058 WRITE_BYTE_F(adr, res)
21064 WRITE_BYTE_F(adr, res)
21075 adr = AREG((Opcode >> 0) & 7) - 1;
21076 AREG((Opcode >> 0) & 7) = adr;
21081 WRITE_BYTE_F(adr, res)
21087 WRITE_BYTE_F(adr, res)
21098 adr = AREG((Opcode >> 0) & 7) - 1;
21099 AREG((Opcode >> 0) & 7) = adr;
21100 if (!(flag_N & 0x80))
21104 WRITE_BYTE_F(adr, res)
21110 WRITE_BYTE_F(adr, res)
21121 adr = AREG((Opcode >> 0) & 7) - 1;
21122 AREG((Opcode >> 0) & 7) = adr;
21127 WRITE_BYTE_F(adr, res)
21133 WRITE_BYTE_F(adr, res)
21144 adr = AREG((Opcode >> 0) & 7) - 1;
21145 AREG((Opcode >> 0) & 7) = adr;
21146 if (!((flag_N ^ flag_V) & 0x80))
21150 WRITE_BYTE_F(adr, res)
21156 WRITE_BYTE_F(adr, res)
21167 adr = AREG((Opcode >> 0) & 7) - 1;
21168 AREG((Opcode >> 0) & 7) = adr;
21169 if ((flag_N ^ flag_V) & 0x80)
21173 WRITE_BYTE_F(adr, res)
21179 WRITE_BYTE_F(adr, res)
21190 adr = AREG((Opcode >> 0) & 7) - 1;
21191 AREG((Opcode >> 0) & 7) = adr;
21192 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21196 WRITE_BYTE_F(adr, res)
21202 WRITE_BYTE_F(adr, res)
21213 adr = AREG((Opcode >> 0) & 7) - 1;
21214 AREG((Opcode >> 0) & 7) = adr;
21215 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21219 WRITE_BYTE_F(adr, res)
21225 WRITE_BYTE_F(adr, res)
21237 adr += AREG((Opcode >> 0) & 7);
21240 WRITE_BYTE_F(adr, res)
21252 adr += AREG((Opcode >> 0) & 7);
21255 WRITE_BYTE_F(adr, res)
21267 adr += AREG((Opcode >> 0) & 7);
21268 if (flag_NotZ && (!(flag_C & 0x100)))
21272 WRITE_BYTE_F(adr, res)
21278 WRITE_BYTE_F(adr, res)
21290 adr += AREG((Opcode >> 0) & 7);
21291 if ((!flag_NotZ) || (flag_C & 0x100))
21295 WRITE_BYTE_F(adr, res)
21301 WRITE_BYTE_F(adr, res)
21313 adr += AREG((Opcode >> 0) & 7);
21314 if (!(flag_C & 0x100))
21318 WRITE_BYTE_F(adr, res)
21324 WRITE_BYTE_F(adr, res)
21336 adr += AREG((Opcode >> 0) & 7);
21337 if (flag_C & 0x100)
21341 WRITE_BYTE_F(adr, res)
21347 WRITE_BYTE_F(adr, res)
21359 adr += AREG((Opcode >> 0) & 7);
21364 WRITE_BYTE_F(adr, res)
21370 WRITE_BYTE_F(adr, res)
21382 adr += AREG((Opcode >> 0) & 7);
21387 WRITE_BYTE_F(adr, res)
21393 WRITE_BYTE_F(adr, res)
21405 adr += AREG((Opcode >> 0) & 7);
21406 if (!(flag_V & 0x80))
21410 WRITE_BYTE_F(adr, res)
21416 WRITE_BYTE_F(adr, res)
21428 adr += AREG((Opcode >> 0) & 7);
21433 WRITE_BYTE_F(adr, res)
21439 WRITE_BYTE_F(adr, res)
21451 adr += AREG((Opcode >> 0) & 7);
21452 if (!(flag_N & 0x80))
21456 WRITE_BYTE_F(adr, res)
21462 WRITE_BYTE_F(adr, res)
21474 adr += AREG((Opcode >> 0) & 7);
21479 WRITE_BYTE_F(adr, res)
21485 WRITE_BYTE_F(adr, res)
21497 adr += AREG((Opcode >> 0) & 7);
21498 if (!((flag_N ^ flag_V) & 0x80))
21502 WRITE_BYTE_F(adr, res)
21508 WRITE_BYTE_F(adr, res)
21520 adr += AREG((Opcode >> 0) & 7);
21521 if ((flag_N ^ flag_V) & 0x80)
21525 WRITE_BYTE_F(adr, res)
21531 WRITE_BYTE_F(adr, res)
21543 adr += AREG((Opcode >> 0) & 7);
21544 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21548 WRITE_BYTE_F(adr, res)
21554 WRITE_BYTE_F(adr, res)
21566 adr += AREG((Opcode >> 0) & 7);
21567 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21571 WRITE_BYTE_F(adr, res)
21577 WRITE_BYTE_F(adr, res)
21588 adr = AREG((Opcode >> 0) & 7);
21592 WRITE_BYTE_F(adr, res)
21603 adr = AREG((Opcode >> 0) & 7);
21607 WRITE_BYTE_F(adr, res)
21618 adr = AREG((Opcode >> 0) & 7);
21620 if (flag_NotZ && (!(flag_C & 0x100)))
21624 WRITE_BYTE_F(adr, res)
21630 WRITE_BYTE_F(adr, res)
21641 adr = AREG((Opcode >> 0) & 7);
21643 if ((!flag_NotZ) || (flag_C & 0x100))
21647 WRITE_BYTE_F(adr, res)
21653 WRITE_BYTE_F(adr, res)
21664 adr = AREG((Opcode >> 0) & 7);
21666 if (!(flag_C & 0x100))
21670 WRITE_BYTE_F(adr, res)
21676 WRITE_BYTE_F(adr, res)
21687 adr = AREG((Opcode >> 0) & 7);
21689 if (flag_C & 0x100)
21693 WRITE_BYTE_F(adr, res)
21699 WRITE_BYTE_F(adr, res)
21710 adr = AREG((Opcode >> 0) & 7);
21716 WRITE_BYTE_F(adr, res)
21722 WRITE_BYTE_F(adr, res)
21733 adr = AREG((Opcode >> 0) & 7);
21739 WRITE_BYTE_F(adr, res)
21745 WRITE_BYTE_F(adr, res)
21756 adr = AREG((Opcode >> 0) & 7);
21758 if (!(flag_V & 0x80))
21762 WRITE_BYTE_F(adr, res)
21768 WRITE_BYTE_F(adr, res)
21779 adr = AREG((Opcode >> 0) & 7);
21785 WRITE_BYTE_F(adr, res)
21791 WRITE_BYTE_F(adr, res)
21802 adr = AREG((Opcode >> 0) & 7);
21804 if (!(flag_N & 0x80))
21808 WRITE_BYTE_F(adr, res)
21814 WRITE_BYTE_F(adr, res)
21825 adr = AREG((Opcode >> 0) & 7);
21831 WRITE_BYTE_F(adr, res)
21837 WRITE_BYTE_F(adr, res)
21848 adr = AREG((Opcode >> 0) & 7);
21850 if (!((flag_N ^ flag_V) & 0x80))
21854 WRITE_BYTE_F(adr, res)
21860 WRITE_BYTE_F(adr, res)
21871 adr = AREG((Opcode >> 0) & 7);
21873 if ((flag_N ^ flag_V) & 0x80)
21877 WRITE_BYTE_F(adr, res)
21883 WRITE_BYTE_F(adr, res)
21894 adr = AREG((Opcode >> 0) & 7);
21896 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21900 WRITE_BYTE_F(adr, res)
21906 WRITE_BYTE_F(adr, res)
21917 adr = AREG((Opcode >> 0) & 7);
21919 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21923 WRITE_BYTE_F(adr, res)
21929 WRITE_BYTE_F(adr, res)
21943 WRITE_BYTE_F(adr, res)
21957 WRITE_BYTE_F(adr, res)
21969 if (flag_NotZ && (!(flag_C & 0x100)))
21973 WRITE_BYTE_F(adr, res)
21979 WRITE_BYTE_F(adr, res)
21991 if ((!flag_NotZ) || (flag_C & 0x100))
21995 WRITE_BYTE_F(adr, res)
22001 WRITE_BYTE_F(adr, res)
22013 if (!(flag_C & 0x100))
22017 WRITE_BYTE_F(adr, res)
22023 WRITE_BYTE_F(adr, res)
22035 if (flag_C & 0x100)
22039 WRITE_BYTE_F(adr, res)
22045 WRITE_BYTE_F(adr, res)
22061 WRITE_BYTE_F(adr, res)
22067 WRITE_BYTE_F(adr, res)
22083 WRITE_BYTE_F(adr, res)
22089 WRITE_BYTE_F(adr, res)
22101 if (!(flag_V & 0x80))
22105 WRITE_BYTE_F(adr, res)
22111 WRITE_BYTE_F(adr, res)
22127 WRITE_BYTE_F(adr, res)
22133 WRITE_BYTE_F(adr, res)
22145 if (!(flag_N & 0x80))
22149 WRITE_BYTE_F(adr, res)
22155 WRITE_BYTE_F(adr, res)
22171 WRITE_BYTE_F(adr, res)
22177 WRITE_BYTE_F(adr, res)
22189 if (!((flag_N ^ flag_V) & 0x80))
22193 WRITE_BYTE_F(adr, res)
22199 WRITE_BYTE_F(adr, res)
22211 if ((flag_N ^ flag_V) & 0x80)
22215 WRITE_BYTE_F(adr, res)
22221 WRITE_BYTE_F(adr, res)
22233 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22237 WRITE_BYTE_F(adr, res)
22243 WRITE_BYTE_F(adr, res)
22255 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22259 WRITE_BYTE_F(adr, res)
22265 WRITE_BYTE_F(adr, res)
22279 WRITE_BYTE_F(adr, res)
22293 WRITE_BYTE_F(adr, res)
22305 if (flag_NotZ && (!(flag_C & 0x100)))
22309 WRITE_BYTE_F(adr, res)
22315 WRITE_BYTE_F(adr, res)
22327 if ((!flag_NotZ) || (flag_C & 0x100))
22331 WRITE_BYTE_F(adr, res)
22337 WRITE_BYTE_F(adr, res)
22349 if (!(flag_C & 0x100))
22353 WRITE_BYTE_F(adr, res)
22359 WRITE_BYTE_F(adr, res)
22371 if (flag_C & 0x100)
22375 WRITE_BYTE_F(adr, res)
22381 WRITE_BYTE_F(adr, res)
22397 WRITE_BYTE_F(adr, res)
22403 WRITE_BYTE_F(adr, res)
22419 WRITE_BYTE_F(adr, res)
22425 WRITE_BYTE_F(adr, res)
22437 if (!(flag_V & 0x80))
22441 WRITE_BYTE_F(adr, res)
22447 WRITE_BYTE_F(adr, res)
22463 WRITE_BYTE_F(adr, res)
22469 WRITE_BYTE_F(adr, res)
22481 if (!(flag_N & 0x80))
22485 WRITE_BYTE_F(adr, res)
22491 WRITE_BYTE_F(adr, res)
22507 WRITE_BYTE_F(adr, res)
22513 WRITE_BYTE_F(adr, res)
22525 if (!((flag_N ^ flag_V) & 0x80))
22529 WRITE_BYTE_F(adr, res)
22535 WRITE_BYTE_F(adr, res)
22547 if ((flag_N ^ flag_V) & 0x80)
22551 WRITE_BYTE_F(adr, res)
22557 WRITE_BYTE_F(adr, res)
22569 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22573 WRITE_BYTE_F(adr, res)
22579 WRITE_BYTE_F(adr, res)
22591 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22595 WRITE_BYTE_F(adr, res)
22601 WRITE_BYTE_F(adr, res)
22616 WRITE_BYTE_F(adr, res)
22631 WRITE_BYTE_F(adr, res)
22644 if (flag_NotZ && (!(flag_C & 0x100)))
22648 WRITE_BYTE_F(adr, res)
22654 WRITE_BYTE_F(adr, res)
22667 if ((!flag_NotZ) || (flag_C & 0x100))
22671 WRITE_BYTE_F(adr, res)
22677 WRITE_BYTE_F(adr, res)
22690 if (!(flag_C & 0x100))
22694 WRITE_BYTE_F(adr, res)
22700 WRITE_BYTE_F(adr, res)
22713 if (flag_C & 0x100)
22717 WRITE_BYTE_F(adr, res)
22723 WRITE_BYTE_F(adr, res)
22740 WRITE_BYTE_F(adr, res)
22746 WRITE_BYTE_F(adr, res)
22763 WRITE_BYTE_F(adr, res)
22769 WRITE_BYTE_F(adr, res)
22782 if (!(flag_V & 0x80))
22786 WRITE_BYTE_F(adr, res)
22792 WRITE_BYTE_F(adr, res)
22809 WRITE_BYTE_F(adr, res)
22815 WRITE_BYTE_F(adr, res)
22828 if (!(flag_N & 0x80))
22832 WRITE_BYTE_F(adr, res)
22838 WRITE_BYTE_F(adr, res)
22855 WRITE_BYTE_F(adr, res)
22861 WRITE_BYTE_F(adr, res)
22874 if (!((flag_N ^ flag_V) & 0x80))
22878 WRITE_BYTE_F(adr, res)
22884 WRITE_BYTE_F(adr, res)
22897 if ((flag_N ^ flag_V) & 0x80)
22901 WRITE_BYTE_F(adr, res)
22907 WRITE_BYTE_F(adr, res)
22920 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22924 WRITE_BYTE_F(adr, res)
22930 WRITE_BYTE_F(adr, res)
22943 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22947 WRITE_BYTE_F(adr, res)
22953 WRITE_BYTE_F(adr, res)
22968 WRITE_BYTE_F(adr, res)
22983 WRITE_BYTE_F(adr, res)
22996 if (flag_NotZ && (!(flag_C & 0x100)))
23000 WRITE_BYTE_F(adr, res)
23006 WRITE_BYTE_F(adr, res)
23019 if ((!flag_NotZ) || (flag_C & 0x100))
23023 WRITE_BYTE_F(adr, res)
23029 WRITE_BYTE_F(adr, res)
23042 if (!(flag_C & 0x100))
23046 WRITE_BYTE_F(adr, res)
23052 WRITE_BYTE_F(adr, res)
23065 if (flag_C & 0x100)
23069 WRITE_BYTE_F(adr, res)
23075 WRITE_BYTE_F(adr, res)
23092 WRITE_BYTE_F(adr, res)
23098 WRITE_BYTE_F(adr, res)
23115 WRITE_BYTE_F(adr, res)
23121 WRITE_BYTE_F(adr, res)
23134 if (!(flag_V & 0x80))
23138 WRITE_BYTE_F(adr, res)
23144 WRITE_BYTE_F(adr, res)
23161 WRITE_BYTE_F(adr, res)
23167 WRITE_BYTE_F(adr, res)
23180 if (!(flag_N & 0x80))
23184 WRITE_BYTE_F(adr, res)
23190 WRITE_BYTE_F(adr, res)
23207 WRITE_BYTE_F(adr, res)
23213 WRITE_BYTE_F(adr, res)
23226 if (!((flag_N ^ flag_V) & 0x80))
23230 WRITE_BYTE_F(adr, res)
23236 WRITE_BYTE_F(adr, res)
23249 if ((flag_N ^ flag_V) & 0x80)
23253 WRITE_BYTE_F(adr, res)
23259 WRITE_BYTE_F(adr, res)
23272 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
23276 WRITE_BYTE_F(adr, res)
23282 WRITE_BYTE_F(adr, res)
23295 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
23299 WRITE_BYTE_F(adr, res)
23305 WRITE_BYTE_F(adr, res)
23328 res = DREGu16((Opcode >> 0) & 7);
23330 DREGu16((Opcode >> 0) & 7) = res;
23331 if ((s32)res != -1)
23336 newPC += GET_SWORD;
23338 CHECK_BRANCH_EXCEPTION(newPC)
23353 if ((!flag_NotZ) || (flag_C & 0x100))
23355 res = DREGu16((Opcode >> 0) & 7);
23357 DREGu16((Opcode >> 0) & 7) = res;
23358 if ((s32)res != -1)
23363 newPC += GET_SWORD;
23365 CHECK_BRANCH_EXCEPTION(newPC)
23386 if (flag_NotZ && (!(flag_C & 0x100)))
23388 res = DREGu16((Opcode >> 0) & 7);
23390 DREGu16((Opcode >> 0) & 7) = res;
23391 if ((s32)res != -1)
23396 newPC += GET_SWORD;
23398 CHECK_BRANCH_EXCEPTION(newPC)
23419 if (flag_C & 0x100)
23421 res = DREGu16((Opcode >> 0) & 7);
23423 DREGu16((Opcode >> 0) & 7) = res;
23424 if ((s32)res != -1)
23429 newPC += GET_SWORD;
23431 CHECK_BRANCH_EXCEPTION(newPC)
23452 if (!(flag_C & 0x100))
23454 res = DREGu16((Opcode >> 0) & 7);
23456 DREGu16((Opcode >> 0) & 7) = res;
23457 if ((s32)res != -1)
23462 newPC += GET_SWORD;
23464 CHECK_BRANCH_EXCEPTION(newPC)
23487 res = DREGu16((Opcode >> 0) & 7);
23489 DREGu16((Opcode >> 0) & 7) = res;
23490 if ((s32)res != -1)
23495 newPC += GET_SWORD;
23497 CHECK_BRANCH_EXCEPTION(newPC)
23520 res = DREGu16((Opcode >> 0) & 7);
23522 DREGu16((Opcode >> 0) & 7) = res;
23523 if ((s32)res != -1)
23528 newPC += GET_SWORD;
23530 CHECK_BRANCH_EXCEPTION(newPC)
23553 res = DREGu16((Opcode >> 0) & 7);
23555 DREGu16((Opcode >> 0) & 7) = res;
23556 if ((s32)res != -1)
23561 newPC += GET_SWORD;
23563 CHECK_BRANCH_EXCEPTION(newPC)
23584 if (!(flag_V & 0x80))
23586 res = DREGu16((Opcode >> 0) & 7);
23588 DREGu16((Opcode >> 0) & 7) = res;
23589 if ((s32)res != -1)
23594 newPC += GET_SWORD;
23596 CHECK_BRANCH_EXCEPTION(newPC)
23619 res = DREGu16((Opcode >> 0) & 7);
23621 DREGu16((Opcode >> 0) & 7) = res;
23622 if ((s32)res != -1)
23627 newPC += GET_SWORD;
23629 CHECK_BRANCH_EXCEPTION(newPC)
23650 if (!(flag_N & 0x80))
23652 res = DREGu16((Opcode >> 0) & 7);
23654 DREGu16((Opcode >> 0) & 7) = res;
23655 if ((s32)res != -1)
23660 newPC += GET_SWORD;
23662 CHECK_BRANCH_EXCEPTION(newPC)
23683 if ((flag_N ^ flag_V) & 0x80)
23685 res = DREGu16((Opcode >> 0) & 7);
23687 DREGu16((Opcode >> 0) & 7) = res;
23688 if ((s32)res != -1)
23693 newPC += GET_SWORD;
23695 CHECK_BRANCH_EXCEPTION(newPC)
23716 if (!((flag_N ^ flag_V) & 0x80))
23718 res = DREGu16((Opcode >> 0) & 7);
23720 DREGu16((Opcode >> 0) & 7) = res;
23721 if ((s32)res != -1)
23726 newPC += GET_SWORD;
23728 CHECK_BRANCH_EXCEPTION(newPC)
23749 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
23751 res = DREGu16((Opcode >> 0) & 7);
23753 DREGu16((Opcode >> 0) & 7) = res;
23754 if ((s32)res != -1)
23759 newPC += GET_SWORD;
23761 CHECK_BRANCH_EXCEPTION(newPC)
23782 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
23784 res = DREGu16((Opcode >> 0) & 7);
23786 DREGu16((Opcode >> 0) & 7) = res;
23787 if ((s32)res != -1)
23792 newPC += GET_SWORD;
23794 CHECK_BRANCH_EXCEPTION(newPC)
23813 src = (((Opcode >> 9) - 1) & 7) + 1;
23814 dst = DREGu8((Opcode >> 0) & 7);
23816 flag_N = flag_X = flag_C = res;
23817 flag_V = (src ^ res) & (dst ^ res);
23818 flag_NotZ = res & 0xFF;
23819 DREGu8((Opcode >> 0) & 7) = res;
23829 src = (((Opcode >> 9) - 1) & 7) + 1;
23830 adr = AREG((Opcode >> 0) & 7);
23832 READ_BYTE_F(adr, dst)
23834 flag_N = flag_X = flag_C = res;
23835 flag_V = (src ^ res) & (dst ^ res);
23836 flag_NotZ = res & 0xFF;
23837 WRITE_BYTE_F(adr, res)
23848 src = (((Opcode >> 9) - 1) & 7) + 1;
23849 adr = AREG((Opcode >> 0) & 7);
23850 AREG((Opcode >> 0) & 7) += 1;
23852 READ_BYTE_F(adr, dst)
23854 flag_N = flag_X = flag_C = res;
23855 flag_V = (src ^ res) & (dst ^ res);
23856 flag_NotZ = res & 0xFF;
23857 WRITE_BYTE_F(adr, res)
23868 src = (((Opcode >> 9) - 1) & 7) + 1;
23869 adr = AREG((Opcode >> 0) & 7) - 1;
23870 AREG((Opcode >> 0) & 7) = adr;
23872 READ_BYTE_F(adr, dst)
23874 flag_N = flag_X = flag_C = res;
23875 flag_V = (src ^ res) & (dst ^ res);
23876 flag_NotZ = res & 0xFF;
23877 WRITE_BYTE_F(adr, res)
23888 src = (((Opcode >> 9) - 1) & 7) + 1;
23890 adr += AREG((Opcode >> 0) & 7);
23892 READ_BYTE_F(adr, dst)
23894 flag_N = flag_X = flag_C = res;
23895 flag_V = (src ^ res) & (dst ^ res);
23896 flag_NotZ = res & 0xFF;
23897 WRITE_BYTE_F(adr, res)
23908 src = (((Opcode >> 9) - 1) & 7) + 1;
23909 adr = AREG((Opcode >> 0) & 7);
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;
23950 READ_BYTE_F(adr, dst)
23952 flag_N = flag_X = flag_C = res;
23953 flag_V = (src ^ res) & (dst ^ res);
23954 flag_NotZ = res & 0xFF;
23955 WRITE_BYTE_F(adr, res)
23966 src = (((Opcode >> 9) - 1) & 7) + 1;
23970 READ_BYTE_F(adr, dst)
23972 flag_N = flag_X = flag_C = res;
23973 flag_V = (src ^ res) & (dst ^ res);
23974 flag_NotZ = res & 0xFF;
23975 WRITE_BYTE_F(adr, res)
23986 src = (((Opcode >> 9) - 1) & 7) + 1;
23990 READ_BYTE_F(adr, dst)
23992 flag_N = flag_X = flag_C = res;
23993 flag_V = (src ^ res) & (dst ^ res);
23994 flag_NotZ = res & 0xFF;
23995 WRITE_BYTE_F(adr, res)
24006 src = (((Opcode >> 9) - 1) & 7) + 1;
24007 dst = DREGu16((Opcode >> 0) & 7);
24009 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24010 flag_N = flag_X = flag_C = res >> 8;
24011 flag_NotZ = res & 0xFFFF;
24012 DREGu16((Opcode >> 0) & 7) = res;
24022 src = (((Opcode >> 9) - 1) & 7) + 1;
24023 dst = AREGu32((Opcode >> 0) & 7);
24025 AREG((Opcode >> 0) & 7) = res;
24026 #ifdef USE_CYCLONE_TIMING
24039 src = (((Opcode >> 9) - 1) & 7) + 1;
24040 adr = AREG((Opcode >> 0) & 7);
24042 READ_WORD_F(adr, dst)
24044 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24045 flag_N = flag_X = flag_C = res >> 8;
24046 flag_NotZ = res & 0xFFFF;
24047 WRITE_WORD_F(adr, res)
24058 src = (((Opcode >> 9) - 1) & 7) + 1;
24059 adr = AREG((Opcode >> 0) & 7);
24060 AREG((Opcode >> 0) & 7) += 2;
24062 READ_WORD_F(adr, dst)
24064 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24065 flag_N = flag_X = flag_C = res >> 8;
24066 flag_NotZ = res & 0xFFFF;
24067 WRITE_WORD_F(adr, res)
24078 src = (((Opcode >> 9) - 1) & 7) + 1;
24079 adr = AREG((Opcode >> 0) & 7) - 2;
24080 AREG((Opcode >> 0) & 7) = adr;
24082 READ_WORD_F(adr, dst)
24084 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24085 flag_N = flag_X = flag_C = res >> 8;
24086 flag_NotZ = res & 0xFFFF;
24087 WRITE_WORD_F(adr, res)
24098 src = (((Opcode >> 9) - 1) & 7) + 1;
24100 adr += AREG((Opcode >> 0) & 7);
24102 READ_WORD_F(adr, dst)
24104 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24105 flag_N = flag_X = flag_C = res >> 8;
24106 flag_NotZ = res & 0xFFFF;
24107 WRITE_WORD_F(adr, res)
24118 src = (((Opcode >> 9) - 1) & 7) + 1;
24119 adr = AREG((Opcode >> 0) & 7);
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;
24160 READ_WORD_F(adr, dst)
24162 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24163 flag_N = flag_X = flag_C = res >> 8;
24164 flag_NotZ = res & 0xFFFF;
24165 WRITE_WORD_F(adr, res)
24176 src = (((Opcode >> 9) - 1) & 7) + 1;
24180 READ_WORD_F(adr, dst)
24182 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24183 flag_N = flag_X = flag_C = res >> 8;
24184 flag_NotZ = res & 0xFFFF;
24185 WRITE_WORD_F(adr, res)
24196 src = (((Opcode >> 9) - 1) & 7) + 1;
24200 READ_WORD_F(adr, dst)
24202 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24203 flag_N = flag_X = flag_C = res >> 8;
24204 flag_NotZ = res & 0xFFFF;
24205 WRITE_WORD_F(adr, res)
24216 src = (((Opcode >> 9) - 1) & 7) + 1;
24217 dst = DREGu32((Opcode >> 0) & 7);
24220 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24221 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24222 flag_N = res >> 24;
24223 DREGu32((Opcode >> 0) & 7) = res;
24233 src = (((Opcode >> 9) - 1) & 7) + 1;
24234 dst = AREGu32((Opcode >> 0) & 7);
24236 AREG((Opcode >> 0) & 7) = res;
24246 src = (((Opcode >> 9) - 1) & 7) + 1;
24247 adr = AREG((Opcode >> 0) & 7);
24249 READ_LONG_F(adr, dst)
24252 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24253 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24254 flag_N = res >> 24;
24255 WRITE_LONG_F(adr, res)
24266 src = (((Opcode >> 9) - 1) & 7) + 1;
24267 adr = AREG((Opcode >> 0) & 7);
24268 AREG((Opcode >> 0) & 7) += 4;
24270 READ_LONG_F(adr, dst)
24273 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24274 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24275 flag_N = res >> 24;
24276 WRITE_LONG_F(adr, res)
24287 src = (((Opcode >> 9) - 1) & 7) + 1;
24288 adr = AREG((Opcode >> 0) & 7) - 4;
24289 AREG((Opcode >> 0) & 7) = adr;
24291 READ_LONG_F(adr, dst)
24294 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24295 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24296 flag_N = res >> 24;
24297 WRITE_LONG_F(adr, res)
24308 src = (((Opcode >> 9) - 1) & 7) + 1;
24310 adr += AREG((Opcode >> 0) & 7);
24312 READ_LONG_F(adr, dst)
24315 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24316 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24317 flag_N = res >> 24;
24318 WRITE_LONG_F(adr, res)
24329 src = (((Opcode >> 9) - 1) & 7) + 1;
24330 adr = AREG((Opcode >> 0) & 7);
24333 READ_LONG_F(adr, dst)
24336 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24337 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24338 flag_N = res >> 24;
24339 WRITE_LONG_F(adr, res)
24350 src = (((Opcode >> 9) - 1) & 7) + 1;
24353 READ_LONG_F(adr, dst)
24356 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24357 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24358 flag_N = res >> 24;
24359 WRITE_LONG_F(adr, res)
24370 src = (((Opcode >> 9) - 1) & 7) + 1;
24373 READ_LONG_F(adr, dst)
24376 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24377 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24378 flag_N = res >> 24;
24379 WRITE_LONG_F(adr, res)
24390 src = (((Opcode >> 9) - 1) & 7) + 1;
24394 READ_LONG_F(adr, dst)
24397 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24398 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24399 flag_N = res >> 24;
24400 WRITE_LONG_F(adr, res)
24411 src = (((Opcode >> 9) - 1) & 7) + 1;
24415 READ_LONG_F(adr, dst)
24418 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24419 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24420 flag_N = res >> 24;
24421 WRITE_LONG_F(adr, res)
24432 src = (((Opcode >> 9) - 1) & 7) + 1;
24433 dst = DREGu8((Opcode >> 0) & 7);
24435 flag_N = flag_X = flag_C = res;
24436 flag_V = (src ^ dst) & (res ^ dst);
24437 flag_NotZ = res & 0xFF;
24438 DREGu8((Opcode >> 0) & 7) = res;
24448 src = (((Opcode >> 9) - 1) & 7) + 1;
24449 adr = AREG((Opcode >> 0) & 7);
24451 READ_BYTE_F(adr, dst)
24453 flag_N = flag_X = flag_C = res;
24454 flag_V = (src ^ dst) & (res ^ dst);
24455 flag_NotZ = res & 0xFF;
24456 WRITE_BYTE_F(adr, res)
24467 src = (((Opcode >> 9) - 1) & 7) + 1;
24468 adr = AREG((Opcode >> 0) & 7);
24469 AREG((Opcode >> 0) & 7) += 1;
24471 READ_BYTE_F(adr, dst)
24473 flag_N = flag_X = flag_C = res;
24474 flag_V = (src ^ dst) & (res ^ dst);
24475 flag_NotZ = res & 0xFF;
24476 WRITE_BYTE_F(adr, res)
24487 src = (((Opcode >> 9) - 1) & 7) + 1;
24488 adr = AREG((Opcode >> 0) & 7) - 1;
24489 AREG((Opcode >> 0) & 7) = adr;
24491 READ_BYTE_F(adr, dst)
24493 flag_N = flag_X = flag_C = res;
24494 flag_V = (src ^ dst) & (res ^ dst);
24495 flag_NotZ = res & 0xFF;
24496 WRITE_BYTE_F(adr, res)
24507 src = (((Opcode >> 9) - 1) & 7) + 1;
24509 adr += AREG((Opcode >> 0) & 7);
24511 READ_BYTE_F(adr, dst)
24513 flag_N = flag_X = flag_C = res;
24514 flag_V = (src ^ dst) & (res ^ dst);
24515 flag_NotZ = res & 0xFF;
24516 WRITE_BYTE_F(adr, res)
24527 src = (((Opcode >> 9) - 1) & 7) + 1;
24528 adr = AREG((Opcode >> 0) & 7);
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;
24569 READ_BYTE_F(adr, dst)
24571 flag_N = flag_X = flag_C = res;
24572 flag_V = (src ^ dst) & (res ^ dst);
24573 flag_NotZ = res & 0xFF;
24574 WRITE_BYTE_F(adr, res)
24585 src = (((Opcode >> 9) - 1) & 7) + 1;
24589 READ_BYTE_F(adr, dst)
24591 flag_N = flag_X = flag_C = res;
24592 flag_V = (src ^ dst) & (res ^ dst);
24593 flag_NotZ = res & 0xFF;
24594 WRITE_BYTE_F(adr, res)
24605 src = (((Opcode >> 9) - 1) & 7) + 1;
24609 READ_BYTE_F(adr, dst)
24611 flag_N = flag_X = flag_C = res;
24612 flag_V = (src ^ dst) & (res ^ dst);
24613 flag_NotZ = res & 0xFF;
24614 WRITE_BYTE_F(adr, res)
24625 src = (((Opcode >> 9) - 1) & 7) + 1;
24626 dst = DREGu16((Opcode >> 0) & 7);
24628 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24629 flag_N = flag_X = flag_C = res >> 8;
24630 flag_NotZ = res & 0xFFFF;
24631 DREGu16((Opcode >> 0) & 7) = res;
24641 src = (((Opcode >> 9) - 1) & 7) + 1;
24642 dst = AREGu32((Opcode >> 0) & 7);
24644 AREG((Opcode >> 0) & 7) = res;
24654 src = (((Opcode >> 9) - 1) & 7) + 1;
24655 adr = AREG((Opcode >> 0) & 7);
24657 READ_WORD_F(adr, dst)
24659 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24660 flag_N = flag_X = flag_C = res >> 8;
24661 flag_NotZ = res & 0xFFFF;
24662 WRITE_WORD_F(adr, res)
24673 src = (((Opcode >> 9) - 1) & 7) + 1;
24674 adr = AREG((Opcode >> 0) & 7);
24675 AREG((Opcode >> 0) & 7) += 2;
24677 READ_WORD_F(adr, dst)
24679 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24680 flag_N = flag_X = flag_C = res >> 8;
24681 flag_NotZ = res & 0xFFFF;
24682 WRITE_WORD_F(adr, res)
24693 src = (((Opcode >> 9) - 1) & 7) + 1;
24694 adr = AREG((Opcode >> 0) & 7) - 2;
24695 AREG((Opcode >> 0) & 7) = adr;
24697 READ_WORD_F(adr, dst)
24699 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24700 flag_N = flag_X = flag_C = res >> 8;
24701 flag_NotZ = res & 0xFFFF;
24702 WRITE_WORD_F(adr, res)
24713 src = (((Opcode >> 9) - 1) & 7) + 1;
24715 adr += AREG((Opcode >> 0) & 7);
24717 READ_WORD_F(adr, dst)
24719 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24720 flag_N = flag_X = flag_C = res >> 8;
24721 flag_NotZ = res & 0xFFFF;
24722 WRITE_WORD_F(adr, res)
24733 src = (((Opcode >> 9) - 1) & 7) + 1;
24734 adr = AREG((Opcode >> 0) & 7);
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;
24775 READ_WORD_F(adr, dst)
24777 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24778 flag_N = flag_X = flag_C = res >> 8;
24779 flag_NotZ = res & 0xFFFF;
24780 WRITE_WORD_F(adr, res)
24791 src = (((Opcode >> 9) - 1) & 7) + 1;
24795 READ_WORD_F(adr, dst)
24797 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24798 flag_N = flag_X = flag_C = res >> 8;
24799 flag_NotZ = res & 0xFFFF;
24800 WRITE_WORD_F(adr, res)
24811 src = (((Opcode >> 9) - 1) & 7) + 1;
24815 READ_WORD_F(adr, dst)
24817 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24818 flag_N = flag_X = flag_C = res >> 8;
24819 flag_NotZ = res & 0xFFFF;
24820 WRITE_WORD_F(adr, res)
24831 src = (((Opcode >> 9) - 1) & 7) + 1;
24832 dst = DREGu32((Opcode >> 0) & 7);
24835 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24836 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24837 flag_N = res >> 24;
24838 DREGu32((Opcode >> 0) & 7) = res;
24848 src = (((Opcode >> 9) - 1) & 7) + 1;
24849 dst = AREGu32((Opcode >> 0) & 7);
24851 AREG((Opcode >> 0) & 7) = res;
24861 src = (((Opcode >> 9) - 1) & 7) + 1;
24862 adr = AREG((Opcode >> 0) & 7);
24864 READ_LONG_F(adr, dst)
24867 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24868 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24869 flag_N = res >> 24;
24870 WRITE_LONG_F(adr, res)
24881 src = (((Opcode >> 9) - 1) & 7) + 1;
24882 adr = AREG((Opcode >> 0) & 7);
24883 AREG((Opcode >> 0) & 7) += 4;
24885 READ_LONG_F(adr, dst)
24888 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24889 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24890 flag_N = res >> 24;
24891 WRITE_LONG_F(adr, res)
24902 src = (((Opcode >> 9) - 1) & 7) + 1;
24903 adr = AREG((Opcode >> 0) & 7) - 4;
24904 AREG((Opcode >> 0) & 7) = adr;
24906 READ_LONG_F(adr, dst)
24909 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24910 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24911 flag_N = res >> 24;
24912 WRITE_LONG_F(adr, res)
24923 src = (((Opcode >> 9) - 1) & 7) + 1;
24925 adr += AREG((Opcode >> 0) & 7);
24927 READ_LONG_F(adr, dst)
24930 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24931 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24932 flag_N = res >> 24;
24933 WRITE_LONG_F(adr, res)
24944 src = (((Opcode >> 9) - 1) & 7) + 1;
24945 adr = AREG((Opcode >> 0) & 7);
24948 READ_LONG_F(adr, dst)
24951 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24952 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24953 flag_N = res >> 24;
24954 WRITE_LONG_F(adr, res)
24965 src = (((Opcode >> 9) - 1) & 7) + 1;
24968 READ_LONG_F(adr, dst)
24971 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24972 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24973 flag_N = res >> 24;
24974 WRITE_LONG_F(adr, res)
24985 src = (((Opcode >> 9) - 1) & 7) + 1;
24988 READ_LONG_F(adr, dst)
24991 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24992 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24993 flag_N = res >> 24;
24994 WRITE_LONG_F(adr, res)
25005 src = (((Opcode >> 9) - 1) & 7) + 1;
25009 READ_LONG_F(adr, dst)
25012 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
25013 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
25014 flag_N = res >> 24;
25015 WRITE_LONG_F(adr, res)
25026 src = (((Opcode >> 9) - 1) & 7) + 1;
25030 READ_LONG_F(adr, dst)
25033 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
25034 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
25035 flag_N = res >> 24;
25036 WRITE_LONG_F(adr, res)
25047 if (flag_NotZ && (!(flag_C & 0x100)))
25049 PC += ((s8)(Opcode & 0xFE)) >> 1;
25050 m68kcontext.io_cycle_counter -= 2;
25061 if ((!flag_NotZ) || (flag_C & 0x100))
25063 PC += ((s8)(Opcode & 0xFE)) >> 1;
25064 m68kcontext.io_cycle_counter -= 2;
25075 if (!(flag_C & 0x100))
25077 PC += ((s8)(Opcode & 0xFE)) >> 1;
25078 m68kcontext.io_cycle_counter -= 2;
25089 if (flag_C & 0x100)
25091 PC += ((s8)(Opcode & 0xFE)) >> 1;
25092 m68kcontext.io_cycle_counter -= 2;
25105 PC += ((s8)(Opcode & 0xFE)) >> 1;
25106 m68kcontext.io_cycle_counter -= 2;
25119 PC += ((s8)(Opcode & 0xFE)) >> 1;
25120 m68kcontext.io_cycle_counter -= 2;
25131 if (!(flag_V & 0x80))
25133 PC += ((s8)(Opcode & 0xFE)) >> 1;
25134 m68kcontext.io_cycle_counter -= 2;
25147 PC += ((s8)(Opcode & 0xFE)) >> 1;
25148 m68kcontext.io_cycle_counter -= 2;
25159 if (!(flag_N & 0x80))
25161 PC += ((s8)(Opcode & 0xFE)) >> 1;
25162 m68kcontext.io_cycle_counter -= 2;
25175 PC += ((s8)(Opcode & 0xFE)) >> 1;
25176 m68kcontext.io_cycle_counter -= 2;
25187 if (!((flag_N ^ flag_V) & 0x80))
25189 PC += ((s8)(Opcode & 0xFE)) >> 1;
25190 m68kcontext.io_cycle_counter -= 2;
25201 if ((flag_N ^ flag_V) & 0x80)
25203 PC += ((s8)(Opcode & 0xFE)) >> 1;
25204 m68kcontext.io_cycle_counter -= 2;
25215 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
25217 PC += ((s8)(Opcode & 0xFE)) >> 1;
25218 m68kcontext.io_cycle_counter -= 2;
25229 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
25231 PC += ((s8)(Opcode & 0xFE)) >> 1;
25232 m68kcontext.io_cycle_counter -= 2;
25243 if (flag_NotZ && (!(flag_C & 0x100)))
25248 newPC += GET_SWORD;
25250 CHECK_BRANCH_EXCEPTION(newPC)
25263 if ((!flag_NotZ) || (flag_C & 0x100))
25268 newPC += GET_SWORD;
25270 CHECK_BRANCH_EXCEPTION(newPC)
25283 if (!(flag_C & 0x100))
25288 newPC += GET_SWORD;
25290 CHECK_BRANCH_EXCEPTION(newPC)
25303 if (flag_C & 0x100)
25308 newPC += GET_SWORD;
25310 CHECK_BRANCH_EXCEPTION(newPC)
25328 newPC += GET_SWORD;
25330 CHECK_BRANCH_EXCEPTION(newPC)
25348 newPC += GET_SWORD;
25350 CHECK_BRANCH_EXCEPTION(newPC)
25363 if (!(flag_V & 0x80))
25368 newPC += GET_SWORD;
25370 CHECK_BRANCH_EXCEPTION(newPC)
25388 newPC += GET_SWORD;
25390 CHECK_BRANCH_EXCEPTION(newPC)
25403 if (!(flag_N & 0x80))
25408 newPC += GET_SWORD;
25410 CHECK_BRANCH_EXCEPTION(newPC)
25428 newPC += GET_SWORD;
25430 CHECK_BRANCH_EXCEPTION(newPC)
25443 if (!((flag_N ^ flag_V) & 0x80))
25448 newPC += GET_SWORD;
25450 CHECK_BRANCH_EXCEPTION(newPC)
25463 if ((flag_N ^ flag_V) & 0x80)
25468 newPC += GET_SWORD;
25470 CHECK_BRANCH_EXCEPTION(newPC)
25483 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
25488 newPC += GET_SWORD;
25490 CHECK_BRANCH_EXCEPTION(newPC)
25503 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
25508 newPC += GET_SWORD;
25510 CHECK_BRANCH_EXCEPTION(newPC)
25520 #ifdef FAMEC_CHECK_BRANCHES
25521 u32 newPC = GET_PC;
25525 CHECK_BRANCH_EXCEPTION(offs)
25527 PC += ((s8)(Opcode & 0xFE)) >> 1;
25542 newPC += GET_SWORD;
25544 CHECK_BRANCH_EXCEPTION(newPC)
25561 #ifdef FAMEC_CHECK_BRANCHES
25565 CHECK_BRANCH_EXCEPTION(offs)
25567 PC += ((s8)(Opcode & 0xFE)) >> 1;
25586 newPC += GET_SWORD;
25588 CHECK_BRANCH_EXCEPTION(newPC)
25600 res = (s32)(s8)Opcode;
25601 flag_C = flag_V = 0;
25602 flag_N = flag_NotZ = res;
25603 DREGu32((Opcode >> 9) & 7) = res;
25613 src = DREGu8((Opcode >> 0) & 7);
25614 res = DREGu8((Opcode >> 9) & 7);
25620 DREGu8((Opcode >> 9) & 7) = res;
25630 adr = AREG((Opcode >> 0) & 7);
25632 READ_BYTE_F(adr, src)
25633 res = DREGu8((Opcode >> 9) & 7);
25639 DREGu8((Opcode >> 9) & 7) = res;
25650 adr = AREG((Opcode >> 0) & 7);
25651 AREG((Opcode >> 0) & 7) += 1;
25653 READ_BYTE_F(adr, src)
25654 res = DREGu8((Opcode >> 9) & 7);
25660 DREGu8((Opcode >> 9) & 7) = res;
25671 adr = AREG((Opcode >> 0) & 7) - 1;
25672 AREG((Opcode >> 0) & 7) = adr;
25674 READ_BYTE_F(adr, src)
25675 res = DREGu8((Opcode >> 9) & 7);
25681 DREGu8((Opcode >> 9) & 7) = res;
25693 adr += AREG((Opcode >> 0) & 7);
25695 READ_BYTE_F(adr, src)
25696 res = DREGu8((Opcode >> 9) & 7);
25702 DREGu8((Opcode >> 9) & 7) = res;
25713 adr = AREG((Opcode >> 0) & 7);
25716 READ_BYTE_F(adr, src)
25717 res = DREGu8((Opcode >> 9) & 7);
25723 DREGu8((Opcode >> 9) & 7) = res;
25736 READ_BYTE_F(adr, src)
25737 res = DREGu8((Opcode >> 9) & 7);
25743 DREGu8((Opcode >> 9) & 7) = res;
25756 READ_BYTE_F(adr, src)
25757 res = DREGu8((Opcode >> 9) & 7);
25763 DREGu8((Opcode >> 9) & 7) = res;
25774 adr = GET_SWORD + GET_PC;
25777 READ_BYTE_F(adr, src)
25778 res = DREGu8((Opcode >> 9) & 7);
25784 DREGu8((Opcode >> 9) & 7) = res;
25798 READ_BYTE_F(adr, src)
25799 res = DREGu8((Opcode >> 9) & 7);
25805 DREGu8((Opcode >> 9) & 7) = res;
25817 res = DREGu8((Opcode >> 9) & 7);
25823 DREGu8((Opcode >> 9) & 7) = res;
25836 READ_BYTE_F(adr, src)
25837 res = DREGu8((Opcode >> 9) & 7);
25843 DREGu8((Opcode >> 9) & 7) = res;
25857 READ_BYTE_F(adr, src)
25858 res = DREGu8((Opcode >> 9) & 7);
25864 DREGu8((Opcode >> 9) & 7) = res;
25875 src = DREGu16((Opcode >> 0) & 7);
25876 res = DREGu16((Opcode >> 9) & 7);
25882 DREGu16((Opcode >> 9) & 7) = res;
25892 adr = AREG((Opcode >> 0) & 7);
25894 READ_WORD_F(adr, src)
25895 res = DREGu16((Opcode >> 9) & 7);
25901 DREGu16((Opcode >> 9) & 7) = res;
25912 adr = AREG((Opcode >> 0) & 7);
25913 AREG((Opcode >> 0) & 7) += 2;
25915 READ_WORD_F(adr, src)
25916 res = DREGu16((Opcode >> 9) & 7);
25922 DREGu16((Opcode >> 9) & 7) = res;
25933 adr = AREG((Opcode >> 0) & 7) - 2;
25934 AREG((Opcode >> 0) & 7) = adr;
25936 READ_WORD_F(adr, src)
25937 res = DREGu16((Opcode >> 9) & 7);
25943 DREGu16((Opcode >> 9) & 7) = res;
25955 adr += AREG((Opcode >> 0) & 7);
25957 READ_WORD_F(adr, src)
25958 res = DREGu16((Opcode >> 9) & 7);
25964 DREGu16((Opcode >> 9) & 7) = res;
25975 adr = AREG((Opcode >> 0) & 7);
25978 READ_WORD_F(adr, src)
25979 res = DREGu16((Opcode >> 9) & 7);
25985 DREGu16((Opcode >> 9) & 7) = res;
25998 READ_WORD_F(adr, src)
25999 res = DREGu16((Opcode >> 9) & 7);
26005 DREGu16((Opcode >> 9) & 7) = res;
26018 READ_WORD_F(adr, src)
26019 res = DREGu16((Opcode >> 9) & 7);
26025 DREGu16((Opcode >> 9) & 7) = res;
26036 adr = GET_SWORD + GET_PC;
26039 READ_WORD_F(adr, src)
26040 res = DREGu16((Opcode >> 9) & 7);
26046 DREGu16((Opcode >> 9) & 7) = res;
26060 READ_WORD_F(adr, src)
26061 res = DREGu16((Opcode >> 9) & 7);
26067 DREGu16((Opcode >> 9) & 7) = res;
26079 res = DREGu16((Opcode >> 9) & 7);
26085 DREGu16((Opcode >> 9) & 7) = res;
26098 READ_WORD_F(adr, src)
26099 res = DREGu16((Opcode >> 9) & 7);
26105 DREGu16((Opcode >> 9) & 7) = res;
26119 READ_WORD_F(adr, src)
26120 res = DREGu16((Opcode >> 9) & 7);
26126 DREGu16((Opcode >> 9) & 7) = res;
26137 src = DREGu32((Opcode >> 0) & 7);
26138 res = DREGu32((Opcode >> 9) & 7);
26143 flag_N = res >> 24;
26144 DREGu32((Opcode >> 9) & 7) = res;
26154 adr = AREG((Opcode >> 0) & 7);
26156 READ_LONG_F(adr, src)
26157 res = DREGu32((Opcode >> 9) & 7);
26162 flag_N = res >> 24;
26163 DREGu32((Opcode >> 9) & 7) = res;
26174 adr = AREG((Opcode >> 0) & 7);
26175 AREG((Opcode >> 0) & 7) += 4;
26177 READ_LONG_F(adr, src)
26178 res = DREGu32((Opcode >> 9) & 7);
26183 flag_N = res >> 24;
26184 DREGu32((Opcode >> 9) & 7) = res;
26195 adr = AREG((Opcode >> 0) & 7) - 4;
26196 AREG((Opcode >> 0) & 7) = adr;
26198 READ_LONG_F(adr, src)
26199 res = DREGu32((Opcode >> 9) & 7);
26204 flag_N = res >> 24;
26205 DREGu32((Opcode >> 9) & 7) = res;
26217 adr += AREG((Opcode >> 0) & 7);
26219 READ_LONG_F(adr, src)
26220 res = DREGu32((Opcode >> 9) & 7);
26225 flag_N = res >> 24;
26226 DREGu32((Opcode >> 9) & 7) = res;
26237 adr = AREG((Opcode >> 0) & 7);
26240 READ_LONG_F(adr, src)
26241 res = DREGu32((Opcode >> 9) & 7);
26246 flag_N = res >> 24;
26247 DREGu32((Opcode >> 9) & 7) = res;
26260 READ_LONG_F(adr, src)
26261 res = DREGu32((Opcode >> 9) & 7);
26266 flag_N = res >> 24;
26267 DREGu32((Opcode >> 9) & 7) = res;
26280 READ_LONG_F(adr, src)
26281 res = DREGu32((Opcode >> 9) & 7);
26286 flag_N = res >> 24;
26287 DREGu32((Opcode >> 9) & 7) = res;
26298 adr = GET_SWORD + GET_PC;
26301 READ_LONG_F(adr, src)
26302 res = DREGu32((Opcode >> 9) & 7);
26307 flag_N = res >> 24;
26308 DREGu32((Opcode >> 9) & 7) = res;
26322 READ_LONG_F(adr, src)
26323 res = DREGu32((Opcode >> 9) & 7);
26328 flag_N = res >> 24;
26329 DREGu32((Opcode >> 9) & 7) = res;
26341 res = DREGu32((Opcode >> 9) & 7);
26346 flag_N = res >> 24;
26347 DREGu32((Opcode >> 9) & 7) = res;
26360 READ_LONG_F(adr, src)
26361 res = DREGu32((Opcode >> 9) & 7);
26366 flag_N = res >> 24;
26367 DREGu32((Opcode >> 9) & 7) = res;
26381 READ_LONG_F(adr, src)
26382 res = DREGu32((Opcode >> 9) & 7);
26387 flag_N = res >> 24;
26388 DREGu32((Opcode >> 9) & 7) = res;
26399 src = DREGu8((Opcode >> 9) & 7);
26400 adr = AREG((Opcode >> 0) & 7);
26402 READ_BYTE_F(adr, res)
26408 WRITE_BYTE_F(adr, res)
26419 src = DREGu8((Opcode >> 9) & 7);
26420 adr = AREG((Opcode >> 0) & 7);
26421 AREG((Opcode >> 0) & 7) += 1;
26423 READ_BYTE_F(adr, res)
26429 WRITE_BYTE_F(adr, res)
26440 src = DREGu8((Opcode >> 9) & 7);
26441 adr = AREG((Opcode >> 0) & 7) - 1;
26442 AREG((Opcode >> 0) & 7) = adr;
26444 READ_BYTE_F(adr, res)
26450 WRITE_BYTE_F(adr, res)
26461 src = DREGu8((Opcode >> 9) & 7);
26463 adr += AREG((Opcode >> 0) & 7);
26465 READ_BYTE_F(adr, res)
26471 WRITE_BYTE_F(adr, res)
26482 src = DREGu8((Opcode >> 9) & 7);
26483 adr = AREG((Opcode >> 0) & 7);
26486 READ_BYTE_F(adr, res)
26492 WRITE_BYTE_F(adr, res)
26503 src = DREGu8((Opcode >> 9) & 7);
26506 READ_BYTE_F(adr, res)
26512 WRITE_BYTE_F(adr, res)
26523 src = DREGu8((Opcode >> 9) & 7);
26526 READ_BYTE_F(adr, res)
26532 WRITE_BYTE_F(adr, res)
26543 src = DREGu8((Opcode >> 9) & 7);
26547 READ_BYTE_F(adr, res)
26553 WRITE_BYTE_F(adr, res)
26564 src = DREGu8((Opcode >> 9) & 7);
26568 READ_BYTE_F(adr, res)
26574 WRITE_BYTE_F(adr, res)
26585 src = DREGu16((Opcode >> 9) & 7);
26586 adr = AREG((Opcode >> 0) & 7);
26588 READ_WORD_F(adr, res)
26594 WRITE_WORD_F(adr, res)
26605 src = DREGu16((Opcode >> 9) & 7);
26606 adr = AREG((Opcode >> 0) & 7);
26607 AREG((Opcode >> 0) & 7) += 2;
26609 READ_WORD_F(adr, res)
26615 WRITE_WORD_F(adr, res)
26626 src = DREGu16((Opcode >> 9) & 7);
26627 adr = AREG((Opcode >> 0) & 7) - 2;
26628 AREG((Opcode >> 0) & 7) = adr;
26630 READ_WORD_F(adr, res)
26636 WRITE_WORD_F(adr, res)
26647 src = DREGu16((Opcode >> 9) & 7);
26649 adr += AREG((Opcode >> 0) & 7);
26651 READ_WORD_F(adr, res)
26657 WRITE_WORD_F(adr, res)
26668 src = DREGu16((Opcode >> 9) & 7);
26669 adr = AREG((Opcode >> 0) & 7);
26672 READ_WORD_F(adr, res)
26678 WRITE_WORD_F(adr, res)
26689 src = DREGu16((Opcode >> 9) & 7);
26692 READ_WORD_F(adr, res)
26698 WRITE_WORD_F(adr, res)
26709 src = DREGu16((Opcode >> 9) & 7);
26712 READ_WORD_F(adr, res)
26718 WRITE_WORD_F(adr, res)
26729 src = DREGu16((Opcode >> 9) & 7);
26733 READ_WORD_F(adr, res)
26739 WRITE_WORD_F(adr, res)
26750 src = DREGu16((Opcode >> 9) & 7);
26754 READ_WORD_F(adr, res)
26760 WRITE_WORD_F(adr, res)
26771 src = DREGu32((Opcode >> 9) & 7);
26772 adr = AREG((Opcode >> 0) & 7);
26774 READ_LONG_F(adr, res)
26779 flag_N = res >> 24;
26780 WRITE_LONG_F(adr, res)
26791 src = DREGu32((Opcode >> 9) & 7);
26792 adr = AREG((Opcode >> 0) & 7);
26793 AREG((Opcode >> 0) & 7) += 4;
26795 READ_LONG_F(adr, res)
26800 flag_N = res >> 24;
26801 WRITE_LONG_F(adr, res)
26812 src = DREGu32((Opcode >> 9) & 7);
26813 adr = AREG((Opcode >> 0) & 7) - 4;
26814 AREG((Opcode >> 0) & 7) = adr;
26816 READ_LONG_F(adr, res)
26821 flag_N = res >> 24;
26822 WRITE_LONG_F(adr, res)
26833 src = DREGu32((Opcode >> 9) & 7);
26835 adr += AREG((Opcode >> 0) & 7);
26837 READ_LONG_F(adr, res)
26842 flag_N = res >> 24;
26843 WRITE_LONG_F(adr, res)
26854 src = DREGu32((Opcode >> 9) & 7);
26855 adr = AREG((Opcode >> 0) & 7);
26858 READ_LONG_F(adr, res)
26863 flag_N = res >> 24;
26864 WRITE_LONG_F(adr, res)
26875 src = DREGu32((Opcode >> 9) & 7);
26878 READ_LONG_F(adr, res)
26883 flag_N = res >> 24;
26884 WRITE_LONG_F(adr, res)
26895 src = DREGu32((Opcode >> 9) & 7);
26898 READ_LONG_F(adr, res)
26903 flag_N = res >> 24;
26904 WRITE_LONG_F(adr, res)
26915 src = DREGu32((Opcode >> 9) & 7);
26919 READ_LONG_F(adr, res)
26924 flag_N = res >> 24;
26925 WRITE_LONG_F(adr, res)
26936 src = DREGu32((Opcode >> 9) & 7);
26940 READ_LONG_F(adr, res)
26945 flag_N = res >> 24;
26946 WRITE_LONG_F(adr, res)
26958 src = DREGu8((Opcode >> 0) & 7);
26959 dst = DREGu8((Opcode >> 9) & 7);
26960 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26961 if (res > 0xF) corf = 6;
26962 res += (dst & 0xF0) - (src & 0xF0);
26964 flag_X = flag_C = (s32)res < (s32)corf ? M68K_SR_C : 0;
26965 if (res > 0xff) res += 0xA0;
26966 res = (res - corf) & 0xFF;
26970 DREGu8((Opcode >> 9) & 7) = res;
26981 adr = AREG((Opcode >> 0) & 7) - 1;
26982 AREG((Opcode >> 0) & 7) = adr;
26984 READ_BYTE_F(adr, src)
26985 adr = AREG((Opcode >> 9) & 7) - 1;
26986 AREG((Opcode >> 9) & 7) = adr;
26987 READ_BYTE_F(adr, dst)
26988 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26989 if (res > 0xF) corf = 6;
26990 res += (dst & 0xF0) - (src & 0xF0);
26992 flag_X = flag_C = (s32)res < (s32)corf ? M68K_SR_C : 0;
26993 if (res > 0xff) res += 0xA0;
26994 res = (res - corf) & 0xFF;
26998 WRITE_BYTE_F(adr, res)
27013 READ_BYTE_F(adr, src)
27014 adr = AREG((Opcode >> 9) & 7) - 1;
27015 AREG((Opcode >> 9) & 7) = adr;
27016 READ_BYTE_F(adr, dst)
27017 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
27018 if (res > 0xF) corf = 6;
27019 res += (dst & 0xF0) - (src & 0xF0);
27021 flag_X = flag_C = (s32)res < (s32)corf ? M68K_SR_C : 0;
27022 if (res > 0xff) res += 0xA0;
27023 res = (res - corf) & 0xFF;
27027 WRITE_BYTE_F(adr, res)
27039 adr = AREG((Opcode >> 0) & 7) - 1;
27040 AREG((Opcode >> 0) & 7) = adr;
27042 READ_BYTE_F(adr, src)
27045 READ_BYTE_F(adr, dst)
27046 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
27047 if (res > 0xF) corf = 6;
27048 res += (dst & 0xF0) - (src & 0xF0);
27050 flag_X = flag_C = (s32)res < (s32)corf ? M68K_SR_C : 0;
27051 if (res > 0xff) res += 0xA0;
27052 res = (res - corf) & 0xFF;
27056 WRITE_BYTE_F(adr, res)
27071 READ_BYTE_F(adr, src)
27074 READ_BYTE_F(adr, dst)
27075 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
27076 if (res > 0xF) corf = 6;
27077 res += (dst & 0xF0) - (src & 0xF0);
27079 flag_X = flag_C = (s32)res < (s32)corf ? M68K_SR_C : 0;
27080 if (res > 0xff) res += 0xA0;
27081 res = (res - corf) & 0xFF;
27085 WRITE_BYTE_F(adr, res)
27096 src = DREGu16((Opcode >> 0) & 7);
27099 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27100 #ifdef USE_CYCLONE_TIMING_DIV
27106 dst = DREGu32((Opcode >> 9) & 7);
27113 if (q & 0xFFFF0000)
27115 flag_V = M68K_SR_V;
27116 #ifdef USE_CYCLONE_TIMING_DIV
27125 flag_V = flag_C = 0;
27126 res = q | (r << 16);
27127 DREGu32((Opcode >> 9) & 7) = res;
27129 #ifdef USE_CYCLONE_TIMING_DIV
27142 adr = AREG((Opcode >> 0) & 7);
27144 READ_WORD_F(adr, src)
27147 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27148 #ifdef USE_CYCLONE_TIMING_DIV
27154 dst = DREGu32((Opcode >> 9) & 7);
27161 if (q & 0xFFFF0000)
27163 flag_V = M68K_SR_V;
27164 #ifdef USE_CYCLONE_TIMING_DIV
27173 flag_V = flag_C = 0;
27174 res = q | (r << 16);
27175 DREGu32((Opcode >> 9) & 7) = res;
27177 #ifdef USE_CYCLONE_TIMING_DIV
27190 adr = AREG((Opcode >> 0) & 7);
27191 AREG((Opcode >> 0) & 7) += 2;
27193 READ_WORD_F(adr, src)
27196 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27197 #ifdef USE_CYCLONE_TIMING_DIV
27203 dst = DREGu32((Opcode >> 9) & 7);
27210 if (q & 0xFFFF0000)
27212 flag_V = M68K_SR_V;
27213 #ifdef USE_CYCLONE_TIMING_DIV
27222 flag_V = flag_C = 0;
27223 res = q | (r << 16);
27224 DREGu32((Opcode >> 9) & 7) = res;
27226 #ifdef USE_CYCLONE_TIMING_DIV
27239 adr = AREG((Opcode >> 0) & 7) - 2;
27240 AREG((Opcode >> 0) & 7) = adr;
27242 READ_WORD_F(adr, src)
27245 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27246 #ifdef USE_CYCLONE_TIMING_DIV
27252 dst = DREGu32((Opcode >> 9) & 7);
27259 if (q & 0xFFFF0000)
27261 flag_V = M68K_SR_V;
27262 #ifdef USE_CYCLONE_TIMING_DIV
27271 flag_V = flag_C = 0;
27272 res = q | (r << 16);
27273 DREGu32((Opcode >> 9) & 7) = res;
27275 #ifdef USE_CYCLONE_TIMING_DIV
27289 adr += AREG((Opcode >> 0) & 7);
27291 READ_WORD_F(adr, src)
27294 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27295 #ifdef USE_CYCLONE_TIMING_DIV
27301 dst = DREGu32((Opcode >> 9) & 7);
27308 if (q & 0xFFFF0000)
27310 flag_V = M68K_SR_V;
27311 #ifdef USE_CYCLONE_TIMING_DIV
27320 flag_V = flag_C = 0;
27321 res = q | (r << 16);
27322 DREGu32((Opcode >> 9) & 7) = res;
27324 #ifdef USE_CYCLONE_TIMING_DIV
27337 adr = AREG((Opcode >> 0) & 7);
27340 READ_WORD_F(adr, src)
27343 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27344 #ifdef USE_CYCLONE_TIMING_DIV
27350 dst = DREGu32((Opcode >> 9) & 7);
27357 if (q & 0xFFFF0000)
27359 flag_V = M68K_SR_V;
27360 #ifdef USE_CYCLONE_TIMING_DIV
27369 flag_V = flag_C = 0;
27370 res = q | (r << 16);
27371 DREGu32((Opcode >> 9) & 7) = res;
27373 #ifdef USE_CYCLONE_TIMING_DIV
27388 READ_WORD_F(adr, src)
27391 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27392 #ifdef USE_CYCLONE_TIMING_DIV
27398 dst = DREGu32((Opcode >> 9) & 7);
27405 if (q & 0xFFFF0000)
27407 flag_V = M68K_SR_V;
27408 #ifdef USE_CYCLONE_TIMING_DIV
27417 flag_V = flag_C = 0;
27418 res = q | (r << 16);
27419 DREGu32((Opcode >> 9) & 7) = res;
27421 #ifdef USE_CYCLONE_TIMING_DIV
27436 READ_WORD_F(adr, src)
27439 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27440 #ifdef USE_CYCLONE_TIMING_DIV
27446 dst = DREGu32((Opcode >> 9) & 7);
27453 if (q & 0xFFFF0000)
27455 flag_V = M68K_SR_V;
27456 #ifdef USE_CYCLONE_TIMING_DIV
27465 flag_V = flag_C = 0;
27466 res = q | (r << 16);
27467 DREGu32((Opcode >> 9) & 7) = res;
27469 #ifdef USE_CYCLONE_TIMING_DIV
27482 adr = GET_SWORD + GET_PC;
27485 READ_WORD_F(adr, src)
27488 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27489 #ifdef USE_CYCLONE_TIMING_DIV
27495 dst = DREGu32((Opcode >> 9) & 7);
27502 if (q & 0xFFFF0000)
27504 flag_V = M68K_SR_V;
27505 #ifdef USE_CYCLONE_TIMING_DIV
27514 flag_V = flag_C = 0;
27515 res = q | (r << 16);
27516 DREGu32((Opcode >> 9) & 7) = res;
27518 #ifdef USE_CYCLONE_TIMING_DIV
27534 READ_WORD_F(adr, src)
27537 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27538 #ifdef USE_CYCLONE_TIMING_DIV
27544 dst = DREGu32((Opcode >> 9) & 7);
27551 if (q & 0xFFFF0000)
27553 flag_V = M68K_SR_V;
27554 #ifdef USE_CYCLONE_TIMING_DIV
27563 flag_V = flag_C = 0;
27564 res = q | (r << 16);
27565 DREGu32((Opcode >> 9) & 7) = res;
27567 #ifdef USE_CYCLONE_TIMING_DIV
27583 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27584 #ifdef USE_CYCLONE_TIMING_DIV
27590 dst = DREGu32((Opcode >> 9) & 7);
27597 if (q & 0xFFFF0000)
27599 flag_V = M68K_SR_V;
27600 #ifdef USE_CYCLONE_TIMING_DIV
27609 flag_V = flag_C = 0;
27610 res = q | (r << 16);
27611 DREGu32((Opcode >> 9) & 7) = res;
27613 #ifdef USE_CYCLONE_TIMING_DIV
27629 READ_WORD_F(adr, src)
27632 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27633 #ifdef USE_CYCLONE_TIMING_DIV
27639 dst = DREGu32((Opcode >> 9) & 7);
27646 if (q & 0xFFFF0000)
27648 flag_V = M68K_SR_V;
27649 #ifdef USE_CYCLONE_TIMING_DIV
27658 flag_V = flag_C = 0;
27659 res = q | (r << 16);
27660 DREGu32((Opcode >> 9) & 7) = res;
27662 #ifdef USE_CYCLONE_TIMING_DIV
27678 READ_WORD_F(adr, src)
27681 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27682 #ifdef USE_CYCLONE_TIMING_DIV
27688 dst = DREGu32((Opcode >> 9) & 7);
27695 if (q & 0xFFFF0000)
27697 flag_V = M68K_SR_V;
27698 #ifdef USE_CYCLONE_TIMING_DIV
27707 flag_V = flag_C = 0;
27708 res = q | (r << 16);
27709 DREGu32((Opcode >> 9) & 7) = res;
27711 #ifdef USE_CYCLONE_TIMING_DIV
27724 src = (s32)DREGs16((Opcode >> 0) & 7);
27727 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27728 #ifdef USE_CYCLONE_TIMING_DIV
27733 dst = DREGu32((Opcode >> 9) & 7);
27734 if ((dst == 0x80000000) && (src == (u32)-1))
27736 flag_NotZ = flag_N = 0;
27737 flag_V = flag_C = 0;
27739 DREGu32((Opcode >> 9) & 7) = res;
27740 #ifdef USE_CYCLONE_TIMING_DIV
27748 q = (s32)dst / (s32)src;
27749 r = (s32)dst % (s32)src;
27751 if ((q > 0x7FFF) || (q < -0x8000))
27753 flag_V = M68K_SR_V;
27754 #ifdef USE_CYCLONE_TIMING_DIV
27762 flag_V = flag_C = 0;
27763 res = q | (r << 16);
27764 DREGu32((Opcode >> 9) & 7) = res;
27766 #ifdef USE_CYCLONE_TIMING_DIV
27767 end81C0: m68kcontext.io_cycle_counter -= 50;
27778 adr = AREG((Opcode >> 0) & 7);
27780 READSX_WORD_F(adr, src)
27783 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27784 #ifdef USE_CYCLONE_TIMING_DIV
27789 dst = DREGu32((Opcode >> 9) & 7);
27790 if ((dst == 0x80000000) && (src == (u32)-1))
27792 flag_NotZ = flag_N = 0;
27793 flag_V = flag_C = 0;
27795 DREGu32((Opcode >> 9) & 7) = res;
27796 #ifdef USE_CYCLONE_TIMING_DIV
27804 q = (s32)dst / (s32)src;
27805 r = (s32)dst % (s32)src;
27807 if ((q > 0x7FFF) || (q < -0x8000))
27809 flag_V = M68K_SR_V;
27810 #ifdef USE_CYCLONE_TIMING_DIV
27818 flag_V = flag_C = 0;
27819 res = q | (r << 16);
27820 DREGu32((Opcode >> 9) & 7) = res;
27822 #ifdef USE_CYCLONE_TIMING_DIV
27823 end81D0: m68kcontext.io_cycle_counter -= 50;
27834 adr = AREG((Opcode >> 0) & 7);
27835 AREG((Opcode >> 0) & 7) += 2;
27837 READSX_WORD_F(adr, src)
27840 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27841 #ifdef USE_CYCLONE_TIMING_DIV
27846 dst = DREGu32((Opcode >> 9) & 7);
27847 if ((dst == 0x80000000) && (src == (u32)-1))
27849 flag_NotZ = flag_N = 0;
27850 flag_V = flag_C = 0;
27852 DREGu32((Opcode >> 9) & 7) = res;
27853 #ifdef USE_CYCLONE_TIMING_DIV
27861 q = (s32)dst / (s32)src;
27862 r = (s32)dst % (s32)src;
27864 if ((q > 0x7FFF) || (q < -0x8000))
27866 flag_V = M68K_SR_V;
27867 #ifdef USE_CYCLONE_TIMING_DIV
27875 flag_V = flag_C = 0;
27876 res = q | (r << 16);
27877 DREGu32((Opcode >> 9) & 7) = res;
27879 #ifdef USE_CYCLONE_TIMING_DIV
27880 end81D8: m68kcontext.io_cycle_counter -= 50;
27891 adr = AREG((Opcode >> 0) & 7) - 2;
27892 AREG((Opcode >> 0) & 7) = adr;
27894 READSX_WORD_F(adr, src)
27897 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27898 #ifdef USE_CYCLONE_TIMING_DIV
27903 dst = DREGu32((Opcode >> 9) & 7);
27904 if ((dst == 0x80000000) && (src == (u32)-1))
27906 flag_NotZ = flag_N = 0;
27907 flag_V = flag_C = 0;
27909 DREGu32((Opcode >> 9) & 7) = res;
27910 #ifdef USE_CYCLONE_TIMING_DIV
27918 q = (s32)dst / (s32)src;
27919 r = (s32)dst % (s32)src;
27921 if ((q > 0x7FFF) || (q < -0x8000))
27923 flag_V = M68K_SR_V;
27924 #ifdef USE_CYCLONE_TIMING_DIV
27932 flag_V = flag_C = 0;
27933 res = q | (r << 16);
27934 DREGu32((Opcode >> 9) & 7) = res;
27936 #ifdef USE_CYCLONE_TIMING_DIV
27937 end81E0: m68kcontext.io_cycle_counter -= 50;
27949 adr += AREG((Opcode >> 0) & 7);
27951 READSX_WORD_F(adr, src)
27954 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27955 #ifdef USE_CYCLONE_TIMING_DIV
27960 dst = DREGu32((Opcode >> 9) & 7);
27961 if ((dst == 0x80000000) && (src == (u32)-1))
27963 flag_NotZ = flag_N = 0;
27964 flag_V = flag_C = 0;
27966 DREGu32((Opcode >> 9) & 7) = res;
27967 #ifdef USE_CYCLONE_TIMING_DIV
27975 q = (s32)dst / (s32)src;
27976 r = (s32)dst % (s32)src;
27978 if ((q > 0x7FFF) || (q < -0x8000))
27980 flag_V = M68K_SR_V;
27981 #ifdef USE_CYCLONE_TIMING_DIV
27989 flag_V = flag_C = 0;
27990 res = q | (r << 16);
27991 DREGu32((Opcode >> 9) & 7) = res;
27993 #ifdef USE_CYCLONE_TIMING_DIV
27994 end81E8: m68kcontext.io_cycle_counter -= 50;
28005 adr = AREG((Opcode >> 0) & 7);
28008 READSX_WORD_F(adr, src)
28011 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28012 #ifdef USE_CYCLONE_TIMING_DIV
28017 dst = DREGu32((Opcode >> 9) & 7);
28018 if ((dst == 0x80000000) && (src == (u32)-1))
28020 flag_NotZ = flag_N = 0;
28021 flag_V = flag_C = 0;
28023 DREGu32((Opcode >> 9) & 7) = res;
28024 #ifdef USE_CYCLONE_TIMING_DIV
28032 q = (s32)dst / (s32)src;
28033 r = (s32)dst % (s32)src;
28035 if ((q > 0x7FFF) || (q < -0x8000))
28037 flag_V = M68K_SR_V;
28038 #ifdef USE_CYCLONE_TIMING_DIV
28046 flag_V = flag_C = 0;
28047 res = q | (r << 16);
28048 DREGu32((Opcode >> 9) & 7) = res;
28050 #ifdef USE_CYCLONE_TIMING_DIV
28051 end81F0: m68kcontext.io_cycle_counter -= 50;
28064 READSX_WORD_F(adr, src)
28067 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28068 #ifdef USE_CYCLONE_TIMING_DIV
28073 dst = DREGu32((Opcode >> 9) & 7);
28074 if ((dst == 0x80000000) && (src == (u32)-1))
28076 flag_NotZ = flag_N = 0;
28077 flag_V = flag_C = 0;
28079 DREGu32((Opcode >> 9) & 7) = res;
28080 #ifdef USE_CYCLONE_TIMING_DIV
28088 q = (s32)dst / (s32)src;
28089 r = (s32)dst % (s32)src;
28091 if ((q > 0x7FFF) || (q < -0x8000))
28093 flag_V = M68K_SR_V;
28094 #ifdef USE_CYCLONE_TIMING_DIV
28102 flag_V = flag_C = 0;
28103 res = q | (r << 16);
28104 DREGu32((Opcode >> 9) & 7) = res;
28106 #ifdef USE_CYCLONE_TIMING_DIV
28107 end81F8: m68kcontext.io_cycle_counter -= 50;
28120 READSX_WORD_F(adr, src)
28123 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28124 #ifdef USE_CYCLONE_TIMING_DIV
28129 dst = DREGu32((Opcode >> 9) & 7);
28130 if ((dst == 0x80000000) && (src == (u32)-1))
28132 flag_NotZ = flag_N = 0;
28133 flag_V = flag_C = 0;
28135 DREGu32((Opcode >> 9) & 7) = res;
28136 #ifdef USE_CYCLONE_TIMING_DIV
28144 q = (s32)dst / (s32)src;
28145 r = (s32)dst % (s32)src;
28147 if ((q > 0x7FFF) || (q < -0x8000))
28149 flag_V = M68K_SR_V;
28150 #ifdef USE_CYCLONE_TIMING_DIV
28158 flag_V = flag_C = 0;
28159 res = q | (r << 16);
28160 DREGu32((Opcode >> 9) & 7) = res;
28162 #ifdef USE_CYCLONE_TIMING_DIV
28163 end81F9: m68kcontext.io_cycle_counter -= 50;
28174 adr = GET_SWORD + GET_PC;
28177 READSX_WORD_F(adr, src)
28180 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28181 #ifdef USE_CYCLONE_TIMING_DIV
28186 dst = DREGu32((Opcode >> 9) & 7);
28187 if ((dst == 0x80000000) && (src == (u32)-1))
28189 flag_NotZ = flag_N = 0;
28190 flag_V = flag_C = 0;
28192 DREGu32((Opcode >> 9) & 7) = res;
28193 #ifdef USE_CYCLONE_TIMING_DIV
28201 q = (s32)dst / (s32)src;
28202 r = (s32)dst % (s32)src;
28204 if ((q > 0x7FFF) || (q < -0x8000))
28206 flag_V = M68K_SR_V;
28207 #ifdef USE_CYCLONE_TIMING_DIV
28215 flag_V = flag_C = 0;
28216 res = q | (r << 16);
28217 DREGu32((Opcode >> 9) & 7) = res;
28219 #ifdef USE_CYCLONE_TIMING_DIV
28220 end81FA: m68kcontext.io_cycle_counter -= 50;
28234 READSX_WORD_F(adr, src)
28237 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28238 #ifdef USE_CYCLONE_TIMING_DIV
28243 dst = DREGu32((Opcode >> 9) & 7);
28244 if ((dst == 0x80000000) && (src == (u32)-1))
28246 flag_NotZ = flag_N = 0;
28247 flag_V = flag_C = 0;
28249 DREGu32((Opcode >> 9) & 7) = res;
28250 #ifdef USE_CYCLONE_TIMING_DIV
28258 q = (s32)dst / (s32)src;
28259 r = (s32)dst % (s32)src;
28261 if ((q > 0x7FFF) || (q < -0x8000))
28263 flag_V = M68K_SR_V;
28264 #ifdef USE_CYCLONE_TIMING_DIV
28272 flag_V = flag_C = 0;
28273 res = q | (r << 16);
28274 DREGu32((Opcode >> 9) & 7) = res;
28276 #ifdef USE_CYCLONE_TIMING_DIV
28277 end81FB: m68kcontext.io_cycle_counter -= 50;
28291 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28292 #ifdef USE_CYCLONE_TIMING_DIV
28297 dst = DREGu32((Opcode >> 9) & 7);
28298 if ((dst == 0x80000000) && (src == (u32)-1))
28300 flag_NotZ = flag_N = 0;
28301 flag_V = flag_C = 0;
28303 DREGu32((Opcode >> 9) & 7) = res;
28304 #ifdef USE_CYCLONE_TIMING_DIV
28312 q = (s32)dst / (s32)src;
28313 r = (s32)dst % (s32)src;
28315 if ((q > 0x7FFF) || (q < -0x8000))
28317 flag_V = M68K_SR_V;
28318 #ifdef USE_CYCLONE_TIMING_DIV
28326 flag_V = flag_C = 0;
28327 res = q | (r << 16);
28328 DREGu32((Opcode >> 9) & 7) = res;
28330 #ifdef USE_CYCLONE_TIMING_DIV
28331 end81FC: m68kcontext.io_cycle_counter -= 50;
28345 READSX_WORD_F(adr, src)
28348 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28349 #ifdef USE_CYCLONE_TIMING_DIV
28354 dst = DREGu32((Opcode >> 9) & 7);
28355 if ((dst == 0x80000000) && (src == (u32)-1))
28357 flag_NotZ = flag_N = 0;
28358 flag_V = flag_C = 0;
28360 DREGu32((Opcode >> 9) & 7) = res;
28361 #ifdef USE_CYCLONE_TIMING_DIV
28369 q = (s32)dst / (s32)src;
28370 r = (s32)dst % (s32)src;
28372 if ((q > 0x7FFF) || (q < -0x8000))
28374 flag_V = M68K_SR_V;
28375 #ifdef USE_CYCLONE_TIMING_DIV
28383 flag_V = flag_C = 0;
28384 res = q | (r << 16);
28385 DREGu32((Opcode >> 9) & 7) = res;
28387 #ifdef USE_CYCLONE_TIMING_DIV
28388 end81DF: m68kcontext.io_cycle_counter -= 50;
28402 READSX_WORD_F(adr, src)
28405 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28406 #ifdef USE_CYCLONE_TIMING_DIV
28411 dst = DREGu32((Opcode >> 9) & 7);
28412 if ((dst == 0x80000000) && (src == (u32)-1))
28414 flag_NotZ = flag_N = 0;
28415 flag_V = flag_C = 0;
28417 DREGu32((Opcode >> 9) & 7) = res;
28418 #ifdef USE_CYCLONE_TIMING_DIV
28426 q = (s32)dst / (s32)src;
28427 r = (s32)dst % (s32)src;
28429 if ((q > 0x7FFF) || (q < -0x8000))
28431 flag_V = M68K_SR_V;
28432 #ifdef USE_CYCLONE_TIMING_DIV
28440 flag_V = flag_C = 0;
28441 res = q | (r << 16);
28442 DREGu32((Opcode >> 9) & 7) = res;
28444 #ifdef USE_CYCLONE_TIMING_DIV
28445 end81E7: m68kcontext.io_cycle_counter -= 50;
28456 src = DREGu8((Opcode >> 0) & 7);
28457 dst = DREGu8((Opcode >> 9) & 7);
28459 flag_N = flag_X = flag_C = res;
28460 flag_V = (src ^ dst) & (res ^ dst);
28461 flag_NotZ = res & 0xFF;
28462 DREGu8((Opcode >> 9) & 7) = res;
28473 // can't read byte from Ax registers !
28474 m68kcontext.execinfo |= M68K_FAULTED;
28475 m68kcontext.io_cycle_counter = 0;
28477 goto famec_Exec_End;
28478 dst = DREGu8((Opcode >> 9) & 7);
28480 flag_N = flag_X = flag_C = res;
28481 flag_V = (src ^ dst) & (res ^ dst);
28482 flag_NotZ = res & 0xFF;
28483 DREGu8((Opcode >> 9) & 7) = res;
28495 adr = AREG((Opcode >> 0) & 7);
28497 READ_BYTE_F(adr, src)
28498 dst = DREGu8((Opcode >> 9) & 7);
28500 flag_N = flag_X = flag_C = res;
28501 flag_V = (src ^ dst) & (res ^ dst);
28502 flag_NotZ = res & 0xFF;
28503 DREGu8((Opcode >> 9) & 7) = res;
28514 adr = AREG((Opcode >> 0) & 7);
28515 AREG((Opcode >> 0) & 7) += 1;
28517 READ_BYTE_F(adr, src)
28518 dst = DREGu8((Opcode >> 9) & 7);
28520 flag_N = flag_X = flag_C = res;
28521 flag_V = (src ^ dst) & (res ^ dst);
28522 flag_NotZ = res & 0xFF;
28523 DREGu8((Opcode >> 9) & 7) = res;
28534 adr = AREG((Opcode >> 0) & 7) - 1;
28535 AREG((Opcode >> 0) & 7) = adr;
28537 READ_BYTE_F(adr, src)
28538 dst = DREGu8((Opcode >> 9) & 7);
28540 flag_N = flag_X = flag_C = res;
28541 flag_V = (src ^ dst) & (res ^ dst);
28542 flag_NotZ = res & 0xFF;
28543 DREGu8((Opcode >> 9) & 7) = res;
28555 adr += AREG((Opcode >> 0) & 7);
28557 READ_BYTE_F(adr, src)
28558 dst = DREGu8((Opcode >> 9) & 7);
28560 flag_N = flag_X = flag_C = res;
28561 flag_V = (src ^ dst) & (res ^ dst);
28562 flag_NotZ = res & 0xFF;
28563 DREGu8((Opcode >> 9) & 7) = res;
28574 adr = AREG((Opcode >> 0) & 7);
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;
28615 READ_BYTE_F(adr, src)
28616 dst = DREGu8((Opcode >> 9) & 7);
28618 flag_N = flag_X = flag_C = res;
28619 flag_V = (src ^ dst) & (res ^ dst);
28620 flag_NotZ = res & 0xFF;
28621 DREGu8((Opcode >> 9) & 7) = res;
28632 adr = GET_SWORD + GET_PC;
28635 READ_BYTE_F(adr, src)
28636 dst = DREGu8((Opcode >> 9) & 7);
28638 flag_N = flag_X = flag_C = res;
28639 flag_V = (src ^ dst) & (res ^ dst);
28640 flag_NotZ = res & 0xFF;
28641 DREGu8((Opcode >> 9) & 7) = res;
28655 READ_BYTE_F(adr, src)
28656 dst = DREGu8((Opcode >> 9) & 7);
28658 flag_N = flag_X = flag_C = res;
28659 flag_V = (src ^ dst) & (res ^ dst);
28660 flag_NotZ = res & 0xFF;
28661 DREGu8((Opcode >> 9) & 7) = res;
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;
28691 READ_BYTE_F(adr, src)
28692 dst = DREGu8((Opcode >> 9) & 7);
28694 flag_N = flag_X = flag_C = res;
28695 flag_V = (src ^ dst) & (res ^ dst);
28696 flag_NotZ = res & 0xFF;
28697 DREGu8((Opcode >> 9) & 7) = res;
28711 READ_BYTE_F(adr, src)
28712 dst = DREGu8((Opcode >> 9) & 7);
28714 flag_N = flag_X = flag_C = res;
28715 flag_V = (src ^ dst) & (res ^ dst);
28716 flag_NotZ = res & 0xFF;
28717 DREGu8((Opcode >> 9) & 7) = res;
28728 src = DREGu16((Opcode >> 0) & 7);
28729 dst = DREGu16((Opcode >> 9) & 7);
28731 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28732 flag_N = flag_X = flag_C = res >> 8;
28733 flag_NotZ = res & 0xFFFF;
28734 DREGu16((Opcode >> 9) & 7) = res;
28744 src = AREGu16((Opcode >> 0) & 7);
28745 dst = DREGu16((Opcode >> 9) & 7);
28747 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28748 flag_N = flag_X = flag_C = res >> 8;
28749 flag_NotZ = res & 0xFFFF;
28750 DREGu16((Opcode >> 9) & 7) = res;
28760 adr = AREG((Opcode >> 0) & 7);
28762 READ_WORD_F(adr, src)
28763 dst = DREGu16((Opcode >> 9) & 7);
28765 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28766 flag_N = flag_X = flag_C = res >> 8;
28767 flag_NotZ = res & 0xFFFF;
28768 DREGu16((Opcode >> 9) & 7) = res;
28779 adr = AREG((Opcode >> 0) & 7);
28780 AREG((Opcode >> 0) & 7) += 2;
28782 READ_WORD_F(adr, src)
28783 dst = DREGu16((Opcode >> 9) & 7);
28785 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28786 flag_N = flag_X = flag_C = res >> 8;
28787 flag_NotZ = res & 0xFFFF;
28788 DREGu16((Opcode >> 9) & 7) = res;
28799 adr = AREG((Opcode >> 0) & 7) - 2;
28800 AREG((Opcode >> 0) & 7) = adr;
28802 READ_WORD_F(adr, src)
28803 dst = DREGu16((Opcode >> 9) & 7);
28805 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28806 flag_N = flag_X = flag_C = res >> 8;
28807 flag_NotZ = res & 0xFFFF;
28808 DREGu16((Opcode >> 9) & 7) = res;
28820 adr += AREG((Opcode >> 0) & 7);
28822 READ_WORD_F(adr, src)
28823 dst = DREGu16((Opcode >> 9) & 7);
28825 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28826 flag_N = flag_X = flag_C = res >> 8;
28827 flag_NotZ = res & 0xFFFF;
28828 DREGu16((Opcode >> 9) & 7) = res;
28839 adr = AREG((Opcode >> 0) & 7);
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;
28880 READ_WORD_F(adr, src)
28881 dst = DREGu16((Opcode >> 9) & 7);
28883 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28884 flag_N = flag_X = flag_C = res >> 8;
28885 flag_NotZ = res & 0xFFFF;
28886 DREGu16((Opcode >> 9) & 7) = res;
28897 adr = GET_SWORD + GET_PC;
28900 READ_WORD_F(adr, src)
28901 dst = DREGu16((Opcode >> 9) & 7);
28903 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28904 flag_N = flag_X = flag_C = res >> 8;
28905 flag_NotZ = res & 0xFFFF;
28906 DREGu16((Opcode >> 9) & 7) = res;
28920 READ_WORD_F(adr, src)
28921 dst = DREGu16((Opcode >> 9) & 7);
28923 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28924 flag_N = flag_X = flag_C = res >> 8;
28925 flag_NotZ = res & 0xFFFF;
28926 DREGu16((Opcode >> 9) & 7) = res;
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;
28956 READ_WORD_F(adr, src)
28957 dst = DREGu16((Opcode >> 9) & 7);
28959 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28960 flag_N = flag_X = flag_C = res >> 8;
28961 flag_NotZ = res & 0xFFFF;
28962 DREGu16((Opcode >> 9) & 7) = res;
28976 READ_WORD_F(adr, src)
28977 dst = DREGu16((Opcode >> 9) & 7);
28979 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28980 flag_N = flag_X = flag_C = res >> 8;
28981 flag_NotZ = res & 0xFFFF;
28982 DREGu16((Opcode >> 9) & 7) = res;
28993 src = DREGu32((Opcode >> 0) & 7);
28994 dst = DREGu32((Opcode >> 9) & 7);
28997 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28998 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28999 flag_N = res >> 24;
29000 DREGu32((Opcode >> 9) & 7) = res;
29010 src = AREGu32((Opcode >> 0) & 7);
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;
29027 adr = AREG((Opcode >> 0) & 7);
29029 READ_LONG_F(adr, src)
29030 dst = DREGu32((Opcode >> 9) & 7);
29033 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29034 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29035 flag_N = res >> 24;
29036 DREGu32((Opcode >> 9) & 7) = res;
29047 adr = AREG((Opcode >> 0) & 7);
29048 AREG((Opcode >> 0) & 7) += 4;
29050 READ_LONG_F(adr, src)
29051 dst = DREGu32((Opcode >> 9) & 7);
29054 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29055 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29056 flag_N = res >> 24;
29057 DREGu32((Opcode >> 9) & 7) = res;
29068 adr = AREG((Opcode >> 0) & 7) - 4;
29069 AREG((Opcode >> 0) & 7) = adr;
29071 READ_LONG_F(adr, src)
29072 dst = DREGu32((Opcode >> 9) & 7);
29075 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29076 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29077 flag_N = res >> 24;
29078 DREGu32((Opcode >> 9) & 7) = res;
29090 adr += AREG((Opcode >> 0) & 7);
29092 READ_LONG_F(adr, src)
29093 dst = DREGu32((Opcode >> 9) & 7);
29096 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29097 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29098 flag_N = res >> 24;
29099 DREGu32((Opcode >> 9) & 7) = res;
29110 adr = AREG((Opcode >> 0) & 7);
29113 READ_LONG_F(adr, src)
29114 dst = DREGu32((Opcode >> 9) & 7);
29117 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29118 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29119 flag_N = res >> 24;
29120 DREGu32((Opcode >> 9) & 7) = res;
29133 READ_LONG_F(adr, src)
29134 dst = DREGu32((Opcode >> 9) & 7);
29137 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29138 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29139 flag_N = res >> 24;
29140 DREGu32((Opcode >> 9) & 7) = res;
29153 READ_LONG_F(adr, src)
29154 dst = DREGu32((Opcode >> 9) & 7);
29157 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29158 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29159 flag_N = res >> 24;
29160 DREGu32((Opcode >> 9) & 7) = res;
29171 adr = GET_SWORD + GET_PC;
29174 READ_LONG_F(adr, src)
29175 dst = DREGu32((Opcode >> 9) & 7);
29178 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29179 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29180 flag_N = res >> 24;
29181 DREGu32((Opcode >> 9) & 7) = res;
29195 READ_LONG_F(adr, src)
29196 dst = DREGu32((Opcode >> 9) & 7);
29199 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29200 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29201 flag_N = res >> 24;
29202 DREGu32((Opcode >> 9) & 7) = res;
29214 dst = DREGu32((Opcode >> 9) & 7);
29217 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29218 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29219 flag_N = res >> 24;
29220 DREGu32((Opcode >> 9) & 7) = res;
29233 READ_LONG_F(adr, src)
29234 dst = DREGu32((Opcode >> 9) & 7);
29237 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29238 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29239 flag_N = res >> 24;
29240 DREGu32((Opcode >> 9) & 7) = res;
29254 READ_LONG_F(adr, src)
29255 dst = DREGu32((Opcode >> 9) & 7);
29258 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29259 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29260 flag_N = res >> 24;
29261 DREGu32((Opcode >> 9) & 7) = res;
29272 src = DREGu8((Opcode >> 9) & 7);
29273 adr = AREG((Opcode >> 0) & 7);
29275 READ_BYTE_F(adr, dst)
29277 flag_N = flag_X = flag_C = res;
29278 flag_V = (src ^ dst) & (res ^ dst);
29279 flag_NotZ = res & 0xFF;
29280 WRITE_BYTE_F(adr, res)
29291 src = DREGu8((Opcode >> 9) & 7);
29292 adr = AREG((Opcode >> 0) & 7);
29293 AREG((Opcode >> 0) & 7) += 1;
29295 READ_BYTE_F(adr, dst)
29297 flag_N = flag_X = flag_C = res;
29298 flag_V = (src ^ dst) & (res ^ dst);
29299 flag_NotZ = res & 0xFF;
29300 WRITE_BYTE_F(adr, res)
29311 src = DREGu8((Opcode >> 9) & 7);
29312 adr = AREG((Opcode >> 0) & 7) - 1;
29313 AREG((Opcode >> 0) & 7) = adr;
29315 READ_BYTE_F(adr, dst)
29317 flag_N = flag_X = flag_C = res;
29318 flag_V = (src ^ dst) & (res ^ dst);
29319 flag_NotZ = res & 0xFF;
29320 WRITE_BYTE_F(adr, res)
29331 src = DREGu8((Opcode >> 9) & 7);
29333 adr += AREG((Opcode >> 0) & 7);
29335 READ_BYTE_F(adr, dst)
29337 flag_N = flag_X = flag_C = res;
29338 flag_V = (src ^ dst) & (res ^ dst);
29339 flag_NotZ = res & 0xFF;
29340 WRITE_BYTE_F(adr, res)
29351 src = DREGu8((Opcode >> 9) & 7);
29352 adr = AREG((Opcode >> 0) & 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);
29393 READ_BYTE_F(adr, dst)
29395 flag_N = flag_X = flag_C = res;
29396 flag_V = (src ^ dst) & (res ^ dst);
29397 flag_NotZ = res & 0xFF;
29398 WRITE_BYTE_F(adr, res)
29409 src = DREGu8((Opcode >> 9) & 7);
29413 READ_BYTE_F(adr, dst)
29415 flag_N = flag_X = flag_C = res;
29416 flag_V = (src ^ dst) & (res ^ dst);
29417 flag_NotZ = res & 0xFF;
29418 WRITE_BYTE_F(adr, res)
29429 src = DREGu8((Opcode >> 9) & 7);
29433 READ_BYTE_F(adr, dst)
29435 flag_N = flag_X = flag_C = res;
29436 flag_V = (src ^ dst) & (res ^ dst);
29437 flag_NotZ = res & 0xFF;
29438 WRITE_BYTE_F(adr, res)
29449 src = DREGu16((Opcode >> 9) & 7);
29450 adr = AREG((Opcode >> 0) & 7);
29452 READ_WORD_F(adr, dst)
29454 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29455 flag_N = flag_X = flag_C = res >> 8;
29456 flag_NotZ = res & 0xFFFF;
29457 WRITE_WORD_F(adr, res)
29468 src = DREGu16((Opcode >> 9) & 7);
29469 adr = AREG((Opcode >> 0) & 7);
29470 AREG((Opcode >> 0) & 7) += 2;
29472 READ_WORD_F(adr, dst)
29474 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29475 flag_N = flag_X = flag_C = res >> 8;
29476 flag_NotZ = res & 0xFFFF;
29477 WRITE_WORD_F(adr, res)
29488 src = DREGu16((Opcode >> 9) & 7);
29489 adr = AREG((Opcode >> 0) & 7) - 2;
29490 AREG((Opcode >> 0) & 7) = adr;
29492 READ_WORD_F(adr, dst)
29494 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29495 flag_N = flag_X = flag_C = res >> 8;
29496 flag_NotZ = res & 0xFFFF;
29497 WRITE_WORD_F(adr, res)
29508 src = DREGu16((Opcode >> 9) & 7);
29510 adr += AREG((Opcode >> 0) & 7);
29512 READ_WORD_F(adr, dst)
29514 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29515 flag_N = flag_X = flag_C = res >> 8;
29516 flag_NotZ = res & 0xFFFF;
29517 WRITE_WORD_F(adr, res)
29528 src = DREGu16((Opcode >> 9) & 7);
29529 adr = AREG((Opcode >> 0) & 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);
29570 READ_WORD_F(adr, dst)
29572 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29573 flag_N = flag_X = flag_C = res >> 8;
29574 flag_NotZ = res & 0xFFFF;
29575 WRITE_WORD_F(adr, res)
29586 src = DREGu16((Opcode >> 9) & 7);
29590 READ_WORD_F(adr, dst)
29592 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29593 flag_N = flag_X = flag_C = res >> 8;
29594 flag_NotZ = res & 0xFFFF;
29595 WRITE_WORD_F(adr, res)
29606 src = DREGu16((Opcode >> 9) & 7);
29610 READ_WORD_F(adr, dst)
29612 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29613 flag_N = flag_X = flag_C = res >> 8;
29614 flag_NotZ = res & 0xFFFF;
29615 WRITE_WORD_F(adr, res)
29626 src = DREGu32((Opcode >> 9) & 7);
29627 adr = AREG((Opcode >> 0) & 7);
29629 READ_LONG_F(adr, dst)
29632 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29633 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29634 flag_N = res >> 24;
29635 WRITE_LONG_F(adr, res)
29646 src = DREGu32((Opcode >> 9) & 7);
29647 adr = AREG((Opcode >> 0) & 7);
29648 AREG((Opcode >> 0) & 7) += 4;
29650 READ_LONG_F(adr, dst)
29653 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29654 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29655 flag_N = res >> 24;
29656 WRITE_LONG_F(adr, res)
29667 src = DREGu32((Opcode >> 9) & 7);
29668 adr = AREG((Opcode >> 0) & 7) - 4;
29669 AREG((Opcode >> 0) & 7) = adr;
29671 READ_LONG_F(adr, dst)
29674 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29675 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29676 flag_N = res >> 24;
29677 WRITE_LONG_F(adr, res)
29688 src = DREGu32((Opcode >> 9) & 7);
29690 adr += AREG((Opcode >> 0) & 7);
29692 READ_LONG_F(adr, dst)
29695 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29696 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29697 flag_N = res >> 24;
29698 WRITE_LONG_F(adr, res)
29709 src = DREGu32((Opcode >> 9) & 7);
29710 adr = AREG((Opcode >> 0) & 7);
29713 READ_LONG_F(adr, dst)
29716 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29717 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29718 flag_N = res >> 24;
29719 WRITE_LONG_F(adr, res)
29730 src = DREGu32((Opcode >> 9) & 7);
29733 READ_LONG_F(adr, dst)
29736 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29737 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29738 flag_N = res >> 24;
29739 WRITE_LONG_F(adr, res)
29750 src = DREGu32((Opcode >> 9) & 7);
29753 READ_LONG_F(adr, dst)
29756 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29757 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29758 flag_N = res >> 24;
29759 WRITE_LONG_F(adr, res)
29770 src = DREGu32((Opcode >> 9) & 7);
29774 READ_LONG_F(adr, dst)
29777 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29778 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29779 flag_N = res >> 24;
29780 WRITE_LONG_F(adr, res)
29791 src = DREGu32((Opcode >> 9) & 7);
29795 READ_LONG_F(adr, dst)
29798 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29799 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29800 flag_N = res >> 24;
29801 WRITE_LONG_F(adr, res)
29812 src = DREGu8((Opcode >> 0) & 7);
29813 dst = DREGu8((Opcode >> 9) & 7);
29814 res = dst - src - ((flag_X >> 8) & 1);
29815 flag_N = flag_X = flag_C = res;
29816 flag_V = (src ^ dst) & (res ^ dst);
29817 flag_NotZ |= res & 0xFF;
29818 DREGu8((Opcode >> 9) & 7) = res;
29828 src = DREGu16((Opcode >> 0) & 7);
29829 dst = DREGu16((Opcode >> 9) & 7);
29830 res = dst - src - ((flag_X >> 8) & 1);
29831 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29832 flag_N = flag_X = flag_C = res >> 8;
29833 flag_NotZ |= res & 0xFFFF;
29834 DREGu16((Opcode >> 9) & 7) = res;
29844 src = DREGu32((Opcode >> 0) & 7);
29845 dst = DREGu32((Opcode >> 9) & 7);
29846 res = dst - src - ((flag_X >> 8) & 1);
29848 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29849 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29850 flag_N = res >> 24;
29851 DREGu32((Opcode >> 9) & 7) = res;
29861 adr = AREG((Opcode >> 0) & 7) - 1;
29862 AREG((Opcode >> 0) & 7) = adr;
29864 READ_BYTE_F(adr, src)
29865 adr = AREG((Opcode >> 9) & 7) - 1;
29866 AREG((Opcode >> 9) & 7) = adr;
29867 READ_BYTE_F(adr, dst)
29868 res = dst - src - ((flag_X >> 8) & 1);
29869 flag_N = flag_X = flag_C = res;
29870 flag_V = (src ^ dst) & (res ^ dst);
29871 flag_NotZ |= res & 0xFF;
29872 WRITE_BYTE_F(adr, res)
29883 adr = AREG((Opcode >> 0) & 7) - 2;
29884 AREG((Opcode >> 0) & 7) = adr;
29886 READ_WORD_F(adr, src)
29887 adr = AREG((Opcode >> 9) & 7) - 2;
29888 AREG((Opcode >> 9) & 7) = adr;
29889 READ_WORD_F(adr, dst)
29890 res = dst - src - ((flag_X >> 8) & 1);
29891 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29892 flag_N = flag_X = flag_C = res >> 8;
29893 flag_NotZ |= res & 0xFFFF;
29894 WRITE_WORD_F(adr, res)
29905 adr = AREG((Opcode >> 0) & 7) - 4;
29906 AREG((Opcode >> 0) & 7) = adr;
29908 READ_LONG_F(adr, src)
29909 adr = AREG((Opcode >> 9) & 7) - 4;
29910 AREG((Opcode >> 9) & 7) = adr;
29911 READ_LONG_F(adr, dst)
29912 res = dst - src - ((flag_X >> 8) & 1);
29914 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29915 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29916 flag_N = res >> 24;
29917 WRITE_LONG_F(adr, res)
29931 READ_BYTE_F(adr, src)
29932 adr = AREG((Opcode >> 9) & 7) - 1;
29933 AREG((Opcode >> 9) & 7) = adr;
29934 READ_BYTE_F(adr, dst)
29935 res = dst - src - ((flag_X >> 8) & 1);
29936 flag_N = flag_X = flag_C = res;
29937 flag_V = (src ^ dst) & (res ^ dst);
29938 flag_NotZ |= res & 0xFF;
29939 WRITE_BYTE_F(adr, res)
29953 READ_WORD_F(adr, src)
29954 adr = AREG((Opcode >> 9) & 7) - 2;
29955 AREG((Opcode >> 9) & 7) = adr;
29956 READ_WORD_F(adr, dst)
29957 res = dst - src - ((flag_X >> 8) & 1);
29958 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29959 flag_N = flag_X = flag_C = res >> 8;
29960 flag_NotZ |= res & 0xFFFF;
29961 WRITE_WORD_F(adr, res)
29975 READ_LONG_F(adr, src)
29976 adr = AREG((Opcode >> 9) & 7) - 4;
29977 AREG((Opcode >> 9) & 7) = adr;
29978 READ_LONG_F(adr, dst)
29979 res = dst - src - ((flag_X >> 8) & 1);
29981 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29982 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29983 flag_N = res >> 24;
29984 WRITE_LONG_F(adr, res)
29995 adr = AREG((Opcode >> 0) & 7) - 1;
29996 AREG((Opcode >> 0) & 7) = adr;
29998 READ_BYTE_F(adr, src)
30001 READ_BYTE_F(adr, dst)
30002 res = dst - src - ((flag_X >> 8) & 1);
30003 flag_N = flag_X = flag_C = res;
30004 flag_V = (src ^ dst) & (res ^ dst);
30005 flag_NotZ |= res & 0xFF;
30006 WRITE_BYTE_F(adr, res)
30017 adr = AREG((Opcode >> 0) & 7) - 2;
30018 AREG((Opcode >> 0) & 7) = adr;
30020 READ_WORD_F(adr, src)
30023 READ_WORD_F(adr, dst)
30024 res = dst - src - ((flag_X >> 8) & 1);
30025 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30026 flag_N = flag_X = flag_C = res >> 8;
30027 flag_NotZ |= res & 0xFFFF;
30028 WRITE_WORD_F(adr, res)
30039 adr = AREG((Opcode >> 0) & 7) - 4;
30040 AREG((Opcode >> 0) & 7) = adr;
30042 READ_LONG_F(adr, src)
30045 READ_LONG_F(adr, dst)
30046 res = dst - src - ((flag_X >> 8) & 1);
30048 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
30049 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
30050 flag_N = res >> 24;
30051 WRITE_LONG_F(adr, res)
30065 READ_BYTE_F(adr, src)
30068 READ_BYTE_F(adr, dst)
30069 res = dst - src - ((flag_X >> 8) & 1);
30070 flag_N = flag_X = flag_C = res;
30071 flag_V = (src ^ dst) & (res ^ dst);
30072 flag_NotZ |= res & 0xFF;
30073 WRITE_BYTE_F(adr, res)
30087 READ_WORD_F(adr, src)
30090 READ_WORD_F(adr, dst)
30091 res = dst - src - ((flag_X >> 8) & 1);
30092 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30093 flag_N = flag_X = flag_C = res >> 8;
30094 flag_NotZ |= res & 0xFFFF;
30095 WRITE_WORD_F(adr, res)
30109 READ_LONG_F(adr, src)
30112 READ_LONG_F(adr, dst)
30113 res = dst - src - ((flag_X >> 8) & 1);
30115 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
30116 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
30117 flag_N = res >> 24;
30118 WRITE_LONG_F(adr, res)
30129 src = (s32)DREGs16((Opcode >> 0) & 7);
30130 dst = AREGu32((Opcode >> 9) & 7);
30132 AREG((Opcode >> 9) & 7) = res;
30142 src = (s32)AREGs16((Opcode >> 0) & 7);
30143 dst = AREGu32((Opcode >> 9) & 7);
30145 AREG((Opcode >> 9) & 7) = res;
30155 adr = AREG((Opcode >> 0) & 7);
30157 READSX_WORD_F(adr, src)
30158 dst = AREGu32((Opcode >> 9) & 7);
30160 AREG((Opcode >> 9) & 7) = res;
30162 #ifdef USE_CYCLONE_TIMING
30175 adr = AREG((Opcode >> 0) & 7);
30176 AREG((Opcode >> 0) & 7) += 2;
30178 READSX_WORD_F(adr, src)
30179 dst = AREGu32((Opcode >> 9) & 7);
30181 AREG((Opcode >> 9) & 7) = res;
30183 #ifdef USE_CYCLONE_TIMING
30196 adr = AREG((Opcode >> 0) & 7) - 2;
30197 AREG((Opcode >> 0) & 7) = adr;
30199 READSX_WORD_F(adr, src)
30200 dst = AREGu32((Opcode >> 9) & 7);
30202 AREG((Opcode >> 9) & 7) = res;
30204 #ifdef USE_CYCLONE_TIMING
30218 adr += AREG((Opcode >> 0) & 7);
30220 READSX_WORD_F(adr, src)
30221 dst = AREGu32((Opcode >> 9) & 7);
30223 AREG((Opcode >> 9) & 7) = res;
30225 #ifdef USE_CYCLONE_TIMING
30238 adr = AREG((Opcode >> 0) & 7);
30241 READSX_WORD_F(adr, src)
30242 dst = AREGu32((Opcode >> 9) & 7);
30244 AREG((Opcode >> 9) & 7) = res;
30246 #ifdef USE_CYCLONE_TIMING
30261 READSX_WORD_F(adr, src)
30262 dst = AREGu32((Opcode >> 9) & 7);
30264 AREG((Opcode >> 9) & 7) = res;
30266 #ifdef USE_CYCLONE_TIMING
30281 READSX_WORD_F(adr, src)
30282 dst = AREGu32((Opcode >> 9) & 7);
30284 AREG((Opcode >> 9) & 7) = res;
30286 #ifdef USE_CYCLONE_TIMING
30299 adr = GET_SWORD + GET_PC;
30302 READSX_WORD_F(adr, src)
30303 dst = AREGu32((Opcode >> 9) & 7);
30305 AREG((Opcode >> 9) & 7) = res;
30307 #ifdef USE_CYCLONE_TIMING
30323 READSX_WORD_F(adr, src)
30324 dst = AREGu32((Opcode >> 9) & 7);
30326 AREG((Opcode >> 9) & 7) = res;
30328 #ifdef USE_CYCLONE_TIMING
30342 dst = AREGu32((Opcode >> 9) & 7);
30344 AREG((Opcode >> 9) & 7) = res;
30357 READSX_WORD_F(adr, src)
30358 dst = AREGu32((Opcode >> 9) & 7);
30360 AREG((Opcode >> 9) & 7) = res;
30362 #ifdef USE_CYCLONE_TIMING
30378 READSX_WORD_F(adr, src)
30379 dst = AREGu32((Opcode >> 9) & 7);
30381 AREG((Opcode >> 9) & 7) = res;
30383 #ifdef USE_CYCLONE_TIMING
30396 src = (s32)DREGs32((Opcode >> 0) & 7);
30397 dst = AREGu32((Opcode >> 9) & 7);
30399 AREG((Opcode >> 9) & 7) = res;
30400 #ifdef USE_CYCLONE_TIMING
30413 src = (s32)AREGs32((Opcode >> 0) & 7);
30414 dst = AREGu32((Opcode >> 9) & 7);
30416 AREG((Opcode >> 9) & 7) = res;
30417 #ifdef USE_CYCLONE_TIMING
30430 adr = AREG((Opcode >> 0) & 7);
30432 READSX_LONG_F(adr, src)
30433 dst = AREGu32((Opcode >> 9) & 7);
30435 AREG((Opcode >> 9) & 7) = res;
30446 adr = AREG((Opcode >> 0) & 7);
30447 AREG((Opcode >> 0) & 7) += 4;
30449 READSX_LONG_F(adr, src)
30450 dst = AREGu32((Opcode >> 9) & 7);
30452 AREG((Opcode >> 9) & 7) = res;
30463 adr = AREG((Opcode >> 0) & 7) - 4;
30464 AREG((Opcode >> 0) & 7) = adr;
30466 READSX_LONG_F(adr, src)
30467 dst = AREGu32((Opcode >> 9) & 7);
30469 AREG((Opcode >> 9) & 7) = res;
30481 adr += AREG((Opcode >> 0) & 7);
30483 READSX_LONG_F(adr, src)
30484 dst = AREGu32((Opcode >> 9) & 7);
30486 AREG((Opcode >> 9) & 7) = res;
30497 adr = AREG((Opcode >> 0) & 7);
30500 READSX_LONG_F(adr, src)
30501 dst = AREGu32((Opcode >> 9) & 7);
30503 AREG((Opcode >> 9) & 7) = res;
30516 READSX_LONG_F(adr, src)
30517 dst = AREGu32((Opcode >> 9) & 7);
30519 AREG((Opcode >> 9) & 7) = res;
30532 READSX_LONG_F(adr, src)
30533 dst = AREGu32((Opcode >> 9) & 7);
30535 AREG((Opcode >> 9) & 7) = res;
30546 adr = GET_SWORD + GET_PC;
30549 READSX_LONG_F(adr, src)
30550 dst = AREGu32((Opcode >> 9) & 7);
30552 AREG((Opcode >> 9) & 7) = res;
30566 READSX_LONG_F(adr, src)
30567 dst = AREGu32((Opcode >> 9) & 7);
30569 AREG((Opcode >> 9) & 7) = res;
30581 dst = AREGu32((Opcode >> 9) & 7);
30583 AREG((Opcode >> 9) & 7) = res;
30584 #ifdef USE_CYCLONE_TIMING
30600 READSX_LONG_F(adr, src)
30601 dst = AREGu32((Opcode >> 9) & 7);
30603 AREG((Opcode >> 9) & 7) = res;
30617 READSX_LONG_F(adr, src)
30618 dst = AREGu32((Opcode >> 9) & 7);
30620 AREG((Opcode >> 9) & 7) = res;
30631 src = DREGu8((Opcode >> 0) & 7);
30632 dst = DREGu8((Opcode >> 9) & 7);
30634 flag_N = flag_C = res;
30635 flag_V = (src ^ dst) & (res ^ dst);
30636 flag_NotZ = res & 0xFF;
30647 // can't read byte from Ax registers !
30648 m68kcontext.execinfo |= M68K_FAULTED;
30649 m68kcontext.io_cycle_counter = 0;
30651 goto famec_Exec_End;
30652 dst = DREGu8((Opcode >> 9) & 7);
30654 flag_N = flag_C = res;
30655 flag_V = (src ^ dst) & (res ^ dst);
30656 flag_NotZ = res & 0xFF;
30668 adr = AREG((Opcode >> 0) & 7);
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);
30687 AREG((Opcode >> 0) & 7) += 1;
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;
30705 adr = AREG((Opcode >> 0) & 7) - 1;
30706 AREG((Opcode >> 0) & 7) = adr;
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;
30725 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;
30743 adr = AREG((Opcode >> 0) & 7);
30746 READ_BYTE_F(adr, src)
30747 dst = DREGu8((Opcode >> 9) & 7);
30749 flag_N = flag_C = res;
30750 flag_V = (src ^ dst) & (res ^ dst);
30751 flag_NotZ = res & 0xFF;
30764 READ_BYTE_F(adr, src)
30765 dst = DREGu8((Opcode >> 9) & 7);
30767 flag_N = flag_C = res;
30768 flag_V = (src ^ dst) & (res ^ dst);
30769 flag_NotZ = res & 0xFF;
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;
30798 adr = GET_SWORD + GET_PC;
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;
30820 READ_BYTE_F(adr, src)
30821 dst = DREGu8((Opcode >> 9) & 7);
30823 flag_N = flag_C = res;
30824 flag_V = (src ^ dst) & (res ^ dst);
30825 flag_NotZ = res & 0xFF;
30837 dst = DREGu8((Opcode >> 9) & 7);
30839 flag_N = flag_C = res;
30840 flag_V = (src ^ dst) & (res ^ dst);
30841 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;
30873 READ_BYTE_F(adr, src)
30874 dst = DREGu8((Opcode >> 9) & 7);
30876 flag_N = flag_C = res;
30877 flag_V = (src ^ dst) & (res ^ dst);
30878 flag_NotZ = res & 0xFF;
30889 src = DREGu16((Opcode >> 0) & 7);
30890 dst = DREGu16((Opcode >> 9) & 7);
30892 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30893 flag_N = flag_C = res >> 8;
30894 flag_NotZ = res & 0xFFFF;
30904 src = AREGu16((Opcode >> 0) & 7);
30905 dst = DREGu16((Opcode >> 9) & 7);
30907 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30908 flag_N = flag_C = res >> 8;
30909 flag_NotZ = res & 0xFFFF;
30919 adr = AREG((Opcode >> 0) & 7);
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);
30938 AREG((Opcode >> 0) & 7) += 2;
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;
30956 adr = AREG((Opcode >> 0) & 7) - 2;
30957 AREG((Opcode >> 0) & 7) = adr;
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;
30976 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;
30994 adr = AREG((Opcode >> 0) & 7);
30997 READ_WORD_F(adr, src)
30998 dst = DREGu16((Opcode >> 9) & 7);
31000 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31001 flag_N = flag_C = res >> 8;
31002 flag_NotZ = res & 0xFFFF;
31015 READ_WORD_F(adr, src)
31016 dst = DREGu16((Opcode >> 9) & 7);
31018 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31019 flag_N = flag_C = res >> 8;
31020 flag_NotZ = res & 0xFFFF;
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;
31049 adr = GET_SWORD + GET_PC;
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;
31071 READ_WORD_F(adr, src)
31072 dst = DREGu16((Opcode >> 9) & 7);
31074 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31075 flag_N = flag_C = res >> 8;
31076 flag_NotZ = res & 0xFFFF;
31088 dst = DREGu16((Opcode >> 9) & 7);
31090 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31091 flag_N = flag_C = res >> 8;
31092 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;
31124 READ_WORD_F(adr, src)
31125 dst = DREGu16((Opcode >> 9) & 7);
31127 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31128 flag_N = flag_C = res >> 8;
31129 flag_NotZ = res & 0xFFFF;
31140 src = DREGu32((Opcode >> 0) & 7);
31141 dst = DREGu32((Opcode >> 9) & 7);
31144 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31145 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31146 flag_N = res >> 24;
31156 src = AREGu32((Opcode >> 0) & 7);
31157 dst = DREGu32((Opcode >> 9) & 7);
31160 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31161 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31162 flag_N = res >> 24;
31172 adr = AREG((Opcode >> 0) & 7);
31174 READ_LONG_F(adr, src)
31175 dst = DREGu32((Opcode >> 9) & 7);
31178 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31179 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31180 flag_N = res >> 24;
31191 adr = AREG((Opcode >> 0) & 7);
31192 AREG((Opcode >> 0) & 7) += 4;
31194 READ_LONG_F(adr, src)
31195 dst = DREGu32((Opcode >> 9) & 7);
31198 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31199 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31200 flag_N = res >> 24;
31211 adr = AREG((Opcode >> 0) & 7) - 4;
31212 AREG((Opcode >> 0) & 7) = adr;
31214 READ_LONG_F(adr, src)
31215 dst = DREGu32((Opcode >> 9) & 7);
31218 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31219 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31220 flag_N = res >> 24;
31232 adr += AREG((Opcode >> 0) & 7);
31234 READ_LONG_F(adr, src)
31235 dst = DREGu32((Opcode >> 9) & 7);
31238 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31239 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31240 flag_N = res >> 24;
31251 adr = AREG((Opcode >> 0) & 7);
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;
31292 READ_LONG_F(adr, src)
31293 dst = DREGu32((Opcode >> 9) & 7);
31296 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31297 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31298 flag_N = res >> 24;
31309 adr = GET_SWORD + GET_PC;
31312 READ_LONG_F(adr, src)
31313 dst = DREGu32((Opcode >> 9) & 7);
31316 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31317 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31318 flag_N = res >> 24;
31332 READ_LONG_F(adr, src)
31333 dst = DREGu32((Opcode >> 9) & 7);
31336 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31337 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31338 flag_N = res >> 24;
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;
31368 READ_LONG_F(adr, src)
31369 dst = DREGu32((Opcode >> 9) & 7);
31372 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31373 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31374 flag_N = res >> 24;
31388 READ_LONG_F(adr, src)
31389 dst = DREGu32((Opcode >> 9) & 7);
31392 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31393 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31394 flag_N = res >> 24;
31405 adr = AREG((Opcode >> 0) & 7);
31406 AREG((Opcode >> 0) & 7) += 1;
31408 READ_BYTE_F(adr, src)
31409 adr = AREG((Opcode >> 9) & 7);
31410 AREG((Opcode >> 9) & 7) += 1;
31411 READ_BYTE_F(adr, dst)
31413 flag_N = flag_C = res;
31414 flag_V = (src ^ dst) & (res ^ dst);
31415 flag_NotZ = res & 0xFF;
31426 adr = AREG((Opcode >> 0) & 7);
31427 AREG((Opcode >> 0) & 7) += 2;
31429 READ_WORD_F(adr, src)
31430 adr = AREG((Opcode >> 9) & 7);
31431 AREG((Opcode >> 9) & 7) += 2;
31432 READ_WORD_F(adr, dst)
31434 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31435 flag_N = flag_C = res >> 8;
31436 flag_NotZ = res & 0xFFFF;
31447 adr = AREG((Opcode >> 0) & 7);
31448 AREG((Opcode >> 0) & 7) += 4;
31450 READ_LONG_F(adr, src)
31451 adr = AREG((Opcode >> 9) & 7);
31452 AREG((Opcode >> 9) & 7) += 4;
31453 READ_LONG_F(adr, dst)
31456 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31457 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31458 flag_N = res >> 24;
31472 READ_BYTE_F(adr, src)
31473 adr = AREG((Opcode >> 9) & 7);
31474 AREG((Opcode >> 9) & 7) += 1;
31475 READ_BYTE_F(adr, dst)
31477 flag_N = flag_C = res;
31478 flag_V = (src ^ dst) & (res ^ dst);
31479 flag_NotZ = res & 0xFF;
31493 READ_WORD_F(adr, src)
31494 adr = AREG((Opcode >> 9) & 7);
31495 AREG((Opcode >> 9) & 7) += 2;
31496 READ_WORD_F(adr, dst)
31498 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31499 flag_N = flag_C = res >> 8;
31500 flag_NotZ = res & 0xFFFF;
31514 READ_LONG_F(adr, src)
31515 adr = AREG((Opcode >> 9) & 7);
31516 AREG((Opcode >> 9) & 7) += 4;
31517 READ_LONG_F(adr, dst)
31520 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31521 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31522 flag_N = res >> 24;
31533 adr = AREG((Opcode >> 0) & 7);
31534 AREG((Opcode >> 0) & 7) += 1;
31536 READ_BYTE_F(adr, src)
31539 READ_BYTE_F(adr, dst)
31541 flag_N = flag_C = res;
31542 flag_V = (src ^ dst) & (res ^ dst);
31543 flag_NotZ = res & 0xFF;
31554 adr = AREG((Opcode >> 0) & 7);
31555 AREG((Opcode >> 0) & 7) += 2;
31557 READ_WORD_F(adr, src)
31560 READ_WORD_F(adr, dst)
31562 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31563 flag_N = flag_C = res >> 8;
31564 flag_NotZ = res & 0xFFFF;
31575 adr = AREG((Opcode >> 0) & 7);
31576 AREG((Opcode >> 0) & 7) += 4;
31578 READ_LONG_F(adr, src)
31581 READ_LONG_F(adr, dst)
31584 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31585 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31586 flag_N = res >> 24;
31600 READ_BYTE_F(adr, src)
31603 READ_BYTE_F(adr, dst)
31605 flag_N = flag_C = res;
31606 flag_V = (src ^ dst) & (res ^ dst);
31607 flag_NotZ = res & 0xFF;
31621 READ_WORD_F(adr, src)
31624 READ_WORD_F(adr, dst)
31626 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31627 flag_N = flag_C = res >> 8;
31628 flag_NotZ = res & 0xFFFF;
31642 READ_LONG_F(adr, src)
31645 READ_LONG_F(adr, dst)
31648 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31649 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31650 flag_N = res >> 24;
31661 src = DREGu8((Opcode >> 9) & 7);
31662 res = DREGu8((Opcode >> 0) & 7);
31668 DREGu8((Opcode >> 0) & 7) = res;
31678 src = DREGu8((Opcode >> 9) & 7);
31679 adr = AREG((Opcode >> 0) & 7);
31681 READ_BYTE_F(adr, res)
31687 WRITE_BYTE_F(adr, res)
31698 src = DREGu8((Opcode >> 9) & 7);
31699 adr = AREG((Opcode >> 0) & 7);
31700 AREG((Opcode >> 0) & 7) += 1;
31702 READ_BYTE_F(adr, res)
31708 WRITE_BYTE_F(adr, res)
31719 src = DREGu8((Opcode >> 9) & 7);
31720 adr = AREG((Opcode >> 0) & 7) - 1;
31721 AREG((Opcode >> 0) & 7) = adr;
31723 READ_BYTE_F(adr, res)
31729 WRITE_BYTE_F(adr, res)
31740 src = DREGu8((Opcode >> 9) & 7);
31742 adr += AREG((Opcode >> 0) & 7);
31744 READ_BYTE_F(adr, res)
31750 WRITE_BYTE_F(adr, res)
31761 src = DREGu8((Opcode >> 9) & 7);
31762 adr = AREG((Opcode >> 0) & 7);
31765 READ_BYTE_F(adr, res)
31771 WRITE_BYTE_F(adr, res)
31782 src = DREGu8((Opcode >> 9) & 7);
31785 READ_BYTE_F(adr, res)
31791 WRITE_BYTE_F(adr, res)
31802 src = DREGu8((Opcode >> 9) & 7);
31805 READ_BYTE_F(adr, res)
31811 WRITE_BYTE_F(adr, res)
31822 src = DREGu8((Opcode >> 9) & 7);
31826 READ_BYTE_F(adr, res)
31832 WRITE_BYTE_F(adr, res)
31843 src = DREGu8((Opcode >> 9) & 7);
31847 READ_BYTE_F(adr, res)
31853 WRITE_BYTE_F(adr, res)
31864 src = DREGu16((Opcode >> 9) & 7);
31865 res = DREGu16((Opcode >> 0) & 7);
31871 DREGu16((Opcode >> 0) & 7) = res;
31881 src = DREGu16((Opcode >> 9) & 7);
31882 adr = AREG((Opcode >> 0) & 7);
31884 READ_WORD_F(adr, res)
31890 WRITE_WORD_F(adr, res)
31901 src = DREGu16((Opcode >> 9) & 7);
31902 adr = AREG((Opcode >> 0) & 7);
31903 AREG((Opcode >> 0) & 7) += 2;
31905 READ_WORD_F(adr, res)
31911 WRITE_WORD_F(adr, res)
31922 src = DREGu16((Opcode >> 9) & 7);
31923 adr = AREG((Opcode >> 0) & 7) - 2;
31924 AREG((Opcode >> 0) & 7) = adr;
31926 READ_WORD_F(adr, res)
31932 WRITE_WORD_F(adr, res)
31943 src = DREGu16((Opcode >> 9) & 7);
31945 adr += AREG((Opcode >> 0) & 7);
31947 READ_WORD_F(adr, res)
31953 WRITE_WORD_F(adr, res)
31964 src = DREGu16((Opcode >> 9) & 7);
31965 adr = AREG((Opcode >> 0) & 7);
31968 READ_WORD_F(adr, res)
31974 WRITE_WORD_F(adr, res)
31985 src = DREGu16((Opcode >> 9) & 7);
31988 READ_WORD_F(adr, res)
31994 WRITE_WORD_F(adr, res)
32005 src = DREGu16((Opcode >> 9) & 7);
32008 READ_WORD_F(adr, res)
32014 WRITE_WORD_F(adr, res)
32025 src = DREGu16((Opcode >> 9) & 7);
32029 READ_WORD_F(adr, res)
32035 WRITE_WORD_F(adr, res)
32046 src = DREGu16((Opcode >> 9) & 7);
32050 READ_WORD_F(adr, res)
32056 WRITE_WORD_F(adr, res)
32067 src = DREGu32((Opcode >> 9) & 7);
32068 res = DREGu32((Opcode >> 0) & 7);
32073 flag_N = res >> 24;
32074 DREGu32((Opcode >> 0) & 7) = res;
32084 src = DREGu32((Opcode >> 9) & 7);
32085 adr = AREG((Opcode >> 0) & 7);
32087 READ_LONG_F(adr, res)
32092 flag_N = res >> 24;
32093 WRITE_LONG_F(adr, res)
32104 src = DREGu32((Opcode >> 9) & 7);
32105 adr = AREG((Opcode >> 0) & 7);
32106 AREG((Opcode >> 0) & 7) += 4;
32108 READ_LONG_F(adr, res)
32113 flag_N = res >> 24;
32114 WRITE_LONG_F(adr, res)
32125 src = DREGu32((Opcode >> 9) & 7);
32126 adr = AREG((Opcode >> 0) & 7) - 4;
32127 AREG((Opcode >> 0) & 7) = adr;
32129 READ_LONG_F(adr, res)
32134 flag_N = res >> 24;
32135 WRITE_LONG_F(adr, res)
32146 src = DREGu32((Opcode >> 9) & 7);
32148 adr += AREG((Opcode >> 0) & 7);
32150 READ_LONG_F(adr, res)
32155 flag_N = res >> 24;
32156 WRITE_LONG_F(adr, res)
32167 src = DREGu32((Opcode >> 9) & 7);
32168 adr = AREG((Opcode >> 0) & 7);
32171 READ_LONG_F(adr, res)
32176 flag_N = res >> 24;
32177 WRITE_LONG_F(adr, res)
32188 src = DREGu32((Opcode >> 9) & 7);
32191 READ_LONG_F(adr, res)
32196 flag_N = res >> 24;
32197 WRITE_LONG_F(adr, res)
32208 src = DREGu32((Opcode >> 9) & 7);
32211 READ_LONG_F(adr, res)
32216 flag_N = res >> 24;
32217 WRITE_LONG_F(adr, res)
32228 src = DREGu32((Opcode >> 9) & 7);
32232 READ_LONG_F(adr, res)
32237 flag_N = res >> 24;
32238 WRITE_LONG_F(adr, res)
32249 src = DREGu32((Opcode >> 9) & 7);
32253 READ_LONG_F(adr, res)
32258 flag_N = res >> 24;
32259 WRITE_LONG_F(adr, res)
32270 src = (s32)DREGs16((Opcode >> 0) & 7);
32271 dst = AREGu32((Opcode >> 9) & 7);
32274 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32275 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32276 flag_N = res >> 24;
32286 src = (s32)AREGs16((Opcode >> 0) & 7);
32287 dst = AREGu32((Opcode >> 9) & 7);
32290 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32291 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32292 flag_N = res >> 24;
32302 adr = AREG((Opcode >> 0) & 7);
32304 READSX_WORD_F(adr, src)
32305 dst = AREGu32((Opcode >> 9) & 7);
32308 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32309 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32310 flag_N = res >> 24;
32321 adr = AREG((Opcode >> 0) & 7);
32322 AREG((Opcode >> 0) & 7) += 2;
32324 READSX_WORD_F(adr, src)
32325 dst = AREGu32((Opcode >> 9) & 7);
32328 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32329 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32330 flag_N = res >> 24;
32341 adr = AREG((Opcode >> 0) & 7) - 2;
32342 AREG((Opcode >> 0) & 7) = adr;
32344 READSX_WORD_F(adr, src)
32345 dst = AREGu32((Opcode >> 9) & 7);
32348 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32349 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32350 flag_N = res >> 24;
32362 adr += AREG((Opcode >> 0) & 7);
32364 READSX_WORD_F(adr, src)
32365 dst = AREGu32((Opcode >> 9) & 7);
32368 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32369 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32370 flag_N = res >> 24;
32381 adr = AREG((Opcode >> 0) & 7);
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;
32422 READSX_WORD_F(adr, src)
32423 dst = AREGu32((Opcode >> 9) & 7);
32426 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32427 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32428 flag_N = res >> 24;
32439 adr = GET_SWORD + GET_PC;
32442 READSX_WORD_F(adr, src)
32443 dst = AREGu32((Opcode >> 9) & 7);
32446 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32447 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32448 flag_N = res >> 24;
32462 READSX_WORD_F(adr, src)
32463 dst = AREGu32((Opcode >> 9) & 7);
32466 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32467 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32468 flag_N = res >> 24;
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;
32498 READSX_WORD_F(adr, src)
32499 dst = AREGu32((Opcode >> 9) & 7);
32502 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32503 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32504 flag_N = res >> 24;
32518 READSX_WORD_F(adr, src)
32519 dst = AREGu32((Opcode >> 9) & 7);
32522 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32523 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32524 flag_N = res >> 24;
32535 src = (s32)DREGs32((Opcode >> 0) & 7);
32536 dst = AREGu32((Opcode >> 9) & 7);
32539 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32540 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32541 flag_N = res >> 24;
32551 src = (s32)AREGs32((Opcode >> 0) & 7);
32552 dst = AREGu32((Opcode >> 9) & 7);
32555 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32556 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32557 flag_N = res >> 24;
32567 adr = AREG((Opcode >> 0) & 7);
32569 READSX_LONG_F(adr, src)
32570 dst = AREGu32((Opcode >> 9) & 7);
32573 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32574 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32575 flag_N = res >> 24;
32586 adr = AREG((Opcode >> 0) & 7);
32587 AREG((Opcode >> 0) & 7) += 4;
32589 READSX_LONG_F(adr, src)
32590 dst = AREGu32((Opcode >> 9) & 7);
32593 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32594 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32595 flag_N = res >> 24;
32606 adr = AREG((Opcode >> 0) & 7) - 4;
32607 AREG((Opcode >> 0) & 7) = adr;
32609 READSX_LONG_F(adr, src)
32610 dst = AREGu32((Opcode >> 9) & 7);
32613 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32614 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32615 flag_N = res >> 24;
32627 adr += AREG((Opcode >> 0) & 7);
32629 READSX_LONG_F(adr, src)
32630 dst = AREGu32((Opcode >> 9) & 7);
32633 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32634 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32635 flag_N = res >> 24;
32646 adr = AREG((Opcode >> 0) & 7);
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;
32687 READSX_LONG_F(adr, src)
32688 dst = AREGu32((Opcode >> 9) & 7);
32691 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32692 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32693 flag_N = res >> 24;
32704 adr = GET_SWORD + GET_PC;
32707 READSX_LONG_F(adr, src)
32708 dst = AREGu32((Opcode >> 9) & 7);
32711 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32712 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32713 flag_N = res >> 24;
32727 READSX_LONG_F(adr, src)
32728 dst = AREGu32((Opcode >> 9) & 7);
32731 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32732 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32733 flag_N = res >> 24;
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;
32763 READSX_LONG_F(adr, src)
32764 dst = AREGu32((Opcode >> 9) & 7);
32767 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32768 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32769 flag_N = res >> 24;
32783 READSX_LONG_F(adr, src)
32784 dst = AREGu32((Opcode >> 9) & 7);
32787 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32788 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32789 flag_N = res >> 24;
32800 src = DREGu8((Opcode >> 0) & 7);
32801 res = DREGu8((Opcode >> 9) & 7);
32807 DREGu8((Opcode >> 9) & 7) = res;
32817 adr = AREG((Opcode >> 0) & 7);
32819 READ_BYTE_F(adr, src)
32820 res = DREGu8((Opcode >> 9) & 7);
32826 DREGu8((Opcode >> 9) & 7) = res;
32837 adr = AREG((Opcode >> 0) & 7);
32838 AREG((Opcode >> 0) & 7) += 1;
32840 READ_BYTE_F(adr, src)
32841 res = DREGu8((Opcode >> 9) & 7);
32847 DREGu8((Opcode >> 9) & 7) = res;
32858 adr = AREG((Opcode >> 0) & 7) - 1;
32859 AREG((Opcode >> 0) & 7) = adr;
32861 READ_BYTE_F(adr, src)
32862 res = DREGu8((Opcode >> 9) & 7);
32868 DREGu8((Opcode >> 9) & 7) = res;
32880 adr += AREG((Opcode >> 0) & 7);
32882 READ_BYTE_F(adr, src)
32883 res = DREGu8((Opcode >> 9) & 7);
32889 DREGu8((Opcode >> 9) & 7) = res;
32900 adr = AREG((Opcode >> 0) & 7);
32903 READ_BYTE_F(adr, src)
32904 res = DREGu8((Opcode >> 9) & 7);
32910 DREGu8((Opcode >> 9) & 7) = res;
32923 READ_BYTE_F(adr, src)
32924 res = DREGu8((Opcode >> 9) & 7);
32930 DREGu8((Opcode >> 9) & 7) = res;
32943 READ_BYTE_F(adr, src)
32944 res = DREGu8((Opcode >> 9) & 7);
32950 DREGu8((Opcode >> 9) & 7) = res;
32961 adr = GET_SWORD + GET_PC;
32964 READ_BYTE_F(adr, src)
32965 res = DREGu8((Opcode >> 9) & 7);
32971 DREGu8((Opcode >> 9) & 7) = res;
32985 READ_BYTE_F(adr, src)
32986 res = DREGu8((Opcode >> 9) & 7);
32992 DREGu8((Opcode >> 9) & 7) = res;
33004 res = DREGu8((Opcode >> 9) & 7);
33010 DREGu8((Opcode >> 9) & 7) = res;
33023 READ_BYTE_F(adr, src)
33024 res = DREGu8((Opcode >> 9) & 7);
33030 DREGu8((Opcode >> 9) & 7) = res;
33044 READ_BYTE_F(adr, src)
33045 res = DREGu8((Opcode >> 9) & 7);
33051 DREGu8((Opcode >> 9) & 7) = res;
33062 src = DREGu16((Opcode >> 0) & 7);
33063 res = DREGu16((Opcode >> 9) & 7);
33069 DREGu16((Opcode >> 9) & 7) = res;
33079 adr = AREG((Opcode >> 0) & 7);
33081 READ_WORD_F(adr, src)
33082 res = DREGu16((Opcode >> 9) & 7);
33088 DREGu16((Opcode >> 9) & 7) = res;
33099 adr = AREG((Opcode >> 0) & 7);
33100 AREG((Opcode >> 0) & 7) += 2;
33102 READ_WORD_F(adr, src)
33103 res = DREGu16((Opcode >> 9) & 7);
33109 DREGu16((Opcode >> 9) & 7) = res;
33120 adr = AREG((Opcode >> 0) & 7) - 2;
33121 AREG((Opcode >> 0) & 7) = adr;
33123 READ_WORD_F(adr, src)
33124 res = DREGu16((Opcode >> 9) & 7);
33130 DREGu16((Opcode >> 9) & 7) = res;
33142 adr += AREG((Opcode >> 0) & 7);
33144 READ_WORD_F(adr, src)
33145 res = DREGu16((Opcode >> 9) & 7);
33151 DREGu16((Opcode >> 9) & 7) = res;
33162 adr = AREG((Opcode >> 0) & 7);
33165 READ_WORD_F(adr, src)
33166 res = DREGu16((Opcode >> 9) & 7);
33172 DREGu16((Opcode >> 9) & 7) = res;
33185 READ_WORD_F(adr, src)
33186 res = DREGu16((Opcode >> 9) & 7);
33192 DREGu16((Opcode >> 9) & 7) = res;
33205 READ_WORD_F(adr, src)
33206 res = DREGu16((Opcode >> 9) & 7);
33212 DREGu16((Opcode >> 9) & 7) = res;
33223 adr = GET_SWORD + GET_PC;
33226 READ_WORD_F(adr, src)
33227 res = DREGu16((Opcode >> 9) & 7);
33233 DREGu16((Opcode >> 9) & 7) = res;
33247 READ_WORD_F(adr, src)
33248 res = DREGu16((Opcode >> 9) & 7);
33254 DREGu16((Opcode >> 9) & 7) = res;
33266 res = DREGu16((Opcode >> 9) & 7);
33272 DREGu16((Opcode >> 9) & 7) = res;
33285 READ_WORD_F(adr, src)
33286 res = DREGu16((Opcode >> 9) & 7);
33292 DREGu16((Opcode >> 9) & 7) = res;
33306 READ_WORD_F(adr, src)
33307 res = DREGu16((Opcode >> 9) & 7);
33313 DREGu16((Opcode >> 9) & 7) = res;
33324 src = DREGu32((Opcode >> 0) & 7);
33325 res = DREGu32((Opcode >> 9) & 7);
33330 flag_N = res >> 24;
33331 DREGu32((Opcode >> 9) & 7) = res;
33341 adr = AREG((Opcode >> 0) & 7);
33343 READ_LONG_F(adr, src)
33344 res = DREGu32((Opcode >> 9) & 7);
33349 flag_N = res >> 24;
33350 DREGu32((Opcode >> 9) & 7) = res;
33361 adr = AREG((Opcode >> 0) & 7);
33362 AREG((Opcode >> 0) & 7) += 4;
33364 READ_LONG_F(adr, src)
33365 res = DREGu32((Opcode >> 9) & 7);
33370 flag_N = res >> 24;
33371 DREGu32((Opcode >> 9) & 7) = res;
33382 adr = AREG((Opcode >> 0) & 7) - 4;
33383 AREG((Opcode >> 0) & 7) = adr;
33385 READ_LONG_F(adr, src)
33386 res = DREGu32((Opcode >> 9) & 7);
33391 flag_N = res >> 24;
33392 DREGu32((Opcode >> 9) & 7) = res;
33404 adr += AREG((Opcode >> 0) & 7);
33406 READ_LONG_F(adr, src)
33407 res = DREGu32((Opcode >> 9) & 7);
33412 flag_N = res >> 24;
33413 DREGu32((Opcode >> 9) & 7) = res;
33424 adr = AREG((Opcode >> 0) & 7);
33427 READ_LONG_F(adr, src)
33428 res = DREGu32((Opcode >> 9) & 7);
33433 flag_N = res >> 24;
33434 DREGu32((Opcode >> 9) & 7) = res;
33447 READ_LONG_F(adr, src)
33448 res = DREGu32((Opcode >> 9) & 7);
33453 flag_N = res >> 24;
33454 DREGu32((Opcode >> 9) & 7) = res;
33467 READ_LONG_F(adr, src)
33468 res = DREGu32((Opcode >> 9) & 7);
33473 flag_N = res >> 24;
33474 DREGu32((Opcode >> 9) & 7) = res;
33485 adr = GET_SWORD + GET_PC;
33488 READ_LONG_F(adr, src)
33489 res = DREGu32((Opcode >> 9) & 7);
33494 flag_N = res >> 24;
33495 DREGu32((Opcode >> 9) & 7) = res;
33509 READ_LONG_F(adr, src)
33510 res = DREGu32((Opcode >> 9) & 7);
33515 flag_N = res >> 24;
33516 DREGu32((Opcode >> 9) & 7) = res;
33528 res = DREGu32((Opcode >> 9) & 7);
33533 flag_N = res >> 24;
33534 DREGu32((Opcode >> 9) & 7) = res;
33547 READ_LONG_F(adr, src)
33548 res = DREGu32((Opcode >> 9) & 7);
33553 flag_N = res >> 24;
33554 DREGu32((Opcode >> 9) & 7) = res;
33568 READ_LONG_F(adr, src)
33569 res = DREGu32((Opcode >> 9) & 7);
33574 flag_N = res >> 24;
33575 DREGu32((Opcode >> 9) & 7) = res;
33586 src = DREGu8((Opcode >> 9) & 7);
33587 adr = AREG((Opcode >> 0) & 7);
33589 READ_BYTE_F(adr, res)
33595 WRITE_BYTE_F(adr, res)
33606 src = DREGu8((Opcode >> 9) & 7);
33607 adr = AREG((Opcode >> 0) & 7);
33608 AREG((Opcode >> 0) & 7) += 1;
33610 READ_BYTE_F(adr, res)
33616 WRITE_BYTE_F(adr, res)
33627 src = DREGu8((Opcode >> 9) & 7);
33628 adr = AREG((Opcode >> 0) & 7) - 1;
33629 AREG((Opcode >> 0) & 7) = adr;
33631 READ_BYTE_F(adr, res)
33637 WRITE_BYTE_F(adr, res)
33648 src = DREGu8((Opcode >> 9) & 7);
33650 adr += AREG((Opcode >> 0) & 7);
33652 READ_BYTE_F(adr, res)
33658 WRITE_BYTE_F(adr, res)
33669 src = DREGu8((Opcode >> 9) & 7);
33670 adr = AREG((Opcode >> 0) & 7);
33673 READ_BYTE_F(adr, res)
33679 WRITE_BYTE_F(adr, res)
33690 src = DREGu8((Opcode >> 9) & 7);
33693 READ_BYTE_F(adr, res)
33699 WRITE_BYTE_F(adr, res)
33710 src = DREGu8((Opcode >> 9) & 7);
33713 READ_BYTE_F(adr, res)
33719 WRITE_BYTE_F(adr, res)
33730 src = DREGu8((Opcode >> 9) & 7);
33734 READ_BYTE_F(adr, res)
33740 WRITE_BYTE_F(adr, res)
33751 src = DREGu8((Opcode >> 9) & 7);
33755 READ_BYTE_F(adr, res)
33761 WRITE_BYTE_F(adr, res)
33772 src = DREGu16((Opcode >> 9) & 7);
33773 adr = AREG((Opcode >> 0) & 7);
33775 READ_WORD_F(adr, res)
33781 WRITE_WORD_F(adr, res)
33792 src = DREGu16((Opcode >> 9) & 7);
33793 adr = AREG((Opcode >> 0) & 7);
33794 AREG((Opcode >> 0) & 7) += 2;
33796 READ_WORD_F(adr, res)
33802 WRITE_WORD_F(adr, res)
33813 src = DREGu16((Opcode >> 9) & 7);
33814 adr = AREG((Opcode >> 0) & 7) - 2;
33815 AREG((Opcode >> 0) & 7) = adr;
33817 READ_WORD_F(adr, res)
33823 WRITE_WORD_F(adr, res)
33834 src = DREGu16((Opcode >> 9) & 7);
33836 adr += AREG((Opcode >> 0) & 7);
33838 READ_WORD_F(adr, res)
33844 WRITE_WORD_F(adr, res)
33855 src = DREGu16((Opcode >> 9) & 7);
33856 adr = AREG((Opcode >> 0) & 7);
33859 READ_WORD_F(adr, res)
33865 WRITE_WORD_F(adr, res)
33876 src = DREGu16((Opcode >> 9) & 7);
33879 READ_WORD_F(adr, res)
33885 WRITE_WORD_F(adr, res)
33896 src = DREGu16((Opcode >> 9) & 7);
33899 READ_WORD_F(adr, res)
33905 WRITE_WORD_F(adr, res)
33916 src = DREGu16((Opcode >> 9) & 7);
33920 READ_WORD_F(adr, res)
33926 WRITE_WORD_F(adr, res)
33937 src = DREGu16((Opcode >> 9) & 7);
33941 READ_WORD_F(adr, res)
33947 WRITE_WORD_F(adr, res)
33958 src = DREGu32((Opcode >> 9) & 7);
33959 adr = AREG((Opcode >> 0) & 7);
33961 READ_LONG_F(adr, res)
33966 flag_N = res >> 24;
33967 WRITE_LONG_F(adr, res)
33978 src = DREGu32((Opcode >> 9) & 7);
33979 adr = AREG((Opcode >> 0) & 7);
33980 AREG((Opcode >> 0) & 7) += 4;
33982 READ_LONG_F(adr, res)
33987 flag_N = res >> 24;
33988 WRITE_LONG_F(adr, res)
33999 src = DREGu32((Opcode >> 9) & 7);
34000 adr = AREG((Opcode >> 0) & 7) - 4;
34001 AREG((Opcode >> 0) & 7) = adr;
34003 READ_LONG_F(adr, res)
34008 flag_N = res >> 24;
34009 WRITE_LONG_F(adr, res)
34020 src = DREGu32((Opcode >> 9) & 7);
34022 adr += AREG((Opcode >> 0) & 7);
34024 READ_LONG_F(adr, res)
34029 flag_N = res >> 24;
34030 WRITE_LONG_F(adr, res)
34041 src = DREGu32((Opcode >> 9) & 7);
34042 adr = AREG((Opcode >> 0) & 7);
34045 READ_LONG_F(adr, res)
34050 flag_N = res >> 24;
34051 WRITE_LONG_F(adr, res)
34062 src = DREGu32((Opcode >> 9) & 7);
34065 READ_LONG_F(adr, res)
34070 flag_N = res >> 24;
34071 WRITE_LONG_F(adr, res)
34082 src = DREGu32((Opcode >> 9) & 7);
34085 READ_LONG_F(adr, res)
34090 flag_N = res >> 24;
34091 WRITE_LONG_F(adr, res)
34102 src = DREGu32((Opcode >> 9) & 7);
34106 READ_LONG_F(adr, res)
34111 flag_N = res >> 24;
34112 WRITE_LONG_F(adr, res)
34123 src = DREGu32((Opcode >> 9) & 7);
34127 READ_LONG_F(adr, res)
34132 flag_N = res >> 24;
34133 WRITE_LONG_F(adr, res)
34145 src = DREGu8((Opcode >> 0) & 7);
34146 dst = DREGu8((Opcode >> 9) & 7);
34147 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34148 if (res > 9) corf = 6;
34149 res += (dst & 0xF0) + (src & 0xF0);
34155 flag_X = flag_C = M68K_SR_C;
34157 else flag_X = flag_C = 0;
34159 flag_NotZ |= res & 0xFF;
34161 DREGu8((Opcode >> 9) & 7) = res;
34172 adr = AREG((Opcode >> 0) & 7) - 1;
34173 AREG((Opcode >> 0) & 7) = adr;
34175 READ_BYTE_F(adr, src)
34176 adr = AREG((Opcode >> 9) & 7) - 1;
34177 AREG((Opcode >> 9) & 7) = adr;
34178 READ_BYTE_F(adr, dst)
34179 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34180 if (res > 9) corf = 6;
34181 res += (dst & 0xF0) + (src & 0xF0);
34187 flag_X = flag_C = M68K_SR_C;
34189 else flag_X = flag_C = 0;
34191 flag_NotZ |= res & 0xFF;
34193 WRITE_BYTE_F(adr, res)
34208 READ_BYTE_F(adr, src)
34209 adr = AREG((Opcode >> 9) & 7) - 1;
34210 AREG((Opcode >> 9) & 7) = adr;
34211 READ_BYTE_F(adr, dst)
34212 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34213 if (res > 9) corf = 6;
34214 res += (dst & 0xF0) + (src & 0xF0);
34220 flag_X = flag_C = M68K_SR_C;
34222 else flag_X = flag_C = 0;
34224 flag_NotZ |= res & 0xFF;
34226 WRITE_BYTE_F(adr, res)
34238 adr = AREG((Opcode >> 0) & 7) - 1;
34239 AREG((Opcode >> 0) & 7) = adr;
34241 READ_BYTE_F(adr, src)
34244 READ_BYTE_F(adr, dst)
34245 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34246 if (res > 9) corf = 6;
34247 res += (dst & 0xF0) + (src & 0xF0);
34253 flag_X = flag_C = M68K_SR_C;
34255 else flag_X = flag_C = 0;
34257 flag_NotZ |= res & 0xFF;
34259 WRITE_BYTE_F(adr, res)
34274 READ_BYTE_F(adr, src)
34277 READ_BYTE_F(adr, dst)
34278 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34279 if (res > 9) corf = 6;
34280 res += (dst & 0xF0) + (src & 0xF0);
34286 flag_X = flag_C = M68K_SR_C;
34288 else flag_X = flag_C = 0;
34290 flag_NotZ |= res & 0xFF;
34292 WRITE_BYTE_F(adr, res)
34303 src = DREGu16((Opcode >> 0) & 7);
34304 res = DREGu16((Opcode >> 9) & 7);
34306 flag_N = res >> 24;
34308 flag_V = flag_C = 0;
34309 DREGu32((Opcode >> 9) & 7) = res;
34310 #ifdef USE_CYCLONE_TIMING
34323 adr = AREG((Opcode >> 0) & 7);
34325 READ_WORD_F(adr, src)
34326 res = DREGu16((Opcode >> 9) & 7);
34328 flag_N = res >> 24;
34330 flag_V = flag_C = 0;
34331 DREGu32((Opcode >> 9) & 7) = res;
34333 #ifdef USE_CYCLONE_TIMING
34346 adr = AREG((Opcode >> 0) & 7);
34347 AREG((Opcode >> 0) & 7) += 2;
34349 READ_WORD_F(adr, src)
34350 res = DREGu16((Opcode >> 9) & 7);
34352 flag_N = res >> 24;
34354 flag_V = flag_C = 0;
34355 DREGu32((Opcode >> 9) & 7) = res;
34357 #ifdef USE_CYCLONE_TIMING
34370 adr = AREG((Opcode >> 0) & 7) - 2;
34371 AREG((Opcode >> 0) & 7) = adr;
34373 READ_WORD_F(adr, src)
34374 res = DREGu16((Opcode >> 9) & 7);
34376 flag_N = res >> 24;
34378 flag_V = flag_C = 0;
34379 DREGu32((Opcode >> 9) & 7) = res;
34381 #ifdef USE_CYCLONE_TIMING
34395 adr += AREG((Opcode >> 0) & 7);
34397 READ_WORD_F(adr, src)
34398 res = DREGu16((Opcode >> 9) & 7);
34400 flag_N = res >> 24;
34402 flag_V = flag_C = 0;
34403 DREGu32((Opcode >> 9) & 7) = res;
34405 #ifdef USE_CYCLONE_TIMING
34418 adr = AREG((Opcode >> 0) & 7);
34421 READ_WORD_F(adr, src)
34422 res = DREGu16((Opcode >> 9) & 7);
34424 flag_N = res >> 24;
34426 flag_V = flag_C = 0;
34427 DREGu32((Opcode >> 9) & 7) = res;
34429 #ifdef USE_CYCLONE_TIMING
34444 READ_WORD_F(adr, src)
34445 res = DREGu16((Opcode >> 9) & 7);
34447 flag_N = res >> 24;
34449 flag_V = flag_C = 0;
34450 DREGu32((Opcode >> 9) & 7) = res;
34452 #ifdef USE_CYCLONE_TIMING
34467 READ_WORD_F(adr, src)
34468 res = DREGu16((Opcode >> 9) & 7);
34470 flag_N = res >> 24;
34472 flag_V = flag_C = 0;
34473 DREGu32((Opcode >> 9) & 7) = res;
34475 #ifdef USE_CYCLONE_TIMING
34488 adr = GET_SWORD + GET_PC;
34491 READ_WORD_F(adr, src)
34492 res = DREGu16((Opcode >> 9) & 7);
34494 flag_N = res >> 24;
34496 flag_V = flag_C = 0;
34497 DREGu32((Opcode >> 9) & 7) = res;
34499 #ifdef USE_CYCLONE_TIMING
34515 READ_WORD_F(adr, src)
34516 res = DREGu16((Opcode >> 9) & 7);
34518 flag_N = res >> 24;
34520 flag_V = flag_C = 0;
34521 DREGu32((Opcode >> 9) & 7) = res;
34523 #ifdef USE_CYCLONE_TIMING
34537 res = DREGu16((Opcode >> 9) & 7);
34539 flag_N = res >> 24;
34541 flag_V = flag_C = 0;
34542 DREGu32((Opcode >> 9) & 7) = res;
34543 #ifdef USE_CYCLONE_TIMING
34559 READ_WORD_F(adr, src)
34560 res = DREGu16((Opcode >> 9) & 7);
34562 flag_N = res >> 24;
34564 flag_V = flag_C = 0;
34565 DREGu32((Opcode >> 9) & 7) = res;
34567 #ifdef USE_CYCLONE_TIMING
34583 READ_WORD_F(adr, src)
34584 res = DREGu16((Opcode >> 9) & 7);
34586 flag_N = res >> 24;
34588 flag_V = flag_C = 0;
34589 DREGu32((Opcode >> 9) & 7) = res;
34591 #ifdef USE_CYCLONE_TIMING
34604 src = (s32)DREGs16((Opcode >> 0) & 7);
34605 res = (s32)DREGs16((Opcode >> 9) & 7);
34606 res = ((s32)res) * ((s32)src);
34607 flag_N = res >> 24;
34609 flag_V = flag_C = 0;
34610 DREGu32((Opcode >> 9) & 7) = res;
34611 #ifdef USE_CYCLONE_TIMING
34624 adr = AREG((Opcode >> 0) & 7);
34626 READSX_WORD_F(adr, src)
34627 res = (s32)DREGs16((Opcode >> 9) & 7);
34628 res = ((s32)res) * ((s32)src);
34629 flag_N = res >> 24;
34631 flag_V = flag_C = 0;
34632 DREGu32((Opcode >> 9) & 7) = res;
34634 #ifdef USE_CYCLONE_TIMING
34647 adr = AREG((Opcode >> 0) & 7);
34648 AREG((Opcode >> 0) & 7) += 2;
34650 READSX_WORD_F(adr, src)
34651 res = (s32)DREGs16((Opcode >> 9) & 7);
34652 res = ((s32)res) * ((s32)src);
34653 flag_N = res >> 24;
34655 flag_V = flag_C = 0;
34656 DREGu32((Opcode >> 9) & 7) = res;
34658 #ifdef USE_CYCLONE_TIMING
34671 adr = AREG((Opcode >> 0) & 7) - 2;
34672 AREG((Opcode >> 0) & 7) = adr;
34674 READSX_WORD_F(adr, src)
34675 res = (s32)DREGs16((Opcode >> 9) & 7);
34676 res = ((s32)res) * ((s32)src);
34677 flag_N = res >> 24;
34679 flag_V = flag_C = 0;
34680 DREGu32((Opcode >> 9) & 7) = res;
34682 #ifdef USE_CYCLONE_TIMING
34696 adr += AREG((Opcode >> 0) & 7);
34698 READSX_WORD_F(adr, src)
34699 res = (s32)DREGs16((Opcode >> 9) & 7);
34700 res = ((s32)res) * ((s32)src);
34701 flag_N = res >> 24;
34703 flag_V = flag_C = 0;
34704 DREGu32((Opcode >> 9) & 7) = res;
34706 #ifdef USE_CYCLONE_TIMING
34719 adr = AREG((Opcode >> 0) & 7);
34722 READSX_WORD_F(adr, src)
34723 res = (s32)DREGs16((Opcode >> 9) & 7);
34724 res = ((s32)res) * ((s32)src);
34725 flag_N = res >> 24;
34727 flag_V = flag_C = 0;
34728 DREGu32((Opcode >> 9) & 7) = res;
34730 #ifdef USE_CYCLONE_TIMING
34745 READSX_WORD_F(adr, src)
34746 res = (s32)DREGs16((Opcode >> 9) & 7);
34747 res = ((s32)res) * ((s32)src);
34748 flag_N = res >> 24;
34750 flag_V = flag_C = 0;
34751 DREGu32((Opcode >> 9) & 7) = res;
34753 #ifdef USE_CYCLONE_TIMING
34768 READSX_WORD_F(adr, src)
34769 res = (s32)DREGs16((Opcode >> 9) & 7);
34770 res = ((s32)res) * ((s32)src);
34771 flag_N = res >> 24;
34773 flag_V = flag_C = 0;
34774 DREGu32((Opcode >> 9) & 7) = res;
34776 #ifdef USE_CYCLONE_TIMING
34789 adr = GET_SWORD + GET_PC;
34792 READSX_WORD_F(adr, src)
34793 res = (s32)DREGs16((Opcode >> 9) & 7);
34794 res = ((s32)res) * ((s32)src);
34795 flag_N = res >> 24;
34797 flag_V = flag_C = 0;
34798 DREGu32((Opcode >> 9) & 7) = res;
34800 #ifdef USE_CYCLONE_TIMING
34816 READSX_WORD_F(adr, src)
34817 res = (s32)DREGs16((Opcode >> 9) & 7);
34818 res = ((s32)res) * ((s32)src);
34819 flag_N = res >> 24;
34821 flag_V = flag_C = 0;
34822 DREGu32((Opcode >> 9) & 7) = res;
34824 #ifdef USE_CYCLONE_TIMING
34838 res = (s32)DREGs16((Opcode >> 9) & 7);
34839 res = ((s32)res) * ((s32)src);
34840 flag_N = res >> 24;
34842 flag_V = flag_C = 0;
34843 DREGu32((Opcode >> 9) & 7) = res;
34844 #ifdef USE_CYCLONE_TIMING
34860 READSX_WORD_F(adr, src)
34861 res = (s32)DREGs16((Opcode >> 9) & 7);
34862 res = ((s32)res) * ((s32)src);
34863 flag_N = res >> 24;
34865 flag_V = flag_C = 0;
34866 DREGu32((Opcode >> 9) & 7) = res;
34868 #ifdef USE_CYCLONE_TIMING
34884 READSX_WORD_F(adr, src)
34885 res = (s32)DREGs16((Opcode >> 9) & 7);
34886 res = ((s32)res) * ((s32)src);
34887 flag_N = res >> 24;
34889 flag_V = flag_C = 0;
34890 DREGu32((Opcode >> 9) & 7) = res;
34892 #ifdef USE_CYCLONE_TIMING
34905 res = DREGu32((Opcode >> 0) & 7);
34906 src = DREGu32((Opcode >> 9) & 7);
34907 DREGu32((Opcode >> 9) & 7) = res;
34909 DREGu32((Opcode >> 0) & 7) = res;
34919 res = AREGu32((Opcode >> 0) & 7);
34920 src = AREGu32((Opcode >> 9) & 7);
34921 AREG((Opcode >> 9) & 7) = res;
34923 AREG((Opcode >> 0) & 7) = res;
34933 res = AREGu32((Opcode >> 0) & 7);
34934 src = DREGu32((Opcode >> 9) & 7);
34935 DREGu32((Opcode >> 9) & 7) = res;
34937 AREG((Opcode >> 0) & 7) = res;
34947 src = DREGu8((Opcode >> 0) & 7);
34948 dst = DREGu8((Opcode >> 9) & 7);
34950 flag_N = flag_X = flag_C = res;
34951 flag_V = (src ^ res) & (dst ^ res);
34952 flag_NotZ = res & 0xFF;
34953 DREGu8((Opcode >> 9) & 7) = res;
34964 // can't read byte from Ax registers !
34965 m68kcontext.execinfo |= M68K_FAULTED;
34966 m68kcontext.io_cycle_counter = 0;
34968 goto famec_Exec_End;
34969 dst = DREGu8((Opcode >> 9) & 7);
34971 flag_N = flag_X = flag_C = res;
34972 flag_V = (src ^ res) & (dst ^ res);
34973 flag_NotZ = res & 0xFF;
34974 DREGu8((Opcode >> 9) & 7) = res;
34986 adr = AREG((Opcode >> 0) & 7);
34988 READ_BYTE_F(adr, src)
34989 dst = DREGu8((Opcode >> 9) & 7);
34991 flag_N = flag_X = flag_C = res;
34992 flag_V = (src ^ res) & (dst ^ res);
34993 flag_NotZ = res & 0xFF;
34994 DREGu8((Opcode >> 9) & 7) = res;
35005 adr = AREG((Opcode >> 0) & 7);
35006 AREG((Opcode >> 0) & 7) += 1;
35008 READ_BYTE_F(adr, src)
35009 dst = DREGu8((Opcode >> 9) & 7);
35011 flag_N = flag_X = flag_C = res;
35012 flag_V = (src ^ res) & (dst ^ res);
35013 flag_NotZ = res & 0xFF;
35014 DREGu8((Opcode >> 9) & 7) = res;
35025 adr = AREG((Opcode >> 0) & 7) - 1;
35026 AREG((Opcode >> 0) & 7) = adr;
35028 READ_BYTE_F(adr, src)
35029 dst = DREGu8((Opcode >> 9) & 7);
35031 flag_N = flag_X = flag_C = res;
35032 flag_V = (src ^ res) & (dst ^ res);
35033 flag_NotZ = res & 0xFF;
35034 DREGu8((Opcode >> 9) & 7) = res;
35046 adr += AREG((Opcode >> 0) & 7);
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;
35065 adr = AREG((Opcode >> 0) & 7);
35068 READ_BYTE_F(adr, src)
35069 dst = DREGu8((Opcode >> 9) & 7);
35071 flag_N = flag_X = flag_C = res;
35072 flag_V = (src ^ res) & (dst ^ res);
35073 flag_NotZ = res & 0xFF;
35074 DREGu8((Opcode >> 9) & 7) = res;
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;
35106 READ_BYTE_F(adr, src)
35107 dst = DREGu8((Opcode >> 9) & 7);
35109 flag_N = flag_X = flag_C = res;
35110 flag_V = (src ^ res) & (dst ^ res);
35111 flag_NotZ = res & 0xFF;
35112 DREGu8((Opcode >> 9) & 7) = res;
35123 adr = GET_SWORD + GET_PC;
35126 READ_BYTE_F(adr, src)
35127 dst = DREGu8((Opcode >> 9) & 7);
35129 flag_N = flag_X = flag_C = res;
35130 flag_V = (src ^ res) & (dst ^ res);
35131 flag_NotZ = res & 0xFF;
35132 DREGu8((Opcode >> 9) & 7) = res;
35146 READ_BYTE_F(adr, src)
35147 dst = DREGu8((Opcode >> 9) & 7);
35149 flag_N = flag_X = flag_C = res;
35150 flag_V = (src ^ res) & (dst ^ res);
35151 flag_NotZ = res & 0xFF;
35152 DREGu8((Opcode >> 9) & 7) = res;
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;
35182 READ_BYTE_F(adr, src)
35183 dst = DREGu8((Opcode >> 9) & 7);
35185 flag_N = flag_X = flag_C = res;
35186 flag_V = (src ^ res) & (dst ^ res);
35187 flag_NotZ = res & 0xFF;
35188 DREGu8((Opcode >> 9) & 7) = res;
35202 READ_BYTE_F(adr, src)
35203 dst = DREGu8((Opcode >> 9) & 7);
35205 flag_N = flag_X = flag_C = res;
35206 flag_V = (src ^ res) & (dst ^ res);
35207 flag_NotZ = res & 0xFF;
35208 DREGu8((Opcode >> 9) & 7) = res;
35219 src = DREGu16((Opcode >> 0) & 7);
35220 dst = DREGu16((Opcode >> 9) & 7);
35222 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35223 flag_N = flag_X = flag_C = res >> 8;
35224 flag_NotZ = res & 0xFFFF;
35225 DREGu16((Opcode >> 9) & 7) = res;
35235 src = AREGu16((Opcode >> 0) & 7);
35236 dst = DREGu16((Opcode >> 9) & 7);
35238 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35239 flag_N = flag_X = flag_C = res >> 8;
35240 flag_NotZ = res & 0xFFFF;
35241 DREGu16((Opcode >> 9) & 7) = res;
35251 adr = AREG((Opcode >> 0) & 7);
35253 READ_WORD_F(adr, src)
35254 dst = DREGu16((Opcode >> 9) & 7);
35256 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35257 flag_N = flag_X = flag_C = res >> 8;
35258 flag_NotZ = res & 0xFFFF;
35259 DREGu16((Opcode >> 9) & 7) = res;
35270 adr = AREG((Opcode >> 0) & 7);
35271 AREG((Opcode >> 0) & 7) += 2;
35273 READ_WORD_F(adr, src)
35274 dst = DREGu16((Opcode >> 9) & 7);
35276 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35277 flag_N = flag_X = flag_C = res >> 8;
35278 flag_NotZ = res & 0xFFFF;
35279 DREGu16((Opcode >> 9) & 7) = res;
35290 adr = AREG((Opcode >> 0) & 7) - 2;
35291 AREG((Opcode >> 0) & 7) = adr;
35293 READ_WORD_F(adr, src)
35294 dst = DREGu16((Opcode >> 9) & 7);
35296 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35297 flag_N = flag_X = flag_C = res >> 8;
35298 flag_NotZ = res & 0xFFFF;
35299 DREGu16((Opcode >> 9) & 7) = res;
35311 adr += AREG((Opcode >> 0) & 7);
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;
35330 adr = AREG((Opcode >> 0) & 7);
35333 READ_WORD_F(adr, src)
35334 dst = DREGu16((Opcode >> 9) & 7);
35336 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35337 flag_N = flag_X = flag_C = res >> 8;
35338 flag_NotZ = res & 0xFFFF;
35339 DREGu16((Opcode >> 9) & 7) = res;
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;
35371 READ_WORD_F(adr, src)
35372 dst = DREGu16((Opcode >> 9) & 7);
35374 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35375 flag_N = flag_X = flag_C = res >> 8;
35376 flag_NotZ = res & 0xFFFF;
35377 DREGu16((Opcode >> 9) & 7) = res;
35388 adr = GET_SWORD + GET_PC;
35391 READ_WORD_F(adr, src)
35392 dst = DREGu16((Opcode >> 9) & 7);
35394 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35395 flag_N = flag_X = flag_C = res >> 8;
35396 flag_NotZ = res & 0xFFFF;
35397 DREGu16((Opcode >> 9) & 7) = res;
35411 READ_WORD_F(adr, src)
35412 dst = DREGu16((Opcode >> 9) & 7);
35414 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35415 flag_N = flag_X = flag_C = res >> 8;
35416 flag_NotZ = res & 0xFFFF;
35417 DREGu16((Opcode >> 9) & 7) = res;
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;
35447 READ_WORD_F(adr, src)
35448 dst = DREGu16((Opcode >> 9) & 7);
35450 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35451 flag_N = flag_X = flag_C = res >> 8;
35452 flag_NotZ = res & 0xFFFF;
35453 DREGu16((Opcode >> 9) & 7) = res;
35467 READ_WORD_F(adr, src)
35468 dst = DREGu16((Opcode >> 9) & 7);
35470 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35471 flag_N = flag_X = flag_C = res >> 8;
35472 flag_NotZ = res & 0xFFFF;
35473 DREGu16((Opcode >> 9) & 7) = res;
35484 src = DREGu32((Opcode >> 0) & 7);
35485 dst = DREGu32((Opcode >> 9) & 7);
35488 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35489 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35490 flag_N = res >> 24;
35491 DREGu32((Opcode >> 9) & 7) = res;
35501 src = AREGu32((Opcode >> 0) & 7);
35502 dst = DREGu32((Opcode >> 9) & 7);
35505 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35506 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35507 flag_N = res >> 24;
35508 DREGu32((Opcode >> 9) & 7) = res;
35518 adr = AREG((Opcode >> 0) & 7);
35520 READ_LONG_F(adr, src)
35521 dst = DREGu32((Opcode >> 9) & 7);
35524 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35525 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35526 flag_N = res >> 24;
35527 DREGu32((Opcode >> 9) & 7) = res;
35538 adr = AREG((Opcode >> 0) & 7);
35539 AREG((Opcode >> 0) & 7) += 4;
35541 READ_LONG_F(adr, src)
35542 dst = DREGu32((Opcode >> 9) & 7);
35545 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35546 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35547 flag_N = res >> 24;
35548 DREGu32((Opcode >> 9) & 7) = res;
35559 adr = AREG((Opcode >> 0) & 7) - 4;
35560 AREG((Opcode >> 0) & 7) = adr;
35562 READ_LONG_F(adr, src)
35563 dst = DREGu32((Opcode >> 9) & 7);
35566 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35567 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35568 flag_N = res >> 24;
35569 DREGu32((Opcode >> 9) & 7) = res;
35581 adr += AREG((Opcode >> 0) & 7);
35583 READ_LONG_F(adr, src)
35584 dst = DREGu32((Opcode >> 9) & 7);
35587 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35588 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35589 flag_N = res >> 24;
35590 DREGu32((Opcode >> 9) & 7) = res;
35601 adr = AREG((Opcode >> 0) & 7);
35604 READ_LONG_F(adr, src)
35605 dst = DREGu32((Opcode >> 9) & 7);
35608 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35609 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35610 flag_N = res >> 24;
35611 DREGu32((Opcode >> 9) & 7) = res;
35624 READ_LONG_F(adr, src)
35625 dst = DREGu32((Opcode >> 9) & 7);
35628 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35629 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35630 flag_N = res >> 24;
35631 DREGu32((Opcode >> 9) & 7) = res;
35644 READ_LONG_F(adr, src)
35645 dst = DREGu32((Opcode >> 9) & 7);
35648 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35649 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35650 flag_N = res >> 24;
35651 DREGu32((Opcode >> 9) & 7) = res;
35662 adr = GET_SWORD + GET_PC;
35665 READ_LONG_F(adr, src)
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;
35686 READ_LONG_F(adr, src)
35687 dst = DREGu32((Opcode >> 9) & 7);
35690 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35691 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35692 flag_N = res >> 24;
35693 DREGu32((Opcode >> 9) & 7) = res;
35705 dst = DREGu32((Opcode >> 9) & 7);
35708 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35709 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35710 flag_N = res >> 24;
35711 DREGu32((Opcode >> 9) & 7) = res;
35724 READ_LONG_F(adr, src)
35725 dst = DREGu32((Opcode >> 9) & 7);
35728 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35729 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35730 flag_N = res >> 24;
35731 DREGu32((Opcode >> 9) & 7) = res;
35745 READ_LONG_F(adr, src)
35746 dst = DREGu32((Opcode >> 9) & 7);
35749 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35750 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35751 flag_N = res >> 24;
35752 DREGu32((Opcode >> 9) & 7) = res;
35763 src = DREGu8((Opcode >> 9) & 7);
35764 adr = AREG((Opcode >> 0) & 7);
35766 READ_BYTE_F(adr, dst)
35768 flag_N = flag_X = flag_C = res;
35769 flag_V = (src ^ res) & (dst ^ res);
35770 flag_NotZ = res & 0xFF;
35771 WRITE_BYTE_F(adr, res)
35782 src = DREGu8((Opcode >> 9) & 7);
35783 adr = AREG((Opcode >> 0) & 7);
35784 AREG((Opcode >> 0) & 7) += 1;
35786 READ_BYTE_F(adr, dst)
35788 flag_N = flag_X = flag_C = res;
35789 flag_V = (src ^ res) & (dst ^ res);
35790 flag_NotZ = res & 0xFF;
35791 WRITE_BYTE_F(adr, res)
35802 src = DREGu8((Opcode >> 9) & 7);
35803 adr = AREG((Opcode >> 0) & 7) - 1;
35804 AREG((Opcode >> 0) & 7) = adr;
35806 READ_BYTE_F(adr, dst)
35808 flag_N = flag_X = flag_C = res;
35809 flag_V = (src ^ res) & (dst ^ res);
35810 flag_NotZ = res & 0xFF;
35811 WRITE_BYTE_F(adr, res)
35822 src = DREGu8((Opcode >> 9) & 7);
35824 adr += AREG((Opcode >> 0) & 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);
35843 adr = AREG((Opcode >> 0) & 7);
35846 READ_BYTE_F(adr, dst)
35848 flag_N = flag_X = flag_C = res;
35849 flag_V = (src ^ res) & (dst ^ res);
35850 flag_NotZ = res & 0xFF;
35851 WRITE_BYTE_F(adr, res)
35862 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);
35884 READ_BYTE_F(adr, dst)
35886 flag_N = flag_X = flag_C = res;
35887 flag_V = (src ^ res) & (dst ^ res);
35888 flag_NotZ = res & 0xFF;
35889 WRITE_BYTE_F(adr, res)
35900 src = DREGu8((Opcode >> 9) & 7);
35904 READ_BYTE_F(adr, dst)
35906 flag_N = flag_X = flag_C = res;
35907 flag_V = (src ^ res) & (dst ^ res);
35908 flag_NotZ = res & 0xFF;
35909 WRITE_BYTE_F(adr, res)
35920 src = DREGu8((Opcode >> 9) & 7);
35924 READ_BYTE_F(adr, dst)
35926 flag_N = flag_X = flag_C = res;
35927 flag_V = (src ^ res) & (dst ^ res);
35928 flag_NotZ = res & 0xFF;
35929 WRITE_BYTE_F(adr, res)
35940 src = DREGu16((Opcode >> 9) & 7);
35941 adr = AREG((Opcode >> 0) & 7);
35943 READ_WORD_F(adr, dst)
35945 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35946 flag_N = flag_X = flag_C = res >> 8;
35947 flag_NotZ = res & 0xFFFF;
35948 WRITE_WORD_F(adr, res)
35959 src = DREGu16((Opcode >> 9) & 7);
35960 adr = AREG((Opcode >> 0) & 7);
35961 AREG((Opcode >> 0) & 7) += 2;
35963 READ_WORD_F(adr, dst)
35965 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35966 flag_N = flag_X = flag_C = res >> 8;
35967 flag_NotZ = res & 0xFFFF;
35968 WRITE_WORD_F(adr, res)
35979 src = DREGu16((Opcode >> 9) & 7);
35980 adr = AREG((Opcode >> 0) & 7) - 2;
35981 AREG((Opcode >> 0) & 7) = adr;
35983 READ_WORD_F(adr, dst)
35985 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35986 flag_N = flag_X = flag_C = res >> 8;
35987 flag_NotZ = res & 0xFFFF;
35988 WRITE_WORD_F(adr, res)
35999 src = DREGu16((Opcode >> 9) & 7);
36001 adr += AREG((Opcode >> 0) & 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);
36020 adr = AREG((Opcode >> 0) & 7);
36023 READ_WORD_F(adr, dst)
36025 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36026 flag_N = flag_X = flag_C = res >> 8;
36027 flag_NotZ = res & 0xFFFF;
36028 WRITE_WORD_F(adr, res)
36039 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);
36061 READ_WORD_F(adr, dst)
36063 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36064 flag_N = flag_X = flag_C = res >> 8;
36065 flag_NotZ = res & 0xFFFF;
36066 WRITE_WORD_F(adr, res)
36077 src = DREGu16((Opcode >> 9) & 7);
36081 READ_WORD_F(adr, dst)
36083 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36084 flag_N = flag_X = flag_C = res >> 8;
36085 flag_NotZ = res & 0xFFFF;
36086 WRITE_WORD_F(adr, res)
36097 src = DREGu16((Opcode >> 9) & 7);
36101 READ_WORD_F(adr, dst)
36103 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36104 flag_N = flag_X = flag_C = res >> 8;
36105 flag_NotZ = res & 0xFFFF;
36106 WRITE_WORD_F(adr, res)
36117 src = DREGu32((Opcode >> 9) & 7);
36118 adr = AREG((Opcode >> 0) & 7);
36120 READ_LONG_F(adr, dst)
36123 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36124 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36125 flag_N = res >> 24;
36126 WRITE_LONG_F(adr, res)
36137 src = DREGu32((Opcode >> 9) & 7);
36138 adr = AREG((Opcode >> 0) & 7);
36139 AREG((Opcode >> 0) & 7) += 4;
36141 READ_LONG_F(adr, dst)
36144 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36145 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36146 flag_N = res >> 24;
36147 WRITE_LONG_F(adr, res)
36158 src = DREGu32((Opcode >> 9) & 7);
36159 adr = AREG((Opcode >> 0) & 7) - 4;
36160 AREG((Opcode >> 0) & 7) = adr;
36162 READ_LONG_F(adr, dst)
36165 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36166 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36167 flag_N = res >> 24;
36168 WRITE_LONG_F(adr, res)
36179 src = DREGu32((Opcode >> 9) & 7);
36181 adr += AREG((Opcode >> 0) & 7);
36183 READ_LONG_F(adr, dst)
36186 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36187 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36188 flag_N = res >> 24;
36189 WRITE_LONG_F(adr, res)
36200 src = DREGu32((Opcode >> 9) & 7);
36201 adr = AREG((Opcode >> 0) & 7);
36204 READ_LONG_F(adr, dst)
36207 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36208 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36209 flag_N = res >> 24;
36210 WRITE_LONG_F(adr, res)
36221 src = DREGu32((Opcode >> 9) & 7);
36224 READ_LONG_F(adr, dst)
36227 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36228 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36229 flag_N = res >> 24;
36230 WRITE_LONG_F(adr, res)
36241 src = DREGu32((Opcode >> 9) & 7);
36244 READ_LONG_F(adr, dst)
36247 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36248 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36249 flag_N = res >> 24;
36250 WRITE_LONG_F(adr, res)
36261 src = DREGu32((Opcode >> 9) & 7);
36265 READ_LONG_F(adr, dst)
36268 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36269 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36270 flag_N = res >> 24;
36271 WRITE_LONG_F(adr, res)
36282 src = DREGu32((Opcode >> 9) & 7);
36286 READ_LONG_F(adr, dst)
36289 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36290 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36291 flag_N = res >> 24;
36292 WRITE_LONG_F(adr, res)
36303 src = DREGu8((Opcode >> 0) & 7);
36304 dst = DREGu8((Opcode >> 9) & 7);
36305 res = dst + src + ((flag_X >> 8) & 1);
36306 flag_N = flag_X = flag_C = res;
36307 flag_V = (src ^ res) & (dst ^ res);
36308 flag_NotZ |= res & 0xFF;
36309 DREGu8((Opcode >> 9) & 7) = res;
36319 src = DREGu16((Opcode >> 0) & 7);
36320 dst = DREGu16((Opcode >> 9) & 7);
36321 res = dst + src + ((flag_X >> 8) & 1);
36322 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36323 flag_N = flag_X = flag_C = res >> 8;
36324 flag_NotZ |= res & 0xFFFF;
36325 DREGu16((Opcode >> 9) & 7) = res;
36335 src = DREGu32((Opcode >> 0) & 7);
36336 dst = DREGu32((Opcode >> 9) & 7);
36337 res = dst + src + ((flag_X >> 8) & 1);
36339 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36340 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36341 flag_N = res >> 24;
36342 DREGu32((Opcode >> 9) & 7) = res;
36352 adr = AREG((Opcode >> 0) & 7) - 1;
36353 AREG((Opcode >> 0) & 7) = adr;
36355 READ_BYTE_F(adr, src)
36356 adr = AREG((Opcode >> 9) & 7) - 1;
36357 AREG((Opcode >> 9) & 7) = adr;
36358 READ_BYTE_F(adr, dst)
36359 res = dst + src + ((flag_X >> 8) & 1);
36360 flag_N = flag_X = flag_C = res;
36361 flag_V = (src ^ res) & (dst ^ res);
36362 flag_NotZ |= res & 0xFF;
36363 WRITE_BYTE_F(adr, res)
36374 adr = AREG((Opcode >> 0) & 7) - 2;
36375 AREG((Opcode >> 0) & 7) = adr;
36377 READ_WORD_F(adr, src)
36378 adr = AREG((Opcode >> 9) & 7) - 2;
36379 AREG((Opcode >> 9) & 7) = adr;
36380 READ_WORD_F(adr, dst)
36381 res = dst + src + ((flag_X >> 8) & 1);
36382 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36383 flag_N = flag_X = flag_C = res >> 8;
36384 flag_NotZ |= res & 0xFFFF;
36385 WRITE_WORD_F(adr, res)
36396 adr = AREG((Opcode >> 0) & 7) - 4;
36397 AREG((Opcode >> 0) & 7) = adr;
36399 READ_LONG_F(adr, src)
36400 adr = AREG((Opcode >> 9) & 7) - 4;
36401 AREG((Opcode >> 9) & 7) = adr;
36402 READ_LONG_F(adr, dst)
36403 res = dst + src + ((flag_X >> 8) & 1);
36405 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36406 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36407 flag_N = res >> 24;
36408 WRITE_LONG_F(adr, res)
36422 READ_BYTE_F(adr, src)
36423 adr = AREG((Opcode >> 9) & 7) - 1;
36424 AREG((Opcode >> 9) & 7) = adr;
36425 READ_BYTE_F(adr, dst)
36426 res = dst + src + ((flag_X >> 8) & 1);
36427 flag_N = flag_X = flag_C = res;
36428 flag_V = (src ^ res) & (dst ^ res);
36429 flag_NotZ |= res & 0xFF;
36430 WRITE_BYTE_F(adr, res)
36444 READ_WORD_F(adr, src)
36445 adr = AREG((Opcode >> 9) & 7) - 2;
36446 AREG((Opcode >> 9) & 7) = adr;
36447 READ_WORD_F(adr, dst)
36448 res = dst + src + ((flag_X >> 8) & 1);
36449 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36450 flag_N = flag_X = flag_C = res >> 8;
36451 flag_NotZ |= res & 0xFFFF;
36452 WRITE_WORD_F(adr, res)
36466 READ_LONG_F(adr, src)
36467 adr = AREG((Opcode >> 9) & 7) - 4;
36468 AREG((Opcode >> 9) & 7) = adr;
36469 READ_LONG_F(adr, dst)
36470 res = dst + src + ((flag_X >> 8) & 1);
36472 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36473 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36474 flag_N = res >> 24;
36475 WRITE_LONG_F(adr, res)
36486 adr = AREG((Opcode >> 0) & 7) - 1;
36487 AREG((Opcode >> 0) & 7) = adr;
36489 READ_BYTE_F(adr, src)
36492 READ_BYTE_F(adr, dst)
36493 res = dst + src + ((flag_X >> 8) & 1);
36494 flag_N = flag_X = flag_C = res;
36495 flag_V = (src ^ res) & (dst ^ res);
36496 flag_NotZ |= res & 0xFF;
36497 WRITE_BYTE_F(adr, res)
36508 adr = AREG((Opcode >> 0) & 7) - 2;
36509 AREG((Opcode >> 0) & 7) = adr;
36511 READ_WORD_F(adr, src)
36514 READ_WORD_F(adr, dst)
36515 res = dst + src + ((flag_X >> 8) & 1);
36516 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36517 flag_N = flag_X = flag_C = res >> 8;
36518 flag_NotZ |= res & 0xFFFF;
36519 WRITE_WORD_F(adr, res)
36530 adr = AREG((Opcode >> 0) & 7) - 4;
36531 AREG((Opcode >> 0) & 7) = adr;
36533 READ_LONG_F(adr, src)
36536 READ_LONG_F(adr, dst)
36537 res = dst + src + ((flag_X >> 8) & 1);
36539 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36540 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36541 flag_N = res >> 24;
36542 WRITE_LONG_F(adr, res)
36556 READ_BYTE_F(adr, src)
36559 READ_BYTE_F(adr, dst)
36560 res = dst + src + ((flag_X >> 8) & 1);
36561 flag_N = flag_X = flag_C = res;
36562 flag_V = (src ^ res) & (dst ^ res);
36563 flag_NotZ |= res & 0xFF;
36564 WRITE_BYTE_F(adr, res)
36578 READ_WORD_F(adr, src)
36581 READ_WORD_F(adr, dst)
36582 res = dst + src + ((flag_X >> 8) & 1);
36583 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36584 flag_N = flag_X = flag_C = res >> 8;
36585 flag_NotZ |= res & 0xFFFF;
36586 WRITE_WORD_F(adr, res)
36600 READ_LONG_F(adr, src)
36603 READ_LONG_F(adr, dst)
36604 res = dst + src + ((flag_X >> 8) & 1);
36606 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36607 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36608 flag_N = res >> 24;
36609 WRITE_LONG_F(adr, res)
36620 src = (s32)DREGs16((Opcode >> 0) & 7);
36621 dst = AREGu32((Opcode >> 9) & 7);
36623 AREG((Opcode >> 9) & 7) = res;
36633 src = (s32)AREGs16((Opcode >> 0) & 7);
36634 dst = AREGu32((Opcode >> 9) & 7);
36636 AREG((Opcode >> 9) & 7) = res;
36646 adr = AREG((Opcode >> 0) & 7);
36648 READSX_WORD_F(adr, src)
36649 dst = AREGu32((Opcode >> 9) & 7);
36651 AREG((Opcode >> 9) & 7) = res;
36653 #ifdef USE_CYCLONE_TIMING
36666 adr = AREG((Opcode >> 0) & 7);
36667 AREG((Opcode >> 0) & 7) += 2;
36669 READSX_WORD_F(adr, src)
36670 dst = AREGu32((Opcode >> 9) & 7);
36672 AREG((Opcode >> 9) & 7) = res;
36674 #ifdef USE_CYCLONE_TIMING
36687 adr = AREG((Opcode >> 0) & 7) - 2;
36688 AREG((Opcode >> 0) & 7) = adr;
36690 READSX_WORD_F(adr, src)
36691 dst = AREGu32((Opcode >> 9) & 7);
36693 AREG((Opcode >> 9) & 7) = res;
36695 #ifdef USE_CYCLONE_TIMING
36709 adr += AREG((Opcode >> 0) & 7);
36711 READSX_WORD_F(adr, src)
36712 dst = AREGu32((Opcode >> 9) & 7);
36714 AREG((Opcode >> 9) & 7) = res;
36716 #ifdef USE_CYCLONE_TIMING
36729 adr = AREG((Opcode >> 0) & 7);
36732 READSX_WORD_F(adr, src)
36733 dst = AREGu32((Opcode >> 9) & 7);
36735 AREG((Opcode >> 9) & 7) = res;
36737 #ifdef USE_CYCLONE_TIMING
36752 READSX_WORD_F(adr, src)
36753 dst = AREGu32((Opcode >> 9) & 7);
36755 AREG((Opcode >> 9) & 7) = res;
36757 #ifdef USE_CYCLONE_TIMING
36772 READSX_WORD_F(adr, src)
36773 dst = AREGu32((Opcode >> 9) & 7);
36775 AREG((Opcode >> 9) & 7) = res;
36777 #ifdef USE_CYCLONE_TIMING
36790 adr = GET_SWORD + GET_PC;
36793 READSX_WORD_F(adr, src)
36794 dst = AREGu32((Opcode >> 9) & 7);
36796 AREG((Opcode >> 9) & 7) = res;
36798 #ifdef USE_CYCLONE_TIMING
36814 READSX_WORD_F(adr, src)
36815 dst = AREGu32((Opcode >> 9) & 7);
36817 AREG((Opcode >> 9) & 7) = res;
36819 #ifdef USE_CYCLONE_TIMING
36833 dst = AREGu32((Opcode >> 9) & 7);
36835 AREG((Opcode >> 9) & 7) = res;
36848 READSX_WORD_F(adr, src)
36849 dst = AREGu32((Opcode >> 9) & 7);
36851 AREG((Opcode >> 9) & 7) = res;
36853 #ifdef USE_CYCLONE_TIMING
36869 READSX_WORD_F(adr, src)
36870 dst = AREGu32((Opcode >> 9) & 7);
36872 AREG((Opcode >> 9) & 7) = res;
36874 #ifdef USE_CYCLONE_TIMING
36887 src = (s32)DREGs32((Opcode >> 0) & 7);
36888 dst = AREGu32((Opcode >> 9) & 7);
36890 AREG((Opcode >> 9) & 7) = res;
36891 #ifdef USE_CYCLONE_TIMING
36904 src = (s32)AREGs32((Opcode >> 0) & 7);
36905 dst = AREGu32((Opcode >> 9) & 7);
36907 AREG((Opcode >> 9) & 7) = res;
36908 #ifdef USE_CYCLONE_TIMING
36921 adr = AREG((Opcode >> 0) & 7);
36923 READSX_LONG_F(adr, src)
36924 dst = AREGu32((Opcode >> 9) & 7);
36926 AREG((Opcode >> 9) & 7) = res;
36937 adr = AREG((Opcode >> 0) & 7);
36938 AREG((Opcode >> 0) & 7) += 4;
36940 READSX_LONG_F(adr, src)
36941 dst = AREGu32((Opcode >> 9) & 7);
36943 AREG((Opcode >> 9) & 7) = res;
36954 adr = AREG((Opcode >> 0) & 7) - 4;
36955 AREG((Opcode >> 0) & 7) = adr;
36957 READSX_LONG_F(adr, src)
36958 dst = AREGu32((Opcode >> 9) & 7);
36960 AREG((Opcode >> 9) & 7) = res;
36972 adr += AREG((Opcode >> 0) & 7);
36974 READSX_LONG_F(adr, src)
36975 dst = AREGu32((Opcode >> 9) & 7);
36977 AREG((Opcode >> 9) & 7) = res;
36988 adr = AREG((Opcode >> 0) & 7);
36991 READSX_LONG_F(adr, src)
36992 dst = AREGu32((Opcode >> 9) & 7);
36994 AREG((Opcode >> 9) & 7) = res;
37007 READSX_LONG_F(adr, src)
37008 dst = AREGu32((Opcode >> 9) & 7);
37010 AREG((Opcode >> 9) & 7) = res;
37023 READSX_LONG_F(adr, src)
37024 dst = AREGu32((Opcode >> 9) & 7);
37026 AREG((Opcode >> 9) & 7) = res;
37037 adr = GET_SWORD + GET_PC;
37040 READSX_LONG_F(adr, src)
37041 dst = AREGu32((Opcode >> 9) & 7);
37043 AREG((Opcode >> 9) & 7) = res;
37057 READSX_LONG_F(adr, src)
37058 dst = AREGu32((Opcode >> 9) & 7);
37060 AREG((Opcode >> 9) & 7) = res;
37072 dst = AREGu32((Opcode >> 9) & 7);
37074 AREG((Opcode >> 9) & 7) = res;
37075 #ifdef USE_CYCLONE_TIMING
37091 READSX_LONG_F(adr, src)
37092 dst = AREGu32((Opcode >> 9) & 7);
37094 AREG((Opcode >> 9) & 7) = res;
37108 READSX_LONG_F(adr, src)
37109 dst = AREGu32((Opcode >> 9) & 7);
37111 AREG((Opcode >> 9) & 7) = res;
37124 sft = (((Opcode >> 9) - 1) & 7) + 1;
37125 m68kcontext.io_cycle_counter -= sft * 2;
37126 src = (s32)DREGs8((Opcode >> 0) & 7);
37128 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37129 res = ((s32)src) >> sft;
37132 DREGu8((Opcode >> 0) & 7) = res;
37144 sft = (((Opcode >> 9) - 1) & 7) + 1;
37145 m68kcontext.io_cycle_counter -= sft * 2;
37146 src = (s32)DREGs16((Opcode >> 0) & 7);
37148 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37149 res = ((s32)src) >> sft;
37152 DREGu16((Opcode >> 0) & 7) = res;
37164 sft = (((Opcode >> 9) - 1) & 7) + 1;
37165 m68kcontext.io_cycle_counter -= sft * 2;
37166 src = (s32)DREGs32((Opcode >> 0) & 7);
37168 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37169 res = ((s32)src) >> sft;
37170 flag_N = res >> 24;
37172 DREGu32((Opcode >> 0) & 7) = res;
37184 sft = (((Opcode >> 9) - 1) & 7) + 1;
37185 m68kcontext.io_cycle_counter -= sft * 2;
37186 src = DREGu8((Opcode >> 0) & 7);
37187 flag_N = flag_V = 0;
37188 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37191 DREGu8((Opcode >> 0) & 7) = res;
37203 sft = (((Opcode >> 9) - 1) & 7) + 1;
37204 m68kcontext.io_cycle_counter -= sft * 2;
37205 src = DREGu16((Opcode >> 0) & 7);
37206 flag_N = flag_V = 0;
37207 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37210 DREGu16((Opcode >> 0) & 7) = res;
37222 sft = (((Opcode >> 9) - 1) & 7) + 1;
37223 m68kcontext.io_cycle_counter -= sft * 2;
37224 src = DREGu32((Opcode >> 0) & 7);
37225 flag_N = flag_V = 0;
37226 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37229 DREGu32((Opcode >> 0) & 7) = res;
37241 sft = (((Opcode >> 9) - 1) & 7) + 1;
37242 m68kcontext.io_cycle_counter -= sft * 2;
37243 src = DREGu8((Opcode >> 0) & 7);
37244 src |= (flag_X & M68K_SR_X) << 0;
37245 res = (src >> sft) | (src << (9 - sft));
37246 flag_X = flag_C = res >> 0;
37249 flag_NotZ = res & 0x000000FF;
37250 DREGu8((Opcode >> 0) & 7) = res;
37262 sft = (((Opcode >> 9) - 1) & 7) + 1;
37263 m68kcontext.io_cycle_counter -= sft * 2;
37264 src = DREGu16((Opcode >> 0) & 7);
37265 src |= (flag_X & M68K_SR_X) << 8;
37266 res = (src >> sft) | (src << (17 - sft));
37267 flag_X = flag_C = res >> 8;
37270 flag_NotZ = res & 0x0000FFFF;
37271 DREGu16((Opcode >> 0) & 7) = res;
37283 sft = (((Opcode >> 9) - 1) & 7) + 1;
37284 m68kcontext.io_cycle_counter -= sft * 2;
37285 src = DREGu32((Opcode >> 0) & 7);
37286 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37287 if (sft == 1) res = (src >> 1) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1)));
37288 else res = (src >> sft) | (src << (33 - sft)) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + sft)));
37291 flag_N = res >> 24;
37293 DREGu32((Opcode >> 0) & 7) = res;
37305 sft = (((Opcode >> 9) - 1) & 7) + 1;
37306 m68kcontext.io_cycle_counter -= sft * 2;
37307 src = DREGu8((Opcode >> 0) & 7);
37309 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37310 res = (src >> sft) | (src << (8 - sft));
37312 flag_NotZ = res & 0x000000FF;
37313 DREGu8((Opcode >> 0) & 7) = res;
37325 sft = (((Opcode >> 9) - 1) & 7) + 1;
37326 m68kcontext.io_cycle_counter -= sft * 2;
37327 src = DREGu16((Opcode >> 0) & 7);
37329 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37330 res = (src >> sft) | (src << (16 - sft));
37332 flag_NotZ = res & 0x0000FFFF;
37333 DREGu16((Opcode >> 0) & 7) = res;
37345 sft = (((Opcode >> 9) - 1) & 7) + 1;
37346 m68kcontext.io_cycle_counter -= sft * 2;
37347 src = DREGu32((Opcode >> 0) & 7);
37349 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37350 res = (src >> sft) | (src << (32 - sft));
37351 flag_N = res >> 24;
37353 DREGu32((Opcode >> 0) & 7) = res;
37365 sft = (((Opcode >> 9) - 1) & 7) + 1;
37366 m68kcontext.io_cycle_counter -= sft * 2;
37367 src = DREGu8((Opcode >> 0) & 7);
37370 flag_X = flag_C = src << (0 + sft);
37373 flag_NotZ = res & 0x000000FF;
37374 DREGu8((Opcode >> 0) & 7) = res;
37376 if ((sft > 7) && (src)) flag_V = M68K_SR_V;
37379 u32 msk = (((s32)0x80000000) >> (sft + 24)) & 0x000000FF;
37381 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37386 if (src) flag_V = M68K_SR_V;
37388 flag_X = flag_C = src << M68K_SR_C_SFT;
37390 DREGu8((Opcode >> 0) & 7) = res;
37404 sft = (((Opcode >> 9) - 1) & 7) + 1;
37405 m68kcontext.io_cycle_counter -= sft * 2;
37406 src = DREGu16((Opcode >> 0) & 7);
37407 flag_X = flag_C = src >> (8 - sft);
37410 flag_NotZ = res & 0x0000FFFF;
37411 DREGu16((Opcode >> 0) & 7) = res;
37414 u32 msk = (((s32)0x80000000) >> (sft + 16)) & 0x0000FFFF;
37416 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37429 sft = (((Opcode >> 9) - 1) & 7) + 1;
37430 m68kcontext.io_cycle_counter -= sft * 2;
37431 src = DREGu32((Opcode >> 0) & 7);
37432 flag_X = flag_C = src >> (24 - sft);
37434 flag_N = res >> 24;
37435 flag_NotZ = res & 0xFFFFFFFF;
37436 DREGu32((Opcode >> 0) & 7) = res;
37439 u32 msk = (((s32)0x80000000) >> (sft + 0)) & 0xFFFFFFFF;
37441 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37454 sft = (((Opcode >> 9) - 1) & 7) + 1;
37455 m68kcontext.io_cycle_counter -= sft * 2;
37456 src = DREGu8((Opcode >> 0) & 7);
37458 flag_X = flag_C = src << (0 + sft);
37461 flag_NotZ = res & 0x000000FF;
37462 DREGu8((Opcode >> 0) & 7) = res;
37474 sft = (((Opcode >> 9) - 1) & 7) + 1;
37475 m68kcontext.io_cycle_counter -= sft * 2;
37476 src = DREGu16((Opcode >> 0) & 7);
37478 flag_X = flag_C = src >> (8 - sft);
37481 flag_NotZ = res & 0x0000FFFF;
37482 DREGu16((Opcode >> 0) & 7) = res;
37494 sft = (((Opcode >> 9) - 1) & 7) + 1;
37495 m68kcontext.io_cycle_counter -= sft * 2;
37496 src = DREGu32((Opcode >> 0) & 7);
37498 flag_X = flag_C = src >> (24 - sft);
37500 flag_N = res >> 24;
37501 flag_NotZ = res & 0xFFFFFFFF;
37502 DREGu32((Opcode >> 0) & 7) = res;
37514 sft = (((Opcode >> 9) - 1) & 7) + 1;
37515 m68kcontext.io_cycle_counter -= sft * 2;
37516 src = DREGu8((Opcode >> 0) & 7);
37517 src |= (flag_X & M68K_SR_X) << 0;
37518 res = (src << sft) | (src >> (9 - sft));
37519 flag_X = flag_C = res >> 0;
37522 flag_NotZ = res & 0x000000FF;
37523 DREGu8((Opcode >> 0) & 7) = res;
37535 sft = (((Opcode >> 9) - 1) & 7) + 1;
37536 m68kcontext.io_cycle_counter -= sft * 2;
37537 src = DREGu16((Opcode >> 0) & 7);
37538 src |= (flag_X & M68K_SR_X) << 8;
37539 res = (src << sft) | (src >> (17 - sft));
37540 flag_X = flag_C = res >> 8;
37543 flag_NotZ = res & 0x0000FFFF;
37544 DREGu16((Opcode >> 0) & 7) = res;
37556 sft = (((Opcode >> 9) - 1) & 7) + 1;
37557 m68kcontext.io_cycle_counter -= sft * 2;
37558 src = DREGu32((Opcode >> 0) & 7);
37559 flag_C = src >> ((32 - M68K_SR_C_SFT) - sft);
37560 if (sft == 1) res = (src << 1) | ((flag_X & M68K_SR_X) >> ((M68K_SR_X_SFT + 1) - 1));
37561 else res = (src << sft) | (src >> (33 - sft)) | ((flag_X & M68K_SR_X) >> ((M68K_SR_X_SFT + 1) - sft));
37564 flag_N = res >> 24;
37566 DREGu32((Opcode >> 0) & 7) = res;
37578 sft = (((Opcode >> 9) - 1) & 7) + 1;
37579 m68kcontext.io_cycle_counter -= sft * 2;
37580 src = DREGu8((Opcode >> 0) & 7);
37582 flag_C = src << (0 + sft);
37583 res = (src << sft) | (src >> (8 - sft));
37585 flag_NotZ = res & 0x000000FF;
37586 DREGu8((Opcode >> 0) & 7) = res;
37598 sft = (((Opcode >> 9) - 1) & 7) + 1;
37599 m68kcontext.io_cycle_counter -= sft * 2;
37600 src = DREGu16((Opcode >> 0) & 7);
37602 flag_C = src >> (8 - sft);
37603 res = (src << sft) | (src >> (16 - sft));
37605 flag_NotZ = res & 0x0000FFFF;
37606 DREGu16((Opcode >> 0) & 7) = res;
37618 sft = (((Opcode >> 9) - 1) & 7) + 1;
37619 m68kcontext.io_cycle_counter -= sft * 2;
37620 src = DREGu32((Opcode >> 0) & 7);
37622 flag_C = src >> (24 - sft);
37623 res = (src << sft) | (src >> (32 - sft));
37624 flag_N = res >> 24;
37626 DREGu32((Opcode >> 0) & 7) = res;
37638 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37639 src = (s32)DREGs8((Opcode >> 0) & 7);
37642 m68kcontext.io_cycle_counter -= sft * 2;
37646 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37647 res = ((s32)src) >> sft;
37650 DREGu8((Opcode >> 0) & 7) = res;
37654 if (src & (1 << 7))
37656 flag_N = M68K_SR_N;
37659 flag_C = M68K_SR_C;
37660 flag_X = M68K_SR_X;
37662 DREGu8((Opcode >> 0) & 7) = res;
37672 DREGu8((Opcode >> 0) & 7) = res;
37691 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37692 src = (s32)DREGs16((Opcode >> 0) & 7);
37695 m68kcontext.io_cycle_counter -= sft * 2;
37699 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37700 res = ((s32)src) >> sft;
37703 DREGu16((Opcode >> 0) & 7) = res;
37707 if (src & (1 << 15))
37709 flag_N = M68K_SR_N;
37712 flag_C = M68K_SR_C;
37713 flag_X = M68K_SR_X;
37715 DREGu16((Opcode >> 0) & 7) = res;
37725 DREGu16((Opcode >> 0) & 7) = res;
37739 #ifdef USE_CYCLONE_TIMING
37749 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37750 src = (s32)DREGs32((Opcode >> 0) & 7);
37753 m68kcontext.io_cycle_counter -= sft * 2;
37757 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37758 res = ((s32)src) >> sft;
37759 flag_N = res >> 24;
37761 DREGu32((Opcode >> 0) & 7) = res;
37765 if (src & (1 << 31))
37767 flag_N = M68K_SR_N;
37770 flag_C = M68K_SR_C;
37771 flag_X = M68K_SR_X;
37773 DREGu32((Opcode >> 0) & 7) = res;
37783 DREGu32((Opcode >> 0) & 7) = res;
37789 flag_N = src >> 24;
37803 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37804 src = DREGu8((Opcode >> 0) & 7);
37807 m68kcontext.io_cycle_counter -= sft * 2;
37810 flag_N = flag_V = 0;
37811 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37814 DREGu8((Opcode >> 0) & 7) = res;
37818 flag_X = flag_C = 0;
37823 DREGu8((Opcode >> 0) & 7) = res;
37842 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37843 src = DREGu16((Opcode >> 0) & 7);
37846 m68kcontext.io_cycle_counter -= sft * 2;
37849 flag_N = flag_V = 0;
37850 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37853 DREGu16((Opcode >> 0) & 7) = res;
37857 flag_X = flag_C = 0;
37862 DREGu16((Opcode >> 0) & 7) = res;
37876 #ifdef USE_CYCLONE_TIMING
37886 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37887 src = DREGu32((Opcode >> 0) & 7);
37890 m68kcontext.io_cycle_counter -= sft * 2;
37893 flag_N = flag_V = 0;
37894 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37897 DREGu32((Opcode >> 0) & 7) = res;
37901 if (sft == 32) flag_C = src >> (31 - M68K_SR_C_SFT);
37908 DREGu32((Opcode >> 0) & 7) = res;
37914 flag_N = src >> 24;
37928 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37929 src = DREGu8((Opcode >> 0) & 7);
37932 m68kcontext.io_cycle_counter -= sft * 2;
37935 src |= (flag_X & M68K_SR_X) << 0;
37936 res = (src >> sft) | (src << (9 - sft));
37937 flag_X = flag_C = res >> 0;
37940 flag_NotZ = res & 0x000000FF;
37941 DREGu8((Opcode >> 0) & 7) = res;
37960 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37961 src = DREGu16((Opcode >> 0) & 7);
37964 m68kcontext.io_cycle_counter -= sft * 2;
37967 src |= (flag_X & M68K_SR_X) << 8;
37968 res = (src >> sft) | (src << (17 - sft));
37969 flag_X = flag_C = res >> 8;
37972 flag_NotZ = res & 0x0000FFFF;
37973 DREGu16((Opcode >> 0) & 7) = res;
37987 #ifdef USE_CYCLONE_TIMING
37997 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37998 src = DREGu32((Opcode >> 0) & 7);
38001 m68kcontext.io_cycle_counter -= sft * 2;
38006 if (sft == 1) res = (src >> 1) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1)));
38007 else res = (src >> sft) | (src << (33 - sft)) | (((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1))) >> (sft - 1));
38008 flag_X = (src >> (32 - sft)) << M68K_SR_X_SFT;
38013 flag_N = res >> 24;
38015 DREGu32((Opcode >> 0) & 7) = res;
38021 flag_N = src >> 24;
38035 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38036 src = DREGu8((Opcode >> 0) & 7);
38039 m68kcontext.io_cycle_counter -= sft * 2;
38042 flag_C = src << (M68K_SR_C_SFT - ((sft - 1) & 7));
38043 res = (src >> sft) | (src << (8 - sft));
38046 flag_NotZ = res & 0x000000FF;
38047 DREGu8((Opcode >> 0) & 7) = res;
38066 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38067 src = DREGu16((Opcode >> 0) & 7);
38070 m68kcontext.io_cycle_counter -= sft * 2;
38073 flag_C = (src >> ((sft - 1) & 15)) << M68K_SR_C_SFT;
38074 res = (src >> sft) | (src << (16 - sft));
38077 flag_NotZ = res & 0x0000FFFF;
38078 DREGu16((Opcode >> 0) & 7) = res;
38092 #ifdef USE_CYCLONE_TIMING
38102 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38103 src = DREGu32((Opcode >> 0) & 7);
38106 m68kcontext.io_cycle_counter -= sft * 2;
38109 flag_C = (src >> ((sft - 1) & 31)) << M68K_SR_C_SFT;
38110 res = (src >> sft) | (src << (32 - sft));
38112 flag_N = res >> 24;
38114 DREGu32((Opcode >> 0) & 7) = res;
38120 flag_N = src >> 24;
38134 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38135 src = DREGu8((Opcode >> 0) & 7);
38138 m68kcontext.io_cycle_counter -= sft * 2;
38141 flag_X = flag_C = (src << sft) >> 0;
38142 res = (src << sft) & 0x000000FF;
38145 DREGu8((Opcode >> 0) & 7) = res;
38148 u32 msk = (((s32)0x80000000) >> (sft + 24)) & 0x000000FF;
38150 if ((src) && (src != msk)) flag_V = M68K_SR_V;
38155 if (sft == 256) flag_C = src << M68K_SR_C_SFT;
38158 if (src) flag_V = M68K_SR_V;
38161 DREGu8((Opcode >> 0) & 7) = res;
38182 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38183 src = DREGu16((Opcode >> 0) & 7);
38186 m68kcontext.io_cycle_counter -= sft * 2;
38189 flag_X = flag_C = (src << sft) >> 8;
38190 res = (src << sft) & 0x0000FFFF;
38193 DREGu16((Opcode >> 0) & 7) = res;
38196 u32 msk = (((s32)0x80000000) >> (sft + 16)) & 0x0000FFFF;
38198 if ((src) && (src != msk)) flag_V = M68K_SR_V;
38203 if (sft == 65536) flag_C = src << M68K_SR_C_SFT;
38206 if (src) flag_V = M68K_SR_V;
38209 DREGu16((Opcode >> 0) & 7) = res;
38225 #ifdef USE_CYCLONE_TIMING
38235 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38236 src = DREGu32((Opcode >> 0) & 7);
38239 m68kcontext.io_cycle_counter -= sft * 2;
38242 flag_X = flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38244 flag_N = res >> 24;
38246 DREGu32((Opcode >> 0) & 7) = res;
38249 u32 msk = (((s32)0x80000000) >> (sft + 0)) & 0xFFFFFFFF;
38251 if ((src) && (src != msk)) flag_V = M68K_SR_V;
38256 if (sft == 0) flag_C = src << M68K_SR_C_SFT;
38259 if (src) flag_V = M68K_SR_V;
38262 DREGu32((Opcode >> 0) & 7) = res;
38270 flag_N = src >> 24;
38284 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38285 src = DREGu8((Opcode >> 0) & 7);
38288 m68kcontext.io_cycle_counter -= sft * 2;
38291 flag_X = flag_C = (src << sft) >> 0;
38292 res = (src << sft) & 0x000000FF;
38296 DREGu8((Opcode >> 0) & 7) = res;
38300 flag_X = flag_C = 0;
38305 DREGu8((Opcode >> 0) & 7) = res;
38324 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38325 src = DREGu16((Opcode >> 0) & 7);
38328 m68kcontext.io_cycle_counter -= sft * 2;
38331 flag_X = flag_C = (src << sft) >> 8;
38332 res = (src << sft) & 0x0000FFFF;
38336 DREGu16((Opcode >> 0) & 7) = res;
38340 flag_X = flag_C = 0;
38345 DREGu16((Opcode >> 0) & 7) = res;
38359 #ifdef USE_CYCLONE_TIMING
38369 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38370 src = DREGu32((Opcode >> 0) & 7);
38373 m68kcontext.io_cycle_counter -= sft * 2;
38376 flag_X = flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38379 flag_N = res >> 24;
38381 DREGu32((Opcode >> 0) & 7) = res;
38385 if (sft == 32) flag_C = src << M68K_SR_C_SFT;
38392 DREGu32((Opcode >> 0) & 7) = res;
38398 flag_N = src >> 24;
38412 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38413 src = DREGu8((Opcode >> 0) & 7);
38416 m68kcontext.io_cycle_counter -= sft * 2;
38419 src |= (flag_X & M68K_SR_X) << 0;
38420 res = (src << sft) | (src >> (9 - sft));
38421 flag_X = flag_C = res >> 0;
38424 flag_NotZ = res & 0x000000FF;
38425 DREGu8((Opcode >> 0) & 7) = res;
38444 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38445 src = DREGu16((Opcode >> 0) & 7);
38448 m68kcontext.io_cycle_counter -= sft * 2;
38451 src |= (flag_X & M68K_SR_X) << 8;
38452 res = (src << sft) | (src >> (17 - sft));
38453 flag_X = flag_C = res >> 8;
38456 flag_NotZ = res & 0x0000FFFF;
38457 DREGu16((Opcode >> 0) & 7) = res;
38471 #ifdef USE_CYCLONE_TIMING
38481 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38482 src = DREGu32((Opcode >> 0) & 7);
38485 m68kcontext.io_cycle_counter -= sft * 2;
38490 if (sft == 1) res = (src << 1) | ((flag_X >> ((M68K_SR_X_SFT + 1) - 1)) & 1);
38491 else res = (src << sft) | (src >> (33 - sft)) | (((flag_X >> ((M68K_SR_X_SFT + 1) - 1)) & 1) << (sft - 1));
38492 flag_X = (src >> (32 - sft)) << M68K_SR_X_SFT;
38497 flag_N = res >> 24;
38499 DREGu32((Opcode >> 0) & 7) = res;
38505 flag_N = src >> 24;
38519 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38520 src = DREGu8((Opcode >> 0) & 7);
38523 m68kcontext.io_cycle_counter -= sft * 2;
38526 flag_C = (src << sft) >> 0;
38527 res = ((src << sft) | (src >> (8 - sft))) & 0x000000FF;
38531 DREGu8((Opcode >> 0) & 7) = res;
38536 flag_C = src << M68K_SR_C_SFT;
38557 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38558 src = DREGu16((Opcode >> 0) & 7);
38561 m68kcontext.io_cycle_counter -= sft * 2;
38564 flag_C = (src << sft) >> 8;
38565 res = ((src << sft) | (src >> (16 - sft))) & 0x0000FFFF;
38569 DREGu16((Opcode >> 0) & 7) = res;
38574 flag_C = src << M68K_SR_C_SFT;
38590 #ifdef USE_CYCLONE_TIMING
38600 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38601 src = DREGu32((Opcode >> 0) & 7);
38604 m68kcontext.io_cycle_counter -= sft * 2;
38607 flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38608 res = (src << sft) | (src >> (32 - sft));
38610 flag_N = res >> 24;
38612 DREGu32((Opcode >> 0) & 7) = res;
38617 flag_C = src << M68K_SR_C_SFT;
38618 flag_N = src >> 24;
38625 flag_N = src >> 24;
38637 adr = AREG((Opcode >> 0) & 7);
38639 READ_WORD_F(adr, src)
38641 flag_X = flag_C = src << M68K_SR_C_SFT;
38642 res = (src >> 1) | (src & (1 << 15));
38645 WRITE_WORD_F(adr, res)
38656 adr = AREG((Opcode >> 0) & 7);
38657 AREG((Opcode >> 0) & 7) += 2;
38659 READ_WORD_F(adr, src)
38661 flag_X = flag_C = src << M68K_SR_C_SFT;
38662 res = (src >> 1) | (src & (1 << 15));
38665 WRITE_WORD_F(adr, res)
38676 adr = AREG((Opcode >> 0) & 7) - 2;
38677 AREG((Opcode >> 0) & 7) = adr;
38679 READ_WORD_F(adr, src)
38681 flag_X = flag_C = src << M68K_SR_C_SFT;
38682 res = (src >> 1) | (src & (1 << 15));
38685 WRITE_WORD_F(adr, res)
38697 adr += AREG((Opcode >> 0) & 7);
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)
38716 adr = AREG((Opcode >> 0) & 7);
38719 READ_WORD_F(adr, src)
38721 flag_X = flag_C = src << M68K_SR_C_SFT;
38722 res = (src >> 1) | (src & (1 << 15));
38725 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)
38757 READ_WORD_F(adr, src)
38759 flag_X = flag_C = src << M68K_SR_C_SFT;
38760 res = (src >> 1) | (src & (1 << 15));
38763 WRITE_WORD_F(adr, res)
38777 READ_WORD_F(adr, src)
38779 flag_X = flag_C = src << M68K_SR_C_SFT;
38780 res = (src >> 1) | (src & (1 << 15));
38783 WRITE_WORD_F(adr, res)
38797 READ_WORD_F(adr, src)
38799 flag_X = flag_C = src << M68K_SR_C_SFT;
38800 res = (src >> 1) | (src & (1 << 15));
38803 WRITE_WORD_F(adr, res)
38814 adr = AREG((Opcode >> 0) & 7);
38816 READ_WORD_F(adr, src)
38817 flag_N = flag_V = 0;
38818 flag_X = flag_C = src << M68K_SR_C_SFT;
38821 WRITE_WORD_F(adr, res)
38832 adr = AREG((Opcode >> 0) & 7);
38833 AREG((Opcode >> 0) & 7) += 2;
38835 READ_WORD_F(adr, src)
38836 flag_N = flag_V = 0;
38837 flag_X = flag_C = src << M68K_SR_C_SFT;
38840 WRITE_WORD_F(adr, res)
38851 adr = AREG((Opcode >> 0) & 7) - 2;
38852 AREG((Opcode >> 0) & 7) = adr;
38854 READ_WORD_F(adr, src)
38855 flag_N = flag_V = 0;
38856 flag_X = flag_C = src << M68K_SR_C_SFT;
38859 WRITE_WORD_F(adr, res)
38871 adr += AREG((Opcode >> 0) & 7);
38873 READ_WORD_F(adr, src)
38874 flag_N = flag_V = 0;
38875 flag_X = flag_C = src << M68K_SR_C_SFT;
38878 WRITE_WORD_F(adr, res)
38889 adr = AREG((Opcode >> 0) & 7);
38892 READ_WORD_F(adr, src)
38893 flag_N = flag_V = 0;
38894 flag_X = flag_C = src << M68K_SR_C_SFT;
38897 WRITE_WORD_F(adr, res)
38910 READ_WORD_F(adr, src)
38911 flag_N = flag_V = 0;
38912 flag_X = flag_C = src << M68K_SR_C_SFT;
38915 WRITE_WORD_F(adr, res)
38928 READ_WORD_F(adr, src)
38929 flag_N = flag_V = 0;
38930 flag_X = flag_C = src << M68K_SR_C_SFT;
38933 WRITE_WORD_F(adr, res)
38947 READ_WORD_F(adr, src)
38948 flag_N = flag_V = 0;
38949 flag_X = flag_C = src << M68K_SR_C_SFT;
38952 WRITE_WORD_F(adr, res)
38966 READ_WORD_F(adr, src)
38967 flag_N = flag_V = 0;
38968 flag_X = flag_C = src << M68K_SR_C_SFT;
38971 WRITE_WORD_F(adr, res)
38982 adr = AREG((Opcode >> 0) & 7);
38984 READ_WORD_F(adr, src)
38986 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38987 flag_C = flag_X = src << M68K_SR_C_SFT;
38990 WRITE_WORD_F(adr, res)
39001 adr = AREG((Opcode >> 0) & 7);
39002 AREG((Opcode >> 0) & 7) += 2;
39004 READ_WORD_F(adr, src)
39006 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39007 flag_C = flag_X = src << M68K_SR_C_SFT;
39010 WRITE_WORD_F(adr, res)
39021 adr = AREG((Opcode >> 0) & 7) - 2;
39022 AREG((Opcode >> 0) & 7) = adr;
39024 READ_WORD_F(adr, src)
39026 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39027 flag_C = flag_X = src << M68K_SR_C_SFT;
39030 WRITE_WORD_F(adr, res)
39042 adr += AREG((Opcode >> 0) & 7);
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)
39061 adr = AREG((Opcode >> 0) & 7);
39064 READ_WORD_F(adr, src)
39066 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39067 flag_C = flag_X = src << M68K_SR_C_SFT;
39070 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)
39102 READ_WORD_F(adr, src)
39104 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39105 flag_C = flag_X = src << M68K_SR_C_SFT;
39108 WRITE_WORD_F(adr, res)
39122 READ_WORD_F(adr, src)
39124 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39125 flag_C = flag_X = src << M68K_SR_C_SFT;
39128 WRITE_WORD_F(adr, res)
39142 READ_WORD_F(adr, src)
39144 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39145 flag_C = flag_X = src << M68K_SR_C_SFT;
39148 WRITE_WORD_F(adr, res)
39159 adr = AREG((Opcode >> 0) & 7);
39161 READ_WORD_F(adr, src)
39163 flag_C = src << M68K_SR_C_SFT;
39164 res = (src >> 1) | (src << 15);
39166 flag_NotZ = res & 0x0000FFFF;
39167 WRITE_WORD_F(adr, res)
39178 adr = AREG((Opcode >> 0) & 7);
39179 AREG((Opcode >> 0) & 7) += 2;
39181 READ_WORD_F(adr, src)
39183 flag_C = src << M68K_SR_C_SFT;
39184 res = (src >> 1) | (src << 15);
39186 flag_NotZ = res & 0x0000FFFF;
39187 WRITE_WORD_F(adr, res)
39198 adr = AREG((Opcode >> 0) & 7) - 2;
39199 AREG((Opcode >> 0) & 7) = adr;
39201 READ_WORD_F(adr, src)
39203 flag_C = src << M68K_SR_C_SFT;
39204 res = (src >> 1) | (src << 15);
39206 flag_NotZ = res & 0x0000FFFF;
39207 WRITE_WORD_F(adr, res)
39219 adr += AREG((Opcode >> 0) & 7);
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)
39238 adr = AREG((Opcode >> 0) & 7);
39241 READ_WORD_F(adr, src)
39243 flag_C = src << M68K_SR_C_SFT;
39244 res = (src >> 1) | (src << 15);
39246 flag_NotZ = res & 0x0000FFFF;
39247 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)
39279 READ_WORD_F(adr, src)
39281 flag_C = src << M68K_SR_C_SFT;
39282 res = (src >> 1) | (src << 15);
39284 flag_NotZ = res & 0x0000FFFF;
39285 WRITE_WORD_F(adr, res)
39299 READ_WORD_F(adr, src)
39301 flag_C = src << M68K_SR_C_SFT;
39302 res = (src >> 1) | (src << 15);
39304 flag_NotZ = res & 0x0000FFFF;
39305 WRITE_WORD_F(adr, res)
39319 READ_WORD_F(adr, src)
39321 flag_C = src << M68K_SR_C_SFT;
39322 res = (src >> 1) | (src << 15);
39324 flag_NotZ = res & 0x0000FFFF;
39325 WRITE_WORD_F(adr, res)
39336 adr = AREG((Opcode >> 0) & 7);
39338 READ_WORD_F(adr, src)
39339 flag_X = flag_C = src >> 7;
39341 flag_V = (src ^ res) >> 8;
39343 flag_NotZ = res & 0x0000FFFF;
39344 WRITE_WORD_F(adr, res)
39355 adr = AREG((Opcode >> 0) & 7);
39356 AREG((Opcode >> 0) & 7) += 2;
39358 READ_WORD_F(adr, src)
39359 flag_X = flag_C = src >> 7;
39361 flag_V = (src ^ res) >> 8;
39363 flag_NotZ = res & 0x0000FFFF;
39364 WRITE_WORD_F(adr, res)
39375 adr = AREG((Opcode >> 0) & 7) - 2;
39376 AREG((Opcode >> 0) & 7) = adr;
39378 READ_WORD_F(adr, src)
39379 flag_X = flag_C = src >> 7;
39381 flag_V = (src ^ res) >> 8;
39383 flag_NotZ = res & 0x0000FFFF;
39384 WRITE_WORD_F(adr, res)
39396 adr += AREG((Opcode >> 0) & 7);
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)
39415 adr = AREG((Opcode >> 0) & 7);
39418 READ_WORD_F(adr, src)
39419 flag_X = flag_C = src >> 7;
39421 flag_V = (src ^ res) >> 8;
39423 flag_NotZ = res & 0x0000FFFF;
39424 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)
39456 READ_WORD_F(adr, src)
39457 flag_X = flag_C = src >> 7;
39459 flag_V = (src ^ res) >> 8;
39461 flag_NotZ = res & 0x0000FFFF;
39462 WRITE_WORD_F(adr, res)
39476 READ_WORD_F(adr, src)
39477 flag_X = flag_C = src >> 7;
39479 flag_V = (src ^ res) >> 8;
39481 flag_NotZ = res & 0x0000FFFF;
39482 WRITE_WORD_F(adr, res)
39496 READ_WORD_F(adr, src)
39497 flag_X = flag_C = src >> 7;
39499 flag_V = (src ^ res) >> 8;
39501 flag_NotZ = res & 0x0000FFFF;
39502 WRITE_WORD_F(adr, res)
39513 adr = AREG((Opcode >> 0) & 7);
39515 READ_WORD_F(adr, src)
39517 flag_X = flag_C = src >> 7;
39520 flag_NotZ = res & 0x0000FFFF;
39521 WRITE_WORD_F(adr, res)
39532 adr = AREG((Opcode >> 0) & 7);
39533 AREG((Opcode >> 0) & 7) += 2;
39535 READ_WORD_F(adr, src)
39537 flag_X = flag_C = src >> 7;
39540 flag_NotZ = res & 0x0000FFFF;
39541 WRITE_WORD_F(adr, res)
39552 adr = AREG((Opcode >> 0) & 7) - 2;
39553 AREG((Opcode >> 0) & 7) = adr;
39555 READ_WORD_F(adr, src)
39557 flag_X = flag_C = src >> 7;
39560 flag_NotZ = res & 0x0000FFFF;
39561 WRITE_WORD_F(adr, res)
39573 adr += AREG((Opcode >> 0) & 7);
39575 READ_WORD_F(adr, src)
39577 flag_X = flag_C = src >> 7;
39580 flag_NotZ = res & 0x0000FFFF;
39581 WRITE_WORD_F(adr, res)
39592 adr = AREG((Opcode >> 0) & 7);
39595 READ_WORD_F(adr, src)
39597 flag_X = flag_C = src >> 7;
39600 flag_NotZ = res & 0x0000FFFF;
39601 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)
39633 READ_WORD_F(adr, src)
39635 flag_X = flag_C = src >> 7;
39638 flag_NotZ = res & 0x0000FFFF;
39639 WRITE_WORD_F(adr, res)
39653 READ_WORD_F(adr, src)
39655 flag_X = flag_C = src >> 7;
39658 flag_NotZ = res & 0x0000FFFF;
39659 WRITE_WORD_F(adr, res)
39673 READ_WORD_F(adr, src)
39675 flag_X = flag_C = src >> 7;
39678 flag_NotZ = res & 0x0000FFFF;
39679 WRITE_WORD_F(adr, res)
39690 adr = AREG((Opcode >> 0) & 7);
39692 READ_WORD_F(adr, src)
39694 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39695 flag_X = flag_C = src >> 7;
39697 flag_NotZ = res & 0x0000FFFF;
39698 WRITE_WORD_F(adr, res)
39709 adr = AREG((Opcode >> 0) & 7);
39710 AREG((Opcode >> 0) & 7) += 2;
39712 READ_WORD_F(adr, src)
39714 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39715 flag_X = flag_C = src >> 7;
39717 flag_NotZ = res & 0x0000FFFF;
39718 WRITE_WORD_F(adr, res)
39729 adr = AREG((Opcode >> 0) & 7) - 2;
39730 AREG((Opcode >> 0) & 7) = adr;
39732 READ_WORD_F(adr, src)
39734 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39735 flag_X = flag_C = src >> 7;
39737 flag_NotZ = res & 0x0000FFFF;
39738 WRITE_WORD_F(adr, res)
39750 adr += AREG((Opcode >> 0) & 7);
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)
39769 adr = AREG((Opcode >> 0) & 7);
39772 READ_WORD_F(adr, src)
39774 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39775 flag_X = flag_C = src >> 7;
39777 flag_NotZ = res & 0x0000FFFF;
39778 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)
39810 READ_WORD_F(adr, src)
39812 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39813 flag_X = flag_C = src >> 7;
39815 flag_NotZ = res & 0x0000FFFF;
39816 WRITE_WORD_F(adr, res)
39830 READ_WORD_F(adr, src)
39832 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39833 flag_X = flag_C = src >> 7;
39835 flag_NotZ = res & 0x0000FFFF;
39836 WRITE_WORD_F(adr, res)
39850 READ_WORD_F(adr, src)
39852 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39853 flag_X = flag_C = src >> 7;
39855 flag_NotZ = res & 0x0000FFFF;
39856 WRITE_WORD_F(adr, res)
39867 adr = AREG((Opcode >> 0) & 7);
39869 READ_WORD_F(adr, src)
39872 res = (src << 1) | (src >> 15);
39874 flag_NotZ = res & 0x0000FFFF;
39875 WRITE_WORD_F(adr, res)
39886 adr = AREG((Opcode >> 0) & 7);
39887 AREG((Opcode >> 0) & 7) += 2;
39889 READ_WORD_F(adr, src)
39892 res = (src << 1) | (src >> 15);
39894 flag_NotZ = res & 0x0000FFFF;
39895 WRITE_WORD_F(adr, res)
39906 adr = AREG((Opcode >> 0) & 7) - 2;
39907 AREG((Opcode >> 0) & 7) = adr;
39909 READ_WORD_F(adr, src)
39912 res = (src << 1) | (src >> 15);
39914 flag_NotZ = res & 0x0000FFFF;
39915 WRITE_WORD_F(adr, res)
39927 adr += AREG((Opcode >> 0) & 7);
39929 READ_WORD_F(adr, src)
39932 res = (src << 1) | (src >> 15);
39934 flag_NotZ = res & 0x0000FFFF;
39935 WRITE_WORD_F(adr, res)
39946 adr = AREG((Opcode >> 0) & 7);
39949 READ_WORD_F(adr, src)
39952 res = (src << 1) | (src >> 15);
39954 flag_NotZ = res & 0x0000FFFF;
39955 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)
39987 READ_WORD_F(adr, src)
39990 res = (src << 1) | (src >> 15);
39992 flag_NotZ = res & 0x0000FFFF;
39993 WRITE_WORD_F(adr, res)
40007 READ_WORD_F(adr, src)
40010 res = (src << 1) | (src >> 15);
40012 flag_NotZ = res & 0x0000FFFF;
40013 WRITE_WORD_F(adr, res)
40027 READ_WORD_F(adr, src)
40030 res = (src << 1) | (src >> 15);
40032 flag_NotZ = res & 0x0000FFFF;
40033 WRITE_WORD_F(adr, res)
40038 #ifdef PICODRIVE_HACK
40040 #define UPDATE_IDLE_COUNT { \
40041 extern int idle_hit_counter; \
40042 idle_hit_counter++; \
40045 #define UPDATE_IDLE_COUNT
40049 OPCODE(0x6001_idle)
40051 #ifdef FAMEC_CHECK_BRANCHES
40052 u32 newPC = GET_PC;
40056 CHECK_BRANCH_EXCEPTION(offs)
40058 PC += ((s8)(Opcode & 0xFE)) >> 1;
40065 OPCODE(0x6601_idle)
40070 PC += ((s8)(Opcode & 0xFE)) >> 1;
40077 OPCODE(0x6701_idle)
40082 PC += ((s8)(Opcode & 0xFE)) >> 1;
40090 extern int SekIsIdleReady(void);
40091 extern int SekIsIdleCode(unsigned short *dst, int bytes);
40092 extern int SekRegisterIdlePatch(unsigned int pc, int oldop, int newop, void *ctx);
40094 OPCODE(idle_detector_bcc8)
40096 int frame_count, cond_true, bytes, ret, newop;
40099 dest_pc = PC + (((s8)(Opcode & 0xFE)) >> 1);
40101 if (!SekIsIdleReady())
40104 bytes = 0 - (s8)(Opcode & 0xFE) - 2;
40105 ret = SekIsIdleCode(dest_pc, bytes);
40106 newop = (Opcode & 0xfe) | 0x7100;
40107 if (!ret) newop |= 0x200;
40108 if ( Opcode & 0x0100) newop |= 0x400; // beq
40109 if (!(Opcode & 0x0f00)) newop |= 0xc00; // bra
40111 ret = SekRegisterIdlePatch(GET_PC - 2, Opcode, newop, &m68kcontext);
40114 case 0: PC[-1] = newop; break;
40116 case 2: JumpTable[Opcode] = (Opcode & 0x0f00) ?
40117 ((Opcode & 0x0100) ? CAST_OP(0x6701) : CAST_OP(0x6601)) :
40118 CAST_OP(0x6001); break;
40122 if ((Opcode & 0xff00) == 0x6000) cond_true = 1;
40123 else cond_true = (Opcode & 0x0100) ? !flag_NotZ : flag_NotZ; // beq?
40127 m68kcontext.io_cycle_counter -= 2;
40132 #endif // PICODRIVE_HACK