9 res = DREGu8((Opcode >> 0) & 7);
15 DREGu8((Opcode >> 0) & 7) = res;
26 adr = AREG((Opcode >> 0) & 7);
34 WRITE_BYTE_F(adr, res)
46 adr = AREG((Opcode >> 0) & 7);
47 AREG((Opcode >> 0) & 7) += 1;
55 WRITE_BYTE_F(adr, res)
67 adr = AREG((Opcode >> 0) & 7) - 1;
68 AREG((Opcode >> 0) & 7) = adr;
76 WRITE_BYTE_F(adr, res)
89 adr += AREG((Opcode >> 0) & 7);
97 WRITE_BYTE_F(adr, res)
109 adr = AREG((Opcode >> 0) & 7);
112 READ_BYTE_F(adr, res)
118 WRITE_BYTE_F(adr, res)
132 READ_BYTE_F(adr, res)
138 WRITE_BYTE_F(adr, res)
152 READ_BYTE_F(adr, res)
158 WRITE_BYTE_F(adr, res)
173 READ_BYTE_F(adr, res)
179 WRITE_BYTE_F(adr, res)
194 READ_BYTE_F(adr, res)
200 WRITE_BYTE_F(adr, res)
212 res = DREGu16((Opcode >> 0) & 7);
218 DREGu16((Opcode >> 0) & 7) = res;
229 adr = AREG((Opcode >> 0) & 7);
231 READ_WORD_F(adr, res)
237 WRITE_WORD_F(adr, res)
249 adr = AREG((Opcode >> 0) & 7);
250 AREG((Opcode >> 0) & 7) += 2;
252 READ_WORD_F(adr, res)
258 WRITE_WORD_F(adr, res)
270 adr = AREG((Opcode >> 0) & 7) - 2;
271 AREG((Opcode >> 0) & 7) = adr;
273 READ_WORD_F(adr, res)
279 WRITE_WORD_F(adr, res)
292 adr += AREG((Opcode >> 0) & 7);
294 READ_WORD_F(adr, res)
300 WRITE_WORD_F(adr, res)
312 adr = AREG((Opcode >> 0) & 7);
315 READ_WORD_F(adr, res)
321 WRITE_WORD_F(adr, res)
335 READ_WORD_F(adr, res)
341 WRITE_WORD_F(adr, res)
355 READ_WORD_F(adr, res)
361 WRITE_WORD_F(adr, res)
376 READ_WORD_F(adr, res)
382 WRITE_WORD_F(adr, res)
397 READ_WORD_F(adr, res)
403 WRITE_WORD_F(adr, res)
415 res = DREGu32((Opcode >> 0) & 7);
421 DREGu32((Opcode >> 0) & 7) = res;
432 adr = AREG((Opcode >> 0) & 7);
434 READ_LONG_F(adr, res)
440 WRITE_LONG_F(adr, res)
452 adr = AREG((Opcode >> 0) & 7);
453 AREG((Opcode >> 0) & 7) += 4;
455 READ_LONG_F(adr, res)
461 WRITE_LONG_F(adr, res)
473 adr = AREG((Opcode >> 0) & 7) - 4;
474 AREG((Opcode >> 0) & 7) = adr;
476 READ_LONG_F(adr, res)
482 WRITE_LONG_F(adr, res)
495 adr += AREG((Opcode >> 0) & 7);
497 READ_LONG_F(adr, res)
503 WRITE_LONG_F(adr, res)
515 adr = AREG((Opcode >> 0) & 7);
518 READ_LONG_F(adr, res)
524 WRITE_LONG_F(adr, res)
538 READ_LONG_F(adr, res)
544 WRITE_LONG_F(adr, res)
558 READ_LONG_F(adr, res)
564 WRITE_LONG_F(adr, res)
579 READ_LONG_F(adr, res)
585 WRITE_LONG_F(adr, res)
600 READ_LONG_F(adr, res)
606 WRITE_LONG_F(adr, res)
618 res &= M68K_CCR_MASK;
637 CHECK_INT_TO_JUMP(20)
641 u32 newPC = (u32)(PC) - BasePC;
643 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
644 #ifdef USE_CYCLONE_TIMING
660 res = DREGu8((Opcode >> 0) & 7);
666 DREGu8((Opcode >> 0) & 7) = res;
677 adr = AREG((Opcode >> 0) & 7);
679 READ_BYTE_F(adr, res)
685 WRITE_BYTE_F(adr, res)
697 adr = AREG((Opcode >> 0) & 7);
698 AREG((Opcode >> 0) & 7) += 1;
700 READ_BYTE_F(adr, res)
706 WRITE_BYTE_F(adr, res)
718 adr = AREG((Opcode >> 0) & 7) - 1;
719 AREG((Opcode >> 0) & 7) = adr;
721 READ_BYTE_F(adr, res)
727 WRITE_BYTE_F(adr, res)
740 adr += AREG((Opcode >> 0) & 7);
742 READ_BYTE_F(adr, res)
748 WRITE_BYTE_F(adr, res)
760 adr = AREG((Opcode >> 0) & 7);
763 READ_BYTE_F(adr, res)
769 WRITE_BYTE_F(adr, res)
783 READ_BYTE_F(adr, res)
789 WRITE_BYTE_F(adr, res)
803 READ_BYTE_F(adr, res)
809 WRITE_BYTE_F(adr, res)
824 READ_BYTE_F(adr, res)
830 WRITE_BYTE_F(adr, res)
845 READ_BYTE_F(adr, res)
851 WRITE_BYTE_F(adr, res)
863 res = DREGu16((Opcode >> 0) & 7);
869 DREGu16((Opcode >> 0) & 7) = res;
880 adr = AREG((Opcode >> 0) & 7);
882 READ_WORD_F(adr, res)
888 WRITE_WORD_F(adr, res)
900 adr = AREG((Opcode >> 0) & 7);
901 AREG((Opcode >> 0) & 7) += 2;
903 READ_WORD_F(adr, res)
909 WRITE_WORD_F(adr, res)
921 adr = AREG((Opcode >> 0) & 7) - 2;
922 AREG((Opcode >> 0) & 7) = adr;
924 READ_WORD_F(adr, res)
930 WRITE_WORD_F(adr, res)
943 adr += AREG((Opcode >> 0) & 7);
945 READ_WORD_F(adr, res)
951 WRITE_WORD_F(adr, res)
963 adr = AREG((Opcode >> 0) & 7);
966 READ_WORD_F(adr, res)
972 WRITE_WORD_F(adr, res)
986 READ_WORD_F(adr, res)
992 WRITE_WORD_F(adr, res)
1006 READ_WORD_F(adr, res)
1012 WRITE_WORD_F(adr, res)
1027 READ_WORD_F(adr, res)
1033 WRITE_WORD_F(adr, res)
1048 READ_WORD_F(adr, res)
1054 WRITE_WORD_F(adr, res)
1066 res = DREGu32((Opcode >> 0) & 7);
1072 DREGu32((Opcode >> 0) & 7) = res;
1073 #ifdef USE_CYCLONE_TIMING
1087 adr = AREG((Opcode >> 0) & 7);
1089 READ_LONG_F(adr, res)
1095 WRITE_LONG_F(adr, res)
1107 adr = AREG((Opcode >> 0) & 7);
1108 AREG((Opcode >> 0) & 7) += 4;
1110 READ_LONG_F(adr, res)
1116 WRITE_LONG_F(adr, res)
1128 adr = AREG((Opcode >> 0) & 7) - 4;
1129 AREG((Opcode >> 0) & 7) = adr;
1131 READ_LONG_F(adr, res)
1137 WRITE_LONG_F(adr, res)
1150 adr += AREG((Opcode >> 0) & 7);
1152 READ_LONG_F(adr, res)
1158 WRITE_LONG_F(adr, res)
1170 adr = AREG((Opcode >> 0) & 7);
1173 READ_LONG_F(adr, res)
1179 WRITE_LONG_F(adr, res)
1193 READ_LONG_F(adr, res)
1199 WRITE_LONG_F(adr, res)
1213 READ_LONG_F(adr, res)
1219 WRITE_LONG_F(adr, res)
1234 READ_LONG_F(adr, res)
1240 WRITE_LONG_F(adr, res)
1255 READ_LONG_F(adr, res)
1261 WRITE_LONG_F(adr, res)
1273 res &= M68K_CCR_MASK;
1288 res &= M68K_SR_MASK;
1297 CHECK_INT_TO_JUMP(20)
1301 u32 newPC = (u32)(PC) - BasePC;
1303 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
1316 res = DREGu8((Opcode >> 0) & 7);
1322 DREGu8((Opcode >> 0) & 7) = res;
1333 adr = AREG((Opcode >> 0) & 7);
1335 READ_BYTE_F(adr, res)
1341 WRITE_BYTE_F(adr, res)
1353 adr = AREG((Opcode >> 0) & 7);
1354 AREG((Opcode >> 0) & 7) += 1;
1356 READ_BYTE_F(adr, res)
1362 WRITE_BYTE_F(adr, res)
1374 adr = AREG((Opcode >> 0) & 7) - 1;
1375 AREG((Opcode >> 0) & 7) = adr;
1377 READ_BYTE_F(adr, res)
1383 WRITE_BYTE_F(adr, res)
1396 adr += AREG((Opcode >> 0) & 7);
1398 READ_BYTE_F(adr, res)
1404 WRITE_BYTE_F(adr, res)
1416 adr = AREG((Opcode >> 0) & 7);
1419 READ_BYTE_F(adr, res)
1425 WRITE_BYTE_F(adr, res)
1439 READ_BYTE_F(adr, res)
1445 WRITE_BYTE_F(adr, res)
1459 READ_BYTE_F(adr, res)
1465 WRITE_BYTE_F(adr, res)
1480 READ_BYTE_F(adr, res)
1486 WRITE_BYTE_F(adr, res)
1501 READ_BYTE_F(adr, res)
1507 WRITE_BYTE_F(adr, res)
1519 res = DREGu16((Opcode >> 0) & 7);
1525 DREGu16((Opcode >> 0) & 7) = res;
1536 adr = AREG((Opcode >> 0) & 7);
1538 READ_WORD_F(adr, res)
1544 WRITE_WORD_F(adr, res)
1556 adr = AREG((Opcode >> 0) & 7);
1557 AREG((Opcode >> 0) & 7) += 2;
1559 READ_WORD_F(adr, res)
1565 WRITE_WORD_F(adr, res)
1577 adr = AREG((Opcode >> 0) & 7) - 2;
1578 AREG((Opcode >> 0) & 7) = adr;
1580 READ_WORD_F(adr, res)
1586 WRITE_WORD_F(adr, res)
1599 adr += AREG((Opcode >> 0) & 7);
1601 READ_WORD_F(adr, res)
1607 WRITE_WORD_F(adr, res)
1619 adr = AREG((Opcode >> 0) & 7);
1622 READ_WORD_F(adr, res)
1628 WRITE_WORD_F(adr, res)
1642 READ_WORD_F(adr, res)
1648 WRITE_WORD_F(adr, res)
1662 READ_WORD_F(adr, res)
1668 WRITE_WORD_F(adr, res)
1683 READ_WORD_F(adr, res)
1689 WRITE_WORD_F(adr, res)
1704 READ_WORD_F(adr, res)
1710 WRITE_WORD_F(adr, res)
1722 res = DREGu32((Opcode >> 0) & 7);
1728 DREGu32((Opcode >> 0) & 7) = res;
1739 adr = AREG((Opcode >> 0) & 7);
1741 READ_LONG_F(adr, res)
1747 WRITE_LONG_F(adr, res)
1759 adr = AREG((Opcode >> 0) & 7);
1760 AREG((Opcode >> 0) & 7) += 4;
1762 READ_LONG_F(adr, res)
1768 WRITE_LONG_F(adr, res)
1780 adr = AREG((Opcode >> 0) & 7) - 4;
1781 AREG((Opcode >> 0) & 7) = adr;
1783 READ_LONG_F(adr, res)
1789 WRITE_LONG_F(adr, res)
1802 adr += AREG((Opcode >> 0) & 7);
1804 READ_LONG_F(adr, res)
1810 WRITE_LONG_F(adr, res)
1822 adr = AREG((Opcode >> 0) & 7);
1825 READ_LONG_F(adr, res)
1831 WRITE_LONG_F(adr, res)
1845 READ_LONG_F(adr, res)
1851 WRITE_LONG_F(adr, res)
1865 READ_LONG_F(adr, res)
1871 WRITE_LONG_F(adr, res)
1886 READ_LONG_F(adr, res)
1892 WRITE_LONG_F(adr, res)
1907 READ_LONG_F(adr, res)
1913 WRITE_LONG_F(adr, res)
1925 res &= M68K_CCR_MASK;
1940 res &= M68K_SR_MASK;
1949 CHECK_INT_TO_JUMP(20)
1953 u32 newPC = (u32)(PC) - BasePC;
1955 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
1968 dst = DREGu8((Opcode >> 0) & 7);
1970 flag_N = flag_X = flag_C = res;
1971 flag_V = (src ^ dst) & (res ^ dst);
1972 flag_NotZ = res & 0xFF;
1973 DREGu8((Opcode >> 0) & 7) = res;
1984 adr = AREG((Opcode >> 0) & 7);
1986 READ_BYTE_F(adr, dst)
1988 flag_N = flag_X = flag_C = res;
1989 flag_V = (src ^ dst) & (res ^ dst);
1990 flag_NotZ = res & 0xFF;
1991 WRITE_BYTE_F(adr, res)
2003 adr = AREG((Opcode >> 0) & 7);
2004 AREG((Opcode >> 0) & 7) += 1;
2006 READ_BYTE_F(adr, dst)
2008 flag_N = flag_X = flag_C = res;
2009 flag_V = (src ^ dst) & (res ^ dst);
2010 flag_NotZ = res & 0xFF;
2011 WRITE_BYTE_F(adr, res)
2023 adr = AREG((Opcode >> 0) & 7) - 1;
2024 AREG((Opcode >> 0) & 7) = adr;
2026 READ_BYTE_F(adr, dst)
2028 flag_N = flag_X = flag_C = res;
2029 flag_V = (src ^ dst) & (res ^ dst);
2030 flag_NotZ = res & 0xFF;
2031 WRITE_BYTE_F(adr, res)
2044 adr += AREG((Opcode >> 0) & 7);
2046 READ_BYTE_F(adr, dst)
2048 flag_N = flag_X = flag_C = res;
2049 flag_V = (src ^ dst) & (res ^ dst);
2050 flag_NotZ = res & 0xFF;
2051 WRITE_BYTE_F(adr, res)
2063 adr = AREG((Opcode >> 0) & 7);
2066 READ_BYTE_F(adr, dst)
2068 flag_N = flag_X = flag_C = res;
2069 flag_V = (src ^ dst) & (res ^ dst);
2070 flag_NotZ = res & 0xFF;
2071 WRITE_BYTE_F(adr, res)
2085 READ_BYTE_F(adr, dst)
2087 flag_N = flag_X = flag_C = res;
2088 flag_V = (src ^ dst) & (res ^ dst);
2089 flag_NotZ = res & 0xFF;
2090 WRITE_BYTE_F(adr, res)
2104 READ_BYTE_F(adr, dst)
2106 flag_N = flag_X = flag_C = res;
2107 flag_V = (src ^ dst) & (res ^ dst);
2108 flag_NotZ = res & 0xFF;
2109 WRITE_BYTE_F(adr, res)
2124 READ_BYTE_F(adr, dst)
2126 flag_N = flag_X = flag_C = res;
2127 flag_V = (src ^ dst) & (res ^ dst);
2128 flag_NotZ = res & 0xFF;
2129 WRITE_BYTE_F(adr, res)
2144 READ_BYTE_F(adr, dst)
2146 flag_N = flag_X = flag_C = res;
2147 flag_V = (src ^ dst) & (res ^ dst);
2148 flag_NotZ = res & 0xFF;
2149 WRITE_BYTE_F(adr, res)
2161 dst = DREGu16((Opcode >> 0) & 7);
2163 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2164 flag_N = flag_X = flag_C = res >> 8;
2165 flag_NotZ = res & 0xFFFF;
2166 DREGu16((Opcode >> 0) & 7) = res;
2177 adr = AREG((Opcode >> 0) & 7);
2179 READ_WORD_F(adr, dst)
2181 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2182 flag_N = flag_X = flag_C = res >> 8;
2183 flag_NotZ = res & 0xFFFF;
2184 WRITE_WORD_F(adr, res)
2196 adr = AREG((Opcode >> 0) & 7);
2197 AREG((Opcode >> 0) & 7) += 2;
2199 READ_WORD_F(adr, dst)
2201 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2202 flag_N = flag_X = flag_C = res >> 8;
2203 flag_NotZ = res & 0xFFFF;
2204 WRITE_WORD_F(adr, res)
2216 adr = AREG((Opcode >> 0) & 7) - 2;
2217 AREG((Opcode >> 0) & 7) = adr;
2219 READ_WORD_F(adr, dst)
2221 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2222 flag_N = flag_X = flag_C = res >> 8;
2223 flag_NotZ = res & 0xFFFF;
2224 WRITE_WORD_F(adr, res)
2237 adr += AREG((Opcode >> 0) & 7);
2239 READ_WORD_F(adr, dst)
2241 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2242 flag_N = flag_X = flag_C = res >> 8;
2243 flag_NotZ = res & 0xFFFF;
2244 WRITE_WORD_F(adr, res)
2256 adr = AREG((Opcode >> 0) & 7);
2259 READ_WORD_F(adr, dst)
2261 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2262 flag_N = flag_X = flag_C = res >> 8;
2263 flag_NotZ = res & 0xFFFF;
2264 WRITE_WORD_F(adr, res)
2278 READ_WORD_F(adr, dst)
2280 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2281 flag_N = flag_X = flag_C = res >> 8;
2282 flag_NotZ = res & 0xFFFF;
2283 WRITE_WORD_F(adr, res)
2297 READ_WORD_F(adr, dst)
2299 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2300 flag_N = flag_X = flag_C = res >> 8;
2301 flag_NotZ = res & 0xFFFF;
2302 WRITE_WORD_F(adr, res)
2317 READ_WORD_F(adr, dst)
2319 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2320 flag_N = flag_X = flag_C = res >> 8;
2321 flag_NotZ = res & 0xFFFF;
2322 WRITE_WORD_F(adr, res)
2337 READ_WORD_F(adr, dst)
2339 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2340 flag_N = flag_X = flag_C = res >> 8;
2341 flag_NotZ = res & 0xFFFF;
2342 WRITE_WORD_F(adr, res)
2354 dst = DREGu32((Opcode >> 0) & 7);
2357 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2358 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2360 DREGu32((Opcode >> 0) & 7) = res;
2371 adr = AREG((Opcode >> 0) & 7);
2373 READ_LONG_F(adr, dst)
2376 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2377 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2379 WRITE_LONG_F(adr, res)
2391 adr = AREG((Opcode >> 0) & 7);
2392 AREG((Opcode >> 0) & 7) += 4;
2394 READ_LONG_F(adr, dst)
2397 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2398 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2400 WRITE_LONG_F(adr, res)
2412 adr = AREG((Opcode >> 0) & 7) - 4;
2413 AREG((Opcode >> 0) & 7) = adr;
2415 READ_LONG_F(adr, dst)
2418 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2419 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2421 WRITE_LONG_F(adr, res)
2434 adr += AREG((Opcode >> 0) & 7);
2436 READ_LONG_F(adr, dst)
2439 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2440 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2442 WRITE_LONG_F(adr, res)
2454 adr = AREG((Opcode >> 0) & 7);
2457 READ_LONG_F(adr, dst)
2460 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2461 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2463 WRITE_LONG_F(adr, res)
2477 READ_LONG_F(adr, dst)
2480 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2481 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2483 WRITE_LONG_F(adr, res)
2497 READ_LONG_F(adr, dst)
2500 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2501 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2503 WRITE_LONG_F(adr, res)
2518 READ_LONG_F(adr, dst)
2521 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2522 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2524 WRITE_LONG_F(adr, res)
2539 READ_LONG_F(adr, dst)
2542 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2543 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2545 WRITE_LONG_F(adr, res)
2557 dst = DREGu8((Opcode >> 0) & 7);
2559 flag_N = flag_X = flag_C = res;
2560 flag_V = (src ^ res) & (dst ^ res);
2561 flag_NotZ = res & 0xFF;
2562 DREGu8((Opcode >> 0) & 7) = res;
2573 adr = AREG((Opcode >> 0) & 7);
2575 READ_BYTE_F(adr, dst)
2577 flag_N = flag_X = flag_C = res;
2578 flag_V = (src ^ res) & (dst ^ res);
2579 flag_NotZ = res & 0xFF;
2580 WRITE_BYTE_F(adr, res)
2592 adr = AREG((Opcode >> 0) & 7);
2593 AREG((Opcode >> 0) & 7) += 1;
2595 READ_BYTE_F(adr, dst)
2597 flag_N = flag_X = flag_C = res;
2598 flag_V = (src ^ res) & (dst ^ res);
2599 flag_NotZ = res & 0xFF;
2600 WRITE_BYTE_F(adr, res)
2612 adr = AREG((Opcode >> 0) & 7) - 1;
2613 AREG((Opcode >> 0) & 7) = adr;
2615 READ_BYTE_F(adr, dst)
2617 flag_N = flag_X = flag_C = res;
2618 flag_V = (src ^ res) & (dst ^ res);
2619 flag_NotZ = res & 0xFF;
2620 WRITE_BYTE_F(adr, res)
2633 adr += AREG((Opcode >> 0) & 7);
2635 READ_BYTE_F(adr, dst)
2637 flag_N = flag_X = flag_C = res;
2638 flag_V = (src ^ res) & (dst ^ res);
2639 flag_NotZ = res & 0xFF;
2640 WRITE_BYTE_F(adr, res)
2652 adr = AREG((Opcode >> 0) & 7);
2655 READ_BYTE_F(adr, dst)
2657 flag_N = flag_X = flag_C = res;
2658 flag_V = (src ^ res) & (dst ^ res);
2659 flag_NotZ = res & 0xFF;
2660 WRITE_BYTE_F(adr, res)
2674 READ_BYTE_F(adr, dst)
2676 flag_N = flag_X = flag_C = res;
2677 flag_V = (src ^ res) & (dst ^ res);
2678 flag_NotZ = res & 0xFF;
2679 WRITE_BYTE_F(adr, res)
2693 READ_BYTE_F(adr, dst)
2695 flag_N = flag_X = flag_C = res;
2696 flag_V = (src ^ res) & (dst ^ res);
2697 flag_NotZ = res & 0xFF;
2698 WRITE_BYTE_F(adr, res)
2713 READ_BYTE_F(adr, dst)
2715 flag_N = flag_X = flag_C = res;
2716 flag_V = (src ^ res) & (dst ^ res);
2717 flag_NotZ = res & 0xFF;
2718 WRITE_BYTE_F(adr, res)
2733 READ_BYTE_F(adr, dst)
2735 flag_N = flag_X = flag_C = res;
2736 flag_V = (src ^ res) & (dst ^ res);
2737 flag_NotZ = res & 0xFF;
2738 WRITE_BYTE_F(adr, res)
2750 dst = DREGu16((Opcode >> 0) & 7);
2752 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2753 flag_N = flag_X = flag_C = res >> 8;
2754 flag_NotZ = res & 0xFFFF;
2755 DREGu16((Opcode >> 0) & 7) = res;
2766 adr = AREG((Opcode >> 0) & 7);
2768 READ_WORD_F(adr, dst)
2770 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2771 flag_N = flag_X = flag_C = res >> 8;
2772 flag_NotZ = res & 0xFFFF;
2773 WRITE_WORD_F(adr, res)
2785 adr = AREG((Opcode >> 0) & 7);
2786 AREG((Opcode >> 0) & 7) += 2;
2788 READ_WORD_F(adr, dst)
2790 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2791 flag_N = flag_X = flag_C = res >> 8;
2792 flag_NotZ = res & 0xFFFF;
2793 WRITE_WORD_F(adr, res)
2805 adr = AREG((Opcode >> 0) & 7) - 2;
2806 AREG((Opcode >> 0) & 7) = adr;
2808 READ_WORD_F(adr, dst)
2810 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2811 flag_N = flag_X = flag_C = res >> 8;
2812 flag_NotZ = res & 0xFFFF;
2813 WRITE_WORD_F(adr, res)
2826 adr += AREG((Opcode >> 0) & 7);
2828 READ_WORD_F(adr, dst)
2830 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2831 flag_N = flag_X = flag_C = res >> 8;
2832 flag_NotZ = res & 0xFFFF;
2833 WRITE_WORD_F(adr, res)
2845 adr = AREG((Opcode >> 0) & 7);
2848 READ_WORD_F(adr, dst)
2850 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2851 flag_N = flag_X = flag_C = res >> 8;
2852 flag_NotZ = res & 0xFFFF;
2853 WRITE_WORD_F(adr, res)
2867 READ_WORD_F(adr, dst)
2869 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2870 flag_N = flag_X = flag_C = res >> 8;
2871 flag_NotZ = res & 0xFFFF;
2872 WRITE_WORD_F(adr, res)
2886 READ_WORD_F(adr, dst)
2888 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2889 flag_N = flag_X = flag_C = res >> 8;
2890 flag_NotZ = res & 0xFFFF;
2891 WRITE_WORD_F(adr, res)
2906 READ_WORD_F(adr, dst)
2908 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2909 flag_N = flag_X = flag_C = res >> 8;
2910 flag_NotZ = res & 0xFFFF;
2911 WRITE_WORD_F(adr, res)
2926 READ_WORD_F(adr, dst)
2928 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2929 flag_N = flag_X = flag_C = res >> 8;
2930 flag_NotZ = res & 0xFFFF;
2931 WRITE_WORD_F(adr, res)
2943 dst = DREGu32((Opcode >> 0) & 7);
2946 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
2947 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
2949 DREGu32((Opcode >> 0) & 7) = res;
2960 adr = AREG((Opcode >> 0) & 7);
2962 READ_LONG_F(adr, dst)
2965 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
2966 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
2968 WRITE_LONG_F(adr, res)
2980 adr = AREG((Opcode >> 0) & 7);
2981 AREG((Opcode >> 0) & 7) += 4;
2983 READ_LONG_F(adr, dst)
2986 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
2987 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
2989 WRITE_LONG_F(adr, res)
3001 adr = AREG((Opcode >> 0) & 7) - 4;
3002 AREG((Opcode >> 0) & 7) = adr;
3004 READ_LONG_F(adr, dst)
3007 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3008 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3010 WRITE_LONG_F(adr, res)
3023 adr += AREG((Opcode >> 0) & 7);
3025 READ_LONG_F(adr, dst)
3028 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3029 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3031 WRITE_LONG_F(adr, res)
3043 adr = AREG((Opcode >> 0) & 7);
3046 READ_LONG_F(adr, dst)
3049 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3050 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3052 WRITE_LONG_F(adr, res)
3066 READ_LONG_F(adr, dst)
3069 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3070 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3072 WRITE_LONG_F(adr, res)
3086 READ_LONG_F(adr, dst)
3089 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3090 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3092 WRITE_LONG_F(adr, res)
3107 READ_LONG_F(adr, dst)
3110 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3111 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3113 WRITE_LONG_F(adr, res)
3128 READ_LONG_F(adr, dst)
3131 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3132 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3134 WRITE_LONG_F(adr, res)
3146 dst = DREGu8((Opcode >> 0) & 7);
3148 flag_N = flag_C = res;
3149 flag_V = (src ^ dst) & (res ^ dst);
3150 flag_NotZ = res & 0xFF;
3161 adr = AREG((Opcode >> 0) & 7);
3163 READ_BYTE_F(adr, dst)
3165 flag_N = flag_C = res;
3166 flag_V = (src ^ dst) & (res ^ dst);
3167 flag_NotZ = res & 0xFF;
3179 adr = AREG((Opcode >> 0) & 7);
3180 AREG((Opcode >> 0) & 7) += 1;
3182 READ_BYTE_F(adr, dst)
3184 flag_N = flag_C = res;
3185 flag_V = (src ^ dst) & (res ^ dst);
3186 flag_NotZ = res & 0xFF;
3198 adr = AREG((Opcode >> 0) & 7) - 1;
3199 AREG((Opcode >> 0) & 7) = adr;
3201 READ_BYTE_F(adr, dst)
3203 flag_N = flag_C = res;
3204 flag_V = (src ^ dst) & (res ^ dst);
3205 flag_NotZ = res & 0xFF;
3218 adr += AREG((Opcode >> 0) & 7);
3220 READ_BYTE_F(adr, dst)
3222 flag_N = flag_C = res;
3223 flag_V = (src ^ dst) & (res ^ dst);
3224 flag_NotZ = res & 0xFF;
3236 adr = AREG((Opcode >> 0) & 7);
3239 READ_BYTE_F(adr, dst)
3241 flag_N = flag_C = res;
3242 flag_V = (src ^ dst) & (res ^ dst);
3243 flag_NotZ = res & 0xFF;
3257 READ_BYTE_F(adr, dst)
3259 flag_N = flag_C = res;
3260 flag_V = (src ^ dst) & (res ^ dst);
3261 flag_NotZ = res & 0xFF;
3275 READ_BYTE_F(adr, dst)
3277 flag_N = flag_C = res;
3278 flag_V = (src ^ dst) & (res ^ dst);
3279 flag_NotZ = res & 0xFF;
3294 READ_BYTE_F(adr, dst)
3296 flag_N = flag_C = res;
3297 flag_V = (src ^ dst) & (res ^ dst);
3298 flag_NotZ = res & 0xFF;
3313 READ_BYTE_F(adr, dst)
3315 flag_N = flag_C = res;
3316 flag_V = (src ^ dst) & (res ^ dst);
3317 flag_NotZ = res & 0xFF;
3329 dst = DREGu16((Opcode >> 0) & 7);
3331 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3332 flag_N = flag_C = res >> 8;
3333 flag_NotZ = res & 0xFFFF;
3344 adr = AREG((Opcode >> 0) & 7);
3346 READ_WORD_F(adr, dst)
3348 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3349 flag_N = flag_C = res >> 8;
3350 flag_NotZ = res & 0xFFFF;
3362 adr = AREG((Opcode >> 0) & 7);
3363 AREG((Opcode >> 0) & 7) += 2;
3365 READ_WORD_F(adr, dst)
3367 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3368 flag_N = flag_C = res >> 8;
3369 flag_NotZ = res & 0xFFFF;
3381 adr = AREG((Opcode >> 0) & 7) - 2;
3382 AREG((Opcode >> 0) & 7) = adr;
3384 READ_WORD_F(adr, dst)
3386 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3387 flag_N = flag_C = res >> 8;
3388 flag_NotZ = res & 0xFFFF;
3401 adr += AREG((Opcode >> 0) & 7);
3403 READ_WORD_F(adr, dst)
3405 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3406 flag_N = flag_C = res >> 8;
3407 flag_NotZ = res & 0xFFFF;
3419 adr = AREG((Opcode >> 0) & 7);
3422 READ_WORD_F(adr, dst)
3424 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3425 flag_N = flag_C = res >> 8;
3426 flag_NotZ = res & 0xFFFF;
3440 READ_WORD_F(adr, dst)
3442 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3443 flag_N = flag_C = res >> 8;
3444 flag_NotZ = res & 0xFFFF;
3458 READ_WORD_F(adr, dst)
3460 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3461 flag_N = flag_C = res >> 8;
3462 flag_NotZ = res & 0xFFFF;
3477 READ_WORD_F(adr, dst)
3479 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3480 flag_N = flag_C = res >> 8;
3481 flag_NotZ = res & 0xFFFF;
3496 READ_WORD_F(adr, dst)
3498 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3499 flag_N = flag_C = res >> 8;
3500 flag_NotZ = res & 0xFFFF;
3512 dst = DREGu32((Opcode >> 0) & 7);
3515 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3516 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3528 adr = AREG((Opcode >> 0) & 7);
3530 READ_LONG_F(adr, dst)
3533 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3534 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3547 adr = AREG((Opcode >> 0) & 7);
3548 AREG((Opcode >> 0) & 7) += 4;
3550 READ_LONG_F(adr, dst)
3553 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3554 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3567 adr = AREG((Opcode >> 0) & 7) - 4;
3568 AREG((Opcode >> 0) & 7) = adr;
3570 READ_LONG_F(adr, dst)
3573 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3574 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3588 adr += AREG((Opcode >> 0) & 7);
3590 READ_LONG_F(adr, dst)
3593 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3594 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3607 adr = AREG((Opcode >> 0) & 7);
3610 READ_LONG_F(adr, dst)
3613 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3614 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3629 READ_LONG_F(adr, dst)
3632 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3633 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3648 READ_LONG_F(adr, dst)
3651 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3652 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3668 READ_LONG_F(adr, dst)
3671 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3672 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3688 READ_LONG_F(adr, dst)
3691 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3692 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3705 src = 1 << (src & 31);
3706 res = DREGu32((Opcode >> 0) & 7);
3707 flag_NotZ = res & src;
3718 src = 1 << (src & 7);
3719 adr = AREG((Opcode >> 0) & 7);
3721 READ_BYTE_F(adr, res)
3722 flag_NotZ = res & src;
3734 src = 1 << (src & 7);
3735 adr = AREG((Opcode >> 0) & 7);
3736 AREG((Opcode >> 0) & 7) += 1;
3738 READ_BYTE_F(adr, res)
3739 flag_NotZ = res & src;
3751 src = 1 << (src & 7);
3752 adr = AREG((Opcode >> 0) & 7) - 1;
3753 AREG((Opcode >> 0) & 7) = adr;
3755 READ_BYTE_F(adr, res)
3756 flag_NotZ = res & src;
3768 src = 1 << (src & 7);
3770 adr += AREG((Opcode >> 0) & 7);
3772 READ_BYTE_F(adr, res)
3773 flag_NotZ = res & src;
3785 src = 1 << (src & 7);
3786 adr = AREG((Opcode >> 0) & 7);
3789 READ_BYTE_F(adr, res)
3790 flag_NotZ = res & src;
3802 src = 1 << (src & 7);
3805 READ_BYTE_F(adr, res)
3806 flag_NotZ = res & src;
3818 src = 1 << (src & 7);
3821 READ_BYTE_F(adr, res)
3822 flag_NotZ = res & src;
3834 src = 1 << (src & 7);
3835 adr = GET_SWORD + ((u32)(PC) - BasePC);
3838 READ_BYTE_F(adr, res)
3839 flag_NotZ = res & src;
3851 src = 1 << (src & 7);
3852 adr = (u32)(PC) - BasePC;
3855 READ_BYTE_F(adr, res)
3856 flag_NotZ = res & src;
3868 src = 1 << (src & 7);
3872 READ_BYTE_F(adr, res)
3873 flag_NotZ = res & src;
3885 src = 1 << (src & 7);
3889 READ_BYTE_F(adr, res)
3890 flag_NotZ = res & src;
3902 src = 1 << (src & 31);
3903 res = DREGu32((Opcode >> 0) & 7);
3904 flag_NotZ = res & src;
3906 DREGu32((Opcode >> 0) & 7) = res;
3917 src = 1 << (src & 7);
3918 adr = AREG((Opcode >> 0) & 7);
3920 READ_BYTE_F(adr, res)
3921 flag_NotZ = res & src;
3923 WRITE_BYTE_F(adr, res)
3935 src = 1 << (src & 7);
3936 adr = AREG((Opcode >> 0) & 7);
3937 AREG((Opcode >> 0) & 7) += 1;
3939 READ_BYTE_F(adr, res)
3940 flag_NotZ = res & src;
3942 WRITE_BYTE_F(adr, res)
3954 src = 1 << (src & 7);
3955 adr = AREG((Opcode >> 0) & 7) - 1;
3956 AREG((Opcode >> 0) & 7) = adr;
3958 READ_BYTE_F(adr, res)
3959 flag_NotZ = res & src;
3961 WRITE_BYTE_F(adr, res)
3973 src = 1 << (src & 7);
3975 adr += AREG((Opcode >> 0) & 7);
3977 READ_BYTE_F(adr, res)
3978 flag_NotZ = res & src;
3980 WRITE_BYTE_F(adr, res)
3992 src = 1 << (src & 7);
3993 adr = AREG((Opcode >> 0) & 7);
3996 READ_BYTE_F(adr, res)
3997 flag_NotZ = res & src;
3999 WRITE_BYTE_F(adr, res)
4011 src = 1 << (src & 7);
4014 READ_BYTE_F(adr, res)
4015 flag_NotZ = res & src;
4017 WRITE_BYTE_F(adr, res)
4029 src = 1 << (src & 7);
4032 READ_BYTE_F(adr, res)
4033 flag_NotZ = res & src;
4035 WRITE_BYTE_F(adr, res)
4047 src = 1 << (src & 7);
4051 READ_BYTE_F(adr, res)
4052 flag_NotZ = res & src;
4054 WRITE_BYTE_F(adr, res)
4066 src = 1 << (src & 7);
4070 READ_BYTE_F(adr, res)
4071 flag_NotZ = res & src;
4073 WRITE_BYTE_F(adr, res)
4085 src = 1 << (src & 31);
4086 res = DREGu32((Opcode >> 0) & 7);
4087 flag_NotZ = res & src;
4089 DREGu32((Opcode >> 0) & 7) = res;
4100 src = 1 << (src & 7);
4101 adr = AREG((Opcode >> 0) & 7);
4103 READ_BYTE_F(adr, res)
4104 flag_NotZ = res & src;
4106 WRITE_BYTE_F(adr, res)
4118 src = 1 << (src & 7);
4119 adr = AREG((Opcode >> 0) & 7);
4120 AREG((Opcode >> 0) & 7) += 1;
4122 READ_BYTE_F(adr, res)
4123 flag_NotZ = res & src;
4125 WRITE_BYTE_F(adr, res)
4137 src = 1 << (src & 7);
4138 adr = AREG((Opcode >> 0) & 7) - 1;
4139 AREG((Opcode >> 0) & 7) = adr;
4141 READ_BYTE_F(adr, res)
4142 flag_NotZ = res & src;
4144 WRITE_BYTE_F(adr, res)
4156 src = 1 << (src & 7);
4158 adr += AREG((Opcode >> 0) & 7);
4160 READ_BYTE_F(adr, res)
4161 flag_NotZ = res & src;
4163 WRITE_BYTE_F(adr, res)
4175 src = 1 << (src & 7);
4176 adr = AREG((Opcode >> 0) & 7);
4179 READ_BYTE_F(adr, res)
4180 flag_NotZ = res & src;
4182 WRITE_BYTE_F(adr, res)
4194 src = 1 << (src & 7);
4197 READ_BYTE_F(adr, res)
4198 flag_NotZ = res & src;
4200 WRITE_BYTE_F(adr, res)
4212 src = 1 << (src & 7);
4215 READ_BYTE_F(adr, res)
4216 flag_NotZ = res & src;
4218 WRITE_BYTE_F(adr, res)
4230 src = 1 << (src & 7);
4234 READ_BYTE_F(adr, res)
4235 flag_NotZ = res & src;
4237 WRITE_BYTE_F(adr, res)
4249 src = 1 << (src & 7);
4253 READ_BYTE_F(adr, res)
4254 flag_NotZ = res & src;
4256 WRITE_BYTE_F(adr, res)
4268 src = 1 << (src & 31);
4269 res = DREGu32((Opcode >> 0) & 7);
4270 flag_NotZ = res & src;
4272 DREGu32((Opcode >> 0) & 7) = res;
4283 src = 1 << (src & 7);
4284 adr = AREG((Opcode >> 0) & 7);
4286 READ_BYTE_F(adr, res)
4287 flag_NotZ = res & src;
4289 WRITE_BYTE_F(adr, res)
4301 src = 1 << (src & 7);
4302 adr = AREG((Opcode >> 0) & 7);
4303 AREG((Opcode >> 0) & 7) += 1;
4305 READ_BYTE_F(adr, res)
4306 flag_NotZ = res & src;
4308 WRITE_BYTE_F(adr, res)
4320 src = 1 << (src & 7);
4321 adr = AREG((Opcode >> 0) & 7) - 1;
4322 AREG((Opcode >> 0) & 7) = adr;
4324 READ_BYTE_F(adr, res)
4325 flag_NotZ = res & src;
4327 WRITE_BYTE_F(adr, res)
4339 src = 1 << (src & 7);
4341 adr += AREG((Opcode >> 0) & 7);
4343 READ_BYTE_F(adr, res)
4344 flag_NotZ = res & src;
4346 WRITE_BYTE_F(adr, res)
4358 src = 1 << (src & 7);
4359 adr = AREG((Opcode >> 0) & 7);
4362 READ_BYTE_F(adr, res)
4363 flag_NotZ = res & src;
4365 WRITE_BYTE_F(adr, res)
4377 src = 1 << (src & 7);
4380 READ_BYTE_F(adr, res)
4381 flag_NotZ = res & src;
4383 WRITE_BYTE_F(adr, res)
4395 src = 1 << (src & 7);
4398 READ_BYTE_F(adr, res)
4399 flag_NotZ = res & src;
4401 WRITE_BYTE_F(adr, res)
4413 src = 1 << (src & 7);
4417 READ_BYTE_F(adr, res)
4418 flag_NotZ = res & src;
4420 WRITE_BYTE_F(adr, res)
4432 src = 1 << (src & 7);
4436 READ_BYTE_F(adr, res)
4437 flag_NotZ = res & src;
4439 WRITE_BYTE_F(adr, res)
4450 src = DREGu32((Opcode >> 9) & 7);
4451 src = 1 << (src & 31);
4452 res = DREGu32((Opcode >> 0) & 7);
4453 flag_NotZ = res & src;
4463 src = DREGu8((Opcode >> 9) & 7);
4464 src = 1 << (src & 7);
4465 adr = AREG((Opcode >> 0) & 7);
4467 READ_BYTE_F(adr, res)
4468 flag_NotZ = res & src;
4479 src = DREGu8((Opcode >> 9) & 7);
4480 src = 1 << (src & 7);
4481 adr = AREG((Opcode >> 0) & 7);
4482 AREG((Opcode >> 0) & 7) += 1;
4484 READ_BYTE_F(adr, res)
4485 flag_NotZ = res & src;
4496 src = DREGu8((Opcode >> 9) & 7);
4497 src = 1 << (src & 7);
4498 adr = AREG((Opcode >> 0) & 7) - 1;
4499 AREG((Opcode >> 0) & 7) = adr;
4501 READ_BYTE_F(adr, res)
4502 flag_NotZ = res & src;
4513 src = DREGu8((Opcode >> 9) & 7);
4514 src = 1 << (src & 7);
4516 adr += AREG((Opcode >> 0) & 7);
4518 READ_BYTE_F(adr, res)
4519 flag_NotZ = res & src;
4530 src = DREGu8((Opcode >> 9) & 7);
4531 src = 1 << (src & 7);
4532 adr = AREG((Opcode >> 0) & 7);
4535 READ_BYTE_F(adr, res)
4536 flag_NotZ = res & src;
4547 src = DREGu8((Opcode >> 9) & 7);
4548 src = 1 << (src & 7);
4551 READ_BYTE_F(adr, res)
4552 flag_NotZ = res & src;
4563 src = DREGu8((Opcode >> 9) & 7);
4564 src = 1 << (src & 7);
4567 READ_BYTE_F(adr, res)
4568 flag_NotZ = res & src;
4579 src = DREGu8((Opcode >> 9) & 7);
4580 src = 1 << (src & 7);
4581 adr = GET_SWORD + ((u32)(PC) - BasePC);
4584 READ_BYTE_F(adr, res)
4585 flag_NotZ = res & src;
4596 src = DREGu8((Opcode >> 9) & 7);
4597 src = 1 << (src & 7);
4598 adr = (u32)(PC) - BasePC;
4601 READ_BYTE_F(adr, res)
4602 flag_NotZ = res & src;
4613 src = DREGu8((Opcode >> 9) & 7);
4614 src = 1 << (src & 7);
4616 flag_NotZ = res & src;
4626 src = DREGu8((Opcode >> 9) & 7);
4627 src = 1 << (src & 7);
4631 READ_BYTE_F(adr, res)
4632 flag_NotZ = res & src;
4643 src = DREGu8((Opcode >> 9) & 7);
4644 src = 1 << (src & 7);
4648 READ_BYTE_F(adr, res)
4649 flag_NotZ = res & src;
4660 src = DREGu32((Opcode >> 9) & 7);
4661 src = 1 << (src & 31);
4662 res = DREGu32((Opcode >> 0) & 7);
4663 flag_NotZ = res & src;
4665 DREGu32((Opcode >> 0) & 7) = res;
4675 src = DREGu8((Opcode >> 9) & 7);
4676 src = 1 << (src & 7);
4677 adr = AREG((Opcode >> 0) & 7);
4679 READ_BYTE_F(adr, res)
4680 flag_NotZ = res & src;
4682 WRITE_BYTE_F(adr, res)
4693 src = DREGu8((Opcode >> 9) & 7);
4694 src = 1 << (src & 7);
4695 adr = AREG((Opcode >> 0) & 7);
4696 AREG((Opcode >> 0) & 7) += 1;
4698 READ_BYTE_F(adr, res)
4699 flag_NotZ = res & src;
4701 WRITE_BYTE_F(adr, res)
4712 src = DREGu8((Opcode >> 9) & 7);
4713 src = 1 << (src & 7);
4714 adr = AREG((Opcode >> 0) & 7) - 1;
4715 AREG((Opcode >> 0) & 7) = adr;
4717 READ_BYTE_F(adr, res)
4718 flag_NotZ = res & src;
4720 WRITE_BYTE_F(adr, res)
4731 src = DREGu8((Opcode >> 9) & 7);
4732 src = 1 << (src & 7);
4734 adr += AREG((Opcode >> 0) & 7);
4736 READ_BYTE_F(adr, res)
4737 flag_NotZ = res & src;
4739 WRITE_BYTE_F(adr, res)
4750 src = DREGu8((Opcode >> 9) & 7);
4751 src = 1 << (src & 7);
4752 adr = AREG((Opcode >> 0) & 7);
4755 READ_BYTE_F(adr, res)
4756 flag_NotZ = res & src;
4758 WRITE_BYTE_F(adr, res)
4769 src = DREGu8((Opcode >> 9) & 7);
4770 src = 1 << (src & 7);
4773 READ_BYTE_F(adr, res)
4774 flag_NotZ = res & src;
4776 WRITE_BYTE_F(adr, res)
4787 src = DREGu8((Opcode >> 9) & 7);
4788 src = 1 << (src & 7);
4791 READ_BYTE_F(adr, res)
4792 flag_NotZ = res & src;
4794 WRITE_BYTE_F(adr, res)
4805 src = DREGu8((Opcode >> 9) & 7);
4806 src = 1 << (src & 7);
4810 READ_BYTE_F(adr, res)
4811 flag_NotZ = res & src;
4813 WRITE_BYTE_F(adr, res)
4824 src = DREGu8((Opcode >> 9) & 7);
4825 src = 1 << (src & 7);
4829 READ_BYTE_F(adr, res)
4830 flag_NotZ = res & src;
4832 WRITE_BYTE_F(adr, res)
4843 src = DREGu32((Opcode >> 9) & 7);
4844 src = 1 << (src & 31);
4845 res = DREGu32((Opcode >> 0) & 7);
4846 flag_NotZ = res & src;
4848 DREGu32((Opcode >> 0) & 7) = res;
4858 src = DREGu8((Opcode >> 9) & 7);
4859 src = 1 << (src & 7);
4860 adr = AREG((Opcode >> 0) & 7);
4862 READ_BYTE_F(adr, res)
4863 flag_NotZ = res & src;
4865 WRITE_BYTE_F(adr, res)
4876 src = DREGu8((Opcode >> 9) & 7);
4877 src = 1 << (src & 7);
4878 adr = AREG((Opcode >> 0) & 7);
4879 AREG((Opcode >> 0) & 7) += 1;
4881 READ_BYTE_F(adr, res)
4882 flag_NotZ = res & src;
4884 WRITE_BYTE_F(adr, res)
4895 src = DREGu8((Opcode >> 9) & 7);
4896 src = 1 << (src & 7);
4897 adr = AREG((Opcode >> 0) & 7) - 1;
4898 AREG((Opcode >> 0) & 7) = adr;
4900 READ_BYTE_F(adr, res)
4901 flag_NotZ = res & src;
4903 WRITE_BYTE_F(adr, res)
4914 src = DREGu8((Opcode >> 9) & 7);
4915 src = 1 << (src & 7);
4917 adr += AREG((Opcode >> 0) & 7);
4919 READ_BYTE_F(adr, res)
4920 flag_NotZ = res & src;
4922 WRITE_BYTE_F(adr, res)
4933 src = DREGu8((Opcode >> 9) & 7);
4934 src = 1 << (src & 7);
4935 adr = AREG((Opcode >> 0) & 7);
4938 READ_BYTE_F(adr, res)
4939 flag_NotZ = res & src;
4941 WRITE_BYTE_F(adr, res)
4952 src = DREGu8((Opcode >> 9) & 7);
4953 src = 1 << (src & 7);
4956 READ_BYTE_F(adr, res)
4957 flag_NotZ = res & src;
4959 WRITE_BYTE_F(adr, res)
4970 src = DREGu8((Opcode >> 9) & 7);
4971 src = 1 << (src & 7);
4974 READ_BYTE_F(adr, res)
4975 flag_NotZ = res & src;
4977 WRITE_BYTE_F(adr, res)
4988 src = DREGu8((Opcode >> 9) & 7);
4989 src = 1 << (src & 7);
4993 READ_BYTE_F(adr, res)
4994 flag_NotZ = res & src;
4996 WRITE_BYTE_F(adr, res)
5007 src = DREGu8((Opcode >> 9) & 7);
5008 src = 1 << (src & 7);
5012 READ_BYTE_F(adr, res)
5013 flag_NotZ = res & src;
5015 WRITE_BYTE_F(adr, res)
5026 src = DREGu32((Opcode >> 9) & 7);
5027 src = 1 << (src & 31);
5028 res = DREGu32((Opcode >> 0) & 7);
5029 flag_NotZ = res & src;
5031 DREGu32((Opcode >> 0) & 7) = res;
5041 src = DREGu8((Opcode >> 9) & 7);
5042 src = 1 << (src & 7);
5043 adr = AREG((Opcode >> 0) & 7);
5045 READ_BYTE_F(adr, res)
5046 flag_NotZ = res & src;
5048 WRITE_BYTE_F(adr, res)
5059 src = DREGu8((Opcode >> 9) & 7);
5060 src = 1 << (src & 7);
5061 adr = AREG((Opcode >> 0) & 7);
5062 AREG((Opcode >> 0) & 7) += 1;
5064 READ_BYTE_F(adr, res)
5065 flag_NotZ = res & src;
5067 WRITE_BYTE_F(adr, res)
5078 src = DREGu8((Opcode >> 9) & 7);
5079 src = 1 << (src & 7);
5080 adr = AREG((Opcode >> 0) & 7) - 1;
5081 AREG((Opcode >> 0) & 7) = adr;
5083 READ_BYTE_F(adr, res)
5084 flag_NotZ = res & src;
5086 WRITE_BYTE_F(adr, res)
5097 src = DREGu8((Opcode >> 9) & 7);
5098 src = 1 << (src & 7);
5100 adr += AREG((Opcode >> 0) & 7);
5102 READ_BYTE_F(adr, res)
5103 flag_NotZ = res & src;
5105 WRITE_BYTE_F(adr, res)
5116 src = DREGu8((Opcode >> 9) & 7);
5117 src = 1 << (src & 7);
5118 adr = AREG((Opcode >> 0) & 7);
5121 READ_BYTE_F(adr, res)
5122 flag_NotZ = res & src;
5124 WRITE_BYTE_F(adr, res)
5135 src = DREGu8((Opcode >> 9) & 7);
5136 src = 1 << (src & 7);
5139 READ_BYTE_F(adr, res)
5140 flag_NotZ = res & src;
5142 WRITE_BYTE_F(adr, res)
5153 src = DREGu8((Opcode >> 9) & 7);
5154 src = 1 << (src & 7);
5157 READ_BYTE_F(adr, res)
5158 flag_NotZ = res & src;
5160 WRITE_BYTE_F(adr, res)
5171 src = DREGu8((Opcode >> 9) & 7);
5172 src = 1 << (src & 7);
5176 READ_BYTE_F(adr, res)
5177 flag_NotZ = res & src;
5179 WRITE_BYTE_F(adr, res)
5190 src = DREGu8((Opcode >> 9) & 7);
5191 src = 1 << (src & 7);
5195 READ_BYTE_F(adr, res)
5196 flag_NotZ = res & src;
5198 WRITE_BYTE_F(adr, res)
5210 adr += AREG((Opcode >> 0) & 7);
5212 READ_BYTE_F(adr + 0, res)
5213 READ_BYTE_F(adr + 2, src)
5214 DREGu16((Opcode >> 9) & 7) = (res << 8) | src;
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 + ((u32)(PC) - BasePC);
7128 READ_BYTE_F(adr, res)
7133 DREGu8((Opcode >> 9) & 7) = res;
7144 adr = GET_SWORD + ((u32)(PC) - BasePC);
7147 READ_BYTE_F(adr, res)
7152 adr = AREG((Opcode >> 9) & 7);
7153 WRITE_BYTE_F(adr, res)
7164 adr = GET_SWORD + ((u32)(PC) - BasePC);
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 + ((u32)(PC) - BasePC);
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 + ((u32)(PC) - BasePC);
7209 READ_BYTE_F(adr, res)
7215 adr += AREG((Opcode >> 9) & 7);
7216 WRITE_BYTE_F(adr, res)
7227 adr = GET_SWORD + ((u32)(PC) - BasePC);
7230 READ_BYTE_F(adr, res)
7235 adr = AREG((Opcode >> 9) & 7);
7237 WRITE_BYTE_F(adr, res)
7248 adr = GET_SWORD + ((u32)(PC) - BasePC);
7251 READ_BYTE_F(adr, res)
7257 WRITE_BYTE_F(adr, res)
7268 adr = GET_SWORD + ((u32)(PC) - BasePC);
7271 READ_BYTE_F(adr, res)
7277 WRITE_BYTE_F(adr, res)
7288 adr = GET_SWORD + ((u32)(PC) - BasePC);
7291 READ_BYTE_F(adr, res)
7298 WRITE_BYTE_F(adr, res)
7309 adr = GET_SWORD + ((u32)(PC) - BasePC);
7312 READ_BYTE_F(adr, res)
7319 WRITE_BYTE_F(adr, res)
7330 adr = (u32)(PC) - BasePC;
7333 READ_BYTE_F(adr, res)
7338 DREGu8((Opcode >> 9) & 7) = res;
7349 adr = (u32)(PC) - BasePC;
7352 READ_BYTE_F(adr, res)
7357 adr = AREG((Opcode >> 9) & 7);
7358 WRITE_BYTE_F(adr, res)
7369 adr = (u32)(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 = (u32)(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 = (u32)(PC) - BasePC;
7414 READ_BYTE_F(adr, res)
7420 adr += AREG((Opcode >> 9) & 7);
7421 WRITE_BYTE_F(adr, res)
7432 adr = (u32)(PC) - BasePC;
7435 READ_BYTE_F(adr, res)
7440 adr = AREG((Opcode >> 9) & 7);
7442 WRITE_BYTE_F(adr, res)
7453 adr = (u32)(PC) - BasePC;
7456 READ_BYTE_F(adr, res)
7462 WRITE_BYTE_F(adr, res)
7473 adr = (u32)(PC) - BasePC;
7476 READ_BYTE_F(adr, res)
7482 WRITE_BYTE_F(adr, res)
7493 adr = (u32)(PC) - BasePC;
7496 READ_BYTE_F(adr, res)
7503 WRITE_BYTE_F(adr, res)
7514 adr = (u32)(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 + ((u32)(PC) - BasePC);
9902 READ_LONG_F(adr, res)
9907 DREGu32((Opcode >> 9) & 7) = res;
9918 adr = GET_SWORD + ((u32)(PC) - BasePC);
9921 READ_LONG_F(adr, res)
9926 adr = AREG((Opcode >> 9) & 7);
9927 WRITE_LONG_F(adr, res)
9938 adr = GET_SWORD + ((u32)(PC) - BasePC);
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 + ((u32)(PC) - BasePC);
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 + ((u32)(PC) - BasePC);
9983 READ_LONG_F(adr, res)
9989 adr += AREG((Opcode >> 9) & 7);
9990 WRITE_LONG_F(adr, res)
10001 adr = GET_SWORD + ((u32)(PC) - BasePC);
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 + ((u32)(PC) - BasePC);
10025 READ_LONG_F(adr, res)
10029 flag_N = res >> 24;
10031 WRITE_LONG_F(adr, res)
10042 adr = GET_SWORD + ((u32)(PC) - BasePC);
10045 READ_LONG_F(adr, res)
10049 flag_N = res >> 24;
10051 WRITE_LONG_F(adr, res)
10062 adr = GET_SWORD + ((u32)(PC) - BasePC);
10065 READ_LONG_F(adr, res)
10069 flag_N = res >> 24;
10072 WRITE_LONG_F(adr, res)
10083 adr = GET_SWORD + ((u32)(PC) - BasePC);
10086 READ_LONG_F(adr, res)
10090 flag_N = res >> 24;
10093 WRITE_LONG_DEC_F(adr, res)
10104 adr = (u32)(PC) - BasePC;
10107 READ_LONG_F(adr, res)
10111 flag_N = res >> 24;
10112 DREGu32((Opcode >> 9) & 7) = res;
10123 adr = (u32)(PC) - BasePC;
10126 READ_LONG_F(adr, res)
10130 flag_N = res >> 24;
10131 adr = AREG((Opcode >> 9) & 7);
10132 WRITE_LONG_F(adr, res)
10143 adr = (u32)(PC) - BasePC;
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)
10164 adr = (u32)(PC) - BasePC;
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)
10185 adr = (u32)(PC) - BasePC;
10188 READ_LONG_F(adr, res)
10192 flag_N = res >> 24;
10194 adr += AREG((Opcode >> 9) & 7);
10195 WRITE_LONG_F(adr, res)
10206 adr = (u32)(PC) - BasePC;
10209 READ_LONG_F(adr, res)
10213 flag_N = res >> 24;
10214 adr = AREG((Opcode >> 9) & 7);
10216 WRITE_LONG_F(adr, res)
10227 adr = (u32)(PC) - BasePC;
10230 READ_LONG_F(adr, res)
10234 flag_N = res >> 24;
10236 WRITE_LONG_F(adr, res)
10247 adr = (u32)(PC) - BasePC;
10250 READ_LONG_F(adr, res)
10254 flag_N = res >> 24;
10256 WRITE_LONG_F(adr, res)
10267 adr = (u32)(PC) - BasePC;
10270 READ_LONG_F(adr, res)
10274 flag_N = res >> 24;
10277 WRITE_LONG_F(adr, res)
10288 adr = (u32)(PC) - BasePC;
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 + ((u32)(PC) - BasePC);
11029 READSX_LONG_F(adr, res)
11030 AREG((Opcode >> 9) & 7) = res;
11041 adr = (u32)(PC) - BasePC;
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 + ((u32)(PC) - BasePC);
12871 READ_WORD_F(adr, res)
12876 DREGu16((Opcode >> 9) & 7) = res;
12887 adr = GET_SWORD + ((u32)(PC) - BasePC);
12890 READ_WORD_F(adr, res)
12895 adr = AREG((Opcode >> 9) & 7);
12896 WRITE_WORD_F(adr, res)
12907 adr = GET_SWORD + ((u32)(PC) - BasePC);
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 + ((u32)(PC) - BasePC);
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 + ((u32)(PC) - BasePC);
12952 READ_WORD_F(adr, res)
12958 adr += AREG((Opcode >> 9) & 7);
12959 WRITE_WORD_F(adr, res)
12970 adr = GET_SWORD + ((u32)(PC) - BasePC);
12973 READ_WORD_F(adr, res)
12978 adr = AREG((Opcode >> 9) & 7);
12980 WRITE_WORD_F(adr, res)
12991 adr = GET_SWORD + ((u32)(PC) - BasePC);
12994 READ_WORD_F(adr, res)
13000 WRITE_WORD_F(adr, res)
13011 adr = GET_SWORD + ((u32)(PC) - BasePC);
13014 READ_WORD_F(adr, res)
13020 WRITE_WORD_F(adr, res)
13031 adr = GET_SWORD + ((u32)(PC) - BasePC);
13034 READ_WORD_F(adr, res)
13041 WRITE_WORD_F(adr, res)
13052 adr = GET_SWORD + ((u32)(PC) - BasePC);
13055 READ_WORD_F(adr, res)
13062 WRITE_WORD_F(adr, res)
13073 adr = (u32)(PC) - BasePC;
13076 READ_WORD_F(adr, res)
13081 DREGu16((Opcode >> 9) & 7) = res;
13092 adr = (u32)(PC) - BasePC;
13095 READ_WORD_F(adr, res)
13100 adr = AREG((Opcode >> 9) & 7);
13101 WRITE_WORD_F(adr, res)
13112 adr = (u32)(PC) - BasePC;
13115 READ_WORD_F(adr, res)
13120 adr = AREG((Opcode >> 9) & 7);
13121 AREG((Opcode >> 9) & 7) += 2;
13122 WRITE_WORD_F(adr, res)
13133 adr = (u32)(PC) - BasePC;
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)
13154 adr = (u32)(PC) - BasePC;
13157 READ_WORD_F(adr, res)
13163 adr += AREG((Opcode >> 9) & 7);
13164 WRITE_WORD_F(adr, res)
13175 adr = (u32)(PC) - BasePC;
13178 READ_WORD_F(adr, res)
13183 adr = AREG((Opcode >> 9) & 7);
13185 WRITE_WORD_F(adr, res)
13196 adr = (u32)(PC) - BasePC;
13199 READ_WORD_F(adr, res)
13205 WRITE_WORD_F(adr, res)
13216 adr = (u32)(PC) - BasePC;
13219 READ_WORD_F(adr, res)
13225 WRITE_WORD_F(adr, res)
13236 adr = (u32)(PC) - BasePC;
13239 READ_WORD_F(adr, res)
13246 WRITE_WORD_F(adr, res)
13257 adr = (u32)(PC) - BasePC;
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 + ((u32)(PC) - BasePC);
13998 READSX_WORD_F(adr, res)
13999 AREG((Opcode >> 9) & 7) = res;
14010 adr = (u32)(PC) - BasePC;
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 + ((u32)(PC) - BasePC);
16491 READ_WORD_F(adr, res)
16503 adr = (u32)(PC) - BasePC;
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)
16575 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
16589 adr = AREG((Opcode >> 0) & 7);
16591 READ_WORD_F(adr, res)
16600 CHECK_INT_TO_JUMP(16)
16606 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
16620 adr = AREG((Opcode >> 0) & 7);
16621 AREG((Opcode >> 0) & 7) += 2;
16623 READ_WORD_F(adr, res)
16632 CHECK_INT_TO_JUMP(16)
16638 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
16652 adr = AREG((Opcode >> 0) & 7) - 2;
16653 AREG((Opcode >> 0) & 7) = adr;
16655 READ_WORD_F(adr, res)
16664 CHECK_INT_TO_JUMP(18)
16670 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
16685 adr += AREG((Opcode >> 0) & 7);
16687 READ_WORD_F(adr, res)
16696 CHECK_INT_TO_JUMP(20)
16702 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
16716 adr = AREG((Opcode >> 0) & 7);
16719 READ_WORD_F(adr, res)
16728 CHECK_INT_TO_JUMP(22)
16734 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
16751 READ_WORD_F(adr, res)
16760 CHECK_INT_TO_JUMP(20)
16766 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
16782 READ_WORD_F(adr, res)
16791 CHECK_INT_TO_JUMP(24)
16797 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
16811 adr = GET_SWORD + ((u32)(PC) - BasePC);
16814 READ_WORD_F(adr, res)
16823 CHECK_INT_TO_JUMP(24)
16829 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
16843 adr = (u32)(PC) - BasePC;
16846 READ_WORD_F(adr, res)
16855 CHECK_INT_TO_JUMP(22)
16861 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
16883 CHECK_INT_TO_JUMP(16)
16889 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
16906 READ_WORD_F(adr, res)
16915 CHECK_INT_TO_JUMP(16)
16921 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
16938 READ_WORD_F(adr, res)
16947 CHECK_INT_TO_JUMP(18)
16953 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
16965 res = DREGu8((Opcode >> 0) & 7);
16966 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
16970 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
16972 DREGu8((Opcode >> 0) & 7) = res;
16974 flag_X = flag_C = M68K_SR_C;
16976 else flag_X = flag_C = 0;
16987 adr = AREG((Opcode >> 0) & 7);
16989 READ_BYTE_F(adr, res)
16990 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
16994 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
16996 WRITE_BYTE_F(adr, res)
16998 flag_X = flag_C = M68K_SR_C;
17000 else flag_X = flag_C = 0;
17012 adr = AREG((Opcode >> 0) & 7);
17013 AREG((Opcode >> 0) & 7) += 1;
17015 READ_BYTE_F(adr, res)
17016 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17020 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17022 WRITE_BYTE_F(adr, res)
17024 flag_X = flag_C = M68K_SR_C;
17026 else flag_X = flag_C = 0;
17038 adr = AREG((Opcode >> 0) & 7) - 1;
17039 AREG((Opcode >> 0) & 7) = adr;
17041 READ_BYTE_F(adr, res)
17042 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17046 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17048 WRITE_BYTE_F(adr, res)
17050 flag_X = flag_C = M68K_SR_C;
17052 else flag_X = flag_C = 0;
17065 adr += AREG((Opcode >> 0) & 7);
17067 READ_BYTE_F(adr, res)
17068 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17072 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17074 WRITE_BYTE_F(adr, res)
17076 flag_X = flag_C = M68K_SR_C;
17078 else flag_X = flag_C = 0;
17090 adr = AREG((Opcode >> 0) & 7);
17093 READ_BYTE_F(adr, res)
17094 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17098 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17100 WRITE_BYTE_F(adr, res)
17102 flag_X = flag_C = M68K_SR_C;
17104 else flag_X = flag_C = 0;
17118 READ_BYTE_F(adr, res)
17119 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17123 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17125 WRITE_BYTE_F(adr, res)
17127 flag_X = flag_C = M68K_SR_C;
17129 else flag_X = flag_C = 0;
17143 READ_BYTE_F(adr, res)
17144 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17148 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17150 WRITE_BYTE_F(adr, res)
17152 flag_X = flag_C = M68K_SR_C;
17154 else flag_X = flag_C = 0;
17169 READ_BYTE_F(adr, res)
17170 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17174 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17176 WRITE_BYTE_F(adr, res)
17178 flag_X = flag_C = M68K_SR_C;
17180 else flag_X = flag_C = 0;
17195 READ_BYTE_F(adr, res)
17196 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17200 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17202 WRITE_BYTE_F(adr, res)
17204 flag_X = flag_C = M68K_SR_C;
17206 else flag_X = flag_C = 0;
17218 adr = AREG((Opcode >> 0) & 7);
17232 adr += AREG((Opcode >> 0) & 7);
17245 adr = AREG((Opcode >> 0) & 7);
17285 adr = GET_SWORD + ((u32)(PC) - BasePC);
17299 adr = (u32)(PC) - BasePC;
17313 res = DREGu32((Opcode >> 0) & 7);
17314 res = (res >> 16) | (res << 16);
17318 flag_N = res >> 24;
17319 DREGu32((Opcode >> 0) & 7) = res;
17332 adr = AREG((Opcode >> 0) & 7);
17333 psrc = &DREGu32(0);
17340 WRITE_WORD_F(adr, *psrc)
17344 } while (res >>= 1);
17346 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17347 #ifdef USE_CYCLONE_TIMING
17363 adr = AREG((Opcode >> 0) & 7);
17364 psrc = &AREGu32(7);
17372 WRITE_WORD_F(adr, *psrc)
17375 } while (res >>= 1);
17376 AREG((Opcode >> 0) & 7) = adr;
17378 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17392 adr += AREG((Opcode >> 0) & 7);
17393 psrc = &DREGu32(0);
17400 WRITE_WORD_F(adr, *psrc)
17404 } while (res >>= 1);
17406 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17407 #ifdef USE_CYCLONE_TIMING
17423 adr = AREG((Opcode >> 0) & 7);
17425 psrc = &DREGu32(0);
17432 WRITE_WORD_F(adr, *psrc)
17436 } while (res >>= 1);
17438 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17439 #ifdef USE_CYCLONE_TIMING
17456 psrc = &DREGu32(0);
17463 WRITE_WORD_F(adr, *psrc)
17467 } while (res >>= 1);
17469 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17470 #ifdef USE_CYCLONE_TIMING
17487 psrc = &DREGu32(0);
17494 WRITE_WORD_F(adr, *psrc)
17498 } while (res >>= 1);
17500 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17501 #ifdef USE_CYCLONE_TIMING
17518 psrc = &AREGu32(7);
17526 WRITE_WORD_F(adr, *psrc)
17529 } while (res >>= 1);
17532 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17545 adr = AREG((Opcode >> 0) & 7);
17546 psrc = &DREGu32(0);
17553 WRITE_LONG_F(adr, *psrc)
17557 } while (res >>= 1);
17559 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17560 #ifdef USE_CYCLONE_TIMING
17576 adr = AREG((Opcode >> 0) & 7);
17577 psrc = &AREGu32(7);
17585 WRITE_LONG_DEC_F(adr, *psrc)
17588 } while (res >>= 1);
17589 AREG((Opcode >> 0) & 7) = adr;
17591 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17605 adr += AREG((Opcode >> 0) & 7);
17606 psrc = &DREGu32(0);
17613 WRITE_LONG_F(adr, *psrc)
17617 } while (res >>= 1);
17619 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17620 #ifdef USE_CYCLONE_TIMING
17636 adr = AREG((Opcode >> 0) & 7);
17638 psrc = &DREGu32(0);
17645 WRITE_LONG_F(adr, *psrc)
17649 } while (res >>= 1);
17651 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17652 #ifdef USE_CYCLONE_TIMING
17669 psrc = &DREGu32(0);
17676 WRITE_LONG_F(adr, *psrc)
17680 } while (res >>= 1);
17682 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17683 #ifdef USE_CYCLONE_TIMING
17700 psrc = &DREGu32(0);
17707 WRITE_LONG_F(adr, *psrc)
17711 } while (res >>= 1);
17713 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17714 #ifdef USE_CYCLONE_TIMING
17731 psrc = &AREGu32(7);
17739 WRITE_LONG_DEC_F(adr, *psrc)
17742 } while (res >>= 1);
17745 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17755 res = (s32)DREGs8((Opcode >> 0) & 7);
17760 DREGu16((Opcode >> 0) & 7) = res;
17770 res = (s32)DREGs16((Opcode >> 0) & 7);
17775 DREGu32((Opcode >> 0) & 7) = res;
17785 res = DREGu8((Opcode >> 0) & 7);
17799 adr = AREG((Opcode >> 0) & 7);
17801 READ_BYTE_F(adr, res)
17816 adr = AREG((Opcode >> 0) & 7);
17817 AREG((Opcode >> 0) & 7) += 1;
17819 READ_BYTE_F(adr, res)
17834 adr = AREG((Opcode >> 0) & 7) - 1;
17835 AREG((Opcode >> 0) & 7) = adr;
17837 READ_BYTE_F(adr, res)
17853 adr += AREG((Opcode >> 0) & 7);
17855 READ_BYTE_F(adr, res)
17870 adr = AREG((Opcode >> 0) & 7);
17873 READ_BYTE_F(adr, res)
17890 READ_BYTE_F(adr, res)
17907 READ_BYTE_F(adr, res)
17925 READ_BYTE_F(adr, res)
17943 READ_BYTE_F(adr, res)
17958 res = DREGu16((Opcode >> 0) & 7);
17972 adr = AREG((Opcode >> 0) & 7);
17974 READ_WORD_F(adr, res)
17989 adr = AREG((Opcode >> 0) & 7);
17990 AREG((Opcode >> 0) & 7) += 2;
17992 READ_WORD_F(adr, res)
18007 adr = AREG((Opcode >> 0) & 7) - 2;
18008 AREG((Opcode >> 0) & 7) = adr;
18010 READ_WORD_F(adr, res)
18026 adr += AREG((Opcode >> 0) & 7);
18028 READ_WORD_F(adr, res)
18043 adr = AREG((Opcode >> 0) & 7);
18046 READ_WORD_F(adr, res)
18063 READ_WORD_F(adr, res)
18080 READ_WORD_F(adr, res)
18098 READ_WORD_F(adr, res)
18116 READ_WORD_F(adr, res)
18131 res = DREGu32((Opcode >> 0) & 7);
18135 flag_N = res >> 24;
18145 adr = AREG((Opcode >> 0) & 7);
18147 READ_LONG_F(adr, res)
18151 flag_N = res >> 24;
18162 adr = AREG((Opcode >> 0) & 7);
18163 AREG((Opcode >> 0) & 7) += 4;
18165 READ_LONG_F(adr, res)
18169 flag_N = res >> 24;
18180 adr = AREG((Opcode >> 0) & 7) - 4;
18181 AREG((Opcode >> 0) & 7) = adr;
18183 READ_LONG_F(adr, res)
18187 flag_N = res >> 24;
18199 adr += AREG((Opcode >> 0) & 7);
18201 READ_LONG_F(adr, res)
18205 flag_N = res >> 24;
18216 adr = AREG((Opcode >> 0) & 7);
18219 READ_LONG_F(adr, res)
18223 flag_N = res >> 24;
18236 READ_LONG_F(adr, res)
18240 flag_N = res >> 24;
18253 READ_LONG_F(adr, res)
18257 flag_N = res >> 24;
18271 READ_LONG_F(adr, res)
18275 flag_N = res >> 24;
18289 READ_LONG_F(adr, res)
18293 flag_N = res >> 24;
18304 res = DREGu8((Opcode >> 0) & 7);
18310 DREGu8((Opcode >> 0) & 7) = res;
18320 adr = AREG((Opcode >> 0) & 7);
18322 READ_BYTE_F(adr, res)
18337 adr = AREG((Opcode >> 0) & 7);
18338 AREG((Opcode >> 0) & 7) += 1;
18340 READ_BYTE_F(adr, res)
18355 adr = AREG((Opcode >> 0) & 7) - 1;
18356 AREG((Opcode >> 0) & 7) = adr;
18358 READ_BYTE_F(adr, res)
18374 adr += AREG((Opcode >> 0) & 7);
18376 READ_BYTE_F(adr, res)
18391 adr = AREG((Opcode >> 0) & 7);
18394 READ_BYTE_F(adr, res)
18411 READ_BYTE_F(adr, res)
18428 READ_BYTE_F(adr, res)
18446 READ_BYTE_F(adr, res)
18464 READ_BYTE_F(adr, res)
18478 execute_exception(M68K_ILLEGAL_INSTRUCTION_EX);
18482 // ILLEGAL A000-AFFF
18487 execute_exception(M68K_1010_EX);
18491 // ILLEGAL F000-FFFF
18496 execute_exception(M68K_1111_EX);
18497 RET(0) // 4 already taken by exc. handler
18509 adr = AREG((Opcode >> 0) & 7);
18510 psrc = &DREGs32(0);
18517 READSX_WORD_F(adr, *psrc)
18521 } while (res >>= 1);
18523 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18524 #ifdef USE_CYCLONE_TIMING
18540 adr = AREG((Opcode >> 0) & 7);
18541 psrc = &DREGs32(0);
18548 READSX_WORD_F(adr, *psrc)
18552 } while (res >>= 1);
18553 AREG((Opcode >> 0) & 7) = adr;
18555 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18569 adr += AREG((Opcode >> 0) & 7);
18570 psrc = &DREGs32(0);
18577 READSX_WORD_F(adr, *psrc)
18581 } while (res >>= 1);
18583 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18584 #ifdef USE_CYCLONE_TIMING
18600 adr = AREG((Opcode >> 0) & 7);
18602 psrc = &DREGs32(0);
18609 READSX_WORD_F(adr, *psrc)
18613 } while (res >>= 1);
18615 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18616 #ifdef USE_CYCLONE_TIMING
18633 psrc = &DREGs32(0);
18640 READSX_WORD_F(adr, *psrc)
18644 } while (res >>= 1);
18646 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18647 #ifdef USE_CYCLONE_TIMING
18664 psrc = &DREGs32(0);
18671 READSX_WORD_F(adr, *psrc)
18675 } while (res >>= 1);
18677 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18678 #ifdef USE_CYCLONE_TIMING
18694 adr = GET_SWORD + ((u32)(PC) - BasePC);
18696 psrc = &DREGs32(0);
18703 READSX_WORD_F(adr, *psrc)
18707 } while (res >>= 1);
18709 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18710 #ifdef USE_CYCLONE_TIMING
18726 adr = (u32)(PC) - BasePC;
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);
18773 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18786 adr = AREG((Opcode >> 0) & 7);
18787 psrc = &DREGu32(0);
18794 READ_LONG_F(adr, *psrc)
18798 } while (res >>= 1);
18800 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18801 #ifdef USE_CYCLONE_TIMING
18817 adr = AREG((Opcode >> 0) & 7);
18818 psrc = &DREGu32(0);
18825 READ_LONG_F(adr, *psrc)
18829 } while (res >>= 1);
18830 AREG((Opcode >> 0) & 7) = adr;
18832 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18846 adr += AREG((Opcode >> 0) & 7);
18847 psrc = &DREGu32(0);
18854 READ_LONG_F(adr, *psrc)
18858 } while (res >>= 1);
18860 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18861 #ifdef USE_CYCLONE_TIMING
18877 adr = AREG((Opcode >> 0) & 7);
18879 psrc = &DREGu32(0);
18886 READ_LONG_F(adr, *psrc)
18890 } while (res >>= 1);
18892 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18893 #ifdef USE_CYCLONE_TIMING
18910 psrc = &DREGu32(0);
18917 READ_LONG_F(adr, *psrc)
18921 } while (res >>= 1);
18923 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18924 #ifdef USE_CYCLONE_TIMING
18941 psrc = &DREGu32(0);
18948 READ_LONG_F(adr, *psrc)
18952 } while (res >>= 1);
18954 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18955 #ifdef USE_CYCLONE_TIMING
18971 adr = GET_SWORD + ((u32)(PC) - BasePC);
18973 psrc = &DREGu32(0);
18980 READ_LONG_F(adr, *psrc)
18984 } while (res >>= 1);
18986 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18987 #ifdef USE_CYCLONE_TIMING
19003 adr = (u32)(PC) - BasePC;
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);
19050 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
19057 execute_exception(M68K_TRAP_BASE_EX + (Opcode & 0xF));
19067 res = AREGu32((Opcode >> 0) & 7);
19071 AREG((Opcode >> 0) & 7) = res;
19086 WRITE_LONG_DEC_F(AREG(7), AREG(7))
19099 src = AREGu32((Opcode >> 0) & 7);
19102 READ_LONG_F(src, res)
19103 AREG((Opcode >> 0) & 7) = res;
19115 READ_LONG_F(AREG(7), AREG(7))
19130 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
19133 res = AREGu32((Opcode >> 0) & 7);
19148 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
19152 AREG((Opcode >> 0) & 7) = res;
19166 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
19170 if (m68kcontext.reset_handler) m68kcontext.reset_handler();
19171 // CPU->Reset_CallBack();
19192 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
19196 res &= M68K_SR_MASK;
19204 m68kcontext.execinfo |= FM68K_HALTED;
19205 m68kcontext.io_cycle_counter = 0;
19219 execute_exception(M68K_PRIVILEGE_VIOLATION_EX);
19234 m68kcontext.execinfo &= ~(FM68K_EMULATE_GROUP_0|FM68K_EMULATE_TRACE|FM68K_DO_TRACE);
19235 CHECK_INT_TO_JUMP(20)
19248 CHECK_BRANCH_EXCEPTION(res)
19257 execute_exception(M68K_TRAPV_EX);
19272 CHECK_BRANCH_EXCEPTION(res)
19283 adr = AREG((Opcode >> 0) & 7);
19287 oldPC = (u32)(PC) - BasePC;
19292 CHECK_BRANCH_EXCEPTION(adr)
19304 adr += AREG((Opcode >> 0) & 7);
19308 oldPC = (u32)(PC) - BasePC;
19313 CHECK_BRANCH_EXCEPTION(adr)
19324 adr = AREG((Opcode >> 0) & 7);
19329 oldPC = (u32)(PC) - BasePC;
19334 CHECK_BRANCH_EXCEPTION(adr)
19349 oldPC = (u32)(PC) - BasePC;
19354 CHECK_BRANCH_EXCEPTION(adr)
19369 oldPC = (u32)(PC) - BasePC;
19374 CHECK_BRANCH_EXCEPTION(adr)
19385 adr = GET_SWORD + ((u32)(PC) - BasePC);
19390 oldPC = (u32)(PC) - BasePC;
19395 CHECK_BRANCH_EXCEPTION(adr)
19406 adr = (u32)(PC) - BasePC;
19411 oldPC = (u32)(PC) - BasePC;
19416 CHECK_BRANCH_EXCEPTION(adr)
19427 adr = AREG((Opcode >> 0) & 7);
19429 CHECK_BRANCH_EXCEPTION(adr)
19440 adr += AREG((Opcode >> 0) & 7);
19442 CHECK_BRANCH_EXCEPTION(adr)
19452 adr = AREG((Opcode >> 0) & 7);
19455 CHECK_BRANCH_EXCEPTION(adr)
19467 CHECK_BRANCH_EXCEPTION(adr)
19479 CHECK_BRANCH_EXCEPTION(adr)
19489 adr = GET_SWORD + ((u32)(PC) - BasePC);
19492 CHECK_BRANCH_EXCEPTION(adr)
19502 adr = (u32)(PC) - BasePC;
19505 CHECK_BRANCH_EXCEPTION(adr)
19515 src = DREGu16((Opcode >> 0) & 7);
19516 res = DREGu16((Opcode >> 9) & 7);
19517 if (((s32)res < 0) || (res > src))
19520 execute_exception(M68K_CHK_EX);
19531 adr = AREG((Opcode >> 0) & 7);
19533 READ_WORD_F(adr, src)
19534 res = DREGu16((Opcode >> 9) & 7);
19535 if (((s32)res < 0) || (res > src))
19538 execute_exception(M68K_CHK_EX);
19550 adr = AREG((Opcode >> 0) & 7);
19551 AREG((Opcode >> 0) & 7) += 2;
19553 READ_WORD_F(adr, src)
19554 res = DREGu16((Opcode >> 9) & 7);
19555 if (((s32)res < 0) || (res > src))
19558 execute_exception(M68K_CHK_EX);
19570 adr = AREG((Opcode >> 0) & 7) - 2;
19571 AREG((Opcode >> 0) & 7) = adr;
19573 READ_WORD_F(adr, src)
19574 res = DREGu16((Opcode >> 9) & 7);
19575 if (((s32)res < 0) || (res > src))
19578 execute_exception(M68K_CHK_EX);
19591 adr += AREG((Opcode >> 0) & 7);
19593 READ_WORD_F(adr, src)
19594 res = DREGu16((Opcode >> 9) & 7);
19595 if (((s32)res < 0) || (res > src))
19598 execute_exception(M68K_CHK_EX);
19610 adr = AREG((Opcode >> 0) & 7);
19613 READ_WORD_F(adr, src)
19614 res = DREGu16((Opcode >> 9) & 7);
19615 if (((s32)res < 0) || (res > src))
19618 execute_exception(M68K_CHK_EX);
19632 READ_WORD_F(adr, src)
19633 res = DREGu16((Opcode >> 9) & 7);
19634 if (((s32)res < 0) || (res > src))
19637 execute_exception(M68K_CHK_EX);
19651 READ_WORD_F(adr, src)
19652 res = DREGu16((Opcode >> 9) & 7);
19653 if (((s32)res < 0) || (res > src))
19656 execute_exception(M68K_CHK_EX);
19668 adr = GET_SWORD + ((u32)(PC) - BasePC);
19671 READ_WORD_F(adr, src)
19672 res = DREGu16((Opcode >> 9) & 7);
19673 if (((s32)res < 0) || (res > src))
19676 execute_exception(M68K_CHK_EX);
19688 adr = (u32)(PC) - BasePC;
19691 READ_WORD_F(adr, src)
19692 res = DREGu16((Opcode >> 9) & 7);
19693 if (((s32)res < 0) || (res > src))
19696 execute_exception(M68K_CHK_EX);
19709 res = DREGu16((Opcode >> 9) & 7);
19710 if (((s32)res < 0) || (res > src))
19713 execute_exception(M68K_CHK_EX);
19728 READ_WORD_F(adr, src)
19729 res = DREGu16((Opcode >> 9) & 7);
19730 if (((s32)res < 0) || (res > src))
19733 execute_exception(M68K_CHK_EX);
19748 READ_WORD_F(adr, src)
19749 res = DREGu16((Opcode >> 9) & 7);
19750 if (((s32)res < 0) || (res > src))
19753 execute_exception(M68K_CHK_EX);
19765 adr = AREG((Opcode >> 0) & 7);
19767 AREG((Opcode >> 9) & 7) = res;
19778 adr += AREG((Opcode >> 0) & 7);
19780 AREG((Opcode >> 9) & 7) = res;
19790 adr = AREG((Opcode >> 0) & 7);
19793 AREG((Opcode >> 9) & 7) = res;
19805 AREG((Opcode >> 9) & 7) = res;
19817 AREG((Opcode >> 9) & 7) = res;
19827 adr = GET_SWORD + ((u32)(PC) - BasePC);
19830 AREG((Opcode >> 9) & 7) = res;
19840 adr = (u32)(PC) - BasePC;
19843 AREG((Opcode >> 9) & 7) = res;
19854 DREGu8((Opcode >> 0) & 7) = res;
19865 DREGu8((Opcode >> 0) & 7) = res;
19875 if (flag_NotZ && (!(flag_C & 0x100)))
19878 DREGu8((Opcode >> 0) & 7) = res;
19882 DREGu8((Opcode >> 0) & 7) = res;
19892 if ((!flag_NotZ) || (flag_C & 0x100))
19895 DREGu8((Opcode >> 0) & 7) = res;
19899 DREGu8((Opcode >> 0) & 7) = res;
19909 if (!(flag_C & 0x100))
19912 DREGu8((Opcode >> 0) & 7) = res;
19916 DREGu8((Opcode >> 0) & 7) = res;
19926 if (flag_C & 0x100)
19929 DREGu8((Opcode >> 0) & 7) = res;
19933 DREGu8((Opcode >> 0) & 7) = res;
19946 DREGu8((Opcode >> 0) & 7) = res;
19950 DREGu8((Opcode >> 0) & 7) = res;
19963 DREGu8((Opcode >> 0) & 7) = res;
19967 DREGu8((Opcode >> 0) & 7) = res;
19977 if (!(flag_V & 0x80))
19980 DREGu8((Opcode >> 0) & 7) = res;
19984 DREGu8((Opcode >> 0) & 7) = res;
19997 DREGu8((Opcode >> 0) & 7) = res;
20001 DREGu8((Opcode >> 0) & 7) = res;
20011 if (!(flag_N & 0x80))
20014 DREGu8((Opcode >> 0) & 7) = res;
20018 DREGu8((Opcode >> 0) & 7) = res;
20031 DREGu8((Opcode >> 0) & 7) = res;
20035 DREGu8((Opcode >> 0) & 7) = res;
20045 if (!((flag_N ^ flag_V) & 0x80))
20048 DREGu8((Opcode >> 0) & 7) = res;
20052 DREGu8((Opcode >> 0) & 7) = res;
20062 if ((flag_N ^ flag_V) & 0x80)
20065 DREGu8((Opcode >> 0) & 7) = res;
20069 DREGu8((Opcode >> 0) & 7) = res;
20079 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20082 DREGu8((Opcode >> 0) & 7) = res;
20086 DREGu8((Opcode >> 0) & 7) = res;
20096 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20099 DREGu8((Opcode >> 0) & 7) = res;
20103 DREGu8((Opcode >> 0) & 7) = res;
20113 adr = AREG((Opcode >> 0) & 7);
20116 WRITE_BYTE_F(adr, res)
20127 adr = AREG((Opcode >> 0) & 7);
20130 WRITE_BYTE_F(adr, res)
20141 adr = AREG((Opcode >> 0) & 7);
20142 if (flag_NotZ && (!(flag_C & 0x100)))
20146 WRITE_BYTE_F(adr, res)
20152 WRITE_BYTE_F(adr, res)
20163 adr = AREG((Opcode >> 0) & 7);
20164 if ((!flag_NotZ) || (flag_C & 0x100))
20168 WRITE_BYTE_F(adr, res)
20174 WRITE_BYTE_F(adr, res)
20185 adr = AREG((Opcode >> 0) & 7);
20186 if (!(flag_C & 0x100))
20190 WRITE_BYTE_F(adr, res)
20196 WRITE_BYTE_F(adr, res)
20207 adr = AREG((Opcode >> 0) & 7);
20208 if (flag_C & 0x100)
20212 WRITE_BYTE_F(adr, res)
20218 WRITE_BYTE_F(adr, res)
20229 adr = AREG((Opcode >> 0) & 7);
20234 WRITE_BYTE_F(adr, res)
20240 WRITE_BYTE_F(adr, res)
20251 adr = AREG((Opcode >> 0) & 7);
20256 WRITE_BYTE_F(adr, res)
20262 WRITE_BYTE_F(adr, res)
20273 adr = AREG((Opcode >> 0) & 7);
20274 if (!(flag_V & 0x80))
20278 WRITE_BYTE_F(adr, res)
20284 WRITE_BYTE_F(adr, res)
20295 adr = AREG((Opcode >> 0) & 7);
20300 WRITE_BYTE_F(adr, res)
20306 WRITE_BYTE_F(adr, res)
20317 adr = AREG((Opcode >> 0) & 7);
20318 if (!(flag_N & 0x80))
20322 WRITE_BYTE_F(adr, res)
20328 WRITE_BYTE_F(adr, res)
20339 adr = AREG((Opcode >> 0) & 7);
20344 WRITE_BYTE_F(adr, res)
20350 WRITE_BYTE_F(adr, res)
20361 adr = AREG((Opcode >> 0) & 7);
20362 if (!((flag_N ^ flag_V) & 0x80))
20366 WRITE_BYTE_F(adr, res)
20372 WRITE_BYTE_F(adr, res)
20383 adr = AREG((Opcode >> 0) & 7);
20384 if ((flag_N ^ flag_V) & 0x80)
20388 WRITE_BYTE_F(adr, res)
20394 WRITE_BYTE_F(adr, res)
20405 adr = AREG((Opcode >> 0) & 7);
20406 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20410 WRITE_BYTE_F(adr, res)
20416 WRITE_BYTE_F(adr, res)
20427 adr = AREG((Opcode >> 0) & 7);
20428 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20432 WRITE_BYTE_F(adr, res)
20438 WRITE_BYTE_F(adr, res)
20449 adr = AREG((Opcode >> 0) & 7);
20450 AREG((Opcode >> 0) & 7) += 1;
20453 WRITE_BYTE_F(adr, res)
20464 adr = AREG((Opcode >> 0) & 7);
20465 AREG((Opcode >> 0) & 7) += 1;
20468 WRITE_BYTE_F(adr, res)
20479 adr = AREG((Opcode >> 0) & 7);
20480 AREG((Opcode >> 0) & 7) += 1;
20481 if (flag_NotZ && (!(flag_C & 0x100)))
20485 WRITE_BYTE_F(adr, res)
20491 WRITE_BYTE_F(adr, res)
20502 adr = AREG((Opcode >> 0) & 7);
20503 AREG((Opcode >> 0) & 7) += 1;
20504 if ((!flag_NotZ) || (flag_C & 0x100))
20508 WRITE_BYTE_F(adr, res)
20514 WRITE_BYTE_F(adr, res)
20525 adr = AREG((Opcode >> 0) & 7);
20526 AREG((Opcode >> 0) & 7) += 1;
20527 if (!(flag_C & 0x100))
20531 WRITE_BYTE_F(adr, res)
20537 WRITE_BYTE_F(adr, res)
20548 adr = AREG((Opcode >> 0) & 7);
20549 AREG((Opcode >> 0) & 7) += 1;
20550 if (flag_C & 0x100)
20554 WRITE_BYTE_F(adr, res)
20560 WRITE_BYTE_F(adr, res)
20571 adr = AREG((Opcode >> 0) & 7);
20572 AREG((Opcode >> 0) & 7) += 1;
20577 WRITE_BYTE_F(adr, res)
20583 WRITE_BYTE_F(adr, res)
20594 adr = AREG((Opcode >> 0) & 7);
20595 AREG((Opcode >> 0) & 7) += 1;
20600 WRITE_BYTE_F(adr, res)
20606 WRITE_BYTE_F(adr, res)
20617 adr = AREG((Opcode >> 0) & 7);
20618 AREG((Opcode >> 0) & 7) += 1;
20619 if (!(flag_V & 0x80))
20623 WRITE_BYTE_F(adr, res)
20629 WRITE_BYTE_F(adr, res)
20640 adr = AREG((Opcode >> 0) & 7);
20641 AREG((Opcode >> 0) & 7) += 1;
20646 WRITE_BYTE_F(adr, res)
20652 WRITE_BYTE_F(adr, res)
20663 adr = AREG((Opcode >> 0) & 7);
20664 AREG((Opcode >> 0) & 7) += 1;
20665 if (!(flag_N & 0x80))
20669 WRITE_BYTE_F(adr, res)
20675 WRITE_BYTE_F(adr, res)
20686 adr = AREG((Opcode >> 0) & 7);
20687 AREG((Opcode >> 0) & 7) += 1;
20692 WRITE_BYTE_F(adr, res)
20698 WRITE_BYTE_F(adr, res)
20709 adr = AREG((Opcode >> 0) & 7);
20710 AREG((Opcode >> 0) & 7) += 1;
20711 if (!((flag_N ^ flag_V) & 0x80))
20715 WRITE_BYTE_F(adr, res)
20721 WRITE_BYTE_F(adr, res)
20732 adr = AREG((Opcode >> 0) & 7);
20733 AREG((Opcode >> 0) & 7) += 1;
20734 if ((flag_N ^ flag_V) & 0x80)
20738 WRITE_BYTE_F(adr, res)
20744 WRITE_BYTE_F(adr, res)
20755 adr = AREG((Opcode >> 0) & 7);
20756 AREG((Opcode >> 0) & 7) += 1;
20757 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20761 WRITE_BYTE_F(adr, res)
20767 WRITE_BYTE_F(adr, res)
20778 adr = AREG((Opcode >> 0) & 7);
20779 AREG((Opcode >> 0) & 7) += 1;
20780 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20784 WRITE_BYTE_F(adr, res)
20790 WRITE_BYTE_F(adr, res)
20801 adr = AREG((Opcode >> 0) & 7) - 1;
20802 AREG((Opcode >> 0) & 7) = adr;
20805 WRITE_BYTE_F(adr, res)
20816 adr = AREG((Opcode >> 0) & 7) - 1;
20817 AREG((Opcode >> 0) & 7) = adr;
20820 WRITE_BYTE_F(adr, res)
20831 adr = AREG((Opcode >> 0) & 7) - 1;
20832 AREG((Opcode >> 0) & 7) = adr;
20833 if (flag_NotZ && (!(flag_C & 0x100)))
20837 WRITE_BYTE_F(adr, res)
20843 WRITE_BYTE_F(adr, res)
20854 adr = AREG((Opcode >> 0) & 7) - 1;
20855 AREG((Opcode >> 0) & 7) = adr;
20856 if ((!flag_NotZ) || (flag_C & 0x100))
20860 WRITE_BYTE_F(adr, res)
20866 WRITE_BYTE_F(adr, res)
20877 adr = AREG((Opcode >> 0) & 7) - 1;
20878 AREG((Opcode >> 0) & 7) = adr;
20879 if (!(flag_C & 0x100))
20883 WRITE_BYTE_F(adr, res)
20889 WRITE_BYTE_F(adr, res)
20900 adr = AREG((Opcode >> 0) & 7) - 1;
20901 AREG((Opcode >> 0) & 7) = adr;
20902 if (flag_C & 0x100)
20906 WRITE_BYTE_F(adr, res)
20912 WRITE_BYTE_F(adr, res)
20923 adr = AREG((Opcode >> 0) & 7) - 1;
20924 AREG((Opcode >> 0) & 7) = adr;
20929 WRITE_BYTE_F(adr, res)
20935 WRITE_BYTE_F(adr, res)
20946 adr = AREG((Opcode >> 0) & 7) - 1;
20947 AREG((Opcode >> 0) & 7) = adr;
20952 WRITE_BYTE_F(adr, res)
20958 WRITE_BYTE_F(adr, res)
20969 adr = AREG((Opcode >> 0) & 7) - 1;
20970 AREG((Opcode >> 0) & 7) = adr;
20971 if (!(flag_V & 0x80))
20975 WRITE_BYTE_F(adr, res)
20981 WRITE_BYTE_F(adr, res)
20992 adr = AREG((Opcode >> 0) & 7) - 1;
20993 AREG((Opcode >> 0) & 7) = adr;
20998 WRITE_BYTE_F(adr, res)
21004 WRITE_BYTE_F(adr, res)
21015 adr = AREG((Opcode >> 0) & 7) - 1;
21016 AREG((Opcode >> 0) & 7) = adr;
21017 if (!(flag_N & 0x80))
21021 WRITE_BYTE_F(adr, res)
21027 WRITE_BYTE_F(adr, res)
21038 adr = AREG((Opcode >> 0) & 7) - 1;
21039 AREG((Opcode >> 0) & 7) = adr;
21044 WRITE_BYTE_F(adr, res)
21050 WRITE_BYTE_F(adr, res)
21061 adr = AREG((Opcode >> 0) & 7) - 1;
21062 AREG((Opcode >> 0) & 7) = adr;
21063 if (!((flag_N ^ flag_V) & 0x80))
21067 WRITE_BYTE_F(adr, res)
21073 WRITE_BYTE_F(adr, res)
21084 adr = AREG((Opcode >> 0) & 7) - 1;
21085 AREG((Opcode >> 0) & 7) = adr;
21086 if ((flag_N ^ flag_V) & 0x80)
21090 WRITE_BYTE_F(adr, res)
21096 WRITE_BYTE_F(adr, res)
21107 adr = AREG((Opcode >> 0) & 7) - 1;
21108 AREG((Opcode >> 0) & 7) = adr;
21109 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21113 WRITE_BYTE_F(adr, res)
21119 WRITE_BYTE_F(adr, res)
21130 adr = AREG((Opcode >> 0) & 7) - 1;
21131 AREG((Opcode >> 0) & 7) = adr;
21132 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21136 WRITE_BYTE_F(adr, res)
21142 WRITE_BYTE_F(adr, res)
21154 adr += AREG((Opcode >> 0) & 7);
21157 WRITE_BYTE_F(adr, res)
21169 adr += AREG((Opcode >> 0) & 7);
21172 WRITE_BYTE_F(adr, res)
21184 adr += AREG((Opcode >> 0) & 7);
21185 if (flag_NotZ && (!(flag_C & 0x100)))
21189 WRITE_BYTE_F(adr, res)
21195 WRITE_BYTE_F(adr, res)
21207 adr += AREG((Opcode >> 0) & 7);
21208 if ((!flag_NotZ) || (flag_C & 0x100))
21212 WRITE_BYTE_F(adr, res)
21218 WRITE_BYTE_F(adr, res)
21230 adr += AREG((Opcode >> 0) & 7);
21231 if (!(flag_C & 0x100))
21235 WRITE_BYTE_F(adr, res)
21241 WRITE_BYTE_F(adr, res)
21253 adr += AREG((Opcode >> 0) & 7);
21254 if (flag_C & 0x100)
21258 WRITE_BYTE_F(adr, res)
21264 WRITE_BYTE_F(adr, res)
21276 adr += AREG((Opcode >> 0) & 7);
21281 WRITE_BYTE_F(adr, res)
21287 WRITE_BYTE_F(adr, res)
21299 adr += AREG((Opcode >> 0) & 7);
21304 WRITE_BYTE_F(adr, res)
21310 WRITE_BYTE_F(adr, res)
21322 adr += AREG((Opcode >> 0) & 7);
21323 if (!(flag_V & 0x80))
21327 WRITE_BYTE_F(adr, res)
21333 WRITE_BYTE_F(adr, res)
21345 adr += AREG((Opcode >> 0) & 7);
21350 WRITE_BYTE_F(adr, res)
21356 WRITE_BYTE_F(adr, res)
21368 adr += AREG((Opcode >> 0) & 7);
21369 if (!(flag_N & 0x80))
21373 WRITE_BYTE_F(adr, res)
21379 WRITE_BYTE_F(adr, res)
21391 adr += AREG((Opcode >> 0) & 7);
21396 WRITE_BYTE_F(adr, res)
21402 WRITE_BYTE_F(adr, res)
21414 adr += AREG((Opcode >> 0) & 7);
21415 if (!((flag_N ^ flag_V) & 0x80))
21419 WRITE_BYTE_F(adr, res)
21425 WRITE_BYTE_F(adr, res)
21437 adr += AREG((Opcode >> 0) & 7);
21438 if ((flag_N ^ flag_V) & 0x80)
21442 WRITE_BYTE_F(adr, res)
21448 WRITE_BYTE_F(adr, res)
21460 adr += AREG((Opcode >> 0) & 7);
21461 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21465 WRITE_BYTE_F(adr, res)
21471 WRITE_BYTE_F(adr, res)
21483 adr += AREG((Opcode >> 0) & 7);
21484 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21488 WRITE_BYTE_F(adr, res)
21494 WRITE_BYTE_F(adr, res)
21505 adr = AREG((Opcode >> 0) & 7);
21509 WRITE_BYTE_F(adr, res)
21520 adr = AREG((Opcode >> 0) & 7);
21524 WRITE_BYTE_F(adr, res)
21535 adr = AREG((Opcode >> 0) & 7);
21537 if (flag_NotZ && (!(flag_C & 0x100)))
21541 WRITE_BYTE_F(adr, res)
21547 WRITE_BYTE_F(adr, res)
21558 adr = AREG((Opcode >> 0) & 7);
21560 if ((!flag_NotZ) || (flag_C & 0x100))
21564 WRITE_BYTE_F(adr, res)
21570 WRITE_BYTE_F(adr, res)
21581 adr = AREG((Opcode >> 0) & 7);
21583 if (!(flag_C & 0x100))
21587 WRITE_BYTE_F(adr, res)
21593 WRITE_BYTE_F(adr, res)
21604 adr = AREG((Opcode >> 0) & 7);
21606 if (flag_C & 0x100)
21610 WRITE_BYTE_F(adr, res)
21616 WRITE_BYTE_F(adr, res)
21627 adr = AREG((Opcode >> 0) & 7);
21633 WRITE_BYTE_F(adr, res)
21639 WRITE_BYTE_F(adr, res)
21650 adr = AREG((Opcode >> 0) & 7);
21656 WRITE_BYTE_F(adr, res)
21662 WRITE_BYTE_F(adr, res)
21673 adr = AREG((Opcode >> 0) & 7);
21675 if (!(flag_V & 0x80))
21679 WRITE_BYTE_F(adr, res)
21685 WRITE_BYTE_F(adr, res)
21696 adr = AREG((Opcode >> 0) & 7);
21702 WRITE_BYTE_F(adr, res)
21708 WRITE_BYTE_F(adr, res)
21719 adr = AREG((Opcode >> 0) & 7);
21721 if (!(flag_N & 0x80))
21725 WRITE_BYTE_F(adr, res)
21731 WRITE_BYTE_F(adr, res)
21742 adr = AREG((Opcode >> 0) & 7);
21748 WRITE_BYTE_F(adr, res)
21754 WRITE_BYTE_F(adr, res)
21765 adr = AREG((Opcode >> 0) & 7);
21767 if (!((flag_N ^ flag_V) & 0x80))
21771 WRITE_BYTE_F(adr, res)
21777 WRITE_BYTE_F(adr, res)
21788 adr = AREG((Opcode >> 0) & 7);
21790 if ((flag_N ^ flag_V) & 0x80)
21794 WRITE_BYTE_F(adr, res)
21800 WRITE_BYTE_F(adr, res)
21811 adr = AREG((Opcode >> 0) & 7);
21813 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21817 WRITE_BYTE_F(adr, res)
21823 WRITE_BYTE_F(adr, res)
21834 adr = AREG((Opcode >> 0) & 7);
21836 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21840 WRITE_BYTE_F(adr, res)
21846 WRITE_BYTE_F(adr, res)
21860 WRITE_BYTE_F(adr, res)
21874 WRITE_BYTE_F(adr, res)
21886 if (flag_NotZ && (!(flag_C & 0x100)))
21890 WRITE_BYTE_F(adr, res)
21896 WRITE_BYTE_F(adr, res)
21908 if ((!flag_NotZ) || (flag_C & 0x100))
21912 WRITE_BYTE_F(adr, res)
21918 WRITE_BYTE_F(adr, res)
21930 if (!(flag_C & 0x100))
21934 WRITE_BYTE_F(adr, res)
21940 WRITE_BYTE_F(adr, res)
21952 if (flag_C & 0x100)
21956 WRITE_BYTE_F(adr, res)
21962 WRITE_BYTE_F(adr, res)
21978 WRITE_BYTE_F(adr, res)
21984 WRITE_BYTE_F(adr, res)
22000 WRITE_BYTE_F(adr, res)
22006 WRITE_BYTE_F(adr, res)
22018 if (!(flag_V & 0x80))
22022 WRITE_BYTE_F(adr, res)
22028 WRITE_BYTE_F(adr, res)
22044 WRITE_BYTE_F(adr, res)
22050 WRITE_BYTE_F(adr, res)
22062 if (!(flag_N & 0x80))
22066 WRITE_BYTE_F(adr, res)
22072 WRITE_BYTE_F(adr, res)
22088 WRITE_BYTE_F(adr, res)
22094 WRITE_BYTE_F(adr, res)
22106 if (!((flag_N ^ flag_V) & 0x80))
22110 WRITE_BYTE_F(adr, res)
22116 WRITE_BYTE_F(adr, res)
22128 if ((flag_N ^ flag_V) & 0x80)
22132 WRITE_BYTE_F(adr, res)
22138 WRITE_BYTE_F(adr, res)
22150 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22154 WRITE_BYTE_F(adr, res)
22160 WRITE_BYTE_F(adr, res)
22172 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22176 WRITE_BYTE_F(adr, res)
22182 WRITE_BYTE_F(adr, res)
22196 WRITE_BYTE_F(adr, res)
22210 WRITE_BYTE_F(adr, res)
22222 if (flag_NotZ && (!(flag_C & 0x100)))
22226 WRITE_BYTE_F(adr, res)
22232 WRITE_BYTE_F(adr, res)
22244 if ((!flag_NotZ) || (flag_C & 0x100))
22248 WRITE_BYTE_F(adr, res)
22254 WRITE_BYTE_F(adr, res)
22266 if (!(flag_C & 0x100))
22270 WRITE_BYTE_F(adr, res)
22276 WRITE_BYTE_F(adr, res)
22288 if (flag_C & 0x100)
22292 WRITE_BYTE_F(adr, res)
22298 WRITE_BYTE_F(adr, res)
22314 WRITE_BYTE_F(adr, res)
22320 WRITE_BYTE_F(adr, res)
22336 WRITE_BYTE_F(adr, res)
22342 WRITE_BYTE_F(adr, res)
22354 if (!(flag_V & 0x80))
22358 WRITE_BYTE_F(adr, res)
22364 WRITE_BYTE_F(adr, res)
22380 WRITE_BYTE_F(adr, res)
22386 WRITE_BYTE_F(adr, res)
22398 if (!(flag_N & 0x80))
22402 WRITE_BYTE_F(adr, res)
22408 WRITE_BYTE_F(adr, res)
22424 WRITE_BYTE_F(adr, res)
22430 WRITE_BYTE_F(adr, res)
22442 if (!((flag_N ^ flag_V) & 0x80))
22446 WRITE_BYTE_F(adr, res)
22452 WRITE_BYTE_F(adr, res)
22464 if ((flag_N ^ flag_V) & 0x80)
22468 WRITE_BYTE_F(adr, res)
22474 WRITE_BYTE_F(adr, res)
22486 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22490 WRITE_BYTE_F(adr, res)
22496 WRITE_BYTE_F(adr, res)
22508 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22512 WRITE_BYTE_F(adr, res)
22518 WRITE_BYTE_F(adr, res)
22533 WRITE_BYTE_F(adr, res)
22548 WRITE_BYTE_F(adr, res)
22561 if (flag_NotZ && (!(flag_C & 0x100)))
22565 WRITE_BYTE_F(adr, res)
22571 WRITE_BYTE_F(adr, res)
22584 if ((!flag_NotZ) || (flag_C & 0x100))
22588 WRITE_BYTE_F(adr, res)
22594 WRITE_BYTE_F(adr, res)
22607 if (!(flag_C & 0x100))
22611 WRITE_BYTE_F(adr, res)
22617 WRITE_BYTE_F(adr, res)
22630 if (flag_C & 0x100)
22634 WRITE_BYTE_F(adr, res)
22640 WRITE_BYTE_F(adr, res)
22657 WRITE_BYTE_F(adr, res)
22663 WRITE_BYTE_F(adr, res)
22680 WRITE_BYTE_F(adr, res)
22686 WRITE_BYTE_F(adr, res)
22699 if (!(flag_V & 0x80))
22703 WRITE_BYTE_F(adr, res)
22709 WRITE_BYTE_F(adr, res)
22726 WRITE_BYTE_F(adr, res)
22732 WRITE_BYTE_F(adr, res)
22745 if (!(flag_N & 0x80))
22749 WRITE_BYTE_F(adr, res)
22755 WRITE_BYTE_F(adr, res)
22772 WRITE_BYTE_F(adr, res)
22778 WRITE_BYTE_F(adr, res)
22791 if (!((flag_N ^ flag_V) & 0x80))
22795 WRITE_BYTE_F(adr, res)
22801 WRITE_BYTE_F(adr, res)
22814 if ((flag_N ^ flag_V) & 0x80)
22818 WRITE_BYTE_F(adr, res)
22824 WRITE_BYTE_F(adr, res)
22837 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22841 WRITE_BYTE_F(adr, res)
22847 WRITE_BYTE_F(adr, res)
22860 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22864 WRITE_BYTE_F(adr, res)
22870 WRITE_BYTE_F(adr, res)
22885 WRITE_BYTE_F(adr, res)
22900 WRITE_BYTE_F(adr, res)
22913 if (flag_NotZ && (!(flag_C & 0x100)))
22917 WRITE_BYTE_F(adr, res)
22923 WRITE_BYTE_F(adr, res)
22936 if ((!flag_NotZ) || (flag_C & 0x100))
22940 WRITE_BYTE_F(adr, res)
22946 WRITE_BYTE_F(adr, res)
22959 if (!(flag_C & 0x100))
22963 WRITE_BYTE_F(adr, res)
22969 WRITE_BYTE_F(adr, res)
22982 if (flag_C & 0x100)
22986 WRITE_BYTE_F(adr, res)
22992 WRITE_BYTE_F(adr, res)
23009 WRITE_BYTE_F(adr, res)
23015 WRITE_BYTE_F(adr, res)
23032 WRITE_BYTE_F(adr, res)
23038 WRITE_BYTE_F(adr, res)
23051 if (!(flag_V & 0x80))
23055 WRITE_BYTE_F(adr, res)
23061 WRITE_BYTE_F(adr, res)
23078 WRITE_BYTE_F(adr, res)
23084 WRITE_BYTE_F(adr, res)
23097 if (!(flag_N & 0x80))
23101 WRITE_BYTE_F(adr, res)
23107 WRITE_BYTE_F(adr, res)
23124 WRITE_BYTE_F(adr, res)
23130 WRITE_BYTE_F(adr, res)
23143 if (!((flag_N ^ flag_V) & 0x80))
23147 WRITE_BYTE_F(adr, res)
23153 WRITE_BYTE_F(adr, res)
23166 if ((flag_N ^ flag_V) & 0x80)
23170 WRITE_BYTE_F(adr, res)
23176 WRITE_BYTE_F(adr, res)
23189 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
23193 WRITE_BYTE_F(adr, res)
23199 WRITE_BYTE_F(adr, res)
23212 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
23216 WRITE_BYTE_F(adr, res)
23222 WRITE_BYTE_F(adr, res)
23243 res = DREGu16((Opcode >> 0) & 7);
23245 DREGu16((Opcode >> 0) & 7) = res;
23246 if ((s32)res != -1)
23250 newPC = (u32)(PC) - BasePC;
23251 newPC += GET_SWORD;
23253 CHECK_BRANCH_EXCEPTION(newPC)
23266 if ((!flag_NotZ) || (flag_C & 0x100))
23268 res = DREGu16((Opcode >> 0) & 7);
23270 DREGu16((Opcode >> 0) & 7) = res;
23271 if ((s32)res != -1)
23275 newPC = (u32)(PC) - BasePC;
23276 newPC += GET_SWORD;
23278 CHECK_BRANCH_EXCEPTION(newPC)
23297 if (flag_NotZ && (!(flag_C & 0x100)))
23299 res = DREGu16((Opcode >> 0) & 7);
23301 DREGu16((Opcode >> 0) & 7) = res;
23302 if ((s32)res != -1)
23306 newPC = (u32)(PC) - BasePC;
23307 newPC += GET_SWORD;
23309 CHECK_BRANCH_EXCEPTION(newPC)
23328 if (flag_C & 0x100)
23330 res = DREGu16((Opcode >> 0) & 7);
23332 DREGu16((Opcode >> 0) & 7) = res;
23333 if ((s32)res != -1)
23337 newPC = (u32)(PC) - BasePC;
23338 newPC += GET_SWORD;
23340 CHECK_BRANCH_EXCEPTION(newPC)
23359 if (!(flag_C & 0x100))
23361 res = DREGu16((Opcode >> 0) & 7);
23363 DREGu16((Opcode >> 0) & 7) = res;
23364 if ((s32)res != -1)
23368 newPC = (u32)(PC) - BasePC;
23369 newPC += GET_SWORD;
23371 CHECK_BRANCH_EXCEPTION(newPC)
23392 res = DREGu16((Opcode >> 0) & 7);
23394 DREGu16((Opcode >> 0) & 7) = res;
23395 if ((s32)res != -1)
23399 newPC = (u32)(PC) - BasePC;
23400 newPC += GET_SWORD;
23402 CHECK_BRANCH_EXCEPTION(newPC)
23423 res = DREGu16((Opcode >> 0) & 7);
23425 DREGu16((Opcode >> 0) & 7) = res;
23426 if ((s32)res != -1)
23430 newPC = (u32)(PC) - BasePC;
23431 newPC += GET_SWORD;
23433 CHECK_BRANCH_EXCEPTION(newPC)
23454 res = DREGu16((Opcode >> 0) & 7);
23456 DREGu16((Opcode >> 0) & 7) = res;
23457 if ((s32)res != -1)
23461 newPC = (u32)(PC) - BasePC;
23462 newPC += GET_SWORD;
23464 CHECK_BRANCH_EXCEPTION(newPC)
23483 if (!(flag_V & 0x80))
23485 res = DREGu16((Opcode >> 0) & 7);
23487 DREGu16((Opcode >> 0) & 7) = res;
23488 if ((s32)res != -1)
23492 newPC = (u32)(PC) - BasePC;
23493 newPC += GET_SWORD;
23495 CHECK_BRANCH_EXCEPTION(newPC)
23516 res = DREGu16((Opcode >> 0) & 7);
23518 DREGu16((Opcode >> 0) & 7) = res;
23519 if ((s32)res != -1)
23523 newPC = (u32)(PC) - BasePC;
23524 newPC += GET_SWORD;
23526 CHECK_BRANCH_EXCEPTION(newPC)
23545 if (!(flag_N & 0x80))
23547 res = DREGu16((Opcode >> 0) & 7);
23549 DREGu16((Opcode >> 0) & 7) = res;
23550 if ((s32)res != -1)
23554 newPC = (u32)(PC) - BasePC;
23555 newPC += GET_SWORD;
23557 CHECK_BRANCH_EXCEPTION(newPC)
23576 if ((flag_N ^ flag_V) & 0x80)
23578 res = DREGu16((Opcode >> 0) & 7);
23580 DREGu16((Opcode >> 0) & 7) = res;
23581 if ((s32)res != -1)
23585 newPC = (u32)(PC) - BasePC;
23586 newPC += GET_SWORD;
23588 CHECK_BRANCH_EXCEPTION(newPC)
23607 if (!((flag_N ^ flag_V) & 0x80))
23609 res = DREGu16((Opcode >> 0) & 7);
23611 DREGu16((Opcode >> 0) & 7) = res;
23612 if ((s32)res != -1)
23616 newPC = (u32)(PC) - BasePC;
23617 newPC += GET_SWORD;
23619 CHECK_BRANCH_EXCEPTION(newPC)
23638 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
23640 res = DREGu16((Opcode >> 0) & 7);
23642 DREGu16((Opcode >> 0) & 7) = res;
23643 if ((s32)res != -1)
23647 newPC = (u32)(PC) - BasePC;
23648 newPC += GET_SWORD;
23650 CHECK_BRANCH_EXCEPTION(newPC)
23669 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
23671 res = DREGu16((Opcode >> 0) & 7);
23673 DREGu16((Opcode >> 0) & 7) = res;
23674 if ((s32)res != -1)
23678 newPC = (u32)(PC) - BasePC;
23679 newPC += GET_SWORD;
23681 CHECK_BRANCH_EXCEPTION(newPC)
23700 src = (((Opcode >> 9) - 1) & 7) + 1;
23701 dst = DREGu8((Opcode >> 0) & 7);
23703 flag_N = flag_X = flag_C = res;
23704 flag_V = (src ^ res) & (dst ^ res);
23705 flag_NotZ = res & 0xFF;
23706 DREGu8((Opcode >> 0) & 7) = res;
23716 src = (((Opcode >> 9) - 1) & 7) + 1;
23717 adr = AREG((Opcode >> 0) & 7);
23719 READ_BYTE_F(adr, dst)
23721 flag_N = flag_X = flag_C = res;
23722 flag_V = (src ^ res) & (dst ^ res);
23723 flag_NotZ = res & 0xFF;
23724 WRITE_BYTE_F(adr, res)
23735 src = (((Opcode >> 9) - 1) & 7) + 1;
23736 adr = AREG((Opcode >> 0) & 7);
23737 AREG((Opcode >> 0) & 7) += 1;
23739 READ_BYTE_F(adr, dst)
23741 flag_N = flag_X = flag_C = res;
23742 flag_V = (src ^ res) & (dst ^ res);
23743 flag_NotZ = res & 0xFF;
23744 WRITE_BYTE_F(adr, res)
23755 src = (((Opcode >> 9) - 1) & 7) + 1;
23756 adr = AREG((Opcode >> 0) & 7) - 1;
23757 AREG((Opcode >> 0) & 7) = adr;
23759 READ_BYTE_F(adr, dst)
23761 flag_N = flag_X = flag_C = res;
23762 flag_V = (src ^ res) & (dst ^ res);
23763 flag_NotZ = res & 0xFF;
23764 WRITE_BYTE_F(adr, res)
23775 src = (((Opcode >> 9) - 1) & 7) + 1;
23777 adr += AREG((Opcode >> 0) & 7);
23779 READ_BYTE_F(adr, dst)
23781 flag_N = flag_X = flag_C = res;
23782 flag_V = (src ^ res) & (dst ^ res);
23783 flag_NotZ = res & 0xFF;
23784 WRITE_BYTE_F(adr, res)
23795 src = (((Opcode >> 9) - 1) & 7) + 1;
23796 adr = AREG((Opcode >> 0) & 7);
23799 READ_BYTE_F(adr, dst)
23801 flag_N = flag_X = flag_C = res;
23802 flag_V = (src ^ res) & (dst ^ res);
23803 flag_NotZ = res & 0xFF;
23804 WRITE_BYTE_F(adr, res)
23815 src = (((Opcode >> 9) - 1) & 7) + 1;
23818 READ_BYTE_F(adr, dst)
23820 flag_N = flag_X = flag_C = res;
23821 flag_V = (src ^ res) & (dst ^ res);
23822 flag_NotZ = res & 0xFF;
23823 WRITE_BYTE_F(adr, res)
23834 src = (((Opcode >> 9) - 1) & 7) + 1;
23837 READ_BYTE_F(adr, dst)
23839 flag_N = flag_X = flag_C = res;
23840 flag_V = (src ^ res) & (dst ^ res);
23841 flag_NotZ = res & 0xFF;
23842 WRITE_BYTE_F(adr, res)
23853 src = (((Opcode >> 9) - 1) & 7) + 1;
23857 READ_BYTE_F(adr, dst)
23859 flag_N = flag_X = flag_C = res;
23860 flag_V = (src ^ res) & (dst ^ res);
23861 flag_NotZ = res & 0xFF;
23862 WRITE_BYTE_F(adr, res)
23873 src = (((Opcode >> 9) - 1) & 7) + 1;
23877 READ_BYTE_F(adr, dst)
23879 flag_N = flag_X = flag_C = res;
23880 flag_V = (src ^ res) & (dst ^ res);
23881 flag_NotZ = res & 0xFF;
23882 WRITE_BYTE_F(adr, res)
23893 src = (((Opcode >> 9) - 1) & 7) + 1;
23894 dst = DREGu16((Opcode >> 0) & 7);
23896 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
23897 flag_N = flag_X = flag_C = res >> 8;
23898 flag_NotZ = res & 0xFFFF;
23899 DREGu16((Opcode >> 0) & 7) = res;
23909 src = (((Opcode >> 9) - 1) & 7) + 1;
23910 dst = AREGu32((Opcode >> 0) & 7);
23912 AREG((Opcode >> 0) & 7) = res;
23913 #ifdef USE_CYCLONE_TIMING
23926 src = (((Opcode >> 9) - 1) & 7) + 1;
23927 adr = AREG((Opcode >> 0) & 7);
23929 READ_WORD_F(adr, dst)
23931 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
23932 flag_N = flag_X = flag_C = res >> 8;
23933 flag_NotZ = res & 0xFFFF;
23934 WRITE_WORD_F(adr, res)
23945 src = (((Opcode >> 9) - 1) & 7) + 1;
23946 adr = AREG((Opcode >> 0) & 7);
23947 AREG((Opcode >> 0) & 7) += 2;
23949 READ_WORD_F(adr, dst)
23951 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
23952 flag_N = flag_X = flag_C = res >> 8;
23953 flag_NotZ = res & 0xFFFF;
23954 WRITE_WORD_F(adr, res)
23965 src = (((Opcode >> 9) - 1) & 7) + 1;
23966 adr = AREG((Opcode >> 0) & 7) - 2;
23967 AREG((Opcode >> 0) & 7) = adr;
23969 READ_WORD_F(adr, dst)
23971 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
23972 flag_N = flag_X = flag_C = res >> 8;
23973 flag_NotZ = res & 0xFFFF;
23974 WRITE_WORD_F(adr, res)
23985 src = (((Opcode >> 9) - 1) & 7) + 1;
23987 adr += AREG((Opcode >> 0) & 7);
23989 READ_WORD_F(adr, dst)
23991 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
23992 flag_N = flag_X = flag_C = res >> 8;
23993 flag_NotZ = res & 0xFFFF;
23994 WRITE_WORD_F(adr, res)
24005 src = (((Opcode >> 9) - 1) & 7) + 1;
24006 adr = AREG((Opcode >> 0) & 7);
24009 READ_WORD_F(adr, dst)
24011 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24012 flag_N = flag_X = flag_C = res >> 8;
24013 flag_NotZ = res & 0xFFFF;
24014 WRITE_WORD_F(adr, res)
24025 src = (((Opcode >> 9) - 1) & 7) + 1;
24028 READ_WORD_F(adr, dst)
24030 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24031 flag_N = flag_X = flag_C = res >> 8;
24032 flag_NotZ = res & 0xFFFF;
24033 WRITE_WORD_F(adr, res)
24044 src = (((Opcode >> 9) - 1) & 7) + 1;
24047 READ_WORD_F(adr, dst)
24049 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24050 flag_N = flag_X = flag_C = res >> 8;
24051 flag_NotZ = res & 0xFFFF;
24052 WRITE_WORD_F(adr, res)
24063 src = (((Opcode >> 9) - 1) & 7) + 1;
24067 READ_WORD_F(adr, dst)
24069 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24070 flag_N = flag_X = flag_C = res >> 8;
24071 flag_NotZ = res & 0xFFFF;
24072 WRITE_WORD_F(adr, res)
24083 src = (((Opcode >> 9) - 1) & 7) + 1;
24087 READ_WORD_F(adr, dst)
24089 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24090 flag_N = flag_X = flag_C = res >> 8;
24091 flag_NotZ = res & 0xFFFF;
24092 WRITE_WORD_F(adr, res)
24103 src = (((Opcode >> 9) - 1) & 7) + 1;
24104 dst = DREGu32((Opcode >> 0) & 7);
24107 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24108 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24109 flag_N = res >> 24;
24110 DREGu32((Opcode >> 0) & 7) = res;
24120 src = (((Opcode >> 9) - 1) & 7) + 1;
24121 dst = AREGu32((Opcode >> 0) & 7);
24123 AREG((Opcode >> 0) & 7) = res;
24133 src = (((Opcode >> 9) - 1) & 7) + 1;
24134 adr = AREG((Opcode >> 0) & 7);
24136 READ_LONG_F(adr, dst)
24139 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24140 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24141 flag_N = res >> 24;
24142 WRITE_LONG_F(adr, res)
24153 src = (((Opcode >> 9) - 1) & 7) + 1;
24154 adr = AREG((Opcode >> 0) & 7);
24155 AREG((Opcode >> 0) & 7) += 4;
24157 READ_LONG_F(adr, dst)
24160 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24161 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24162 flag_N = res >> 24;
24163 WRITE_LONG_F(adr, res)
24174 src = (((Opcode >> 9) - 1) & 7) + 1;
24175 adr = AREG((Opcode >> 0) & 7) - 4;
24176 AREG((Opcode >> 0) & 7) = adr;
24178 READ_LONG_F(adr, dst)
24181 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24182 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24183 flag_N = res >> 24;
24184 WRITE_LONG_F(adr, res)
24195 src = (((Opcode >> 9) - 1) & 7) + 1;
24197 adr += AREG((Opcode >> 0) & 7);
24199 READ_LONG_F(adr, dst)
24202 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24203 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24204 flag_N = res >> 24;
24205 WRITE_LONG_F(adr, res)
24216 src = (((Opcode >> 9) - 1) & 7) + 1;
24217 adr = AREG((Opcode >> 0) & 7);
24220 READ_LONG_F(adr, dst)
24223 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24224 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24225 flag_N = res >> 24;
24226 WRITE_LONG_F(adr, res)
24237 src = (((Opcode >> 9) - 1) & 7) + 1;
24240 READ_LONG_F(adr, dst)
24243 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24244 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24245 flag_N = res >> 24;
24246 WRITE_LONG_F(adr, res)
24257 src = (((Opcode >> 9) - 1) & 7) + 1;
24260 READ_LONG_F(adr, dst)
24263 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24264 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24265 flag_N = res >> 24;
24266 WRITE_LONG_F(adr, res)
24277 src = (((Opcode >> 9) - 1) & 7) + 1;
24281 READ_LONG_F(adr, dst)
24284 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24285 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24286 flag_N = res >> 24;
24287 WRITE_LONG_F(adr, res)
24298 src = (((Opcode >> 9) - 1) & 7) + 1;
24302 READ_LONG_F(adr, dst)
24305 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24306 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24307 flag_N = res >> 24;
24308 WRITE_LONG_F(adr, res)
24319 src = (((Opcode >> 9) - 1) & 7) + 1;
24320 dst = DREGu8((Opcode >> 0) & 7);
24322 flag_N = flag_X = flag_C = res;
24323 flag_V = (src ^ dst) & (res ^ dst);
24324 flag_NotZ = res & 0xFF;
24325 DREGu8((Opcode >> 0) & 7) = res;
24335 src = (((Opcode >> 9) - 1) & 7) + 1;
24336 adr = AREG((Opcode >> 0) & 7);
24338 READ_BYTE_F(adr, dst)
24340 flag_N = flag_X = flag_C = res;
24341 flag_V = (src ^ dst) & (res ^ dst);
24342 flag_NotZ = res & 0xFF;
24343 WRITE_BYTE_F(adr, res)
24354 src = (((Opcode >> 9) - 1) & 7) + 1;
24355 adr = AREG((Opcode >> 0) & 7);
24356 AREG((Opcode >> 0) & 7) += 1;
24358 READ_BYTE_F(adr, dst)
24360 flag_N = flag_X = flag_C = res;
24361 flag_V = (src ^ dst) & (res ^ dst);
24362 flag_NotZ = res & 0xFF;
24363 WRITE_BYTE_F(adr, res)
24374 src = (((Opcode >> 9) - 1) & 7) + 1;
24375 adr = AREG((Opcode >> 0) & 7) - 1;
24376 AREG((Opcode >> 0) & 7) = adr;
24378 READ_BYTE_F(adr, dst)
24380 flag_N = flag_X = flag_C = res;
24381 flag_V = (src ^ dst) & (res ^ dst);
24382 flag_NotZ = res & 0xFF;
24383 WRITE_BYTE_F(adr, res)
24394 src = (((Opcode >> 9) - 1) & 7) + 1;
24396 adr += AREG((Opcode >> 0) & 7);
24398 READ_BYTE_F(adr, dst)
24400 flag_N = flag_X = flag_C = res;
24401 flag_V = (src ^ dst) & (res ^ dst);
24402 flag_NotZ = res & 0xFF;
24403 WRITE_BYTE_F(adr, res)
24414 src = (((Opcode >> 9) - 1) & 7) + 1;
24415 adr = AREG((Opcode >> 0) & 7);
24418 READ_BYTE_F(adr, dst)
24420 flag_N = flag_X = flag_C = res;
24421 flag_V = (src ^ dst) & (res ^ dst);
24422 flag_NotZ = res & 0xFF;
24423 WRITE_BYTE_F(adr, res)
24434 src = (((Opcode >> 9) - 1) & 7) + 1;
24437 READ_BYTE_F(adr, dst)
24439 flag_N = flag_X = flag_C = res;
24440 flag_V = (src ^ dst) & (res ^ dst);
24441 flag_NotZ = res & 0xFF;
24442 WRITE_BYTE_F(adr, res)
24453 src = (((Opcode >> 9) - 1) & 7) + 1;
24456 READ_BYTE_F(adr, dst)
24458 flag_N = flag_X = flag_C = res;
24459 flag_V = (src ^ dst) & (res ^ dst);
24460 flag_NotZ = res & 0xFF;
24461 WRITE_BYTE_F(adr, res)
24472 src = (((Opcode >> 9) - 1) & 7) + 1;
24476 READ_BYTE_F(adr, dst)
24478 flag_N = flag_X = flag_C = res;
24479 flag_V = (src ^ dst) & (res ^ dst);
24480 flag_NotZ = res & 0xFF;
24481 WRITE_BYTE_F(adr, res)
24492 src = (((Opcode >> 9) - 1) & 7) + 1;
24496 READ_BYTE_F(adr, dst)
24498 flag_N = flag_X = flag_C = res;
24499 flag_V = (src ^ dst) & (res ^ dst);
24500 flag_NotZ = res & 0xFF;
24501 WRITE_BYTE_F(adr, res)
24512 src = (((Opcode >> 9) - 1) & 7) + 1;
24513 dst = DREGu16((Opcode >> 0) & 7);
24515 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24516 flag_N = flag_X = flag_C = res >> 8;
24517 flag_NotZ = res & 0xFFFF;
24518 DREGu16((Opcode >> 0) & 7) = res;
24528 src = (((Opcode >> 9) - 1) & 7) + 1;
24529 dst = AREGu32((Opcode >> 0) & 7);
24531 AREG((Opcode >> 0) & 7) = res;
24541 src = (((Opcode >> 9) - 1) & 7) + 1;
24542 adr = AREG((Opcode >> 0) & 7);
24544 READ_WORD_F(adr, dst)
24546 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24547 flag_N = flag_X = flag_C = res >> 8;
24548 flag_NotZ = res & 0xFFFF;
24549 WRITE_WORD_F(adr, res)
24560 src = (((Opcode >> 9) - 1) & 7) + 1;
24561 adr = AREG((Opcode >> 0) & 7);
24562 AREG((Opcode >> 0) & 7) += 2;
24564 READ_WORD_F(adr, dst)
24566 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24567 flag_N = flag_X = flag_C = res >> 8;
24568 flag_NotZ = res & 0xFFFF;
24569 WRITE_WORD_F(adr, res)
24580 src = (((Opcode >> 9) - 1) & 7) + 1;
24581 adr = AREG((Opcode >> 0) & 7) - 2;
24582 AREG((Opcode >> 0) & 7) = adr;
24584 READ_WORD_F(adr, dst)
24586 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24587 flag_N = flag_X = flag_C = res >> 8;
24588 flag_NotZ = res & 0xFFFF;
24589 WRITE_WORD_F(adr, res)
24600 src = (((Opcode >> 9) - 1) & 7) + 1;
24602 adr += AREG((Opcode >> 0) & 7);
24604 READ_WORD_F(adr, dst)
24606 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24607 flag_N = flag_X = flag_C = res >> 8;
24608 flag_NotZ = res & 0xFFFF;
24609 WRITE_WORD_F(adr, res)
24620 src = (((Opcode >> 9) - 1) & 7) + 1;
24621 adr = AREG((Opcode >> 0) & 7);
24624 READ_WORD_F(adr, dst)
24626 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24627 flag_N = flag_X = flag_C = res >> 8;
24628 flag_NotZ = res & 0xFFFF;
24629 WRITE_WORD_F(adr, res)
24640 src = (((Opcode >> 9) - 1) & 7) + 1;
24643 READ_WORD_F(adr, dst)
24645 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24646 flag_N = flag_X = flag_C = res >> 8;
24647 flag_NotZ = res & 0xFFFF;
24648 WRITE_WORD_F(adr, res)
24659 src = (((Opcode >> 9) - 1) & 7) + 1;
24662 READ_WORD_F(adr, dst)
24664 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24665 flag_N = flag_X = flag_C = res >> 8;
24666 flag_NotZ = res & 0xFFFF;
24667 WRITE_WORD_F(adr, res)
24678 src = (((Opcode >> 9) - 1) & 7) + 1;
24682 READ_WORD_F(adr, dst)
24684 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24685 flag_N = flag_X = flag_C = res >> 8;
24686 flag_NotZ = res & 0xFFFF;
24687 WRITE_WORD_F(adr, res)
24698 src = (((Opcode >> 9) - 1) & 7) + 1;
24702 READ_WORD_F(adr, dst)
24704 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24705 flag_N = flag_X = flag_C = res >> 8;
24706 flag_NotZ = res & 0xFFFF;
24707 WRITE_WORD_F(adr, res)
24718 src = (((Opcode >> 9) - 1) & 7) + 1;
24719 dst = DREGu32((Opcode >> 0) & 7);
24722 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24723 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24724 flag_N = res >> 24;
24725 DREGu32((Opcode >> 0) & 7) = res;
24735 src = (((Opcode >> 9) - 1) & 7) + 1;
24736 dst = AREGu32((Opcode >> 0) & 7);
24738 AREG((Opcode >> 0) & 7) = res;
24748 src = (((Opcode >> 9) - 1) & 7) + 1;
24749 adr = AREG((Opcode >> 0) & 7);
24751 READ_LONG_F(adr, dst)
24754 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24755 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24756 flag_N = res >> 24;
24757 WRITE_LONG_F(adr, res)
24768 src = (((Opcode >> 9) - 1) & 7) + 1;
24769 adr = AREG((Opcode >> 0) & 7);
24770 AREG((Opcode >> 0) & 7) += 4;
24772 READ_LONG_F(adr, dst)
24775 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24776 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24777 flag_N = res >> 24;
24778 WRITE_LONG_F(adr, res)
24789 src = (((Opcode >> 9) - 1) & 7) + 1;
24790 adr = AREG((Opcode >> 0) & 7) - 4;
24791 AREG((Opcode >> 0) & 7) = adr;
24793 READ_LONG_F(adr, dst)
24796 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24797 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24798 flag_N = res >> 24;
24799 WRITE_LONG_F(adr, res)
24810 src = (((Opcode >> 9) - 1) & 7) + 1;
24812 adr += AREG((Opcode >> 0) & 7);
24814 READ_LONG_F(adr, dst)
24817 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24818 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24819 flag_N = res >> 24;
24820 WRITE_LONG_F(adr, res)
24831 src = (((Opcode >> 9) - 1) & 7) + 1;
24832 adr = AREG((Opcode >> 0) & 7);
24835 READ_LONG_F(adr, dst)
24838 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24839 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24840 flag_N = res >> 24;
24841 WRITE_LONG_F(adr, res)
24852 src = (((Opcode >> 9) - 1) & 7) + 1;
24855 READ_LONG_F(adr, dst)
24858 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24859 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24860 flag_N = res >> 24;
24861 WRITE_LONG_F(adr, res)
24872 src = (((Opcode >> 9) - 1) & 7) + 1;
24875 READ_LONG_F(adr, dst)
24878 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24879 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24880 flag_N = res >> 24;
24881 WRITE_LONG_F(adr, res)
24892 src = (((Opcode >> 9) - 1) & 7) + 1;
24896 READ_LONG_F(adr, dst)
24899 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24900 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24901 flag_N = res >> 24;
24902 WRITE_LONG_F(adr, res)
24913 src = (((Opcode >> 9) - 1) & 7) + 1;
24917 READ_LONG_F(adr, dst)
24920 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24921 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24922 flag_N = res >> 24;
24923 WRITE_LONG_F(adr, res)
24934 if (flag_NotZ && (!(flag_C & 0x100)))
24936 PC += ((s8)(Opcode & 0xFE)) >> 1;
24937 m68kcontext.io_cycle_counter -= 2;
24948 if ((!flag_NotZ) || (flag_C & 0x100))
24950 PC += ((s8)(Opcode & 0xFE)) >> 1;
24951 m68kcontext.io_cycle_counter -= 2;
24962 if (!(flag_C & 0x100))
24964 PC += ((s8)(Opcode & 0xFE)) >> 1;
24965 m68kcontext.io_cycle_counter -= 2;
24976 if (flag_C & 0x100)
24978 PC += ((s8)(Opcode & 0xFE)) >> 1;
24979 m68kcontext.io_cycle_counter -= 2;
24992 PC += ((s8)(Opcode & 0xFE)) >> 1;
24993 m68kcontext.io_cycle_counter -= 2;
25006 PC += ((s8)(Opcode & 0xFE)) >> 1;
25007 m68kcontext.io_cycle_counter -= 2;
25018 if (!(flag_V & 0x80))
25020 PC += ((s8)(Opcode & 0xFE)) >> 1;
25021 m68kcontext.io_cycle_counter -= 2;
25034 PC += ((s8)(Opcode & 0xFE)) >> 1;
25035 m68kcontext.io_cycle_counter -= 2;
25046 if (!(flag_N & 0x80))
25048 PC += ((s8)(Opcode & 0xFE)) >> 1;
25049 m68kcontext.io_cycle_counter -= 2;
25062 PC += ((s8)(Opcode & 0xFE)) >> 1;
25063 m68kcontext.io_cycle_counter -= 2;
25074 if (!((flag_N ^ flag_V) & 0x80))
25076 PC += ((s8)(Opcode & 0xFE)) >> 1;
25077 m68kcontext.io_cycle_counter -= 2;
25088 if ((flag_N ^ flag_V) & 0x80)
25090 PC += ((s8)(Opcode & 0xFE)) >> 1;
25091 m68kcontext.io_cycle_counter -= 2;
25102 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
25104 PC += ((s8)(Opcode & 0xFE)) >> 1;
25105 m68kcontext.io_cycle_counter -= 2;
25116 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
25118 PC += ((s8)(Opcode & 0xFE)) >> 1;
25119 m68kcontext.io_cycle_counter -= 2;
25130 if (flag_NotZ && (!(flag_C & 0x100)))
25134 newPC = (u32)(PC) - BasePC;
25135 newPC += GET_SWORD;
25137 CHECK_BRANCH_EXCEPTION(newPC)
25150 if ((!flag_NotZ) || (flag_C & 0x100))
25154 newPC = (u32)(PC) - BasePC;
25155 newPC += GET_SWORD;
25157 CHECK_BRANCH_EXCEPTION(newPC)
25170 if (!(flag_C & 0x100))
25174 newPC = (u32)(PC) - BasePC;
25175 newPC += GET_SWORD;
25177 CHECK_BRANCH_EXCEPTION(newPC)
25190 if (flag_C & 0x100)
25194 newPC = (u32)(PC) - BasePC;
25195 newPC += GET_SWORD;
25197 CHECK_BRANCH_EXCEPTION(newPC)
25214 newPC = (u32)(PC) - BasePC;
25215 newPC += GET_SWORD;
25217 CHECK_BRANCH_EXCEPTION(newPC)
25234 newPC = (u32)(PC) - BasePC;
25235 newPC += GET_SWORD;
25237 CHECK_BRANCH_EXCEPTION(newPC)
25250 if (!(flag_V & 0x80))
25254 newPC = (u32)(PC) - BasePC;
25255 newPC += GET_SWORD;
25257 CHECK_BRANCH_EXCEPTION(newPC)
25274 newPC = (u32)(PC) - BasePC;
25275 newPC += GET_SWORD;
25277 CHECK_BRANCH_EXCEPTION(newPC)
25290 if (!(flag_N & 0x80))
25294 newPC = (u32)(PC) - BasePC;
25295 newPC += GET_SWORD;
25297 CHECK_BRANCH_EXCEPTION(newPC)
25314 newPC = (u32)(PC) - BasePC;
25315 newPC += GET_SWORD;
25317 CHECK_BRANCH_EXCEPTION(newPC)
25330 if (!((flag_N ^ flag_V) & 0x80))
25334 newPC = (u32)(PC) - BasePC;
25335 newPC += GET_SWORD;
25337 CHECK_BRANCH_EXCEPTION(newPC)
25350 if ((flag_N ^ flag_V) & 0x80)
25354 newPC = (u32)(PC) - BasePC;
25355 newPC += GET_SWORD;
25357 CHECK_BRANCH_EXCEPTION(newPC)
25370 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
25374 newPC = (u32)(PC) - BasePC;
25375 newPC += GET_SWORD;
25377 CHECK_BRANCH_EXCEPTION(newPC)
25390 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
25394 newPC = (u32)(PC) - BasePC;
25395 newPC += GET_SWORD;
25397 CHECK_BRANCH_EXCEPTION(newPC)
25407 #ifdef FAMEC_CHECK_BRANCHES
25408 u32 newPC = (u32)(PC) - BasePC;
25412 CHECK_BRANCH_EXCEPTION(offs)
25414 PC += ((s8)(Opcode & 0xFE)) >> 1;
25428 newPC = (u32)(PC) - BasePC;
25429 newPC += GET_SWORD;
25431 CHECK_BRANCH_EXCEPTION(newPC)
25446 oldPC = (u32)(PC) - BasePC;
25448 #ifdef FAMEC_CHECK_BRANCHES
25452 CHECK_BRANCH_EXCEPTION(offs)
25454 PC += ((s8)(Opcode & 0xFE)) >> 1;
25470 newPC = (u32)(PC) - BasePC;
25473 newPC += GET_SWORD;
25475 CHECK_BRANCH_EXCEPTION(newPC)
25487 res = (s32)(s8)Opcode;
25488 flag_C = flag_V = 0;
25489 flag_N = flag_NotZ = res;
25490 DREGu32((Opcode >> 9) & 7) = res;
25500 src = DREGu8((Opcode >> 0) & 7);
25501 res = DREGu8((Opcode >> 9) & 7);
25507 DREGu8((Opcode >> 9) & 7) = res;
25517 adr = AREG((Opcode >> 0) & 7);
25519 READ_BYTE_F(adr, src)
25520 res = DREGu8((Opcode >> 9) & 7);
25526 DREGu8((Opcode >> 9) & 7) = res;
25537 adr = AREG((Opcode >> 0) & 7);
25538 AREG((Opcode >> 0) & 7) += 1;
25540 READ_BYTE_F(adr, src)
25541 res = DREGu8((Opcode >> 9) & 7);
25547 DREGu8((Opcode >> 9) & 7) = res;
25558 adr = AREG((Opcode >> 0) & 7) - 1;
25559 AREG((Opcode >> 0) & 7) = adr;
25561 READ_BYTE_F(adr, src)
25562 res = DREGu8((Opcode >> 9) & 7);
25568 DREGu8((Opcode >> 9) & 7) = res;
25580 adr += AREG((Opcode >> 0) & 7);
25582 READ_BYTE_F(adr, src)
25583 res = DREGu8((Opcode >> 9) & 7);
25589 DREGu8((Opcode >> 9) & 7) = res;
25600 adr = AREG((Opcode >> 0) & 7);
25603 READ_BYTE_F(adr, src)
25604 res = DREGu8((Opcode >> 9) & 7);
25610 DREGu8((Opcode >> 9) & 7) = res;
25623 READ_BYTE_F(adr, src)
25624 res = DREGu8((Opcode >> 9) & 7);
25630 DREGu8((Opcode >> 9) & 7) = res;
25643 READ_BYTE_F(adr, src)
25644 res = DREGu8((Opcode >> 9) & 7);
25650 DREGu8((Opcode >> 9) & 7) = res;
25661 adr = GET_SWORD + ((u32)(PC) - BasePC);
25664 READ_BYTE_F(adr, src)
25665 res = DREGu8((Opcode >> 9) & 7);
25671 DREGu8((Opcode >> 9) & 7) = res;
25682 adr = (u32)(PC) - BasePC;
25685 READ_BYTE_F(adr, src)
25686 res = DREGu8((Opcode >> 9) & 7);
25692 DREGu8((Opcode >> 9) & 7) = res;
25704 res = DREGu8((Opcode >> 9) & 7);
25710 DREGu8((Opcode >> 9) & 7) = res;
25723 READ_BYTE_F(adr, src)
25724 res = DREGu8((Opcode >> 9) & 7);
25730 DREGu8((Opcode >> 9) & 7) = res;
25744 READ_BYTE_F(adr, src)
25745 res = DREGu8((Opcode >> 9) & 7);
25751 DREGu8((Opcode >> 9) & 7) = res;
25762 src = DREGu16((Opcode >> 0) & 7);
25763 res = DREGu16((Opcode >> 9) & 7);
25769 DREGu16((Opcode >> 9) & 7) = res;
25779 adr = AREG((Opcode >> 0) & 7);
25781 READ_WORD_F(adr, src)
25782 res = DREGu16((Opcode >> 9) & 7);
25788 DREGu16((Opcode >> 9) & 7) = res;
25799 adr = AREG((Opcode >> 0) & 7);
25800 AREG((Opcode >> 0) & 7) += 2;
25802 READ_WORD_F(adr, src)
25803 res = DREGu16((Opcode >> 9) & 7);
25809 DREGu16((Opcode >> 9) & 7) = res;
25820 adr = AREG((Opcode >> 0) & 7) - 2;
25821 AREG((Opcode >> 0) & 7) = adr;
25823 READ_WORD_F(adr, src)
25824 res = DREGu16((Opcode >> 9) & 7);
25830 DREGu16((Opcode >> 9) & 7) = res;
25842 adr += AREG((Opcode >> 0) & 7);
25844 READ_WORD_F(adr, src)
25845 res = DREGu16((Opcode >> 9) & 7);
25851 DREGu16((Opcode >> 9) & 7) = res;
25862 adr = AREG((Opcode >> 0) & 7);
25865 READ_WORD_F(adr, src)
25866 res = DREGu16((Opcode >> 9) & 7);
25872 DREGu16((Opcode >> 9) & 7) = res;
25885 READ_WORD_F(adr, src)
25886 res = DREGu16((Opcode >> 9) & 7);
25892 DREGu16((Opcode >> 9) & 7) = res;
25905 READ_WORD_F(adr, src)
25906 res = DREGu16((Opcode >> 9) & 7);
25912 DREGu16((Opcode >> 9) & 7) = res;
25923 adr = GET_SWORD + ((u32)(PC) - BasePC);
25926 READ_WORD_F(adr, src)
25927 res = DREGu16((Opcode >> 9) & 7);
25933 DREGu16((Opcode >> 9) & 7) = res;
25944 adr = (u32)(PC) - BasePC;
25947 READ_WORD_F(adr, src)
25948 res = DREGu16((Opcode >> 9) & 7);
25954 DREGu16((Opcode >> 9) & 7) = res;
25966 res = DREGu16((Opcode >> 9) & 7);
25972 DREGu16((Opcode >> 9) & 7) = res;
25985 READ_WORD_F(adr, src)
25986 res = DREGu16((Opcode >> 9) & 7);
25992 DREGu16((Opcode >> 9) & 7) = res;
26006 READ_WORD_F(adr, src)
26007 res = DREGu16((Opcode >> 9) & 7);
26013 DREGu16((Opcode >> 9) & 7) = res;
26024 src = DREGu32((Opcode >> 0) & 7);
26025 res = DREGu32((Opcode >> 9) & 7);
26030 flag_N = res >> 24;
26031 DREGu32((Opcode >> 9) & 7) = res;
26041 adr = AREG((Opcode >> 0) & 7);
26043 READ_LONG_F(adr, src)
26044 res = DREGu32((Opcode >> 9) & 7);
26049 flag_N = res >> 24;
26050 DREGu32((Opcode >> 9) & 7) = res;
26061 adr = AREG((Opcode >> 0) & 7);
26062 AREG((Opcode >> 0) & 7) += 4;
26064 READ_LONG_F(adr, src)
26065 res = DREGu32((Opcode >> 9) & 7);
26070 flag_N = res >> 24;
26071 DREGu32((Opcode >> 9) & 7) = res;
26082 adr = AREG((Opcode >> 0) & 7) - 4;
26083 AREG((Opcode >> 0) & 7) = adr;
26085 READ_LONG_F(adr, src)
26086 res = DREGu32((Opcode >> 9) & 7);
26091 flag_N = res >> 24;
26092 DREGu32((Opcode >> 9) & 7) = res;
26104 adr += AREG((Opcode >> 0) & 7);
26106 READ_LONG_F(adr, src)
26107 res = DREGu32((Opcode >> 9) & 7);
26112 flag_N = res >> 24;
26113 DREGu32((Opcode >> 9) & 7) = res;
26124 adr = AREG((Opcode >> 0) & 7);
26127 READ_LONG_F(adr, src)
26128 res = DREGu32((Opcode >> 9) & 7);
26133 flag_N = res >> 24;
26134 DREGu32((Opcode >> 9) & 7) = res;
26147 READ_LONG_F(adr, src)
26148 res = DREGu32((Opcode >> 9) & 7);
26153 flag_N = res >> 24;
26154 DREGu32((Opcode >> 9) & 7) = res;
26167 READ_LONG_F(adr, src)
26168 res = DREGu32((Opcode >> 9) & 7);
26173 flag_N = res >> 24;
26174 DREGu32((Opcode >> 9) & 7) = res;
26185 adr = GET_SWORD + ((u32)(PC) - BasePC);
26188 READ_LONG_F(adr, src)
26189 res = DREGu32((Opcode >> 9) & 7);
26194 flag_N = res >> 24;
26195 DREGu32((Opcode >> 9) & 7) = res;
26206 adr = (u32)(PC) - BasePC;
26209 READ_LONG_F(adr, src)
26210 res = DREGu32((Opcode >> 9) & 7);
26215 flag_N = res >> 24;
26216 DREGu32((Opcode >> 9) & 7) = res;
26228 res = DREGu32((Opcode >> 9) & 7);
26233 flag_N = res >> 24;
26234 DREGu32((Opcode >> 9) & 7) = res;
26247 READ_LONG_F(adr, src)
26248 res = DREGu32((Opcode >> 9) & 7);
26253 flag_N = res >> 24;
26254 DREGu32((Opcode >> 9) & 7) = res;
26268 READ_LONG_F(adr, src)
26269 res = DREGu32((Opcode >> 9) & 7);
26274 flag_N = res >> 24;
26275 DREGu32((Opcode >> 9) & 7) = res;
26286 src = DREGu8((Opcode >> 9) & 7);
26287 adr = AREG((Opcode >> 0) & 7);
26289 READ_BYTE_F(adr, res)
26295 WRITE_BYTE_F(adr, res)
26306 src = DREGu8((Opcode >> 9) & 7);
26307 adr = AREG((Opcode >> 0) & 7);
26308 AREG((Opcode >> 0) & 7) += 1;
26310 READ_BYTE_F(adr, res)
26316 WRITE_BYTE_F(adr, res)
26327 src = DREGu8((Opcode >> 9) & 7);
26328 adr = AREG((Opcode >> 0) & 7) - 1;
26329 AREG((Opcode >> 0) & 7) = adr;
26331 READ_BYTE_F(adr, res)
26337 WRITE_BYTE_F(adr, res)
26348 src = DREGu8((Opcode >> 9) & 7);
26350 adr += AREG((Opcode >> 0) & 7);
26352 READ_BYTE_F(adr, res)
26358 WRITE_BYTE_F(adr, res)
26369 src = DREGu8((Opcode >> 9) & 7);
26370 adr = AREG((Opcode >> 0) & 7);
26373 READ_BYTE_F(adr, res)
26379 WRITE_BYTE_F(adr, res)
26390 src = DREGu8((Opcode >> 9) & 7);
26393 READ_BYTE_F(adr, res)
26399 WRITE_BYTE_F(adr, res)
26410 src = DREGu8((Opcode >> 9) & 7);
26413 READ_BYTE_F(adr, res)
26419 WRITE_BYTE_F(adr, res)
26430 src = DREGu8((Opcode >> 9) & 7);
26434 READ_BYTE_F(adr, res)
26440 WRITE_BYTE_F(adr, res)
26451 src = DREGu8((Opcode >> 9) & 7);
26455 READ_BYTE_F(adr, res)
26461 WRITE_BYTE_F(adr, res)
26472 src = DREGu16((Opcode >> 9) & 7);
26473 adr = AREG((Opcode >> 0) & 7);
26475 READ_WORD_F(adr, res)
26481 WRITE_WORD_F(adr, res)
26492 src = DREGu16((Opcode >> 9) & 7);
26493 adr = AREG((Opcode >> 0) & 7);
26494 AREG((Opcode >> 0) & 7) += 2;
26496 READ_WORD_F(adr, res)
26502 WRITE_WORD_F(adr, res)
26513 src = DREGu16((Opcode >> 9) & 7);
26514 adr = AREG((Opcode >> 0) & 7) - 2;
26515 AREG((Opcode >> 0) & 7) = adr;
26517 READ_WORD_F(adr, res)
26523 WRITE_WORD_F(adr, res)
26534 src = DREGu16((Opcode >> 9) & 7);
26536 adr += AREG((Opcode >> 0) & 7);
26538 READ_WORD_F(adr, res)
26544 WRITE_WORD_F(adr, res)
26555 src = DREGu16((Opcode >> 9) & 7);
26556 adr = AREG((Opcode >> 0) & 7);
26559 READ_WORD_F(adr, res)
26565 WRITE_WORD_F(adr, res)
26576 src = DREGu16((Opcode >> 9) & 7);
26579 READ_WORD_F(adr, res)
26585 WRITE_WORD_F(adr, res)
26596 src = DREGu16((Opcode >> 9) & 7);
26599 READ_WORD_F(adr, res)
26605 WRITE_WORD_F(adr, res)
26616 src = DREGu16((Opcode >> 9) & 7);
26620 READ_WORD_F(adr, res)
26626 WRITE_WORD_F(adr, res)
26637 src = DREGu16((Opcode >> 9) & 7);
26641 READ_WORD_F(adr, res)
26647 WRITE_WORD_F(adr, res)
26658 src = DREGu32((Opcode >> 9) & 7);
26659 adr = AREG((Opcode >> 0) & 7);
26661 READ_LONG_F(adr, res)
26666 flag_N = res >> 24;
26667 WRITE_LONG_F(adr, res)
26678 src = DREGu32((Opcode >> 9) & 7);
26679 adr = AREG((Opcode >> 0) & 7);
26680 AREG((Opcode >> 0) & 7) += 4;
26682 READ_LONG_F(adr, res)
26687 flag_N = res >> 24;
26688 WRITE_LONG_F(adr, res)
26699 src = DREGu32((Opcode >> 9) & 7);
26700 adr = AREG((Opcode >> 0) & 7) - 4;
26701 AREG((Opcode >> 0) & 7) = adr;
26703 READ_LONG_F(adr, res)
26708 flag_N = res >> 24;
26709 WRITE_LONG_F(adr, res)
26720 src = DREGu32((Opcode >> 9) & 7);
26722 adr += AREG((Opcode >> 0) & 7);
26724 READ_LONG_F(adr, res)
26729 flag_N = res >> 24;
26730 WRITE_LONG_F(adr, res)
26741 src = DREGu32((Opcode >> 9) & 7);
26742 adr = AREG((Opcode >> 0) & 7);
26745 READ_LONG_F(adr, res)
26750 flag_N = res >> 24;
26751 WRITE_LONG_F(adr, res)
26762 src = DREGu32((Opcode >> 9) & 7);
26765 READ_LONG_F(adr, res)
26770 flag_N = res >> 24;
26771 WRITE_LONG_F(adr, res)
26782 src = DREGu32((Opcode >> 9) & 7);
26785 READ_LONG_F(adr, res)
26790 flag_N = res >> 24;
26791 WRITE_LONG_F(adr, res)
26802 src = DREGu32((Opcode >> 9) & 7);
26806 READ_LONG_F(adr, res)
26811 flag_N = res >> 24;
26812 WRITE_LONG_F(adr, res)
26823 src = DREGu32((Opcode >> 9) & 7);
26827 READ_LONG_F(adr, res)
26832 flag_N = res >> 24;
26833 WRITE_LONG_F(adr, res)
26844 src = DREGu8((Opcode >> 0) & 7);
26845 dst = DREGu8((Opcode >> 9) & 7);
26846 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26847 if (res > 9) res -= 6;
26848 res += (dst & 0xF0) - (src & 0xF0);
26852 flag_X = flag_C = M68K_SR_C;
26854 else flag_X = flag_C = 0;
26855 flag_NotZ |= res & 0xFF;
26857 DREGu8((Opcode >> 9) & 7) = res;
26867 adr = AREG((Opcode >> 0) & 7) - 1;
26868 AREG((Opcode >> 0) & 7) = adr;
26870 READ_BYTE_F(adr, src)
26871 adr = AREG((Opcode >> 9) & 7) - 1;
26872 AREG((Opcode >> 9) & 7) = adr;
26873 READ_BYTE_F(adr, dst)
26874 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26875 if (res > 9) res -= 6;
26876 res += (dst & 0xF0) - (src & 0xF0);
26880 flag_X = flag_C = M68K_SR_C;
26882 else flag_X = flag_C = 0;
26883 flag_NotZ |= res & 0xFF;
26885 WRITE_BYTE_F(adr, res)
26899 READ_BYTE_F(adr, src)
26900 adr = AREG((Opcode >> 9) & 7) - 1;
26901 AREG((Opcode >> 9) & 7) = adr;
26902 READ_BYTE_F(adr, dst)
26903 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26904 if (res > 9) res -= 6;
26905 res += (dst & 0xF0) - (src & 0xF0);
26909 flag_X = flag_C = M68K_SR_C;
26911 else flag_X = flag_C = 0;
26912 flag_NotZ |= res & 0xFF;
26914 WRITE_BYTE_F(adr, res)
26925 adr = AREG((Opcode >> 0) & 7) - 1;
26926 AREG((Opcode >> 0) & 7) = adr;
26928 READ_BYTE_F(adr, src)
26931 READ_BYTE_F(adr, dst)
26932 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26933 if (res > 9) res -= 6;
26934 res += (dst & 0xF0) - (src & 0xF0);
26938 flag_X = flag_C = M68K_SR_C;
26940 else flag_X = flag_C = 0;
26941 flag_NotZ |= res & 0xFF;
26943 WRITE_BYTE_F(adr, res)
26957 READ_BYTE_F(adr, src)
26960 READ_BYTE_F(adr, dst)
26961 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26962 if (res > 9) res -= 6;
26963 res += (dst & 0xF0) - (src & 0xF0);
26967 flag_X = flag_C = M68K_SR_C;
26969 else flag_X = flag_C = 0;
26970 flag_NotZ |= res & 0xFF;
26972 WRITE_BYTE_F(adr, res)
26983 src = DREGu16((Opcode >> 0) & 7);
26986 execute_exception(M68K_ZERO_DIVIDE_EX);
26987 #ifdef USE_CYCLONE_TIMING_DIV
26993 dst = DREGu32((Opcode >> 9) & 7);
27000 if (q & 0xFFFF0000)
27002 flag_V = M68K_SR_V;
27003 #ifdef USE_CYCLONE_TIMING_DIV
27012 flag_V = flag_C = 0;
27013 res = q | (r << 16);
27014 DREGu32((Opcode >> 9) & 7) = res;
27016 #ifdef USE_CYCLONE_TIMING_DIV
27029 adr = AREG((Opcode >> 0) & 7);
27031 READ_WORD_F(adr, src)
27034 execute_exception(M68K_ZERO_DIVIDE_EX);
27035 #ifdef USE_CYCLONE_TIMING_DIV
27041 dst = DREGu32((Opcode >> 9) & 7);
27048 if (q & 0xFFFF0000)
27050 flag_V = M68K_SR_V;
27051 #ifdef USE_CYCLONE_TIMING_DIV
27060 flag_V = flag_C = 0;
27061 res = q | (r << 16);
27062 DREGu32((Opcode >> 9) & 7) = res;
27064 #ifdef USE_CYCLONE_TIMING_DIV
27077 adr = AREG((Opcode >> 0) & 7);
27078 AREG((Opcode >> 0) & 7) += 2;
27080 READ_WORD_F(adr, src)
27083 execute_exception(M68K_ZERO_DIVIDE_EX);
27084 #ifdef USE_CYCLONE_TIMING_DIV
27090 dst = DREGu32((Opcode >> 9) & 7);
27097 if (q & 0xFFFF0000)
27099 flag_V = M68K_SR_V;
27100 #ifdef USE_CYCLONE_TIMING_DIV
27109 flag_V = flag_C = 0;
27110 res = q | (r << 16);
27111 DREGu32((Opcode >> 9) & 7) = res;
27113 #ifdef USE_CYCLONE_TIMING_DIV
27126 adr = AREG((Opcode >> 0) & 7) - 2;
27127 AREG((Opcode >> 0) & 7) = adr;
27129 READ_WORD_F(adr, src)
27132 execute_exception(M68K_ZERO_DIVIDE_EX);
27133 #ifdef USE_CYCLONE_TIMING_DIV
27139 dst = DREGu32((Opcode >> 9) & 7);
27146 if (q & 0xFFFF0000)
27148 flag_V = M68K_SR_V;
27149 #ifdef USE_CYCLONE_TIMING_DIV
27158 flag_V = flag_C = 0;
27159 res = q | (r << 16);
27160 DREGu32((Opcode >> 9) & 7) = res;
27162 #ifdef USE_CYCLONE_TIMING_DIV
27176 adr += AREG((Opcode >> 0) & 7);
27178 READ_WORD_F(adr, src)
27181 execute_exception(M68K_ZERO_DIVIDE_EX);
27182 #ifdef USE_CYCLONE_TIMING_DIV
27188 dst = DREGu32((Opcode >> 9) & 7);
27195 if (q & 0xFFFF0000)
27197 flag_V = M68K_SR_V;
27198 #ifdef USE_CYCLONE_TIMING_DIV
27207 flag_V = flag_C = 0;
27208 res = q | (r << 16);
27209 DREGu32((Opcode >> 9) & 7) = res;
27211 #ifdef USE_CYCLONE_TIMING_DIV
27224 adr = AREG((Opcode >> 0) & 7);
27227 READ_WORD_F(adr, src)
27230 execute_exception(M68K_ZERO_DIVIDE_EX);
27231 #ifdef USE_CYCLONE_TIMING_DIV
27237 dst = DREGu32((Opcode >> 9) & 7);
27244 if (q & 0xFFFF0000)
27246 flag_V = M68K_SR_V;
27247 #ifdef USE_CYCLONE_TIMING_DIV
27256 flag_V = flag_C = 0;
27257 res = q | (r << 16);
27258 DREGu32((Opcode >> 9) & 7) = res;
27260 #ifdef USE_CYCLONE_TIMING_DIV
27275 READ_WORD_F(adr, src)
27278 execute_exception(M68K_ZERO_DIVIDE_EX);
27279 #ifdef USE_CYCLONE_TIMING_DIV
27285 dst = DREGu32((Opcode >> 9) & 7);
27292 if (q & 0xFFFF0000)
27294 flag_V = M68K_SR_V;
27295 #ifdef USE_CYCLONE_TIMING_DIV
27304 flag_V = flag_C = 0;
27305 res = q | (r << 16);
27306 DREGu32((Opcode >> 9) & 7) = res;
27308 #ifdef USE_CYCLONE_TIMING_DIV
27323 READ_WORD_F(adr, src)
27326 execute_exception(M68K_ZERO_DIVIDE_EX);
27327 #ifdef USE_CYCLONE_TIMING_DIV
27333 dst = DREGu32((Opcode >> 9) & 7);
27340 if (q & 0xFFFF0000)
27342 flag_V = M68K_SR_V;
27343 #ifdef USE_CYCLONE_TIMING_DIV
27352 flag_V = flag_C = 0;
27353 res = q | (r << 16);
27354 DREGu32((Opcode >> 9) & 7) = res;
27356 #ifdef USE_CYCLONE_TIMING_DIV
27369 adr = GET_SWORD + ((u32)(PC) - BasePC);
27372 READ_WORD_F(adr, src)
27375 execute_exception(M68K_ZERO_DIVIDE_EX);
27376 #ifdef USE_CYCLONE_TIMING_DIV
27382 dst = DREGu32((Opcode >> 9) & 7);
27389 if (q & 0xFFFF0000)
27391 flag_V = M68K_SR_V;
27392 #ifdef USE_CYCLONE_TIMING_DIV
27401 flag_V = flag_C = 0;
27402 res = q | (r << 16);
27403 DREGu32((Opcode >> 9) & 7) = res;
27405 #ifdef USE_CYCLONE_TIMING_DIV
27418 adr = (u32)(PC) - BasePC;
27421 READ_WORD_F(adr, src)
27424 execute_exception(M68K_ZERO_DIVIDE_EX);
27425 #ifdef USE_CYCLONE_TIMING_DIV
27431 dst = DREGu32((Opcode >> 9) & 7);
27438 if (q & 0xFFFF0000)
27440 flag_V = M68K_SR_V;
27441 #ifdef USE_CYCLONE_TIMING_DIV
27450 flag_V = flag_C = 0;
27451 res = q | (r << 16);
27452 DREGu32((Opcode >> 9) & 7) = res;
27454 #ifdef USE_CYCLONE_TIMING_DIV
27470 execute_exception(M68K_ZERO_DIVIDE_EX);
27471 #ifdef USE_CYCLONE_TIMING_DIV
27477 dst = DREGu32((Opcode >> 9) & 7);
27484 if (q & 0xFFFF0000)
27486 flag_V = M68K_SR_V;
27487 #ifdef USE_CYCLONE_TIMING_DIV
27496 flag_V = flag_C = 0;
27497 res = q | (r << 16);
27498 DREGu32((Opcode >> 9) & 7) = res;
27500 #ifdef USE_CYCLONE_TIMING_DIV
27516 READ_WORD_F(adr, src)
27519 execute_exception(M68K_ZERO_DIVIDE_EX);
27520 #ifdef USE_CYCLONE_TIMING_DIV
27526 dst = DREGu32((Opcode >> 9) & 7);
27533 if (q & 0xFFFF0000)
27535 flag_V = M68K_SR_V;
27536 #ifdef USE_CYCLONE_TIMING_DIV
27545 flag_V = flag_C = 0;
27546 res = q | (r << 16);
27547 DREGu32((Opcode >> 9) & 7) = res;
27549 #ifdef USE_CYCLONE_TIMING_DIV
27565 READ_WORD_F(adr, src)
27568 execute_exception(M68K_ZERO_DIVIDE_EX);
27569 #ifdef USE_CYCLONE_TIMING_DIV
27575 dst = DREGu32((Opcode >> 9) & 7);
27582 if (q & 0xFFFF0000)
27584 flag_V = M68K_SR_V;
27585 #ifdef USE_CYCLONE_TIMING_DIV
27594 flag_V = flag_C = 0;
27595 res = q | (r << 16);
27596 DREGu32((Opcode >> 9) & 7) = res;
27598 #ifdef USE_CYCLONE_TIMING_DIV
27611 src = (s32)DREGs16((Opcode >> 0) & 7);
27614 execute_exception(M68K_ZERO_DIVIDE_EX);
27615 #ifdef USE_CYCLONE_TIMING_DIV
27620 dst = DREGu32((Opcode >> 9) & 7);
27621 if ((dst == 0x80000000) && (src == (u32)-1))
27623 flag_NotZ = flag_N = 0;
27624 flag_V = flag_C = 0;
27626 DREGu32((Opcode >> 9) & 7) = res;
27627 #ifdef USE_CYCLONE_TIMING_DIV
27635 q = (s32)dst / (s32)src;
27636 r = (s32)dst % (s32)src;
27638 if ((q > 0x7FFF) || (q < -0x8000))
27640 flag_V = M68K_SR_V;
27641 #ifdef USE_CYCLONE_TIMING_DIV
27649 flag_V = flag_C = 0;
27650 res = q | (r << 16);
27651 DREGu32((Opcode >> 9) & 7) = res;
27653 #ifdef USE_CYCLONE_TIMING_DIV
27654 end81C0: m68kcontext.io_cycle_counter -= 50;
27665 adr = AREG((Opcode >> 0) & 7);
27667 READSX_WORD_F(adr, src)
27670 execute_exception(M68K_ZERO_DIVIDE_EX);
27671 #ifdef USE_CYCLONE_TIMING_DIV
27676 dst = DREGu32((Opcode >> 9) & 7);
27677 if ((dst == 0x80000000) && (src == (u32)-1))
27679 flag_NotZ = flag_N = 0;
27680 flag_V = flag_C = 0;
27682 DREGu32((Opcode >> 9) & 7) = res;
27683 #ifdef USE_CYCLONE_TIMING_DIV
27691 q = (s32)dst / (s32)src;
27692 r = (s32)dst % (s32)src;
27694 if ((q > 0x7FFF) || (q < -0x8000))
27696 flag_V = M68K_SR_V;
27697 #ifdef USE_CYCLONE_TIMING_DIV
27705 flag_V = flag_C = 0;
27706 res = q | (r << 16);
27707 DREGu32((Opcode >> 9) & 7) = res;
27709 #ifdef USE_CYCLONE_TIMING_DIV
27710 end81D0: m68kcontext.io_cycle_counter -= 50;
27721 adr = AREG((Opcode >> 0) & 7);
27722 AREG((Opcode >> 0) & 7) += 2;
27724 READSX_WORD_F(adr, src)
27727 execute_exception(M68K_ZERO_DIVIDE_EX);
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 end81D8: m68kcontext.io_cycle_counter -= 50;
27778 adr = AREG((Opcode >> 0) & 7) - 2;
27779 AREG((Opcode >> 0) & 7) = adr;
27781 READSX_WORD_F(adr, src)
27784 execute_exception(M68K_ZERO_DIVIDE_EX);
27785 #ifdef USE_CYCLONE_TIMING_DIV
27790 dst = DREGu32((Opcode >> 9) & 7);
27791 if ((dst == 0x80000000) && (src == (u32)-1))
27793 flag_NotZ = flag_N = 0;
27794 flag_V = flag_C = 0;
27796 DREGu32((Opcode >> 9) & 7) = res;
27797 #ifdef USE_CYCLONE_TIMING_DIV
27805 q = (s32)dst / (s32)src;
27806 r = (s32)dst % (s32)src;
27808 if ((q > 0x7FFF) || (q < -0x8000))
27810 flag_V = M68K_SR_V;
27811 #ifdef USE_CYCLONE_TIMING_DIV
27819 flag_V = flag_C = 0;
27820 res = q | (r << 16);
27821 DREGu32((Opcode >> 9) & 7) = res;
27823 #ifdef USE_CYCLONE_TIMING_DIV
27824 end81E0: m68kcontext.io_cycle_counter -= 50;
27836 adr += AREG((Opcode >> 0) & 7);
27838 READSX_WORD_F(adr, src)
27841 execute_exception(M68K_ZERO_DIVIDE_EX);
27842 #ifdef USE_CYCLONE_TIMING_DIV
27847 dst = DREGu32((Opcode >> 9) & 7);
27848 if ((dst == 0x80000000) && (src == (u32)-1))
27850 flag_NotZ = flag_N = 0;
27851 flag_V = flag_C = 0;
27853 DREGu32((Opcode >> 9) & 7) = res;
27854 #ifdef USE_CYCLONE_TIMING_DIV
27862 q = (s32)dst / (s32)src;
27863 r = (s32)dst % (s32)src;
27865 if ((q > 0x7FFF) || (q < -0x8000))
27867 flag_V = M68K_SR_V;
27868 #ifdef USE_CYCLONE_TIMING_DIV
27876 flag_V = flag_C = 0;
27877 res = q | (r << 16);
27878 DREGu32((Opcode >> 9) & 7) = res;
27880 #ifdef USE_CYCLONE_TIMING_DIV
27881 end81E8: m68kcontext.io_cycle_counter -= 50;
27892 adr = AREG((Opcode >> 0) & 7);
27895 READSX_WORD_F(adr, src)
27898 execute_exception(M68K_ZERO_DIVIDE_EX);
27899 #ifdef USE_CYCLONE_TIMING_DIV
27904 dst = DREGu32((Opcode >> 9) & 7);
27905 if ((dst == 0x80000000) && (src == (u32)-1))
27907 flag_NotZ = flag_N = 0;
27908 flag_V = flag_C = 0;
27910 DREGu32((Opcode >> 9) & 7) = res;
27911 #ifdef USE_CYCLONE_TIMING_DIV
27919 q = (s32)dst / (s32)src;
27920 r = (s32)dst % (s32)src;
27922 if ((q > 0x7FFF) || (q < -0x8000))
27924 flag_V = M68K_SR_V;
27925 #ifdef USE_CYCLONE_TIMING_DIV
27933 flag_V = flag_C = 0;
27934 res = q | (r << 16);
27935 DREGu32((Opcode >> 9) & 7) = res;
27937 #ifdef USE_CYCLONE_TIMING_DIV
27938 end81F0: m68kcontext.io_cycle_counter -= 50;
27951 READSX_WORD_F(adr, src)
27954 execute_exception(M68K_ZERO_DIVIDE_EX);
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 end81F8: m68kcontext.io_cycle_counter -= 50;
28007 READSX_WORD_F(adr, src)
28010 execute_exception(M68K_ZERO_DIVIDE_EX);
28011 #ifdef USE_CYCLONE_TIMING_DIV
28016 dst = DREGu32((Opcode >> 9) & 7);
28017 if ((dst == 0x80000000) && (src == (u32)-1))
28019 flag_NotZ = flag_N = 0;
28020 flag_V = flag_C = 0;
28022 DREGu32((Opcode >> 9) & 7) = res;
28023 #ifdef USE_CYCLONE_TIMING_DIV
28031 q = (s32)dst / (s32)src;
28032 r = (s32)dst % (s32)src;
28034 if ((q > 0x7FFF) || (q < -0x8000))
28036 flag_V = M68K_SR_V;
28037 #ifdef USE_CYCLONE_TIMING_DIV
28045 flag_V = flag_C = 0;
28046 res = q | (r << 16);
28047 DREGu32((Opcode >> 9) & 7) = res;
28049 #ifdef USE_CYCLONE_TIMING_DIV
28050 end81F9: m68kcontext.io_cycle_counter -= 50;
28061 adr = GET_SWORD + ((u32)(PC) - BasePC);
28064 READSX_WORD_F(adr, src)
28067 execute_exception(M68K_ZERO_DIVIDE_EX);
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 end81FA: m68kcontext.io_cycle_counter -= 50;
28118 adr = (u32)(PC) - BasePC;
28121 READSX_WORD_F(adr, src)
28124 execute_exception(M68K_ZERO_DIVIDE_EX);
28125 #ifdef USE_CYCLONE_TIMING_DIV
28130 dst = DREGu32((Opcode >> 9) & 7);
28131 if ((dst == 0x80000000) && (src == (u32)-1))
28133 flag_NotZ = flag_N = 0;
28134 flag_V = flag_C = 0;
28136 DREGu32((Opcode >> 9) & 7) = res;
28137 #ifdef USE_CYCLONE_TIMING_DIV
28145 q = (s32)dst / (s32)src;
28146 r = (s32)dst % (s32)src;
28148 if ((q > 0x7FFF) || (q < -0x8000))
28150 flag_V = M68K_SR_V;
28151 #ifdef USE_CYCLONE_TIMING_DIV
28159 flag_V = flag_C = 0;
28160 res = q | (r << 16);
28161 DREGu32((Opcode >> 9) & 7) = res;
28163 #ifdef USE_CYCLONE_TIMING_DIV
28164 end81FB: m68kcontext.io_cycle_counter -= 50;
28178 execute_exception(M68K_ZERO_DIVIDE_EX);
28179 #ifdef USE_CYCLONE_TIMING_DIV
28184 dst = DREGu32((Opcode >> 9) & 7);
28185 if ((dst == 0x80000000) && (src == (u32)-1))
28187 flag_NotZ = flag_N = 0;
28188 flag_V = flag_C = 0;
28190 DREGu32((Opcode >> 9) & 7) = res;
28191 #ifdef USE_CYCLONE_TIMING_DIV
28199 q = (s32)dst / (s32)src;
28200 r = (s32)dst % (s32)src;
28202 if ((q > 0x7FFF) || (q < -0x8000))
28204 flag_V = M68K_SR_V;
28205 #ifdef USE_CYCLONE_TIMING_DIV
28213 flag_V = flag_C = 0;
28214 res = q | (r << 16);
28215 DREGu32((Opcode >> 9) & 7) = res;
28217 #ifdef USE_CYCLONE_TIMING_DIV
28218 end81FC: m68kcontext.io_cycle_counter -= 50;
28232 READSX_WORD_F(adr, src)
28235 execute_exception(M68K_ZERO_DIVIDE_EX);
28236 #ifdef USE_CYCLONE_TIMING_DIV
28241 dst = DREGu32((Opcode >> 9) & 7);
28242 if ((dst == 0x80000000) && (src == (u32)-1))
28244 flag_NotZ = flag_N = 0;
28245 flag_V = flag_C = 0;
28247 DREGu32((Opcode >> 9) & 7) = res;
28248 #ifdef USE_CYCLONE_TIMING_DIV
28256 q = (s32)dst / (s32)src;
28257 r = (s32)dst % (s32)src;
28259 if ((q > 0x7FFF) || (q < -0x8000))
28261 flag_V = M68K_SR_V;
28262 #ifdef USE_CYCLONE_TIMING_DIV
28270 flag_V = flag_C = 0;
28271 res = q | (r << 16);
28272 DREGu32((Opcode >> 9) & 7) = res;
28274 #ifdef USE_CYCLONE_TIMING_DIV
28275 end81DF: m68kcontext.io_cycle_counter -= 50;
28289 READSX_WORD_F(adr, src)
28292 execute_exception(M68K_ZERO_DIVIDE_EX);
28293 #ifdef USE_CYCLONE_TIMING_DIV
28298 dst = DREGu32((Opcode >> 9) & 7);
28299 if ((dst == 0x80000000) && (src == (u32)-1))
28301 flag_NotZ = flag_N = 0;
28302 flag_V = flag_C = 0;
28304 DREGu32((Opcode >> 9) & 7) = res;
28305 #ifdef USE_CYCLONE_TIMING_DIV
28313 q = (s32)dst / (s32)src;
28314 r = (s32)dst % (s32)src;
28316 if ((q > 0x7FFF) || (q < -0x8000))
28318 flag_V = M68K_SR_V;
28319 #ifdef USE_CYCLONE_TIMING_DIV
28327 flag_V = flag_C = 0;
28328 res = q | (r << 16);
28329 DREGu32((Opcode >> 9) & 7) = res;
28331 #ifdef USE_CYCLONE_TIMING_DIV
28332 end81E7: m68kcontext.io_cycle_counter -= 50;
28343 src = DREGu8((Opcode >> 0) & 7);
28344 dst = DREGu8((Opcode >> 9) & 7);
28346 flag_N = flag_X = flag_C = res;
28347 flag_V = (src ^ dst) & (res ^ dst);
28348 flag_NotZ = res & 0xFF;
28349 DREGu8((Opcode >> 9) & 7) = res;
28360 // can't read byte from Ax registers !
28361 m68kcontext.execinfo |= M68K_FAULTED;
28362 m68kcontext.io_cycle_counter = 0;
28364 goto famec_Exec_End;
28365 dst = DREGu8((Opcode >> 9) & 7);
28367 flag_N = flag_X = flag_C = res;
28368 flag_V = (src ^ dst) & (res ^ dst);
28369 flag_NotZ = res & 0xFF;
28370 DREGu8((Opcode >> 9) & 7) = res;
28382 adr = AREG((Opcode >> 0) & 7);
28384 READ_BYTE_F(adr, src)
28385 dst = DREGu8((Opcode >> 9) & 7);
28387 flag_N = flag_X = flag_C = res;
28388 flag_V = (src ^ dst) & (res ^ dst);
28389 flag_NotZ = res & 0xFF;
28390 DREGu8((Opcode >> 9) & 7) = res;
28401 adr = AREG((Opcode >> 0) & 7);
28402 AREG((Opcode >> 0) & 7) += 1;
28404 READ_BYTE_F(adr, src)
28405 dst = DREGu8((Opcode >> 9) & 7);
28407 flag_N = flag_X = flag_C = res;
28408 flag_V = (src ^ dst) & (res ^ dst);
28409 flag_NotZ = res & 0xFF;
28410 DREGu8((Opcode >> 9) & 7) = res;
28421 adr = AREG((Opcode >> 0) & 7) - 1;
28422 AREG((Opcode >> 0) & 7) = adr;
28424 READ_BYTE_F(adr, src)
28425 dst = DREGu8((Opcode >> 9) & 7);
28427 flag_N = flag_X = flag_C = res;
28428 flag_V = (src ^ dst) & (res ^ dst);
28429 flag_NotZ = res & 0xFF;
28430 DREGu8((Opcode >> 9) & 7) = res;
28442 adr += AREG((Opcode >> 0) & 7);
28444 READ_BYTE_F(adr, src)
28445 dst = DREGu8((Opcode >> 9) & 7);
28447 flag_N = flag_X = flag_C = res;
28448 flag_V = (src ^ dst) & (res ^ dst);
28449 flag_NotZ = res & 0xFF;
28450 DREGu8((Opcode >> 9) & 7) = res;
28461 adr = AREG((Opcode >> 0) & 7);
28464 READ_BYTE_F(adr, src)
28465 dst = DREGu8((Opcode >> 9) & 7);
28467 flag_N = flag_X = flag_C = res;
28468 flag_V = (src ^ dst) & (res ^ dst);
28469 flag_NotZ = res & 0xFF;
28470 DREGu8((Opcode >> 9) & 7) = res;
28483 READ_BYTE_F(adr, src)
28484 dst = DREGu8((Opcode >> 9) & 7);
28486 flag_N = flag_X = flag_C = res;
28487 flag_V = (src ^ dst) & (res ^ dst);
28488 flag_NotZ = res & 0xFF;
28489 DREGu8((Opcode >> 9) & 7) = res;
28502 READ_BYTE_F(adr, src)
28503 dst = DREGu8((Opcode >> 9) & 7);
28505 flag_N = flag_X = flag_C = res;
28506 flag_V = (src ^ dst) & (res ^ dst);
28507 flag_NotZ = res & 0xFF;
28508 DREGu8((Opcode >> 9) & 7) = res;
28519 adr = GET_SWORD + ((u32)(PC) - BasePC);
28522 READ_BYTE_F(adr, src)
28523 dst = DREGu8((Opcode >> 9) & 7);
28525 flag_N = flag_X = flag_C = res;
28526 flag_V = (src ^ dst) & (res ^ dst);
28527 flag_NotZ = res & 0xFF;
28528 DREGu8((Opcode >> 9) & 7) = res;
28539 adr = (u32)(PC) - BasePC;
28542 READ_BYTE_F(adr, src)
28543 dst = DREGu8((Opcode >> 9) & 7);
28545 flag_N = flag_X = flag_C = res;
28546 flag_V = (src ^ dst) & (res ^ dst);
28547 flag_NotZ = res & 0xFF;
28548 DREGu8((Opcode >> 9) & 7) = res;
28560 dst = DREGu8((Opcode >> 9) & 7);
28562 flag_N = flag_X = flag_C = res;
28563 flag_V = (src ^ dst) & (res ^ dst);
28564 flag_NotZ = res & 0xFF;
28565 DREGu8((Opcode >> 9) & 7) = res;
28578 READ_BYTE_F(adr, src)
28579 dst = DREGu8((Opcode >> 9) & 7);
28581 flag_N = flag_X = flag_C = res;
28582 flag_V = (src ^ dst) & (res ^ dst);
28583 flag_NotZ = res & 0xFF;
28584 DREGu8((Opcode >> 9) & 7) = res;
28598 READ_BYTE_F(adr, src)
28599 dst = DREGu8((Opcode >> 9) & 7);
28601 flag_N = flag_X = flag_C = res;
28602 flag_V = (src ^ dst) & (res ^ dst);
28603 flag_NotZ = res & 0xFF;
28604 DREGu8((Opcode >> 9) & 7) = res;
28615 src = DREGu16((Opcode >> 0) & 7);
28616 dst = DREGu16((Opcode >> 9) & 7);
28618 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28619 flag_N = flag_X = flag_C = res >> 8;
28620 flag_NotZ = res & 0xFFFF;
28621 DREGu16((Opcode >> 9) & 7) = res;
28631 src = AREGu16((Opcode >> 0) & 7);
28632 dst = DREGu16((Opcode >> 9) & 7);
28634 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28635 flag_N = flag_X = flag_C = res >> 8;
28636 flag_NotZ = res & 0xFFFF;
28637 DREGu16((Opcode >> 9) & 7) = res;
28647 adr = AREG((Opcode >> 0) & 7);
28649 READ_WORD_F(adr, src)
28650 dst = DREGu16((Opcode >> 9) & 7);
28652 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28653 flag_N = flag_X = flag_C = res >> 8;
28654 flag_NotZ = res & 0xFFFF;
28655 DREGu16((Opcode >> 9) & 7) = res;
28666 adr = AREG((Opcode >> 0) & 7);
28667 AREG((Opcode >> 0) & 7) += 2;
28669 READ_WORD_F(adr, src)
28670 dst = DREGu16((Opcode >> 9) & 7);
28672 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28673 flag_N = flag_X = flag_C = res >> 8;
28674 flag_NotZ = res & 0xFFFF;
28675 DREGu16((Opcode >> 9) & 7) = res;
28686 adr = AREG((Opcode >> 0) & 7) - 2;
28687 AREG((Opcode >> 0) & 7) = adr;
28689 READ_WORD_F(adr, src)
28690 dst = DREGu16((Opcode >> 9) & 7);
28692 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28693 flag_N = flag_X = flag_C = res >> 8;
28694 flag_NotZ = res & 0xFFFF;
28695 DREGu16((Opcode >> 9) & 7) = res;
28707 adr += AREG((Opcode >> 0) & 7);
28709 READ_WORD_F(adr, src)
28710 dst = DREGu16((Opcode >> 9) & 7);
28712 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28713 flag_N = flag_X = flag_C = res >> 8;
28714 flag_NotZ = res & 0xFFFF;
28715 DREGu16((Opcode >> 9) & 7) = res;
28726 adr = AREG((Opcode >> 0) & 7);
28729 READ_WORD_F(adr, src)
28730 dst = DREGu16((Opcode >> 9) & 7);
28732 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28733 flag_N = flag_X = flag_C = res >> 8;
28734 flag_NotZ = res & 0xFFFF;
28735 DREGu16((Opcode >> 9) & 7) = res;
28748 READ_WORD_F(adr, src)
28749 dst = DREGu16((Opcode >> 9) & 7);
28751 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28752 flag_N = flag_X = flag_C = res >> 8;
28753 flag_NotZ = res & 0xFFFF;
28754 DREGu16((Opcode >> 9) & 7) = res;
28767 READ_WORD_F(adr, src)
28768 dst = DREGu16((Opcode >> 9) & 7);
28770 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28771 flag_N = flag_X = flag_C = res >> 8;
28772 flag_NotZ = res & 0xFFFF;
28773 DREGu16((Opcode >> 9) & 7) = res;
28784 adr = GET_SWORD + ((u32)(PC) - BasePC);
28787 READ_WORD_F(adr, src)
28788 dst = DREGu16((Opcode >> 9) & 7);
28790 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28791 flag_N = flag_X = flag_C = res >> 8;
28792 flag_NotZ = res & 0xFFFF;
28793 DREGu16((Opcode >> 9) & 7) = res;
28804 adr = (u32)(PC) - BasePC;
28807 READ_WORD_F(adr, src)
28808 dst = DREGu16((Opcode >> 9) & 7);
28810 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28811 flag_N = flag_X = flag_C = res >> 8;
28812 flag_NotZ = res & 0xFFFF;
28813 DREGu16((Opcode >> 9) & 7) = res;
28825 dst = DREGu16((Opcode >> 9) & 7);
28827 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28828 flag_N = flag_X = flag_C = res >> 8;
28829 flag_NotZ = res & 0xFFFF;
28830 DREGu16((Opcode >> 9) & 7) = res;
28843 READ_WORD_F(adr, src)
28844 dst = DREGu16((Opcode >> 9) & 7);
28846 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28847 flag_N = flag_X = flag_C = res >> 8;
28848 flag_NotZ = res & 0xFFFF;
28849 DREGu16((Opcode >> 9) & 7) = res;
28863 READ_WORD_F(adr, src)
28864 dst = DREGu16((Opcode >> 9) & 7);
28866 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28867 flag_N = flag_X = flag_C = res >> 8;
28868 flag_NotZ = res & 0xFFFF;
28869 DREGu16((Opcode >> 9) & 7) = res;
28880 src = DREGu32((Opcode >> 0) & 7);
28881 dst = DREGu32((Opcode >> 9) & 7);
28884 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28885 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28886 flag_N = res >> 24;
28887 DREGu32((Opcode >> 9) & 7) = res;
28897 src = AREGu32((Opcode >> 0) & 7);
28898 dst = DREGu32((Opcode >> 9) & 7);
28901 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28902 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28903 flag_N = res >> 24;
28904 DREGu32((Opcode >> 9) & 7) = res;
28914 adr = AREG((Opcode >> 0) & 7);
28916 READ_LONG_F(adr, src)
28917 dst = DREGu32((Opcode >> 9) & 7);
28920 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28921 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28922 flag_N = res >> 24;
28923 DREGu32((Opcode >> 9) & 7) = res;
28934 adr = AREG((Opcode >> 0) & 7);
28935 AREG((Opcode >> 0) & 7) += 4;
28937 READ_LONG_F(adr, src)
28938 dst = DREGu32((Opcode >> 9) & 7);
28941 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28942 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28943 flag_N = res >> 24;
28944 DREGu32((Opcode >> 9) & 7) = res;
28955 adr = AREG((Opcode >> 0) & 7) - 4;
28956 AREG((Opcode >> 0) & 7) = adr;
28958 READ_LONG_F(adr, src)
28959 dst = DREGu32((Opcode >> 9) & 7);
28962 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28963 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28964 flag_N = res >> 24;
28965 DREGu32((Opcode >> 9) & 7) = res;
28977 adr += AREG((Opcode >> 0) & 7);
28979 READ_LONG_F(adr, src)
28980 dst = DREGu32((Opcode >> 9) & 7);
28983 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28984 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28985 flag_N = res >> 24;
28986 DREGu32((Opcode >> 9) & 7) = res;
28997 adr = AREG((Opcode >> 0) & 7);
29000 READ_LONG_F(adr, src)
29001 dst = DREGu32((Opcode >> 9) & 7);
29004 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29005 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29006 flag_N = res >> 24;
29007 DREGu32((Opcode >> 9) & 7) = res;
29020 READ_LONG_F(adr, src)
29021 dst = DREGu32((Opcode >> 9) & 7);
29024 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29025 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29026 flag_N = res >> 24;
29027 DREGu32((Opcode >> 9) & 7) = res;
29040 READ_LONG_F(adr, src)
29041 dst = DREGu32((Opcode >> 9) & 7);
29044 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29045 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29046 flag_N = res >> 24;
29047 DREGu32((Opcode >> 9) & 7) = res;
29058 adr = GET_SWORD + ((u32)(PC) - BasePC);
29061 READ_LONG_F(adr, src)
29062 dst = DREGu32((Opcode >> 9) & 7);
29065 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29066 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29067 flag_N = res >> 24;
29068 DREGu32((Opcode >> 9) & 7) = res;
29079 adr = (u32)(PC) - BasePC;
29082 READ_LONG_F(adr, src)
29083 dst = DREGu32((Opcode >> 9) & 7);
29086 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29087 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29088 flag_N = res >> 24;
29089 DREGu32((Opcode >> 9) & 7) = res;
29101 dst = DREGu32((Opcode >> 9) & 7);
29104 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29105 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29106 flag_N = res >> 24;
29107 DREGu32((Opcode >> 9) & 7) = res;
29120 READ_LONG_F(adr, src)
29121 dst = DREGu32((Opcode >> 9) & 7);
29124 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29125 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29126 flag_N = res >> 24;
29127 DREGu32((Opcode >> 9) & 7) = res;
29141 READ_LONG_F(adr, src)
29142 dst = DREGu32((Opcode >> 9) & 7);
29145 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29146 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29147 flag_N = res >> 24;
29148 DREGu32((Opcode >> 9) & 7) = res;
29159 src = DREGu8((Opcode >> 9) & 7);
29160 adr = AREG((Opcode >> 0) & 7);
29162 READ_BYTE_F(adr, dst)
29164 flag_N = flag_X = flag_C = res;
29165 flag_V = (src ^ dst) & (res ^ dst);
29166 flag_NotZ = res & 0xFF;
29167 WRITE_BYTE_F(adr, res)
29178 src = DREGu8((Opcode >> 9) & 7);
29179 adr = AREG((Opcode >> 0) & 7);
29180 AREG((Opcode >> 0) & 7) += 1;
29182 READ_BYTE_F(adr, dst)
29184 flag_N = flag_X = flag_C = res;
29185 flag_V = (src ^ dst) & (res ^ dst);
29186 flag_NotZ = res & 0xFF;
29187 WRITE_BYTE_F(adr, res)
29198 src = DREGu8((Opcode >> 9) & 7);
29199 adr = AREG((Opcode >> 0) & 7) - 1;
29200 AREG((Opcode >> 0) & 7) = adr;
29202 READ_BYTE_F(adr, dst)
29204 flag_N = flag_X = flag_C = res;
29205 flag_V = (src ^ dst) & (res ^ dst);
29206 flag_NotZ = res & 0xFF;
29207 WRITE_BYTE_F(adr, res)
29218 src = DREGu8((Opcode >> 9) & 7);
29220 adr += AREG((Opcode >> 0) & 7);
29222 READ_BYTE_F(adr, dst)
29224 flag_N = flag_X = flag_C = res;
29225 flag_V = (src ^ dst) & (res ^ dst);
29226 flag_NotZ = res & 0xFF;
29227 WRITE_BYTE_F(adr, res)
29238 src = DREGu8((Opcode >> 9) & 7);
29239 adr = AREG((Opcode >> 0) & 7);
29242 READ_BYTE_F(adr, dst)
29244 flag_N = flag_X = flag_C = res;
29245 flag_V = (src ^ dst) & (res ^ dst);
29246 flag_NotZ = res & 0xFF;
29247 WRITE_BYTE_F(adr, res)
29258 src = DREGu8((Opcode >> 9) & 7);
29261 READ_BYTE_F(adr, dst)
29263 flag_N = flag_X = flag_C = res;
29264 flag_V = (src ^ dst) & (res ^ dst);
29265 flag_NotZ = res & 0xFF;
29266 WRITE_BYTE_F(adr, res)
29277 src = DREGu8((Opcode >> 9) & 7);
29280 READ_BYTE_F(adr, dst)
29282 flag_N = flag_X = flag_C = res;
29283 flag_V = (src ^ dst) & (res ^ dst);
29284 flag_NotZ = res & 0xFF;
29285 WRITE_BYTE_F(adr, res)
29296 src = DREGu8((Opcode >> 9) & 7);
29300 READ_BYTE_F(adr, dst)
29302 flag_N = flag_X = flag_C = res;
29303 flag_V = (src ^ dst) & (res ^ dst);
29304 flag_NotZ = res & 0xFF;
29305 WRITE_BYTE_F(adr, res)
29316 src = DREGu8((Opcode >> 9) & 7);
29320 READ_BYTE_F(adr, dst)
29322 flag_N = flag_X = flag_C = res;
29323 flag_V = (src ^ dst) & (res ^ dst);
29324 flag_NotZ = res & 0xFF;
29325 WRITE_BYTE_F(adr, res)
29336 src = DREGu16((Opcode >> 9) & 7);
29337 adr = AREG((Opcode >> 0) & 7);
29339 READ_WORD_F(adr, dst)
29341 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29342 flag_N = flag_X = flag_C = res >> 8;
29343 flag_NotZ = res & 0xFFFF;
29344 WRITE_WORD_F(adr, res)
29355 src = DREGu16((Opcode >> 9) & 7);
29356 adr = AREG((Opcode >> 0) & 7);
29357 AREG((Opcode >> 0) & 7) += 2;
29359 READ_WORD_F(adr, dst)
29361 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29362 flag_N = flag_X = flag_C = res >> 8;
29363 flag_NotZ = res & 0xFFFF;
29364 WRITE_WORD_F(adr, res)
29375 src = DREGu16((Opcode >> 9) & 7);
29376 adr = AREG((Opcode >> 0) & 7) - 2;
29377 AREG((Opcode >> 0) & 7) = adr;
29379 READ_WORD_F(adr, dst)
29381 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29382 flag_N = flag_X = flag_C = res >> 8;
29383 flag_NotZ = res & 0xFFFF;
29384 WRITE_WORD_F(adr, res)
29395 src = DREGu16((Opcode >> 9) & 7);
29397 adr += AREG((Opcode >> 0) & 7);
29399 READ_WORD_F(adr, dst)
29401 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29402 flag_N = flag_X = flag_C = res >> 8;
29403 flag_NotZ = res & 0xFFFF;
29404 WRITE_WORD_F(adr, res)
29415 src = DREGu16((Opcode >> 9) & 7);
29416 adr = AREG((Opcode >> 0) & 7);
29419 READ_WORD_F(adr, dst)
29421 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29422 flag_N = flag_X = flag_C = res >> 8;
29423 flag_NotZ = res & 0xFFFF;
29424 WRITE_WORD_F(adr, res)
29435 src = DREGu16((Opcode >> 9) & 7);
29438 READ_WORD_F(adr, dst)
29440 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29441 flag_N = flag_X = flag_C = res >> 8;
29442 flag_NotZ = res & 0xFFFF;
29443 WRITE_WORD_F(adr, res)
29454 src = DREGu16((Opcode >> 9) & 7);
29457 READ_WORD_F(adr, dst)
29459 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29460 flag_N = flag_X = flag_C = res >> 8;
29461 flag_NotZ = res & 0xFFFF;
29462 WRITE_WORD_F(adr, res)
29473 src = DREGu16((Opcode >> 9) & 7);
29477 READ_WORD_F(adr, dst)
29479 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29480 flag_N = flag_X = flag_C = res >> 8;
29481 flag_NotZ = res & 0xFFFF;
29482 WRITE_WORD_F(adr, res)
29493 src = DREGu16((Opcode >> 9) & 7);
29497 READ_WORD_F(adr, dst)
29499 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29500 flag_N = flag_X = flag_C = res >> 8;
29501 flag_NotZ = res & 0xFFFF;
29502 WRITE_WORD_F(adr, res)
29513 src = DREGu32((Opcode >> 9) & 7);
29514 adr = AREG((Opcode >> 0) & 7);
29516 READ_LONG_F(adr, dst)
29519 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29520 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29521 flag_N = res >> 24;
29522 WRITE_LONG_F(adr, res)
29533 src = DREGu32((Opcode >> 9) & 7);
29534 adr = AREG((Opcode >> 0) & 7);
29535 AREG((Opcode >> 0) & 7) += 4;
29537 READ_LONG_F(adr, dst)
29540 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29541 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29542 flag_N = res >> 24;
29543 WRITE_LONG_F(adr, res)
29554 src = DREGu32((Opcode >> 9) & 7);
29555 adr = AREG((Opcode >> 0) & 7) - 4;
29556 AREG((Opcode >> 0) & 7) = adr;
29558 READ_LONG_F(adr, dst)
29561 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29562 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29563 flag_N = res >> 24;
29564 WRITE_LONG_F(adr, res)
29575 src = DREGu32((Opcode >> 9) & 7);
29577 adr += AREG((Opcode >> 0) & 7);
29579 READ_LONG_F(adr, dst)
29582 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29583 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29584 flag_N = res >> 24;
29585 WRITE_LONG_F(adr, res)
29596 src = DREGu32((Opcode >> 9) & 7);
29597 adr = AREG((Opcode >> 0) & 7);
29600 READ_LONG_F(adr, dst)
29603 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29604 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29605 flag_N = res >> 24;
29606 WRITE_LONG_F(adr, res)
29617 src = DREGu32((Opcode >> 9) & 7);
29620 READ_LONG_F(adr, dst)
29623 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29624 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29625 flag_N = res >> 24;
29626 WRITE_LONG_F(adr, res)
29637 src = DREGu32((Opcode >> 9) & 7);
29640 READ_LONG_F(adr, dst)
29643 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29644 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29645 flag_N = res >> 24;
29646 WRITE_LONG_F(adr, res)
29657 src = DREGu32((Opcode >> 9) & 7);
29661 READ_LONG_F(adr, dst)
29664 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29665 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29666 flag_N = res >> 24;
29667 WRITE_LONG_F(adr, res)
29678 src = DREGu32((Opcode >> 9) & 7);
29682 READ_LONG_F(adr, dst)
29685 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29686 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29687 flag_N = res >> 24;
29688 WRITE_LONG_F(adr, res)
29699 src = DREGu8((Opcode >> 0) & 7);
29700 dst = DREGu8((Opcode >> 9) & 7);
29701 res = dst - src - ((flag_X >> 8) & 1);
29702 flag_N = flag_X = flag_C = res;
29703 flag_V = (src ^ dst) & (res ^ dst);
29704 flag_NotZ |= res & 0xFF;
29705 DREGu8((Opcode >> 9) & 7) = res;
29715 src = DREGu16((Opcode >> 0) & 7);
29716 dst = DREGu16((Opcode >> 9) & 7);
29717 res = dst - src - ((flag_X >> 8) & 1);
29718 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29719 flag_N = flag_X = flag_C = res >> 8;
29720 flag_NotZ |= res & 0xFFFF;
29721 DREGu16((Opcode >> 9) & 7) = res;
29731 src = DREGu32((Opcode >> 0) & 7);
29732 dst = DREGu32((Opcode >> 9) & 7);
29733 res = dst - src - ((flag_X >> 8) & 1);
29735 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29736 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29737 flag_N = res >> 24;
29738 DREGu32((Opcode >> 9) & 7) = res;
29748 adr = AREG((Opcode >> 0) & 7) - 1;
29749 AREG((Opcode >> 0) & 7) = adr;
29751 READ_BYTE_F(adr, src)
29752 adr = AREG((Opcode >> 9) & 7) - 1;
29753 AREG((Opcode >> 9) & 7) = adr;
29754 READ_BYTE_F(adr, dst)
29755 res = dst - src - ((flag_X >> 8) & 1);
29756 flag_N = flag_X = flag_C = res;
29757 flag_V = (src ^ dst) & (res ^ dst);
29758 flag_NotZ |= res & 0xFF;
29759 WRITE_BYTE_F(adr, res)
29770 adr = AREG((Opcode >> 0) & 7) - 2;
29771 AREG((Opcode >> 0) & 7) = adr;
29773 READ_WORD_F(adr, src)
29774 adr = AREG((Opcode >> 9) & 7) - 2;
29775 AREG((Opcode >> 9) & 7) = adr;
29776 READ_WORD_F(adr, dst)
29777 res = dst - src - ((flag_X >> 8) & 1);
29778 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29779 flag_N = flag_X = flag_C = res >> 8;
29780 flag_NotZ |= res & 0xFFFF;
29781 WRITE_WORD_F(adr, res)
29792 adr = AREG((Opcode >> 0) & 7) - 4;
29793 AREG((Opcode >> 0) & 7) = adr;
29795 READ_LONG_F(adr, src)
29796 adr = AREG((Opcode >> 9) & 7) - 4;
29797 AREG((Opcode >> 9) & 7) = adr;
29798 READ_LONG_F(adr, dst)
29799 res = dst - src - ((flag_X >> 8) & 1);
29801 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29802 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29803 flag_N = res >> 24;
29804 WRITE_LONG_F(adr, res)
29818 READ_BYTE_F(adr, src)
29819 adr = AREG((Opcode >> 9) & 7) - 1;
29820 AREG((Opcode >> 9) & 7) = adr;
29821 READ_BYTE_F(adr, dst)
29822 res = dst - src - ((flag_X >> 8) & 1);
29823 flag_N = flag_X = flag_C = res;
29824 flag_V = (src ^ dst) & (res ^ dst);
29825 flag_NotZ |= res & 0xFF;
29826 WRITE_BYTE_F(adr, res)
29840 READ_WORD_F(adr, src)
29841 adr = AREG((Opcode >> 9) & 7) - 2;
29842 AREG((Opcode >> 9) & 7) = adr;
29843 READ_WORD_F(adr, dst)
29844 res = dst - src - ((flag_X >> 8) & 1);
29845 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29846 flag_N = flag_X = flag_C = res >> 8;
29847 flag_NotZ |= res & 0xFFFF;
29848 WRITE_WORD_F(adr, res)
29862 READ_LONG_F(adr, src)
29863 adr = AREG((Opcode >> 9) & 7) - 4;
29864 AREG((Opcode >> 9) & 7) = adr;
29865 READ_LONG_F(adr, dst)
29866 res = dst - src - ((flag_X >> 8) & 1);
29868 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29869 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29870 flag_N = res >> 24;
29871 WRITE_LONG_F(adr, res)
29882 adr = AREG((Opcode >> 0) & 7) - 1;
29883 AREG((Opcode >> 0) & 7) = adr;
29885 READ_BYTE_F(adr, src)
29888 READ_BYTE_F(adr, dst)
29889 res = dst - src - ((flag_X >> 8) & 1);
29890 flag_N = flag_X = flag_C = res;
29891 flag_V = (src ^ dst) & (res ^ dst);
29892 flag_NotZ |= res & 0xFF;
29893 WRITE_BYTE_F(adr, res)
29904 adr = AREG((Opcode >> 0) & 7) - 2;
29905 AREG((Opcode >> 0) & 7) = adr;
29907 READ_WORD_F(adr, src)
29910 READ_WORD_F(adr, dst)
29911 res = dst - src - ((flag_X >> 8) & 1);
29912 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29913 flag_N = flag_X = flag_C = res >> 8;
29914 flag_NotZ |= res & 0xFFFF;
29915 WRITE_WORD_F(adr, res)
29926 adr = AREG((Opcode >> 0) & 7) - 4;
29927 AREG((Opcode >> 0) & 7) = adr;
29929 READ_LONG_F(adr, src)
29932 READ_LONG_F(adr, dst)
29933 res = dst - src - ((flag_X >> 8) & 1);
29935 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29936 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29937 flag_N = res >> 24;
29938 WRITE_LONG_F(adr, res)
29952 READ_BYTE_F(adr, src)
29955 READ_BYTE_F(adr, dst)
29956 res = dst - src - ((flag_X >> 8) & 1);
29957 flag_N = flag_X = flag_C = res;
29958 flag_V = (src ^ dst) & (res ^ dst);
29959 flag_NotZ |= res & 0xFF;
29960 WRITE_BYTE_F(adr, res)
29974 READ_WORD_F(adr, src)
29977 READ_WORD_F(adr, dst)
29978 res = dst - src - ((flag_X >> 8) & 1);
29979 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29980 flag_N = flag_X = flag_C = res >> 8;
29981 flag_NotZ |= res & 0xFFFF;
29982 WRITE_WORD_F(adr, res)
29996 READ_LONG_F(adr, src)
29999 READ_LONG_F(adr, dst)
30000 res = dst - src - ((flag_X >> 8) & 1);
30002 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
30003 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
30004 flag_N = res >> 24;
30005 WRITE_LONG_F(adr, res)
30016 src = (s32)DREGs16((Opcode >> 0) & 7);
30017 dst = AREGu32((Opcode >> 9) & 7);
30019 AREG((Opcode >> 9) & 7) = res;
30029 src = (s32)AREGs16((Opcode >> 0) & 7);
30030 dst = AREGu32((Opcode >> 9) & 7);
30032 AREG((Opcode >> 9) & 7) = res;
30042 adr = AREG((Opcode >> 0) & 7);
30044 READSX_WORD_F(adr, src)
30045 dst = AREGu32((Opcode >> 9) & 7);
30047 AREG((Opcode >> 9) & 7) = res;
30049 #ifdef USE_CYCLONE_TIMING
30062 adr = AREG((Opcode >> 0) & 7);
30063 AREG((Opcode >> 0) & 7) += 2;
30065 READSX_WORD_F(adr, src)
30066 dst = AREGu32((Opcode >> 9) & 7);
30068 AREG((Opcode >> 9) & 7) = res;
30070 #ifdef USE_CYCLONE_TIMING
30083 adr = AREG((Opcode >> 0) & 7) - 2;
30084 AREG((Opcode >> 0) & 7) = adr;
30086 READSX_WORD_F(adr, src)
30087 dst = AREGu32((Opcode >> 9) & 7);
30089 AREG((Opcode >> 9) & 7) = res;
30091 #ifdef USE_CYCLONE_TIMING
30105 adr += AREG((Opcode >> 0) & 7);
30107 READSX_WORD_F(adr, src)
30108 dst = AREGu32((Opcode >> 9) & 7);
30110 AREG((Opcode >> 9) & 7) = res;
30112 #ifdef USE_CYCLONE_TIMING
30125 adr = AREG((Opcode >> 0) & 7);
30128 READSX_WORD_F(adr, src)
30129 dst = AREGu32((Opcode >> 9) & 7);
30131 AREG((Opcode >> 9) & 7) = res;
30133 #ifdef USE_CYCLONE_TIMING
30148 READSX_WORD_F(adr, src)
30149 dst = AREGu32((Opcode >> 9) & 7);
30151 AREG((Opcode >> 9) & 7) = res;
30153 #ifdef USE_CYCLONE_TIMING
30168 READSX_WORD_F(adr, src)
30169 dst = AREGu32((Opcode >> 9) & 7);
30171 AREG((Opcode >> 9) & 7) = res;
30173 #ifdef USE_CYCLONE_TIMING
30186 adr = GET_SWORD + ((u32)(PC) - BasePC);
30189 READSX_WORD_F(adr, src)
30190 dst = AREGu32((Opcode >> 9) & 7);
30192 AREG((Opcode >> 9) & 7) = res;
30194 #ifdef USE_CYCLONE_TIMING
30207 adr = (u32)(PC) - BasePC;
30210 READSX_WORD_F(adr, src)
30211 dst = AREGu32((Opcode >> 9) & 7);
30213 AREG((Opcode >> 9) & 7) = res;
30215 #ifdef USE_CYCLONE_TIMING
30229 dst = AREGu32((Opcode >> 9) & 7);
30231 AREG((Opcode >> 9) & 7) = res;
30244 READSX_WORD_F(adr, src)
30245 dst = AREGu32((Opcode >> 9) & 7);
30247 AREG((Opcode >> 9) & 7) = res;
30249 #ifdef USE_CYCLONE_TIMING
30265 READSX_WORD_F(adr, src)
30266 dst = AREGu32((Opcode >> 9) & 7);
30268 AREG((Opcode >> 9) & 7) = res;
30270 #ifdef USE_CYCLONE_TIMING
30283 src = (s32)DREGs32((Opcode >> 0) & 7);
30284 dst = AREGu32((Opcode >> 9) & 7);
30286 AREG((Opcode >> 9) & 7) = res;
30287 #ifdef USE_CYCLONE_TIMING
30300 src = (s32)AREGs32((Opcode >> 0) & 7);
30301 dst = AREGu32((Opcode >> 9) & 7);
30303 AREG((Opcode >> 9) & 7) = res;
30304 #ifdef USE_CYCLONE_TIMING
30317 adr = AREG((Opcode >> 0) & 7);
30319 READSX_LONG_F(adr, src)
30320 dst = AREGu32((Opcode >> 9) & 7);
30322 AREG((Opcode >> 9) & 7) = res;
30333 adr = AREG((Opcode >> 0) & 7);
30334 AREG((Opcode >> 0) & 7) += 4;
30336 READSX_LONG_F(adr, src)
30337 dst = AREGu32((Opcode >> 9) & 7);
30339 AREG((Opcode >> 9) & 7) = res;
30350 adr = AREG((Opcode >> 0) & 7) - 4;
30351 AREG((Opcode >> 0) & 7) = adr;
30353 READSX_LONG_F(adr, src)
30354 dst = AREGu32((Opcode >> 9) & 7);
30356 AREG((Opcode >> 9) & 7) = res;
30368 adr += AREG((Opcode >> 0) & 7);
30370 READSX_LONG_F(adr, src)
30371 dst = AREGu32((Opcode >> 9) & 7);
30373 AREG((Opcode >> 9) & 7) = res;
30384 adr = AREG((Opcode >> 0) & 7);
30387 READSX_LONG_F(adr, src)
30388 dst = AREGu32((Opcode >> 9) & 7);
30390 AREG((Opcode >> 9) & 7) = res;
30403 READSX_LONG_F(adr, src)
30404 dst = AREGu32((Opcode >> 9) & 7);
30406 AREG((Opcode >> 9) & 7) = res;
30419 READSX_LONG_F(adr, src)
30420 dst = AREGu32((Opcode >> 9) & 7);
30422 AREG((Opcode >> 9) & 7) = res;
30433 adr = GET_SWORD + ((u32)(PC) - BasePC);
30436 READSX_LONG_F(adr, src)
30437 dst = AREGu32((Opcode >> 9) & 7);
30439 AREG((Opcode >> 9) & 7) = res;
30450 adr = (u32)(PC) - BasePC;
30453 READSX_LONG_F(adr, src)
30454 dst = AREGu32((Opcode >> 9) & 7);
30456 AREG((Opcode >> 9) & 7) = res;
30468 dst = AREGu32((Opcode >> 9) & 7);
30470 AREG((Opcode >> 9) & 7) = res;
30471 #ifdef USE_CYCLONE_TIMING
30487 READSX_LONG_F(adr, src)
30488 dst = AREGu32((Opcode >> 9) & 7);
30490 AREG((Opcode >> 9) & 7) = res;
30504 READSX_LONG_F(adr, src)
30505 dst = AREGu32((Opcode >> 9) & 7);
30507 AREG((Opcode >> 9) & 7) = res;
30518 src = DREGu8((Opcode >> 0) & 7);
30519 dst = DREGu8((Opcode >> 9) & 7);
30521 flag_N = flag_C = res;
30522 flag_V = (src ^ dst) & (res ^ dst);
30523 flag_NotZ = res & 0xFF;
30534 // can't read byte from Ax registers !
30535 m68kcontext.execinfo |= M68K_FAULTED;
30536 m68kcontext.io_cycle_counter = 0;
30538 goto famec_Exec_End;
30539 dst = DREGu8((Opcode >> 9) & 7);
30541 flag_N = flag_C = res;
30542 flag_V = (src ^ dst) & (res ^ dst);
30543 flag_NotZ = res & 0xFF;
30555 adr = AREG((Opcode >> 0) & 7);
30557 READ_BYTE_F(adr, src)
30558 dst = DREGu8((Opcode >> 9) & 7);
30560 flag_N = flag_C = res;
30561 flag_V = (src ^ dst) & (res ^ dst);
30562 flag_NotZ = res & 0xFF;
30573 adr = AREG((Opcode >> 0) & 7);
30574 AREG((Opcode >> 0) & 7) += 1;
30576 READ_BYTE_F(adr, src)
30577 dst = DREGu8((Opcode >> 9) & 7);
30579 flag_N = flag_C = res;
30580 flag_V = (src ^ dst) & (res ^ dst);
30581 flag_NotZ = res & 0xFF;
30592 adr = AREG((Opcode >> 0) & 7) - 1;
30593 AREG((Opcode >> 0) & 7) = adr;
30595 READ_BYTE_F(adr, src)
30596 dst = DREGu8((Opcode >> 9) & 7);
30598 flag_N = flag_C = res;
30599 flag_V = (src ^ dst) & (res ^ dst);
30600 flag_NotZ = res & 0xFF;
30612 adr += AREG((Opcode >> 0) & 7);
30614 READ_BYTE_F(adr, src)
30615 dst = DREGu8((Opcode >> 9) & 7);
30617 flag_N = flag_C = res;
30618 flag_V = (src ^ dst) & (res ^ dst);
30619 flag_NotZ = res & 0xFF;
30630 adr = AREG((Opcode >> 0) & 7);
30633 READ_BYTE_F(adr, src)
30634 dst = DREGu8((Opcode >> 9) & 7);
30636 flag_N = flag_C = res;
30637 flag_V = (src ^ dst) & (res ^ dst);
30638 flag_NotZ = res & 0xFF;
30651 READ_BYTE_F(adr, src)
30652 dst = DREGu8((Opcode >> 9) & 7);
30654 flag_N = flag_C = res;
30655 flag_V = (src ^ dst) & (res ^ dst);
30656 flag_NotZ = res & 0xFF;
30669 READ_BYTE_F(adr, src)
30670 dst = DREGu8((Opcode >> 9) & 7);
30672 flag_N = flag_C = res;
30673 flag_V = (src ^ dst) & (res ^ dst);
30674 flag_NotZ = res & 0xFF;
30685 adr = GET_SWORD + ((u32)(PC) - BasePC);
30688 READ_BYTE_F(adr, src)
30689 dst = DREGu8((Opcode >> 9) & 7);
30691 flag_N = flag_C = res;
30692 flag_V = (src ^ dst) & (res ^ dst);
30693 flag_NotZ = res & 0xFF;
30704 adr = (u32)(PC) - BasePC;
30707 READ_BYTE_F(adr, src)
30708 dst = DREGu8((Opcode >> 9) & 7);
30710 flag_N = flag_C = res;
30711 flag_V = (src ^ dst) & (res ^ dst);
30712 flag_NotZ = res & 0xFF;
30724 dst = DREGu8((Opcode >> 9) & 7);
30726 flag_N = flag_C = res;
30727 flag_V = (src ^ dst) & (res ^ dst);
30728 flag_NotZ = res & 0xFF;
30741 READ_BYTE_F(adr, src)
30742 dst = DREGu8((Opcode >> 9) & 7);
30744 flag_N = flag_C = res;
30745 flag_V = (src ^ dst) & (res ^ dst);
30746 flag_NotZ = res & 0xFF;
30760 READ_BYTE_F(adr, src)
30761 dst = DREGu8((Opcode >> 9) & 7);
30763 flag_N = flag_C = res;
30764 flag_V = (src ^ dst) & (res ^ dst);
30765 flag_NotZ = res & 0xFF;
30776 src = DREGu16((Opcode >> 0) & 7);
30777 dst = DREGu16((Opcode >> 9) & 7);
30779 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30780 flag_N = flag_C = res >> 8;
30781 flag_NotZ = res & 0xFFFF;
30791 src = AREGu16((Opcode >> 0) & 7);
30792 dst = DREGu16((Opcode >> 9) & 7);
30794 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30795 flag_N = flag_C = res >> 8;
30796 flag_NotZ = res & 0xFFFF;
30806 adr = AREG((Opcode >> 0) & 7);
30808 READ_WORD_F(adr, src)
30809 dst = DREGu16((Opcode >> 9) & 7);
30811 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30812 flag_N = flag_C = res >> 8;
30813 flag_NotZ = res & 0xFFFF;
30824 adr = AREG((Opcode >> 0) & 7);
30825 AREG((Opcode >> 0) & 7) += 2;
30827 READ_WORD_F(adr, src)
30828 dst = DREGu16((Opcode >> 9) & 7);
30830 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30831 flag_N = flag_C = res >> 8;
30832 flag_NotZ = res & 0xFFFF;
30843 adr = AREG((Opcode >> 0) & 7) - 2;
30844 AREG((Opcode >> 0) & 7) = adr;
30846 READ_WORD_F(adr, src)
30847 dst = DREGu16((Opcode >> 9) & 7);
30849 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30850 flag_N = flag_C = res >> 8;
30851 flag_NotZ = res & 0xFFFF;
30863 adr += AREG((Opcode >> 0) & 7);
30865 READ_WORD_F(adr, src)
30866 dst = DREGu16((Opcode >> 9) & 7);
30868 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30869 flag_N = flag_C = res >> 8;
30870 flag_NotZ = res & 0xFFFF;
30881 adr = AREG((Opcode >> 0) & 7);
30884 READ_WORD_F(adr, src)
30885 dst = DREGu16((Opcode >> 9) & 7);
30887 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30888 flag_N = flag_C = res >> 8;
30889 flag_NotZ = res & 0xFFFF;
30902 READ_WORD_F(adr, src)
30903 dst = DREGu16((Opcode >> 9) & 7);
30905 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30906 flag_N = flag_C = res >> 8;
30907 flag_NotZ = res & 0xFFFF;
30920 READ_WORD_F(adr, src)
30921 dst = DREGu16((Opcode >> 9) & 7);
30923 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30924 flag_N = flag_C = res >> 8;
30925 flag_NotZ = res & 0xFFFF;
30936 adr = GET_SWORD + ((u32)(PC) - BasePC);
30939 READ_WORD_F(adr, src)
30940 dst = DREGu16((Opcode >> 9) & 7);
30942 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30943 flag_N = flag_C = res >> 8;
30944 flag_NotZ = res & 0xFFFF;
30955 adr = (u32)(PC) - BasePC;
30958 READ_WORD_F(adr, src)
30959 dst = DREGu16((Opcode >> 9) & 7);
30961 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30962 flag_N = flag_C = res >> 8;
30963 flag_NotZ = res & 0xFFFF;
30975 dst = DREGu16((Opcode >> 9) & 7);
30977 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30978 flag_N = flag_C = res >> 8;
30979 flag_NotZ = res & 0xFFFF;
30992 READ_WORD_F(adr, src)
30993 dst = DREGu16((Opcode >> 9) & 7);
30995 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30996 flag_N = flag_C = res >> 8;
30997 flag_NotZ = res & 0xFFFF;
31011 READ_WORD_F(adr, src)
31012 dst = DREGu16((Opcode >> 9) & 7);
31014 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31015 flag_N = flag_C = res >> 8;
31016 flag_NotZ = res & 0xFFFF;
31027 src = DREGu32((Opcode >> 0) & 7);
31028 dst = DREGu32((Opcode >> 9) & 7);
31031 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31032 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31033 flag_N = res >> 24;
31043 src = AREGu32((Opcode >> 0) & 7);
31044 dst = DREGu32((Opcode >> 9) & 7);
31047 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31048 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31049 flag_N = res >> 24;
31059 adr = AREG((Opcode >> 0) & 7);
31061 READ_LONG_F(adr, src)
31062 dst = DREGu32((Opcode >> 9) & 7);
31065 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31066 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31067 flag_N = res >> 24;
31078 adr = AREG((Opcode >> 0) & 7);
31079 AREG((Opcode >> 0) & 7) += 4;
31081 READ_LONG_F(adr, src)
31082 dst = DREGu32((Opcode >> 9) & 7);
31085 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31086 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31087 flag_N = res >> 24;
31098 adr = AREG((Opcode >> 0) & 7) - 4;
31099 AREG((Opcode >> 0) & 7) = adr;
31101 READ_LONG_F(adr, src)
31102 dst = DREGu32((Opcode >> 9) & 7);
31105 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31106 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31107 flag_N = res >> 24;
31119 adr += AREG((Opcode >> 0) & 7);
31121 READ_LONG_F(adr, src)
31122 dst = DREGu32((Opcode >> 9) & 7);
31125 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31126 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31127 flag_N = res >> 24;
31138 adr = AREG((Opcode >> 0) & 7);
31141 READ_LONG_F(adr, src)
31142 dst = DREGu32((Opcode >> 9) & 7);
31145 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31146 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31147 flag_N = res >> 24;
31160 READ_LONG_F(adr, src)
31161 dst = DREGu32((Opcode >> 9) & 7);
31164 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31165 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31166 flag_N = res >> 24;
31179 READ_LONG_F(adr, src)
31180 dst = DREGu32((Opcode >> 9) & 7);
31183 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31184 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31185 flag_N = res >> 24;
31196 adr = GET_SWORD + ((u32)(PC) - BasePC);
31199 READ_LONG_F(adr, src)
31200 dst = DREGu32((Opcode >> 9) & 7);
31203 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31204 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31205 flag_N = res >> 24;
31216 adr = (u32)(PC) - BasePC;
31219 READ_LONG_F(adr, src)
31220 dst = DREGu32((Opcode >> 9) & 7);
31223 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31224 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31225 flag_N = res >> 24;
31237 dst = DREGu32((Opcode >> 9) & 7);
31240 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31241 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31242 flag_N = res >> 24;
31255 READ_LONG_F(adr, src)
31256 dst = DREGu32((Opcode >> 9) & 7);
31259 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31260 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31261 flag_N = res >> 24;
31275 READ_LONG_F(adr, src)
31276 dst = DREGu32((Opcode >> 9) & 7);
31279 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31280 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31281 flag_N = res >> 24;
31292 adr = AREG((Opcode >> 0) & 7);
31293 AREG((Opcode >> 0) & 7) += 1;
31295 READ_BYTE_F(adr, src)
31296 adr = AREG((Opcode >> 9) & 7);
31297 AREG((Opcode >> 9) & 7) += 1;
31298 READ_BYTE_F(adr, dst)
31300 flag_N = flag_C = res;
31301 flag_V = (src ^ dst) & (res ^ dst);
31302 flag_NotZ = res & 0xFF;
31313 adr = AREG((Opcode >> 0) & 7);
31314 AREG((Opcode >> 0) & 7) += 2;
31316 READ_WORD_F(adr, src)
31317 adr = AREG((Opcode >> 9) & 7);
31318 AREG((Opcode >> 9) & 7) += 2;
31319 READ_WORD_F(adr, dst)
31321 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31322 flag_N = flag_C = res >> 8;
31323 flag_NotZ = res & 0xFFFF;
31334 adr = AREG((Opcode >> 0) & 7);
31335 AREG((Opcode >> 0) & 7) += 4;
31337 READ_LONG_F(adr, src)
31338 adr = AREG((Opcode >> 9) & 7);
31339 AREG((Opcode >> 9) & 7) += 4;
31340 READ_LONG_F(adr, dst)
31343 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31344 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31345 flag_N = res >> 24;
31359 READ_BYTE_F(adr, src)
31360 adr = AREG((Opcode >> 9) & 7);
31361 AREG((Opcode >> 9) & 7) += 1;
31362 READ_BYTE_F(adr, dst)
31364 flag_N = flag_C = res;
31365 flag_V = (src ^ dst) & (res ^ dst);
31366 flag_NotZ = res & 0xFF;
31380 READ_WORD_F(adr, src)
31381 adr = AREG((Opcode >> 9) & 7);
31382 AREG((Opcode >> 9) & 7) += 2;
31383 READ_WORD_F(adr, dst)
31385 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31386 flag_N = flag_C = res >> 8;
31387 flag_NotZ = res & 0xFFFF;
31401 READ_LONG_F(adr, src)
31402 adr = AREG((Opcode >> 9) & 7);
31403 AREG((Opcode >> 9) & 7) += 4;
31404 READ_LONG_F(adr, dst)
31407 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31408 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31409 flag_N = res >> 24;
31420 adr = AREG((Opcode >> 0) & 7);
31421 AREG((Opcode >> 0) & 7) += 1;
31423 READ_BYTE_F(adr, src)
31426 READ_BYTE_F(adr, dst)
31428 flag_N = flag_C = res;
31429 flag_V = (src ^ dst) & (res ^ dst);
31430 flag_NotZ = res & 0xFF;
31441 adr = AREG((Opcode >> 0) & 7);
31442 AREG((Opcode >> 0) & 7) += 2;
31444 READ_WORD_F(adr, src)
31447 READ_WORD_F(adr, dst)
31449 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31450 flag_N = flag_C = res >> 8;
31451 flag_NotZ = res & 0xFFFF;
31462 adr = AREG((Opcode >> 0) & 7);
31463 AREG((Opcode >> 0) & 7) += 4;
31465 READ_LONG_F(adr, src)
31468 READ_LONG_F(adr, dst)
31471 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31472 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31473 flag_N = res >> 24;
31487 READ_BYTE_F(adr, src)
31490 READ_BYTE_F(adr, dst)
31492 flag_N = flag_C = res;
31493 flag_V = (src ^ dst) & (res ^ dst);
31494 flag_NotZ = res & 0xFF;
31508 READ_WORD_F(adr, src)
31511 READ_WORD_F(adr, dst)
31513 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31514 flag_N = flag_C = res >> 8;
31515 flag_NotZ = res & 0xFFFF;
31529 READ_LONG_F(adr, src)
31532 READ_LONG_F(adr, dst)
31535 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31536 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31537 flag_N = res >> 24;
31548 src = DREGu8((Opcode >> 9) & 7);
31549 res = DREGu8((Opcode >> 0) & 7);
31555 DREGu8((Opcode >> 0) & 7) = res;
31565 src = DREGu8((Opcode >> 9) & 7);
31566 adr = AREG((Opcode >> 0) & 7);
31568 READ_BYTE_F(adr, res)
31574 WRITE_BYTE_F(adr, res)
31585 src = DREGu8((Opcode >> 9) & 7);
31586 adr = AREG((Opcode >> 0) & 7);
31587 AREG((Opcode >> 0) & 7) += 1;
31589 READ_BYTE_F(adr, res)
31595 WRITE_BYTE_F(adr, res)
31606 src = DREGu8((Opcode >> 9) & 7);
31607 adr = AREG((Opcode >> 0) & 7) - 1;
31608 AREG((Opcode >> 0) & 7) = adr;
31610 READ_BYTE_F(adr, res)
31616 WRITE_BYTE_F(adr, res)
31627 src = DREGu8((Opcode >> 9) & 7);
31629 adr += AREG((Opcode >> 0) & 7);
31631 READ_BYTE_F(adr, res)
31637 WRITE_BYTE_F(adr, res)
31648 src = DREGu8((Opcode >> 9) & 7);
31649 adr = AREG((Opcode >> 0) & 7);
31652 READ_BYTE_F(adr, res)
31658 WRITE_BYTE_F(adr, res)
31669 src = DREGu8((Opcode >> 9) & 7);
31672 READ_BYTE_F(adr, res)
31678 WRITE_BYTE_F(adr, res)
31689 src = DREGu8((Opcode >> 9) & 7);
31692 READ_BYTE_F(adr, res)
31698 WRITE_BYTE_F(adr, res)
31709 src = DREGu8((Opcode >> 9) & 7);
31713 READ_BYTE_F(adr, res)
31719 WRITE_BYTE_F(adr, res)
31730 src = DREGu8((Opcode >> 9) & 7);
31734 READ_BYTE_F(adr, res)
31740 WRITE_BYTE_F(adr, res)
31751 src = DREGu16((Opcode >> 9) & 7);
31752 res = DREGu16((Opcode >> 0) & 7);
31758 DREGu16((Opcode >> 0) & 7) = res;
31768 src = DREGu16((Opcode >> 9) & 7);
31769 adr = AREG((Opcode >> 0) & 7);
31771 READ_WORD_F(adr, res)
31777 WRITE_WORD_F(adr, res)
31788 src = DREGu16((Opcode >> 9) & 7);
31789 adr = AREG((Opcode >> 0) & 7);
31790 AREG((Opcode >> 0) & 7) += 2;
31792 READ_WORD_F(adr, res)
31798 WRITE_WORD_F(adr, res)
31809 src = DREGu16((Opcode >> 9) & 7);
31810 adr = AREG((Opcode >> 0) & 7) - 2;
31811 AREG((Opcode >> 0) & 7) = adr;
31813 READ_WORD_F(adr, res)
31819 WRITE_WORD_F(adr, res)
31830 src = DREGu16((Opcode >> 9) & 7);
31832 adr += AREG((Opcode >> 0) & 7);
31834 READ_WORD_F(adr, res)
31840 WRITE_WORD_F(adr, res)
31851 src = DREGu16((Opcode >> 9) & 7);
31852 adr = AREG((Opcode >> 0) & 7);
31855 READ_WORD_F(adr, res)
31861 WRITE_WORD_F(adr, res)
31872 src = DREGu16((Opcode >> 9) & 7);
31875 READ_WORD_F(adr, res)
31881 WRITE_WORD_F(adr, res)
31892 src = DREGu16((Opcode >> 9) & 7);
31895 READ_WORD_F(adr, res)
31901 WRITE_WORD_F(adr, res)
31912 src = DREGu16((Opcode >> 9) & 7);
31916 READ_WORD_F(adr, res)
31922 WRITE_WORD_F(adr, res)
31933 src = DREGu16((Opcode >> 9) & 7);
31937 READ_WORD_F(adr, res)
31943 WRITE_WORD_F(adr, res)
31954 src = DREGu32((Opcode >> 9) & 7);
31955 res = DREGu32((Opcode >> 0) & 7);
31960 flag_N = res >> 24;
31961 DREGu32((Opcode >> 0) & 7) = res;
31971 src = DREGu32((Opcode >> 9) & 7);
31972 adr = AREG((Opcode >> 0) & 7);
31974 READ_LONG_F(adr, res)
31979 flag_N = res >> 24;
31980 WRITE_LONG_F(adr, res)
31991 src = DREGu32((Opcode >> 9) & 7);
31992 adr = AREG((Opcode >> 0) & 7);
31993 AREG((Opcode >> 0) & 7) += 4;
31995 READ_LONG_F(adr, res)
32000 flag_N = res >> 24;
32001 WRITE_LONG_F(adr, res)
32012 src = DREGu32((Opcode >> 9) & 7);
32013 adr = AREG((Opcode >> 0) & 7) - 4;
32014 AREG((Opcode >> 0) & 7) = adr;
32016 READ_LONG_F(adr, res)
32021 flag_N = res >> 24;
32022 WRITE_LONG_F(adr, res)
32033 src = DREGu32((Opcode >> 9) & 7);
32035 adr += AREG((Opcode >> 0) & 7);
32037 READ_LONG_F(adr, res)
32042 flag_N = res >> 24;
32043 WRITE_LONG_F(adr, res)
32054 src = DREGu32((Opcode >> 9) & 7);
32055 adr = AREG((Opcode >> 0) & 7);
32058 READ_LONG_F(adr, res)
32063 flag_N = res >> 24;
32064 WRITE_LONG_F(adr, res)
32075 src = DREGu32((Opcode >> 9) & 7);
32078 READ_LONG_F(adr, res)
32083 flag_N = res >> 24;
32084 WRITE_LONG_F(adr, res)
32095 src = DREGu32((Opcode >> 9) & 7);
32098 READ_LONG_F(adr, res)
32103 flag_N = res >> 24;
32104 WRITE_LONG_F(adr, res)
32115 src = DREGu32((Opcode >> 9) & 7);
32119 READ_LONG_F(adr, res)
32124 flag_N = res >> 24;
32125 WRITE_LONG_F(adr, res)
32136 src = DREGu32((Opcode >> 9) & 7);
32140 READ_LONG_F(adr, res)
32145 flag_N = res >> 24;
32146 WRITE_LONG_F(adr, res)
32157 src = (s32)DREGs16((Opcode >> 0) & 7);
32158 dst = AREGu32((Opcode >> 9) & 7);
32161 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32162 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32163 flag_N = res >> 24;
32173 src = (s32)AREGs16((Opcode >> 0) & 7);
32174 dst = AREGu32((Opcode >> 9) & 7);
32177 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32178 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32179 flag_N = res >> 24;
32189 adr = AREG((Opcode >> 0) & 7);
32191 READSX_WORD_F(adr, src)
32192 dst = AREGu32((Opcode >> 9) & 7);
32195 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32196 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32197 flag_N = res >> 24;
32208 adr = AREG((Opcode >> 0) & 7);
32209 AREG((Opcode >> 0) & 7) += 2;
32211 READSX_WORD_F(adr, src)
32212 dst = AREGu32((Opcode >> 9) & 7);
32215 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32216 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32217 flag_N = res >> 24;
32228 adr = AREG((Opcode >> 0) & 7) - 2;
32229 AREG((Opcode >> 0) & 7) = adr;
32231 READSX_WORD_F(adr, src)
32232 dst = AREGu32((Opcode >> 9) & 7);
32235 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32236 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32237 flag_N = res >> 24;
32249 adr += AREG((Opcode >> 0) & 7);
32251 READSX_WORD_F(adr, src)
32252 dst = AREGu32((Opcode >> 9) & 7);
32255 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32256 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32257 flag_N = res >> 24;
32268 adr = AREG((Opcode >> 0) & 7);
32271 READSX_WORD_F(adr, src)
32272 dst = AREGu32((Opcode >> 9) & 7);
32275 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32276 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32277 flag_N = res >> 24;
32290 READSX_WORD_F(adr, src)
32291 dst = AREGu32((Opcode >> 9) & 7);
32294 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32295 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32296 flag_N = res >> 24;
32309 READSX_WORD_F(adr, src)
32310 dst = AREGu32((Opcode >> 9) & 7);
32313 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32314 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32315 flag_N = res >> 24;
32326 adr = GET_SWORD + ((u32)(PC) - BasePC);
32329 READSX_WORD_F(adr, src)
32330 dst = AREGu32((Opcode >> 9) & 7);
32333 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32334 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32335 flag_N = res >> 24;
32346 adr = (u32)(PC) - BasePC;
32349 READSX_WORD_F(adr, src)
32350 dst = AREGu32((Opcode >> 9) & 7);
32353 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32354 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32355 flag_N = res >> 24;
32367 dst = AREGu32((Opcode >> 9) & 7);
32370 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32371 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32372 flag_N = res >> 24;
32385 READSX_WORD_F(adr, src)
32386 dst = AREGu32((Opcode >> 9) & 7);
32389 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32390 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32391 flag_N = res >> 24;
32405 READSX_WORD_F(adr, src)
32406 dst = AREGu32((Opcode >> 9) & 7);
32409 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32410 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32411 flag_N = res >> 24;
32422 src = (s32)DREGs32((Opcode >> 0) & 7);
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;
32438 src = (s32)AREGs32((Opcode >> 0) & 7);
32439 dst = AREGu32((Opcode >> 9) & 7);
32442 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32443 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32444 flag_N = res >> 24;
32454 adr = AREG((Opcode >> 0) & 7);
32456 READSX_LONG_F(adr, src)
32457 dst = AREGu32((Opcode >> 9) & 7);
32460 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32461 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32462 flag_N = res >> 24;
32473 adr = AREG((Opcode >> 0) & 7);
32474 AREG((Opcode >> 0) & 7) += 4;
32476 READSX_LONG_F(adr, src)
32477 dst = AREGu32((Opcode >> 9) & 7);
32480 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32481 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32482 flag_N = res >> 24;
32493 adr = AREG((Opcode >> 0) & 7) - 4;
32494 AREG((Opcode >> 0) & 7) = adr;
32496 READSX_LONG_F(adr, src)
32497 dst = AREGu32((Opcode >> 9) & 7);
32500 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32501 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32502 flag_N = res >> 24;
32514 adr += AREG((Opcode >> 0) & 7);
32516 READSX_LONG_F(adr, src)
32517 dst = AREGu32((Opcode >> 9) & 7);
32520 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32521 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32522 flag_N = res >> 24;
32533 adr = AREG((Opcode >> 0) & 7);
32536 READSX_LONG_F(adr, src)
32537 dst = AREGu32((Opcode >> 9) & 7);
32540 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32541 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32542 flag_N = res >> 24;
32555 READSX_LONG_F(adr, src)
32556 dst = AREGu32((Opcode >> 9) & 7);
32559 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32560 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32561 flag_N = res >> 24;
32574 READSX_LONG_F(adr, src)
32575 dst = AREGu32((Opcode >> 9) & 7);
32578 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32579 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32580 flag_N = res >> 24;
32591 adr = GET_SWORD + ((u32)(PC) - BasePC);
32594 READSX_LONG_F(adr, src)
32595 dst = AREGu32((Opcode >> 9) & 7);
32598 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32599 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32600 flag_N = res >> 24;
32611 adr = (u32)(PC) - BasePC;
32614 READSX_LONG_F(adr, src)
32615 dst = AREGu32((Opcode >> 9) & 7);
32618 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32619 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32620 flag_N = res >> 24;
32632 dst = AREGu32((Opcode >> 9) & 7);
32635 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32636 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32637 flag_N = res >> 24;
32650 READSX_LONG_F(adr, src)
32651 dst = AREGu32((Opcode >> 9) & 7);
32654 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32655 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32656 flag_N = res >> 24;
32670 READSX_LONG_F(adr, src)
32671 dst = AREGu32((Opcode >> 9) & 7);
32674 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32675 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32676 flag_N = res >> 24;
32687 src = DREGu8((Opcode >> 0) & 7);
32688 res = DREGu8((Opcode >> 9) & 7);
32694 DREGu8((Opcode >> 9) & 7) = res;
32704 adr = AREG((Opcode >> 0) & 7);
32706 READ_BYTE_F(adr, src)
32707 res = DREGu8((Opcode >> 9) & 7);
32713 DREGu8((Opcode >> 9) & 7) = res;
32724 adr = AREG((Opcode >> 0) & 7);
32725 AREG((Opcode >> 0) & 7) += 1;
32727 READ_BYTE_F(adr, src)
32728 res = DREGu8((Opcode >> 9) & 7);
32734 DREGu8((Opcode >> 9) & 7) = res;
32745 adr = AREG((Opcode >> 0) & 7) - 1;
32746 AREG((Opcode >> 0) & 7) = adr;
32748 READ_BYTE_F(adr, src)
32749 res = DREGu8((Opcode >> 9) & 7);
32755 DREGu8((Opcode >> 9) & 7) = res;
32767 adr += AREG((Opcode >> 0) & 7);
32769 READ_BYTE_F(adr, src)
32770 res = DREGu8((Opcode >> 9) & 7);
32776 DREGu8((Opcode >> 9) & 7) = res;
32787 adr = AREG((Opcode >> 0) & 7);
32790 READ_BYTE_F(adr, src)
32791 res = DREGu8((Opcode >> 9) & 7);
32797 DREGu8((Opcode >> 9) & 7) = res;
32810 READ_BYTE_F(adr, src)
32811 res = DREGu8((Opcode >> 9) & 7);
32817 DREGu8((Opcode >> 9) & 7) = res;
32830 READ_BYTE_F(adr, src)
32831 res = DREGu8((Opcode >> 9) & 7);
32837 DREGu8((Opcode >> 9) & 7) = res;
32848 adr = GET_SWORD + ((u32)(PC) - BasePC);
32851 READ_BYTE_F(adr, src)
32852 res = DREGu8((Opcode >> 9) & 7);
32858 DREGu8((Opcode >> 9) & 7) = res;
32869 adr = (u32)(PC) - BasePC;
32872 READ_BYTE_F(adr, src)
32873 res = DREGu8((Opcode >> 9) & 7);
32879 DREGu8((Opcode >> 9) & 7) = res;
32891 res = DREGu8((Opcode >> 9) & 7);
32897 DREGu8((Opcode >> 9) & 7) = res;
32910 READ_BYTE_F(adr, src)
32911 res = DREGu8((Opcode >> 9) & 7);
32917 DREGu8((Opcode >> 9) & 7) = res;
32931 READ_BYTE_F(adr, src)
32932 res = DREGu8((Opcode >> 9) & 7);
32938 DREGu8((Opcode >> 9) & 7) = res;
32949 src = DREGu16((Opcode >> 0) & 7);
32950 res = DREGu16((Opcode >> 9) & 7);
32956 DREGu16((Opcode >> 9) & 7) = res;
32966 adr = AREG((Opcode >> 0) & 7);
32968 READ_WORD_F(adr, src)
32969 res = DREGu16((Opcode >> 9) & 7);
32975 DREGu16((Opcode >> 9) & 7) = res;
32986 adr = AREG((Opcode >> 0) & 7);
32987 AREG((Opcode >> 0) & 7) += 2;
32989 READ_WORD_F(adr, src)
32990 res = DREGu16((Opcode >> 9) & 7);
32996 DREGu16((Opcode >> 9) & 7) = res;
33007 adr = AREG((Opcode >> 0) & 7) - 2;
33008 AREG((Opcode >> 0) & 7) = adr;
33010 READ_WORD_F(adr, src)
33011 res = DREGu16((Opcode >> 9) & 7);
33017 DREGu16((Opcode >> 9) & 7) = res;
33029 adr += AREG((Opcode >> 0) & 7);
33031 READ_WORD_F(adr, src)
33032 res = DREGu16((Opcode >> 9) & 7);
33038 DREGu16((Opcode >> 9) & 7) = res;
33049 adr = AREG((Opcode >> 0) & 7);
33052 READ_WORD_F(adr, src)
33053 res = DREGu16((Opcode >> 9) & 7);
33059 DREGu16((Opcode >> 9) & 7) = res;
33072 READ_WORD_F(adr, src)
33073 res = DREGu16((Opcode >> 9) & 7);
33079 DREGu16((Opcode >> 9) & 7) = res;
33092 READ_WORD_F(adr, src)
33093 res = DREGu16((Opcode >> 9) & 7);
33099 DREGu16((Opcode >> 9) & 7) = res;
33110 adr = GET_SWORD + ((u32)(PC) - BasePC);
33113 READ_WORD_F(adr, src)
33114 res = DREGu16((Opcode >> 9) & 7);
33120 DREGu16((Opcode >> 9) & 7) = res;
33131 adr = (u32)(PC) - BasePC;
33134 READ_WORD_F(adr, src)
33135 res = DREGu16((Opcode >> 9) & 7);
33141 DREGu16((Opcode >> 9) & 7) = res;
33153 res = DREGu16((Opcode >> 9) & 7);
33159 DREGu16((Opcode >> 9) & 7) = res;
33172 READ_WORD_F(adr, src)
33173 res = DREGu16((Opcode >> 9) & 7);
33179 DREGu16((Opcode >> 9) & 7) = res;
33193 READ_WORD_F(adr, src)
33194 res = DREGu16((Opcode >> 9) & 7);
33200 DREGu16((Opcode >> 9) & 7) = res;
33211 src = DREGu32((Opcode >> 0) & 7);
33212 res = DREGu32((Opcode >> 9) & 7);
33217 flag_N = res >> 24;
33218 DREGu32((Opcode >> 9) & 7) = res;
33228 adr = AREG((Opcode >> 0) & 7);
33230 READ_LONG_F(adr, src)
33231 res = DREGu32((Opcode >> 9) & 7);
33236 flag_N = res >> 24;
33237 DREGu32((Opcode >> 9) & 7) = res;
33248 adr = AREG((Opcode >> 0) & 7);
33249 AREG((Opcode >> 0) & 7) += 4;
33251 READ_LONG_F(adr, src)
33252 res = DREGu32((Opcode >> 9) & 7);
33257 flag_N = res >> 24;
33258 DREGu32((Opcode >> 9) & 7) = res;
33269 adr = AREG((Opcode >> 0) & 7) - 4;
33270 AREG((Opcode >> 0) & 7) = adr;
33272 READ_LONG_F(adr, src)
33273 res = DREGu32((Opcode >> 9) & 7);
33278 flag_N = res >> 24;
33279 DREGu32((Opcode >> 9) & 7) = res;
33291 adr += AREG((Opcode >> 0) & 7);
33293 READ_LONG_F(adr, src)
33294 res = DREGu32((Opcode >> 9) & 7);
33299 flag_N = res >> 24;
33300 DREGu32((Opcode >> 9) & 7) = res;
33311 adr = AREG((Opcode >> 0) & 7);
33314 READ_LONG_F(adr, src)
33315 res = DREGu32((Opcode >> 9) & 7);
33320 flag_N = res >> 24;
33321 DREGu32((Opcode >> 9) & 7) = res;
33334 READ_LONG_F(adr, src)
33335 res = DREGu32((Opcode >> 9) & 7);
33340 flag_N = res >> 24;
33341 DREGu32((Opcode >> 9) & 7) = res;
33354 READ_LONG_F(adr, src)
33355 res = DREGu32((Opcode >> 9) & 7);
33360 flag_N = res >> 24;
33361 DREGu32((Opcode >> 9) & 7) = res;
33372 adr = GET_SWORD + ((u32)(PC) - BasePC);
33375 READ_LONG_F(adr, src)
33376 res = DREGu32((Opcode >> 9) & 7);
33381 flag_N = res >> 24;
33382 DREGu32((Opcode >> 9) & 7) = res;
33393 adr = (u32)(PC) - BasePC;
33396 READ_LONG_F(adr, src)
33397 res = DREGu32((Opcode >> 9) & 7);
33402 flag_N = res >> 24;
33403 DREGu32((Opcode >> 9) & 7) = res;
33415 res = DREGu32((Opcode >> 9) & 7);
33420 flag_N = res >> 24;
33421 DREGu32((Opcode >> 9) & 7) = res;
33434 READ_LONG_F(adr, src)
33435 res = DREGu32((Opcode >> 9) & 7);
33440 flag_N = res >> 24;
33441 DREGu32((Opcode >> 9) & 7) = res;
33455 READ_LONG_F(adr, src)
33456 res = DREGu32((Opcode >> 9) & 7);
33461 flag_N = res >> 24;
33462 DREGu32((Opcode >> 9) & 7) = res;
33473 src = DREGu8((Opcode >> 9) & 7);
33474 adr = AREG((Opcode >> 0) & 7);
33476 READ_BYTE_F(adr, res)
33482 WRITE_BYTE_F(adr, res)
33493 src = DREGu8((Opcode >> 9) & 7);
33494 adr = AREG((Opcode >> 0) & 7);
33495 AREG((Opcode >> 0) & 7) += 1;
33497 READ_BYTE_F(adr, res)
33503 WRITE_BYTE_F(adr, res)
33514 src = DREGu8((Opcode >> 9) & 7);
33515 adr = AREG((Opcode >> 0) & 7) - 1;
33516 AREG((Opcode >> 0) & 7) = adr;
33518 READ_BYTE_F(adr, res)
33524 WRITE_BYTE_F(adr, res)
33535 src = DREGu8((Opcode >> 9) & 7);
33537 adr += AREG((Opcode >> 0) & 7);
33539 READ_BYTE_F(adr, res)
33545 WRITE_BYTE_F(adr, res)
33556 src = DREGu8((Opcode >> 9) & 7);
33557 adr = AREG((Opcode >> 0) & 7);
33560 READ_BYTE_F(adr, res)
33566 WRITE_BYTE_F(adr, res)
33577 src = DREGu8((Opcode >> 9) & 7);
33580 READ_BYTE_F(adr, res)
33586 WRITE_BYTE_F(adr, res)
33597 src = DREGu8((Opcode >> 9) & 7);
33600 READ_BYTE_F(adr, res)
33606 WRITE_BYTE_F(adr, res)
33617 src = DREGu8((Opcode >> 9) & 7);
33621 READ_BYTE_F(adr, res)
33627 WRITE_BYTE_F(adr, res)
33638 src = DREGu8((Opcode >> 9) & 7);
33642 READ_BYTE_F(adr, res)
33648 WRITE_BYTE_F(adr, res)
33659 src = DREGu16((Opcode >> 9) & 7);
33660 adr = AREG((Opcode >> 0) & 7);
33662 READ_WORD_F(adr, res)
33668 WRITE_WORD_F(adr, res)
33679 src = DREGu16((Opcode >> 9) & 7);
33680 adr = AREG((Opcode >> 0) & 7);
33681 AREG((Opcode >> 0) & 7) += 2;
33683 READ_WORD_F(adr, res)
33689 WRITE_WORD_F(adr, res)
33700 src = DREGu16((Opcode >> 9) & 7);
33701 adr = AREG((Opcode >> 0) & 7) - 2;
33702 AREG((Opcode >> 0) & 7) = adr;
33704 READ_WORD_F(adr, res)
33710 WRITE_WORD_F(adr, res)
33721 src = DREGu16((Opcode >> 9) & 7);
33723 adr += AREG((Opcode >> 0) & 7);
33725 READ_WORD_F(adr, res)
33731 WRITE_WORD_F(adr, res)
33742 src = DREGu16((Opcode >> 9) & 7);
33743 adr = AREG((Opcode >> 0) & 7);
33746 READ_WORD_F(adr, res)
33752 WRITE_WORD_F(adr, res)
33763 src = DREGu16((Opcode >> 9) & 7);
33766 READ_WORD_F(adr, res)
33772 WRITE_WORD_F(adr, res)
33783 src = DREGu16((Opcode >> 9) & 7);
33786 READ_WORD_F(adr, res)
33792 WRITE_WORD_F(adr, res)
33803 src = DREGu16((Opcode >> 9) & 7);
33807 READ_WORD_F(adr, res)
33813 WRITE_WORD_F(adr, res)
33824 src = DREGu16((Opcode >> 9) & 7);
33828 READ_WORD_F(adr, res)
33834 WRITE_WORD_F(adr, res)
33845 src = DREGu32((Opcode >> 9) & 7);
33846 adr = AREG((Opcode >> 0) & 7);
33848 READ_LONG_F(adr, res)
33853 flag_N = res >> 24;
33854 WRITE_LONG_F(adr, res)
33865 src = DREGu32((Opcode >> 9) & 7);
33866 adr = AREG((Opcode >> 0) & 7);
33867 AREG((Opcode >> 0) & 7) += 4;
33869 READ_LONG_F(adr, res)
33874 flag_N = res >> 24;
33875 WRITE_LONG_F(adr, res)
33886 src = DREGu32((Opcode >> 9) & 7);
33887 adr = AREG((Opcode >> 0) & 7) - 4;
33888 AREG((Opcode >> 0) & 7) = adr;
33890 READ_LONG_F(adr, res)
33895 flag_N = res >> 24;
33896 WRITE_LONG_F(adr, res)
33907 src = DREGu32((Opcode >> 9) & 7);
33909 adr += AREG((Opcode >> 0) & 7);
33911 READ_LONG_F(adr, res)
33916 flag_N = res >> 24;
33917 WRITE_LONG_F(adr, res)
33928 src = DREGu32((Opcode >> 9) & 7);
33929 adr = AREG((Opcode >> 0) & 7);
33932 READ_LONG_F(adr, res)
33937 flag_N = res >> 24;
33938 WRITE_LONG_F(adr, res)
33949 src = DREGu32((Opcode >> 9) & 7);
33952 READ_LONG_F(adr, res)
33957 flag_N = res >> 24;
33958 WRITE_LONG_F(adr, res)
33969 src = DREGu32((Opcode >> 9) & 7);
33972 READ_LONG_F(adr, res)
33977 flag_N = res >> 24;
33978 WRITE_LONG_F(adr, res)
33989 src = DREGu32((Opcode >> 9) & 7);
33993 READ_LONG_F(adr, res)
33998 flag_N = res >> 24;
33999 WRITE_LONG_F(adr, res)
34010 src = DREGu32((Opcode >> 9) & 7);
34014 READ_LONG_F(adr, res)
34019 flag_N = res >> 24;
34020 WRITE_LONG_F(adr, res)
34031 src = DREGu8((Opcode >> 0) & 7);
34032 dst = DREGu8((Opcode >> 9) & 7);
34033 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34034 if (res > 9) res += 6;
34035 res += (dst & 0xF0) + (src & 0xF0);
34039 flag_X = flag_C = M68K_SR_C;
34041 else flag_X = flag_C = 0;
34042 flag_NotZ |= res & 0xFF;
34044 DREGu8((Opcode >> 9) & 7) = res;
34054 adr = AREG((Opcode >> 0) & 7) - 1;
34055 AREG((Opcode >> 0) & 7) = adr;
34057 READ_BYTE_F(adr, src)
34058 adr = AREG((Opcode >> 9) & 7) - 1;
34059 AREG((Opcode >> 9) & 7) = adr;
34060 READ_BYTE_F(adr, dst)
34061 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34062 if (res > 9) res += 6;
34063 res += (dst & 0xF0) + (src & 0xF0);
34067 flag_X = flag_C = M68K_SR_C;
34069 else flag_X = flag_C = 0;
34070 flag_NotZ |= res & 0xFF;
34072 WRITE_BYTE_F(adr, res)
34086 READ_BYTE_F(adr, src)
34087 adr = AREG((Opcode >> 9) & 7) - 1;
34088 AREG((Opcode >> 9) & 7) = adr;
34089 READ_BYTE_F(adr, dst)
34090 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34091 if (res > 9) res += 6;
34092 res += (dst & 0xF0) + (src & 0xF0);
34096 flag_X = flag_C = M68K_SR_C;
34098 else flag_X = flag_C = 0;
34099 flag_NotZ |= res & 0xFF;
34101 WRITE_BYTE_F(adr, res)
34112 adr = AREG((Opcode >> 0) & 7) - 1;
34113 AREG((Opcode >> 0) & 7) = adr;
34115 READ_BYTE_F(adr, src)
34118 READ_BYTE_F(adr, dst)
34119 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34120 if (res > 9) res += 6;
34121 res += (dst & 0xF0) + (src & 0xF0);
34125 flag_X = flag_C = M68K_SR_C;
34127 else flag_X = flag_C = 0;
34128 flag_NotZ |= res & 0xFF;
34130 WRITE_BYTE_F(adr, res)
34144 READ_BYTE_F(adr, src)
34147 READ_BYTE_F(adr, dst)
34148 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34149 if (res > 9) res += 6;
34150 res += (dst & 0xF0) + (src & 0xF0);
34154 flag_X = flag_C = M68K_SR_C;
34156 else flag_X = flag_C = 0;
34157 flag_NotZ |= res & 0xFF;
34159 WRITE_BYTE_F(adr, res)
34170 src = DREGu16((Opcode >> 0) & 7);
34171 res = DREGu16((Opcode >> 9) & 7);
34173 flag_N = res >> 24;
34175 flag_V = flag_C = 0;
34176 DREGu32((Opcode >> 9) & 7) = res;
34177 #ifdef USE_CYCLONE_TIMING
34190 adr = AREG((Opcode >> 0) & 7);
34192 READ_WORD_F(adr, src)
34193 res = DREGu16((Opcode >> 9) & 7);
34195 flag_N = res >> 24;
34197 flag_V = flag_C = 0;
34198 DREGu32((Opcode >> 9) & 7) = res;
34200 #ifdef USE_CYCLONE_TIMING
34213 adr = AREG((Opcode >> 0) & 7);
34214 AREG((Opcode >> 0) & 7) += 2;
34216 READ_WORD_F(adr, src)
34217 res = DREGu16((Opcode >> 9) & 7);
34219 flag_N = res >> 24;
34221 flag_V = flag_C = 0;
34222 DREGu32((Opcode >> 9) & 7) = res;
34224 #ifdef USE_CYCLONE_TIMING
34237 adr = AREG((Opcode >> 0) & 7) - 2;
34238 AREG((Opcode >> 0) & 7) = adr;
34240 READ_WORD_F(adr, src)
34241 res = DREGu16((Opcode >> 9) & 7);
34243 flag_N = res >> 24;
34245 flag_V = flag_C = 0;
34246 DREGu32((Opcode >> 9) & 7) = res;
34248 #ifdef USE_CYCLONE_TIMING
34262 adr += AREG((Opcode >> 0) & 7);
34264 READ_WORD_F(adr, src)
34265 res = DREGu16((Opcode >> 9) & 7);
34267 flag_N = res >> 24;
34269 flag_V = flag_C = 0;
34270 DREGu32((Opcode >> 9) & 7) = res;
34272 #ifdef USE_CYCLONE_TIMING
34285 adr = AREG((Opcode >> 0) & 7);
34288 READ_WORD_F(adr, src)
34289 res = DREGu16((Opcode >> 9) & 7);
34291 flag_N = res >> 24;
34293 flag_V = flag_C = 0;
34294 DREGu32((Opcode >> 9) & 7) = res;
34296 #ifdef USE_CYCLONE_TIMING
34311 READ_WORD_F(adr, src)
34312 res = DREGu16((Opcode >> 9) & 7);
34314 flag_N = res >> 24;
34316 flag_V = flag_C = 0;
34317 DREGu32((Opcode >> 9) & 7) = res;
34319 #ifdef USE_CYCLONE_TIMING
34334 READ_WORD_F(adr, src)
34335 res = DREGu16((Opcode >> 9) & 7);
34337 flag_N = res >> 24;
34339 flag_V = flag_C = 0;
34340 DREGu32((Opcode >> 9) & 7) = res;
34342 #ifdef USE_CYCLONE_TIMING
34355 adr = GET_SWORD + ((u32)(PC) - BasePC);
34358 READ_WORD_F(adr, src)
34359 res = DREGu16((Opcode >> 9) & 7);
34361 flag_N = res >> 24;
34363 flag_V = flag_C = 0;
34364 DREGu32((Opcode >> 9) & 7) = res;
34366 #ifdef USE_CYCLONE_TIMING
34379 adr = (u32)(PC) - BasePC;
34382 READ_WORD_F(adr, src)
34383 res = DREGu16((Opcode >> 9) & 7);
34385 flag_N = res >> 24;
34387 flag_V = flag_C = 0;
34388 DREGu32((Opcode >> 9) & 7) = res;
34390 #ifdef USE_CYCLONE_TIMING
34404 res = DREGu16((Opcode >> 9) & 7);
34406 flag_N = res >> 24;
34408 flag_V = flag_C = 0;
34409 DREGu32((Opcode >> 9) & 7) = res;
34410 #ifdef USE_CYCLONE_TIMING
34426 READ_WORD_F(adr, src)
34427 res = DREGu16((Opcode >> 9) & 7);
34429 flag_N = res >> 24;
34431 flag_V = flag_C = 0;
34432 DREGu32((Opcode >> 9) & 7) = res;
34434 #ifdef USE_CYCLONE_TIMING
34450 READ_WORD_F(adr, src)
34451 res = DREGu16((Opcode >> 9) & 7);
34453 flag_N = res >> 24;
34455 flag_V = flag_C = 0;
34456 DREGu32((Opcode >> 9) & 7) = res;
34458 #ifdef USE_CYCLONE_TIMING
34471 src = (s32)DREGs16((Opcode >> 0) & 7);
34472 res = (s32)DREGs16((Opcode >> 9) & 7);
34473 res = ((s32)res) * ((s32)src);
34474 flag_N = res >> 24;
34476 flag_V = flag_C = 0;
34477 DREGu32((Opcode >> 9) & 7) = res;
34478 #ifdef USE_CYCLONE_TIMING
34491 adr = AREG((Opcode >> 0) & 7);
34493 READSX_WORD_F(adr, src)
34494 res = (s32)DREGs16((Opcode >> 9) & 7);
34495 res = ((s32)res) * ((s32)src);
34496 flag_N = res >> 24;
34498 flag_V = flag_C = 0;
34499 DREGu32((Opcode >> 9) & 7) = res;
34501 #ifdef USE_CYCLONE_TIMING
34514 adr = AREG((Opcode >> 0) & 7);
34515 AREG((Opcode >> 0) & 7) += 2;
34517 READSX_WORD_F(adr, src)
34518 res = (s32)DREGs16((Opcode >> 9) & 7);
34519 res = ((s32)res) * ((s32)src);
34520 flag_N = res >> 24;
34522 flag_V = flag_C = 0;
34523 DREGu32((Opcode >> 9) & 7) = res;
34525 #ifdef USE_CYCLONE_TIMING
34538 adr = AREG((Opcode >> 0) & 7) - 2;
34539 AREG((Opcode >> 0) & 7) = adr;
34541 READSX_WORD_F(adr, src)
34542 res = (s32)DREGs16((Opcode >> 9) & 7);
34543 res = ((s32)res) * ((s32)src);
34544 flag_N = res >> 24;
34546 flag_V = flag_C = 0;
34547 DREGu32((Opcode >> 9) & 7) = res;
34549 #ifdef USE_CYCLONE_TIMING
34563 adr += AREG((Opcode >> 0) & 7);
34565 READSX_WORD_F(adr, src)
34566 res = (s32)DREGs16((Opcode >> 9) & 7);
34567 res = ((s32)res) * ((s32)src);
34568 flag_N = res >> 24;
34570 flag_V = flag_C = 0;
34571 DREGu32((Opcode >> 9) & 7) = res;
34573 #ifdef USE_CYCLONE_TIMING
34586 adr = AREG((Opcode >> 0) & 7);
34589 READSX_WORD_F(adr, src)
34590 res = (s32)DREGs16((Opcode >> 9) & 7);
34591 res = ((s32)res) * ((s32)src);
34592 flag_N = res >> 24;
34594 flag_V = flag_C = 0;
34595 DREGu32((Opcode >> 9) & 7) = res;
34597 #ifdef USE_CYCLONE_TIMING
34612 READSX_WORD_F(adr, src)
34613 res = (s32)DREGs16((Opcode >> 9) & 7);
34614 res = ((s32)res) * ((s32)src);
34615 flag_N = res >> 24;
34617 flag_V = flag_C = 0;
34618 DREGu32((Opcode >> 9) & 7) = res;
34620 #ifdef USE_CYCLONE_TIMING
34635 READSX_WORD_F(adr, src)
34636 res = (s32)DREGs16((Opcode >> 9) & 7);
34637 res = ((s32)res) * ((s32)src);
34638 flag_N = res >> 24;
34640 flag_V = flag_C = 0;
34641 DREGu32((Opcode >> 9) & 7) = res;
34643 #ifdef USE_CYCLONE_TIMING
34656 adr = GET_SWORD + ((u32)(PC) - BasePC);
34659 READSX_WORD_F(adr, src)
34660 res = (s32)DREGs16((Opcode >> 9) & 7);
34661 res = ((s32)res) * ((s32)src);
34662 flag_N = res >> 24;
34664 flag_V = flag_C = 0;
34665 DREGu32((Opcode >> 9) & 7) = res;
34667 #ifdef USE_CYCLONE_TIMING
34680 adr = (u32)(PC) - BasePC;
34683 READSX_WORD_F(adr, src)
34684 res = (s32)DREGs16((Opcode >> 9) & 7);
34685 res = ((s32)res) * ((s32)src);
34686 flag_N = res >> 24;
34688 flag_V = flag_C = 0;
34689 DREGu32((Opcode >> 9) & 7) = res;
34691 #ifdef USE_CYCLONE_TIMING
34705 res = (s32)DREGs16((Opcode >> 9) & 7);
34706 res = ((s32)res) * ((s32)src);
34707 flag_N = res >> 24;
34709 flag_V = flag_C = 0;
34710 DREGu32((Opcode >> 9) & 7) = res;
34711 #ifdef USE_CYCLONE_TIMING
34727 READSX_WORD_F(adr, src)
34728 res = (s32)DREGs16((Opcode >> 9) & 7);
34729 res = ((s32)res) * ((s32)src);
34730 flag_N = res >> 24;
34732 flag_V = flag_C = 0;
34733 DREGu32((Opcode >> 9) & 7) = res;
34735 #ifdef USE_CYCLONE_TIMING
34751 READSX_WORD_F(adr, src)
34752 res = (s32)DREGs16((Opcode >> 9) & 7);
34753 res = ((s32)res) * ((s32)src);
34754 flag_N = res >> 24;
34756 flag_V = flag_C = 0;
34757 DREGu32((Opcode >> 9) & 7) = res;
34759 #ifdef USE_CYCLONE_TIMING
34772 res = DREGu32((Opcode >> 0) & 7);
34773 src = DREGu32((Opcode >> 9) & 7);
34774 DREGu32((Opcode >> 9) & 7) = res;
34776 DREGu32((Opcode >> 0) & 7) = res;
34786 res = AREGu32((Opcode >> 0) & 7);
34787 src = AREGu32((Opcode >> 9) & 7);
34788 AREG((Opcode >> 9) & 7) = res;
34790 AREG((Opcode >> 0) & 7) = res;
34800 res = AREGu32((Opcode >> 0) & 7);
34801 src = DREGu32((Opcode >> 9) & 7);
34802 DREGu32((Opcode >> 9) & 7) = res;
34804 AREG((Opcode >> 0) & 7) = res;
34814 src = DREGu8((Opcode >> 0) & 7);
34815 dst = DREGu8((Opcode >> 9) & 7);
34817 flag_N = flag_X = flag_C = res;
34818 flag_V = (src ^ res) & (dst ^ res);
34819 flag_NotZ = res & 0xFF;
34820 DREGu8((Opcode >> 9) & 7) = res;
34831 // can't read byte from Ax registers !
34832 m68kcontext.execinfo |= M68K_FAULTED;
34833 m68kcontext.io_cycle_counter = 0;
34835 goto famec_Exec_End;
34836 dst = DREGu8((Opcode >> 9) & 7);
34838 flag_N = flag_X = flag_C = res;
34839 flag_V = (src ^ res) & (dst ^ res);
34840 flag_NotZ = res & 0xFF;
34841 DREGu8((Opcode >> 9) & 7) = res;
34853 adr = AREG((Opcode >> 0) & 7);
34855 READ_BYTE_F(adr, src)
34856 dst = DREGu8((Opcode >> 9) & 7);
34858 flag_N = flag_X = flag_C = res;
34859 flag_V = (src ^ res) & (dst ^ res);
34860 flag_NotZ = res & 0xFF;
34861 DREGu8((Opcode >> 9) & 7) = res;
34872 adr = AREG((Opcode >> 0) & 7);
34873 AREG((Opcode >> 0) & 7) += 1;
34875 READ_BYTE_F(adr, src)
34876 dst = DREGu8((Opcode >> 9) & 7);
34878 flag_N = flag_X = flag_C = res;
34879 flag_V = (src ^ res) & (dst ^ res);
34880 flag_NotZ = res & 0xFF;
34881 DREGu8((Opcode >> 9) & 7) = res;
34892 adr = AREG((Opcode >> 0) & 7) - 1;
34893 AREG((Opcode >> 0) & 7) = adr;
34895 READ_BYTE_F(adr, src)
34896 dst = DREGu8((Opcode >> 9) & 7);
34898 flag_N = flag_X = flag_C = res;
34899 flag_V = (src ^ res) & (dst ^ res);
34900 flag_NotZ = res & 0xFF;
34901 DREGu8((Opcode >> 9) & 7) = res;
34913 adr += AREG((Opcode >> 0) & 7);
34915 READ_BYTE_F(adr, src)
34916 dst = DREGu8((Opcode >> 9) & 7);
34918 flag_N = flag_X = flag_C = res;
34919 flag_V = (src ^ res) & (dst ^ res);
34920 flag_NotZ = res & 0xFF;
34921 DREGu8((Opcode >> 9) & 7) = res;
34932 adr = AREG((Opcode >> 0) & 7);
34935 READ_BYTE_F(adr, src)
34936 dst = DREGu8((Opcode >> 9) & 7);
34938 flag_N = flag_X = flag_C = res;
34939 flag_V = (src ^ res) & (dst ^ res);
34940 flag_NotZ = res & 0xFF;
34941 DREGu8((Opcode >> 9) & 7) = res;
34954 READ_BYTE_F(adr, src)
34955 dst = DREGu8((Opcode >> 9) & 7);
34957 flag_N = flag_X = flag_C = res;
34958 flag_V = (src ^ res) & (dst ^ res);
34959 flag_NotZ = res & 0xFF;
34960 DREGu8((Opcode >> 9) & 7) = res;
34973 READ_BYTE_F(adr, src)
34974 dst = DREGu8((Opcode >> 9) & 7);
34976 flag_N = flag_X = flag_C = res;
34977 flag_V = (src ^ res) & (dst ^ res);
34978 flag_NotZ = res & 0xFF;
34979 DREGu8((Opcode >> 9) & 7) = res;
34990 adr = GET_SWORD + ((u32)(PC) - BasePC);
34993 READ_BYTE_F(adr, src)
34994 dst = DREGu8((Opcode >> 9) & 7);
34996 flag_N = flag_X = flag_C = res;
34997 flag_V = (src ^ res) & (dst ^ res);
34998 flag_NotZ = res & 0xFF;
34999 DREGu8((Opcode >> 9) & 7) = res;
35010 adr = (u32)(PC) - BasePC;
35013 READ_BYTE_F(adr, src)
35014 dst = DREGu8((Opcode >> 9) & 7);
35016 flag_N = flag_X = flag_C = res;
35017 flag_V = (src ^ res) & (dst ^ res);
35018 flag_NotZ = res & 0xFF;
35019 DREGu8((Opcode >> 9) & 7) = res;
35031 dst = DREGu8((Opcode >> 9) & 7);
35033 flag_N = flag_X = flag_C = res;
35034 flag_V = (src ^ res) & (dst ^ res);
35035 flag_NotZ = res & 0xFF;
35036 DREGu8((Opcode >> 9) & 7) = res;
35049 READ_BYTE_F(adr, src)
35050 dst = DREGu8((Opcode >> 9) & 7);
35052 flag_N = flag_X = flag_C = res;
35053 flag_V = (src ^ res) & (dst ^ res);
35054 flag_NotZ = res & 0xFF;
35055 DREGu8((Opcode >> 9) & 7) = res;
35069 READ_BYTE_F(adr, src)
35070 dst = DREGu8((Opcode >> 9) & 7);
35072 flag_N = flag_X = flag_C = res;
35073 flag_V = (src ^ res) & (dst ^ res);
35074 flag_NotZ = res & 0xFF;
35075 DREGu8((Opcode >> 9) & 7) = res;
35086 src = DREGu16((Opcode >> 0) & 7);
35087 dst = DREGu16((Opcode >> 9) & 7);
35089 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35090 flag_N = flag_X = flag_C = res >> 8;
35091 flag_NotZ = res & 0xFFFF;
35092 DREGu16((Opcode >> 9) & 7) = res;
35102 src = AREGu16((Opcode >> 0) & 7);
35103 dst = DREGu16((Opcode >> 9) & 7);
35105 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35106 flag_N = flag_X = flag_C = res >> 8;
35107 flag_NotZ = res & 0xFFFF;
35108 DREGu16((Opcode >> 9) & 7) = res;
35118 adr = AREG((Opcode >> 0) & 7);
35120 READ_WORD_F(adr, src)
35121 dst = DREGu16((Opcode >> 9) & 7);
35123 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35124 flag_N = flag_X = flag_C = res >> 8;
35125 flag_NotZ = res & 0xFFFF;
35126 DREGu16((Opcode >> 9) & 7) = res;
35137 adr = AREG((Opcode >> 0) & 7);
35138 AREG((Opcode >> 0) & 7) += 2;
35140 READ_WORD_F(adr, src)
35141 dst = DREGu16((Opcode >> 9) & 7);
35143 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35144 flag_N = flag_X = flag_C = res >> 8;
35145 flag_NotZ = res & 0xFFFF;
35146 DREGu16((Opcode >> 9) & 7) = res;
35157 adr = AREG((Opcode >> 0) & 7) - 2;
35158 AREG((Opcode >> 0) & 7) = adr;
35160 READ_WORD_F(adr, src)
35161 dst = DREGu16((Opcode >> 9) & 7);
35163 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35164 flag_N = flag_X = flag_C = res >> 8;
35165 flag_NotZ = res & 0xFFFF;
35166 DREGu16((Opcode >> 9) & 7) = res;
35178 adr += AREG((Opcode >> 0) & 7);
35180 READ_WORD_F(adr, src)
35181 dst = DREGu16((Opcode >> 9) & 7);
35183 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35184 flag_N = flag_X = flag_C = res >> 8;
35185 flag_NotZ = res & 0xFFFF;
35186 DREGu16((Opcode >> 9) & 7) = res;
35197 adr = AREG((Opcode >> 0) & 7);
35200 READ_WORD_F(adr, src)
35201 dst = DREGu16((Opcode >> 9) & 7);
35203 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35204 flag_N = flag_X = flag_C = res >> 8;
35205 flag_NotZ = res & 0xFFFF;
35206 DREGu16((Opcode >> 9) & 7) = res;
35219 READ_WORD_F(adr, src)
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;
35238 READ_WORD_F(adr, src)
35239 dst = DREGu16((Opcode >> 9) & 7);
35241 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35242 flag_N = flag_X = flag_C = res >> 8;
35243 flag_NotZ = res & 0xFFFF;
35244 DREGu16((Opcode >> 9) & 7) = res;
35255 adr = GET_SWORD + ((u32)(PC) - BasePC);
35258 READ_WORD_F(adr, src)
35259 dst = DREGu16((Opcode >> 9) & 7);
35261 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35262 flag_N = flag_X = flag_C = res >> 8;
35263 flag_NotZ = res & 0xFFFF;
35264 DREGu16((Opcode >> 9) & 7) = res;
35275 adr = (u32)(PC) - BasePC;
35278 READ_WORD_F(adr, src)
35279 dst = DREGu16((Opcode >> 9) & 7);
35281 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35282 flag_N = flag_X = flag_C = res >> 8;
35283 flag_NotZ = res & 0xFFFF;
35284 DREGu16((Opcode >> 9) & 7) = res;
35296 dst = DREGu16((Opcode >> 9) & 7);
35298 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35299 flag_N = flag_X = flag_C = res >> 8;
35300 flag_NotZ = res & 0xFFFF;
35301 DREGu16((Opcode >> 9) & 7) = res;
35314 READ_WORD_F(adr, src)
35315 dst = DREGu16((Opcode >> 9) & 7);
35317 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35318 flag_N = flag_X = flag_C = res >> 8;
35319 flag_NotZ = res & 0xFFFF;
35320 DREGu16((Opcode >> 9) & 7) = res;
35334 READ_WORD_F(adr, src)
35335 dst = DREGu16((Opcode >> 9) & 7);
35337 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35338 flag_N = flag_X = flag_C = res >> 8;
35339 flag_NotZ = res & 0xFFFF;
35340 DREGu16((Opcode >> 9) & 7) = res;
35351 src = DREGu32((Opcode >> 0) & 7);
35352 dst = DREGu32((Opcode >> 9) & 7);
35355 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35356 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35357 flag_N = res >> 24;
35358 DREGu32((Opcode >> 9) & 7) = res;
35368 src = AREGu32((Opcode >> 0) & 7);
35369 dst = DREGu32((Opcode >> 9) & 7);
35372 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35373 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35374 flag_N = res >> 24;
35375 DREGu32((Opcode >> 9) & 7) = res;
35385 adr = AREG((Opcode >> 0) & 7);
35387 READ_LONG_F(adr, src)
35388 dst = DREGu32((Opcode >> 9) & 7);
35391 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35392 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35393 flag_N = res >> 24;
35394 DREGu32((Opcode >> 9) & 7) = res;
35405 adr = AREG((Opcode >> 0) & 7);
35406 AREG((Opcode >> 0) & 7) += 4;
35408 READ_LONG_F(adr, src)
35409 dst = DREGu32((Opcode >> 9) & 7);
35412 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35413 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35414 flag_N = res >> 24;
35415 DREGu32((Opcode >> 9) & 7) = res;
35426 adr = AREG((Opcode >> 0) & 7) - 4;
35427 AREG((Opcode >> 0) & 7) = adr;
35429 READ_LONG_F(adr, src)
35430 dst = DREGu32((Opcode >> 9) & 7);
35433 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35434 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35435 flag_N = res >> 24;
35436 DREGu32((Opcode >> 9) & 7) = res;
35448 adr += AREG((Opcode >> 0) & 7);
35450 READ_LONG_F(adr, src)
35451 dst = DREGu32((Opcode >> 9) & 7);
35454 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35455 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35456 flag_N = res >> 24;
35457 DREGu32((Opcode >> 9) & 7) = res;
35468 adr = AREG((Opcode >> 0) & 7);
35471 READ_LONG_F(adr, src)
35472 dst = DREGu32((Opcode >> 9) & 7);
35475 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35476 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35477 flag_N = res >> 24;
35478 DREGu32((Opcode >> 9) & 7) = res;
35491 READ_LONG_F(adr, src)
35492 dst = DREGu32((Opcode >> 9) & 7);
35495 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35496 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35497 flag_N = res >> 24;
35498 DREGu32((Opcode >> 9) & 7) = res;
35511 READ_LONG_F(adr, src)
35512 dst = DREGu32((Opcode >> 9) & 7);
35515 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35516 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35517 flag_N = res >> 24;
35518 DREGu32((Opcode >> 9) & 7) = res;
35529 adr = GET_SWORD + ((u32)(PC) - BasePC);
35532 READ_LONG_F(adr, src)
35533 dst = DREGu32((Opcode >> 9) & 7);
35536 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35537 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35538 flag_N = res >> 24;
35539 DREGu32((Opcode >> 9) & 7) = res;
35550 adr = (u32)(PC) - BasePC;
35553 READ_LONG_F(adr, src)
35554 dst = DREGu32((Opcode >> 9) & 7);
35557 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35558 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35559 flag_N = res >> 24;
35560 DREGu32((Opcode >> 9) & 7) = res;
35572 dst = DREGu32((Opcode >> 9) & 7);
35575 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35576 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35577 flag_N = res >> 24;
35578 DREGu32((Opcode >> 9) & 7) = res;
35591 READ_LONG_F(adr, src)
35592 dst = DREGu32((Opcode >> 9) & 7);
35595 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35596 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35597 flag_N = res >> 24;
35598 DREGu32((Opcode >> 9) & 7) = res;
35612 READ_LONG_F(adr, src)
35613 dst = DREGu32((Opcode >> 9) & 7);
35616 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35617 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35618 flag_N = res >> 24;
35619 DREGu32((Opcode >> 9) & 7) = res;
35630 src = DREGu8((Opcode >> 9) & 7);
35631 adr = AREG((Opcode >> 0) & 7);
35633 READ_BYTE_F(adr, dst)
35635 flag_N = flag_X = flag_C = res;
35636 flag_V = (src ^ res) & (dst ^ res);
35637 flag_NotZ = res & 0xFF;
35638 WRITE_BYTE_F(adr, res)
35649 src = DREGu8((Opcode >> 9) & 7);
35650 adr = AREG((Opcode >> 0) & 7);
35651 AREG((Opcode >> 0) & 7) += 1;
35653 READ_BYTE_F(adr, dst)
35655 flag_N = flag_X = flag_C = res;
35656 flag_V = (src ^ res) & (dst ^ res);
35657 flag_NotZ = res & 0xFF;
35658 WRITE_BYTE_F(adr, res)
35669 src = DREGu8((Opcode >> 9) & 7);
35670 adr = AREG((Opcode >> 0) & 7) - 1;
35671 AREG((Opcode >> 0) & 7) = adr;
35673 READ_BYTE_F(adr, dst)
35675 flag_N = flag_X = flag_C = res;
35676 flag_V = (src ^ res) & (dst ^ res);
35677 flag_NotZ = res & 0xFF;
35678 WRITE_BYTE_F(adr, res)
35689 src = DREGu8((Opcode >> 9) & 7);
35691 adr += AREG((Opcode >> 0) & 7);
35693 READ_BYTE_F(adr, dst)
35695 flag_N = flag_X = flag_C = res;
35696 flag_V = (src ^ res) & (dst ^ res);
35697 flag_NotZ = res & 0xFF;
35698 WRITE_BYTE_F(adr, res)
35709 src = DREGu8((Opcode >> 9) & 7);
35710 adr = AREG((Opcode >> 0) & 7);
35713 READ_BYTE_F(adr, dst)
35715 flag_N = flag_X = flag_C = res;
35716 flag_V = (src ^ res) & (dst ^ res);
35717 flag_NotZ = res & 0xFF;
35718 WRITE_BYTE_F(adr, res)
35729 src = DREGu8((Opcode >> 9) & 7);
35732 READ_BYTE_F(adr, dst)
35734 flag_N = flag_X = flag_C = res;
35735 flag_V = (src ^ res) & (dst ^ res);
35736 flag_NotZ = res & 0xFF;
35737 WRITE_BYTE_F(adr, res)
35748 src = DREGu8((Opcode >> 9) & 7);
35751 READ_BYTE_F(adr, dst)
35753 flag_N = flag_X = flag_C = res;
35754 flag_V = (src ^ res) & (dst ^ res);
35755 flag_NotZ = res & 0xFF;
35756 WRITE_BYTE_F(adr, res)
35767 src = DREGu8((Opcode >> 9) & 7);
35771 READ_BYTE_F(adr, dst)
35773 flag_N = flag_X = flag_C = res;
35774 flag_V = (src ^ res) & (dst ^ res);
35775 flag_NotZ = res & 0xFF;
35776 WRITE_BYTE_F(adr, res)
35787 src = DREGu8((Opcode >> 9) & 7);
35791 READ_BYTE_F(adr, dst)
35793 flag_N = flag_X = flag_C = res;
35794 flag_V = (src ^ res) & (dst ^ res);
35795 flag_NotZ = res & 0xFF;
35796 WRITE_BYTE_F(adr, res)
35807 src = DREGu16((Opcode >> 9) & 7);
35808 adr = AREG((Opcode >> 0) & 7);
35810 READ_WORD_F(adr, dst)
35812 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35813 flag_N = flag_X = flag_C = res >> 8;
35814 flag_NotZ = res & 0xFFFF;
35815 WRITE_WORD_F(adr, res)
35826 src = DREGu16((Opcode >> 9) & 7);
35827 adr = AREG((Opcode >> 0) & 7);
35828 AREG((Opcode >> 0) & 7) += 2;
35830 READ_WORD_F(adr, dst)
35832 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35833 flag_N = flag_X = flag_C = res >> 8;
35834 flag_NotZ = res & 0xFFFF;
35835 WRITE_WORD_F(adr, res)
35846 src = DREGu16((Opcode >> 9) & 7);
35847 adr = AREG((Opcode >> 0) & 7) - 2;
35848 AREG((Opcode >> 0) & 7) = adr;
35850 READ_WORD_F(adr, dst)
35852 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35853 flag_N = flag_X = flag_C = res >> 8;
35854 flag_NotZ = res & 0xFFFF;
35855 WRITE_WORD_F(adr, res)
35866 src = DREGu16((Opcode >> 9) & 7);
35868 adr += AREG((Opcode >> 0) & 7);
35870 READ_WORD_F(adr, dst)
35872 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35873 flag_N = flag_X = flag_C = res >> 8;
35874 flag_NotZ = res & 0xFFFF;
35875 WRITE_WORD_F(adr, res)
35886 src = DREGu16((Opcode >> 9) & 7);
35887 adr = AREG((Opcode >> 0) & 7);
35890 READ_WORD_F(adr, dst)
35892 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35893 flag_N = flag_X = flag_C = res >> 8;
35894 flag_NotZ = res & 0xFFFF;
35895 WRITE_WORD_F(adr, res)
35906 src = DREGu16((Opcode >> 9) & 7);
35909 READ_WORD_F(adr, dst)
35911 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35912 flag_N = flag_X = flag_C = res >> 8;
35913 flag_NotZ = res & 0xFFFF;
35914 WRITE_WORD_F(adr, res)
35925 src = DREGu16((Opcode >> 9) & 7);
35928 READ_WORD_F(adr, dst)
35930 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35931 flag_N = flag_X = flag_C = res >> 8;
35932 flag_NotZ = res & 0xFFFF;
35933 WRITE_WORD_F(adr, res)
35944 src = DREGu16((Opcode >> 9) & 7);
35948 READ_WORD_F(adr, dst)
35950 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35951 flag_N = flag_X = flag_C = res >> 8;
35952 flag_NotZ = res & 0xFFFF;
35953 WRITE_WORD_F(adr, res)
35964 src = DREGu16((Opcode >> 9) & 7);
35968 READ_WORD_F(adr, dst)
35970 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35971 flag_N = flag_X = flag_C = res >> 8;
35972 flag_NotZ = res & 0xFFFF;
35973 WRITE_WORD_F(adr, res)
35984 src = DREGu32((Opcode >> 9) & 7);
35985 adr = AREG((Opcode >> 0) & 7);
35987 READ_LONG_F(adr, dst)
35990 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35991 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35992 flag_N = res >> 24;
35993 WRITE_LONG_F(adr, res)
36004 src = DREGu32((Opcode >> 9) & 7);
36005 adr = AREG((Opcode >> 0) & 7);
36006 AREG((Opcode >> 0) & 7) += 4;
36008 READ_LONG_F(adr, dst)
36011 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36012 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36013 flag_N = res >> 24;
36014 WRITE_LONG_F(adr, res)
36025 src = DREGu32((Opcode >> 9) & 7);
36026 adr = AREG((Opcode >> 0) & 7) - 4;
36027 AREG((Opcode >> 0) & 7) = adr;
36029 READ_LONG_F(adr, dst)
36032 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36033 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36034 flag_N = res >> 24;
36035 WRITE_LONG_F(adr, res)
36046 src = DREGu32((Opcode >> 9) & 7);
36048 adr += AREG((Opcode >> 0) & 7);
36050 READ_LONG_F(adr, dst)
36053 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36054 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36055 flag_N = res >> 24;
36056 WRITE_LONG_F(adr, res)
36067 src = DREGu32((Opcode >> 9) & 7);
36068 adr = AREG((Opcode >> 0) & 7);
36071 READ_LONG_F(adr, dst)
36074 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36075 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36076 flag_N = res >> 24;
36077 WRITE_LONG_F(adr, res)
36088 src = DREGu32((Opcode >> 9) & 7);
36091 READ_LONG_F(adr, dst)
36094 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36095 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36096 flag_N = res >> 24;
36097 WRITE_LONG_F(adr, res)
36108 src = DREGu32((Opcode >> 9) & 7);
36111 READ_LONG_F(adr, dst)
36114 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36115 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36116 flag_N = res >> 24;
36117 WRITE_LONG_F(adr, res)
36128 src = DREGu32((Opcode >> 9) & 7);
36132 READ_LONG_F(adr, dst)
36135 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36136 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36137 flag_N = res >> 24;
36138 WRITE_LONG_F(adr, res)
36149 src = DREGu32((Opcode >> 9) & 7);
36153 READ_LONG_F(adr, dst)
36156 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36157 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36158 flag_N = res >> 24;
36159 WRITE_LONG_F(adr, res)
36170 src = DREGu8((Opcode >> 0) & 7);
36171 dst = DREGu8((Opcode >> 9) & 7);
36172 res = dst + src + ((flag_X >> 8) & 1);
36173 flag_N = flag_X = flag_C = res;
36174 flag_V = (src ^ res) & (dst ^ res);
36175 flag_NotZ |= res & 0xFF;
36176 DREGu8((Opcode >> 9) & 7) = res;
36186 src = DREGu16((Opcode >> 0) & 7);
36187 dst = DREGu16((Opcode >> 9) & 7);
36188 res = dst + src + ((flag_X >> 8) & 1);
36189 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36190 flag_N = flag_X = flag_C = res >> 8;
36191 flag_NotZ |= res & 0xFFFF;
36192 DREGu16((Opcode >> 9) & 7) = res;
36202 src = DREGu32((Opcode >> 0) & 7);
36203 dst = DREGu32((Opcode >> 9) & 7);
36204 res = dst + src + ((flag_X >> 8) & 1);
36206 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36207 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36208 flag_N = res >> 24;
36209 DREGu32((Opcode >> 9) & 7) = res;
36219 adr = AREG((Opcode >> 0) & 7) - 1;
36220 AREG((Opcode >> 0) & 7) = adr;
36222 READ_BYTE_F(adr, src)
36223 adr = AREG((Opcode >> 9) & 7) - 1;
36224 AREG((Opcode >> 9) & 7) = adr;
36225 READ_BYTE_F(adr, dst)
36226 res = dst + src + ((flag_X >> 8) & 1);
36227 flag_N = flag_X = flag_C = res;
36228 flag_V = (src ^ res) & (dst ^ res);
36229 flag_NotZ |= res & 0xFF;
36230 WRITE_BYTE_F(adr, res)
36241 adr = AREG((Opcode >> 0) & 7) - 2;
36242 AREG((Opcode >> 0) & 7) = adr;
36244 READ_WORD_F(adr, src)
36245 adr = AREG((Opcode >> 9) & 7) - 2;
36246 AREG((Opcode >> 9) & 7) = adr;
36247 READ_WORD_F(adr, dst)
36248 res = dst + src + ((flag_X >> 8) & 1);
36249 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36250 flag_N = flag_X = flag_C = res >> 8;
36251 flag_NotZ |= res & 0xFFFF;
36252 WRITE_WORD_F(adr, res)
36263 adr = AREG((Opcode >> 0) & 7) - 4;
36264 AREG((Opcode >> 0) & 7) = adr;
36266 READ_LONG_F(adr, src)
36267 adr = AREG((Opcode >> 9) & 7) - 4;
36268 AREG((Opcode >> 9) & 7) = adr;
36269 READ_LONG_F(adr, dst)
36270 res = dst + src + ((flag_X >> 8) & 1);
36272 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36273 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36274 flag_N = res >> 24;
36275 WRITE_LONG_F(adr, res)
36289 READ_BYTE_F(adr, src)
36290 adr = AREG((Opcode >> 9) & 7) - 1;
36291 AREG((Opcode >> 9) & 7) = adr;
36292 READ_BYTE_F(adr, dst)
36293 res = dst + src + ((flag_X >> 8) & 1);
36294 flag_N = flag_X = flag_C = res;
36295 flag_V = (src ^ res) & (dst ^ res);
36296 flag_NotZ |= res & 0xFF;
36297 WRITE_BYTE_F(adr, res)
36311 READ_WORD_F(adr, src)
36312 adr = AREG((Opcode >> 9) & 7) - 2;
36313 AREG((Opcode >> 9) & 7) = adr;
36314 READ_WORD_F(adr, dst)
36315 res = dst + src + ((flag_X >> 8) & 1);
36316 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36317 flag_N = flag_X = flag_C = res >> 8;
36318 flag_NotZ |= res & 0xFFFF;
36319 WRITE_WORD_F(adr, res)
36333 READ_LONG_F(adr, src)
36334 adr = AREG((Opcode >> 9) & 7) - 4;
36335 AREG((Opcode >> 9) & 7) = adr;
36336 READ_LONG_F(adr, dst)
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 WRITE_LONG_F(adr, res)
36353 adr = AREG((Opcode >> 0) & 7) - 1;
36354 AREG((Opcode >> 0) & 7) = adr;
36356 READ_BYTE_F(adr, src)
36359 READ_BYTE_F(adr, dst)
36360 res = dst + src + ((flag_X >> 8) & 1);
36361 flag_N = flag_X = flag_C = res;
36362 flag_V = (src ^ res) & (dst ^ res);
36363 flag_NotZ |= res & 0xFF;
36364 WRITE_BYTE_F(adr, res)
36375 adr = AREG((Opcode >> 0) & 7) - 2;
36376 AREG((Opcode >> 0) & 7) = adr;
36378 READ_WORD_F(adr, src)
36381 READ_WORD_F(adr, dst)
36382 res = dst + src + ((flag_X >> 8) & 1);
36383 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36384 flag_N = flag_X = flag_C = res >> 8;
36385 flag_NotZ |= res & 0xFFFF;
36386 WRITE_WORD_F(adr, res)
36397 adr = AREG((Opcode >> 0) & 7) - 4;
36398 AREG((Opcode >> 0) & 7) = adr;
36400 READ_LONG_F(adr, src)
36403 READ_LONG_F(adr, dst)
36404 res = dst + src + ((flag_X >> 8) & 1);
36406 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36407 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36408 flag_N = res >> 24;
36409 WRITE_LONG_F(adr, res)
36423 READ_BYTE_F(adr, src)
36426 READ_BYTE_F(adr, dst)
36427 res = dst + src + ((flag_X >> 8) & 1);
36428 flag_N = flag_X = flag_C = res;
36429 flag_V = (src ^ res) & (dst ^ res);
36430 flag_NotZ |= res & 0xFF;
36431 WRITE_BYTE_F(adr, res)
36445 READ_WORD_F(adr, src)
36448 READ_WORD_F(adr, dst)
36449 res = dst + src + ((flag_X >> 8) & 1);
36450 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36451 flag_N = flag_X = flag_C = res >> 8;
36452 flag_NotZ |= res & 0xFFFF;
36453 WRITE_WORD_F(adr, res)
36467 READ_LONG_F(adr, src)
36470 READ_LONG_F(adr, dst)
36471 res = dst + src + ((flag_X >> 8) & 1);
36473 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36474 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36475 flag_N = res >> 24;
36476 WRITE_LONG_F(adr, res)
36487 src = (s32)DREGs16((Opcode >> 0) & 7);
36488 dst = AREGu32((Opcode >> 9) & 7);
36490 AREG((Opcode >> 9) & 7) = res;
36500 src = (s32)AREGs16((Opcode >> 0) & 7);
36501 dst = AREGu32((Opcode >> 9) & 7);
36503 AREG((Opcode >> 9) & 7) = res;
36513 adr = AREG((Opcode >> 0) & 7);
36515 READSX_WORD_F(adr, src)
36516 dst = AREGu32((Opcode >> 9) & 7);
36518 AREG((Opcode >> 9) & 7) = res;
36520 #ifdef USE_CYCLONE_TIMING
36533 adr = AREG((Opcode >> 0) & 7);
36534 AREG((Opcode >> 0) & 7) += 2;
36536 READSX_WORD_F(adr, src)
36537 dst = AREGu32((Opcode >> 9) & 7);
36539 AREG((Opcode >> 9) & 7) = res;
36541 #ifdef USE_CYCLONE_TIMING
36554 adr = AREG((Opcode >> 0) & 7) - 2;
36555 AREG((Opcode >> 0) & 7) = adr;
36557 READSX_WORD_F(adr, src)
36558 dst = AREGu32((Opcode >> 9) & 7);
36560 AREG((Opcode >> 9) & 7) = res;
36562 #ifdef USE_CYCLONE_TIMING
36576 adr += AREG((Opcode >> 0) & 7);
36578 READSX_WORD_F(adr, src)
36579 dst = AREGu32((Opcode >> 9) & 7);
36581 AREG((Opcode >> 9) & 7) = res;
36583 #ifdef USE_CYCLONE_TIMING
36596 adr = AREG((Opcode >> 0) & 7);
36599 READSX_WORD_F(adr, src)
36600 dst = AREGu32((Opcode >> 9) & 7);
36602 AREG((Opcode >> 9) & 7) = res;
36604 #ifdef USE_CYCLONE_TIMING
36619 READSX_WORD_F(adr, src)
36620 dst = AREGu32((Opcode >> 9) & 7);
36622 AREG((Opcode >> 9) & 7) = res;
36624 #ifdef USE_CYCLONE_TIMING
36639 READSX_WORD_F(adr, src)
36640 dst = AREGu32((Opcode >> 9) & 7);
36642 AREG((Opcode >> 9) & 7) = res;
36644 #ifdef USE_CYCLONE_TIMING
36657 adr = GET_SWORD + ((u32)(PC) - BasePC);
36660 READSX_WORD_F(adr, src)
36661 dst = AREGu32((Opcode >> 9) & 7);
36663 AREG((Opcode >> 9) & 7) = res;
36665 #ifdef USE_CYCLONE_TIMING
36678 adr = (u32)(PC) - BasePC;
36681 READSX_WORD_F(adr, src)
36682 dst = AREGu32((Opcode >> 9) & 7);
36684 AREG((Opcode >> 9) & 7) = res;
36686 #ifdef USE_CYCLONE_TIMING
36700 dst = AREGu32((Opcode >> 9) & 7);
36702 AREG((Opcode >> 9) & 7) = res;
36715 READSX_WORD_F(adr, src)
36716 dst = AREGu32((Opcode >> 9) & 7);
36718 AREG((Opcode >> 9) & 7) = res;
36720 #ifdef USE_CYCLONE_TIMING
36736 READSX_WORD_F(adr, src)
36737 dst = AREGu32((Opcode >> 9) & 7);
36739 AREG((Opcode >> 9) & 7) = res;
36741 #ifdef USE_CYCLONE_TIMING
36754 src = (s32)DREGs32((Opcode >> 0) & 7);
36755 dst = AREGu32((Opcode >> 9) & 7);
36757 AREG((Opcode >> 9) & 7) = res;
36758 #ifdef USE_CYCLONE_TIMING
36771 src = (s32)AREGs32((Opcode >> 0) & 7);
36772 dst = AREGu32((Opcode >> 9) & 7);
36774 AREG((Opcode >> 9) & 7) = res;
36775 #ifdef USE_CYCLONE_TIMING
36788 adr = AREG((Opcode >> 0) & 7);
36790 READSX_LONG_F(adr, src)
36791 dst = AREGu32((Opcode >> 9) & 7);
36793 AREG((Opcode >> 9) & 7) = res;
36804 adr = AREG((Opcode >> 0) & 7);
36805 AREG((Opcode >> 0) & 7) += 4;
36807 READSX_LONG_F(adr, src)
36808 dst = AREGu32((Opcode >> 9) & 7);
36810 AREG((Opcode >> 9) & 7) = res;
36821 adr = AREG((Opcode >> 0) & 7) - 4;
36822 AREG((Opcode >> 0) & 7) = adr;
36824 READSX_LONG_F(adr, src)
36825 dst = AREGu32((Opcode >> 9) & 7);
36827 AREG((Opcode >> 9) & 7) = res;
36839 adr += AREG((Opcode >> 0) & 7);
36841 READSX_LONG_F(adr, src)
36842 dst = AREGu32((Opcode >> 9) & 7);
36844 AREG((Opcode >> 9) & 7) = res;
36855 adr = AREG((Opcode >> 0) & 7);
36858 READSX_LONG_F(adr, src)
36859 dst = AREGu32((Opcode >> 9) & 7);
36861 AREG((Opcode >> 9) & 7) = res;
36874 READSX_LONG_F(adr, src)
36875 dst = AREGu32((Opcode >> 9) & 7);
36877 AREG((Opcode >> 9) & 7) = res;
36890 READSX_LONG_F(adr, src)
36891 dst = AREGu32((Opcode >> 9) & 7);
36893 AREG((Opcode >> 9) & 7) = res;
36904 adr = GET_SWORD + ((u32)(PC) - BasePC);
36907 READSX_LONG_F(adr, src)
36908 dst = AREGu32((Opcode >> 9) & 7);
36910 AREG((Opcode >> 9) & 7) = res;
36921 adr = (u32)(PC) - BasePC;
36924 READSX_LONG_F(adr, src)
36925 dst = AREGu32((Opcode >> 9) & 7);
36927 AREG((Opcode >> 9) & 7) = res;
36939 dst = AREGu32((Opcode >> 9) & 7);
36941 AREG((Opcode >> 9) & 7) = res;
36942 #ifdef USE_CYCLONE_TIMING
36958 READSX_LONG_F(adr, src)
36959 dst = AREGu32((Opcode >> 9) & 7);
36961 AREG((Opcode >> 9) & 7) = res;
36975 READSX_LONG_F(adr, src)
36976 dst = AREGu32((Opcode >> 9) & 7);
36978 AREG((Opcode >> 9) & 7) = res;
36991 sft = (((Opcode >> 9) - 1) & 7) + 1;
36992 m68kcontext.io_cycle_counter -= sft * 2;
36993 src = (s32)DREGs8((Opcode >> 0) & 7);
36995 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
36996 res = ((s32)src) >> sft;
36999 DREGu8((Opcode >> 0) & 7) = res;
37011 sft = (((Opcode >> 9) - 1) & 7) + 1;
37012 m68kcontext.io_cycle_counter -= sft * 2;
37013 src = (s32)DREGs16((Opcode >> 0) & 7);
37015 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37016 res = ((s32)src) >> sft;
37019 DREGu16((Opcode >> 0) & 7) = res;
37031 sft = (((Opcode >> 9) - 1) & 7) + 1;
37032 m68kcontext.io_cycle_counter -= sft * 2;
37033 src = (s32)DREGs32((Opcode >> 0) & 7);
37035 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37036 res = ((s32)src) >> sft;
37037 flag_N = res >> 24;
37039 DREGu32((Opcode >> 0) & 7) = res;
37051 sft = (((Opcode >> 9) - 1) & 7) + 1;
37052 m68kcontext.io_cycle_counter -= sft * 2;
37053 src = DREGu8((Opcode >> 0) & 7);
37054 flag_N = flag_V = 0;
37055 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37058 DREGu8((Opcode >> 0) & 7) = res;
37070 sft = (((Opcode >> 9) - 1) & 7) + 1;
37071 m68kcontext.io_cycle_counter -= sft * 2;
37072 src = DREGu16((Opcode >> 0) & 7);
37073 flag_N = flag_V = 0;
37074 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37077 DREGu16((Opcode >> 0) & 7) = res;
37089 sft = (((Opcode >> 9) - 1) & 7) + 1;
37090 m68kcontext.io_cycle_counter -= sft * 2;
37091 src = DREGu32((Opcode >> 0) & 7);
37092 flag_N = flag_V = 0;
37093 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37096 DREGu32((Opcode >> 0) & 7) = res;
37108 sft = (((Opcode >> 9) - 1) & 7) + 1;
37109 m68kcontext.io_cycle_counter -= sft * 2;
37110 src = DREGu8((Opcode >> 0) & 7);
37111 src |= (flag_X & M68K_SR_X) << 0;
37112 res = (src >> sft) | (src << (9 - sft));
37113 flag_X = flag_C = res >> 0;
37116 flag_NotZ = res & 0x000000FF;
37117 DREGu8((Opcode >> 0) & 7) = res;
37129 sft = (((Opcode >> 9) - 1) & 7) + 1;
37130 m68kcontext.io_cycle_counter -= sft * 2;
37131 src = DREGu16((Opcode >> 0) & 7);
37132 src |= (flag_X & M68K_SR_X) << 8;
37133 res = (src >> sft) | (src << (17 - sft));
37134 flag_X = flag_C = res >> 8;
37137 flag_NotZ = res & 0x0000FFFF;
37138 DREGu16((Opcode >> 0) & 7) = res;
37150 sft = (((Opcode >> 9) - 1) & 7) + 1;
37151 m68kcontext.io_cycle_counter -= sft * 2;
37152 src = DREGu32((Opcode >> 0) & 7);
37153 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37154 if (sft == 1) res = (src >> 1) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1)));
37155 else res = (src >> sft) | (src << (33 - sft)) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + sft)));
37158 flag_N = res >> 24;
37160 DREGu32((Opcode >> 0) & 7) = res;
37172 sft = (((Opcode >> 9) - 1) & 7) + 1;
37173 m68kcontext.io_cycle_counter -= sft * 2;
37174 src = DREGu8((Opcode >> 0) & 7);
37176 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37177 res = (src >> sft) | (src << (8 - sft));
37179 flag_NotZ = res & 0x000000FF;
37180 DREGu8((Opcode >> 0) & 7) = res;
37192 sft = (((Opcode >> 9) - 1) & 7) + 1;
37193 m68kcontext.io_cycle_counter -= sft * 2;
37194 src = DREGu16((Opcode >> 0) & 7);
37196 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37197 res = (src >> sft) | (src << (16 - sft));
37199 flag_NotZ = res & 0x0000FFFF;
37200 DREGu16((Opcode >> 0) & 7) = res;
37212 sft = (((Opcode >> 9) - 1) & 7) + 1;
37213 m68kcontext.io_cycle_counter -= sft * 2;
37214 src = DREGu32((Opcode >> 0) & 7);
37216 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37217 res = (src >> sft) | (src << (32 - sft));
37218 flag_N = res >> 24;
37220 DREGu32((Opcode >> 0) & 7) = res;
37232 sft = (((Opcode >> 9) - 1) & 7) + 1;
37233 m68kcontext.io_cycle_counter -= sft * 2;
37234 src = DREGu8((Opcode >> 0) & 7);
37237 flag_X = flag_C = src << (0 + sft);
37240 flag_NotZ = res & 0x000000FF;
37241 DREGu8((Opcode >> 0) & 7) = res;
37243 if ((sft > 7) && (src)) flag_V = M68K_SR_V;
37246 u32 msk = (((s32)0x80000000) >> (sft + 24)) & 0x000000FF;
37248 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37253 if (src) flag_V = M68K_SR_V;
37255 flag_X = flag_C = src << M68K_SR_C_SFT;
37257 DREGu8((Opcode >> 0) & 7) = res;
37271 sft = (((Opcode >> 9) - 1) & 7) + 1;
37272 m68kcontext.io_cycle_counter -= sft * 2;
37273 src = DREGu16((Opcode >> 0) & 7);
37274 flag_X = flag_C = src >> (8 - sft);
37277 flag_NotZ = res & 0x0000FFFF;
37278 DREGu16((Opcode >> 0) & 7) = res;
37281 u32 msk = (((s32)0x80000000) >> (sft + 16)) & 0x0000FFFF;
37283 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37296 sft = (((Opcode >> 9) - 1) & 7) + 1;
37297 m68kcontext.io_cycle_counter -= sft * 2;
37298 src = DREGu32((Opcode >> 0) & 7);
37299 flag_X = flag_C = src >> (24 - sft);
37301 flag_N = res >> 24;
37302 flag_NotZ = res & 0xFFFFFFFF;
37303 DREGu32((Opcode >> 0) & 7) = res;
37306 u32 msk = (((s32)0x80000000) >> (sft + 0)) & 0xFFFFFFFF;
37308 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37321 sft = (((Opcode >> 9) - 1) & 7) + 1;
37322 m68kcontext.io_cycle_counter -= sft * 2;
37323 src = DREGu8((Opcode >> 0) & 7);
37325 flag_X = flag_C = src << (0 + sft);
37328 flag_NotZ = res & 0x000000FF;
37329 DREGu8((Opcode >> 0) & 7) = res;
37341 sft = (((Opcode >> 9) - 1) & 7) + 1;
37342 m68kcontext.io_cycle_counter -= sft * 2;
37343 src = DREGu16((Opcode >> 0) & 7);
37345 flag_X = flag_C = src >> (8 - sft);
37348 flag_NotZ = res & 0x0000FFFF;
37349 DREGu16((Opcode >> 0) & 7) = res;
37361 sft = (((Opcode >> 9) - 1) & 7) + 1;
37362 m68kcontext.io_cycle_counter -= sft * 2;
37363 src = DREGu32((Opcode >> 0) & 7);
37365 flag_X = flag_C = src >> (24 - sft);
37367 flag_N = res >> 24;
37368 flag_NotZ = res & 0xFFFFFFFF;
37369 DREGu32((Opcode >> 0) & 7) = res;
37381 sft = (((Opcode >> 9) - 1) & 7) + 1;
37382 m68kcontext.io_cycle_counter -= sft * 2;
37383 src = DREGu8((Opcode >> 0) & 7);
37384 src |= (flag_X & M68K_SR_X) << 0;
37385 res = (src << sft) | (src >> (9 - sft));
37386 flag_X = flag_C = res >> 0;
37389 flag_NotZ = res & 0x000000FF;
37390 DREGu8((Opcode >> 0) & 7) = res;
37402 sft = (((Opcode >> 9) - 1) & 7) + 1;
37403 m68kcontext.io_cycle_counter -= sft * 2;
37404 src = DREGu16((Opcode >> 0) & 7);
37405 src |= (flag_X & M68K_SR_X) << 8;
37406 res = (src << sft) | (src >> (17 - sft));
37407 flag_X = flag_C = res >> 8;
37410 flag_NotZ = res & 0x0000FFFF;
37411 DREGu16((Opcode >> 0) & 7) = res;
37423 sft = (((Opcode >> 9) - 1) & 7) + 1;
37424 m68kcontext.io_cycle_counter -= sft * 2;
37425 src = DREGu32((Opcode >> 0) & 7);
37426 flag_C = src >> ((32 - M68K_SR_C_SFT) - sft);
37427 if (sft == 1) res = (src << 1) | ((flag_X & M68K_SR_X) >> ((M68K_SR_X_SFT + 1) - 1));
37428 else res = (src << sft) | (src >> (33 - sft)) | ((flag_X & M68K_SR_X) >> ((M68K_SR_X_SFT + 1) - sft));
37431 flag_N = res >> 24;
37433 DREGu32((Opcode >> 0) & 7) = res;
37445 sft = (((Opcode >> 9) - 1) & 7) + 1;
37446 m68kcontext.io_cycle_counter -= sft * 2;
37447 src = DREGu8((Opcode >> 0) & 7);
37449 flag_C = src << (0 + sft);
37450 res = (src << sft) | (src >> (8 - sft));
37452 flag_NotZ = res & 0x000000FF;
37453 DREGu8((Opcode >> 0) & 7) = res;
37465 sft = (((Opcode >> 9) - 1) & 7) + 1;
37466 m68kcontext.io_cycle_counter -= sft * 2;
37467 src = DREGu16((Opcode >> 0) & 7);
37469 flag_C = src >> (8 - sft);
37470 res = (src << sft) | (src >> (16 - sft));
37472 flag_NotZ = res & 0x0000FFFF;
37473 DREGu16((Opcode >> 0) & 7) = res;
37485 sft = (((Opcode >> 9) - 1) & 7) + 1;
37486 m68kcontext.io_cycle_counter -= sft * 2;
37487 src = DREGu32((Opcode >> 0) & 7);
37489 flag_C = src >> (24 - sft);
37490 res = (src << sft) | (src >> (32 - sft));
37491 flag_N = res >> 24;
37493 DREGu32((Opcode >> 0) & 7) = res;
37505 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37506 src = (s32)DREGs8((Opcode >> 0) & 7);
37509 m68kcontext.io_cycle_counter -= sft * 2;
37513 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37514 res = ((s32)src) >> sft;
37517 DREGu8((Opcode >> 0) & 7) = res;
37521 if (src & (1 << 7))
37523 flag_N = M68K_SR_N;
37526 flag_C = M68K_SR_C;
37527 flag_X = M68K_SR_X;
37529 DREGu8((Opcode >> 0) & 7) = res;
37539 DREGu8((Opcode >> 0) & 7) = res;
37558 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37559 src = (s32)DREGs16((Opcode >> 0) & 7);
37562 m68kcontext.io_cycle_counter -= sft * 2;
37566 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37567 res = ((s32)src) >> sft;
37570 DREGu16((Opcode >> 0) & 7) = res;
37574 if (src & (1 << 15))
37576 flag_N = M68K_SR_N;
37579 flag_C = M68K_SR_C;
37580 flag_X = M68K_SR_X;
37582 DREGu16((Opcode >> 0) & 7) = res;
37592 DREGu16((Opcode >> 0) & 7) = res;
37606 #ifdef USE_CYCLONE_TIMING
37616 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37617 src = (s32)DREGs32((Opcode >> 0) & 7);
37620 m68kcontext.io_cycle_counter -= sft * 2;
37624 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37625 res = ((s32)src) >> sft;
37626 flag_N = res >> 24;
37628 DREGu32((Opcode >> 0) & 7) = res;
37632 if (src & (1 << 31))
37634 flag_N = M68K_SR_N;
37637 flag_C = M68K_SR_C;
37638 flag_X = M68K_SR_X;
37640 DREGu32((Opcode >> 0) & 7) = res;
37650 DREGu32((Opcode >> 0) & 7) = res;
37656 flag_N = src >> 24;
37670 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37671 src = DREGu8((Opcode >> 0) & 7);
37674 m68kcontext.io_cycle_counter -= sft * 2;
37677 flag_N = flag_V = 0;
37678 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37681 DREGu8((Opcode >> 0) & 7) = res;
37685 flag_X = flag_C = 0;
37690 DREGu8((Opcode >> 0) & 7) = res;
37709 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37710 src = DREGu16((Opcode >> 0) & 7);
37713 m68kcontext.io_cycle_counter -= sft * 2;
37716 flag_N = flag_V = 0;
37717 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37720 DREGu16((Opcode >> 0) & 7) = res;
37724 flag_X = flag_C = 0;
37729 DREGu16((Opcode >> 0) & 7) = res;
37743 #ifdef USE_CYCLONE_TIMING
37753 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37754 src = DREGu32((Opcode >> 0) & 7);
37757 m68kcontext.io_cycle_counter -= sft * 2;
37760 flag_N = flag_V = 0;
37761 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37764 DREGu32((Opcode >> 0) & 7) = res;
37768 if (sft == 32) flag_C = src >> (31 - M68K_SR_C_SFT);
37775 DREGu32((Opcode >> 0) & 7) = res;
37781 flag_N = src >> 24;
37795 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37796 src = DREGu8((Opcode >> 0) & 7);
37799 m68kcontext.io_cycle_counter -= sft * 2;
37802 src |= (flag_X & M68K_SR_X) << 0;
37803 res = (src >> sft) | (src << (9 - sft));
37804 flag_X = flag_C = res >> 0;
37807 flag_NotZ = res & 0x000000FF;
37808 DREGu8((Opcode >> 0) & 7) = res;
37827 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37828 src = DREGu16((Opcode >> 0) & 7);
37831 m68kcontext.io_cycle_counter -= sft * 2;
37834 src |= (flag_X & M68K_SR_X) << 8;
37835 res = (src >> sft) | (src << (17 - sft));
37836 flag_X = flag_C = res >> 8;
37839 flag_NotZ = res & 0x0000FFFF;
37840 DREGu16((Opcode >> 0) & 7) = res;
37854 #ifdef USE_CYCLONE_TIMING
37864 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37865 src = DREGu32((Opcode >> 0) & 7);
37868 m68kcontext.io_cycle_counter -= sft * 2;
37873 if (sft == 1) res = (src >> 1) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1)));
37874 else res = (src >> sft) | (src << (33 - sft)) | (((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1))) >> (sft - 1));
37875 flag_X = (src >> (32 - sft)) << M68K_SR_X_SFT;
37880 flag_N = res >> 24;
37882 DREGu32((Opcode >> 0) & 7) = res;
37888 flag_N = src >> 24;
37902 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37903 src = DREGu8((Opcode >> 0) & 7);
37906 m68kcontext.io_cycle_counter -= sft * 2;
37909 flag_C = src << (M68K_SR_C_SFT - ((sft - 1) & 7));
37910 res = (src >> sft) | (src << (8 - sft));
37913 flag_NotZ = res & 0x000000FF;
37914 DREGu8((Opcode >> 0) & 7) = res;
37933 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37934 src = DREGu16((Opcode >> 0) & 7);
37937 m68kcontext.io_cycle_counter -= sft * 2;
37940 flag_C = (src >> ((sft - 1) & 15)) << M68K_SR_C_SFT;
37941 res = (src >> sft) | (src << (16 - sft));
37944 flag_NotZ = res & 0x0000FFFF;
37945 DREGu16((Opcode >> 0) & 7) = res;
37959 #ifdef USE_CYCLONE_TIMING
37969 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37970 src = DREGu32((Opcode >> 0) & 7);
37973 m68kcontext.io_cycle_counter -= sft * 2;
37976 flag_C = (src >> ((sft - 1) & 31)) << M68K_SR_C_SFT;
37977 res = (src >> sft) | (src << (32 - sft));
37979 flag_N = res >> 24;
37981 DREGu32((Opcode >> 0) & 7) = res;
37987 flag_N = src >> 24;
38001 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38002 src = DREGu8((Opcode >> 0) & 7);
38005 m68kcontext.io_cycle_counter -= sft * 2;
38008 flag_X = flag_C = (src << sft) >> 0;
38009 res = (src << sft) & 0x000000FF;
38012 DREGu8((Opcode >> 0) & 7) = res;
38015 u32 msk = (((s32)0x80000000) >> (sft + 24)) & 0x000000FF;
38017 if ((src) && (src != msk)) flag_V = M68K_SR_V;
38022 if (sft == 256) flag_C = src << M68K_SR_C_SFT;
38025 if (src) flag_V = M68K_SR_V;
38028 DREGu8((Opcode >> 0) & 7) = res;
38049 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38050 src = DREGu16((Opcode >> 0) & 7);
38053 m68kcontext.io_cycle_counter -= sft * 2;
38056 flag_X = flag_C = (src << sft) >> 8;
38057 res = (src << sft) & 0x0000FFFF;
38060 DREGu16((Opcode >> 0) & 7) = res;
38063 u32 msk = (((s32)0x80000000) >> (sft + 16)) & 0x0000FFFF;
38065 if ((src) && (src != msk)) flag_V = M68K_SR_V;
38070 if (sft == 65536) flag_C = src << M68K_SR_C_SFT;
38073 if (src) flag_V = M68K_SR_V;
38076 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_X = flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38111 flag_N = res >> 24;
38113 DREGu32((Opcode >> 0) & 7) = res;
38116 u32 msk = (((s32)0x80000000) >> (sft + 0)) & 0xFFFFFFFF;
38118 if ((src) && (src != msk)) flag_V = M68K_SR_V;
38123 if (sft == 0) flag_C = src << M68K_SR_C_SFT;
38126 if (src) flag_V = M68K_SR_V;
38129 DREGu32((Opcode >> 0) & 7) = res;
38137 flag_N = src >> 24;
38151 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38152 src = DREGu8((Opcode >> 0) & 7);
38155 m68kcontext.io_cycle_counter -= sft * 2;
38158 flag_X = flag_C = (src << sft) >> 0;
38159 res = (src << sft) & 0x000000FF;
38163 DREGu8((Opcode >> 0) & 7) = res;
38167 flag_X = flag_C = 0;
38172 DREGu8((Opcode >> 0) & 7) = res;
38191 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38192 src = DREGu16((Opcode >> 0) & 7);
38195 m68kcontext.io_cycle_counter -= sft * 2;
38198 flag_X = flag_C = (src << sft) >> 8;
38199 res = (src << sft) & 0x0000FFFF;
38203 DREGu16((Opcode >> 0) & 7) = res;
38207 flag_X = flag_C = 0;
38212 DREGu16((Opcode >> 0) & 7) = res;
38226 #ifdef USE_CYCLONE_TIMING
38236 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38237 src = DREGu32((Opcode >> 0) & 7);
38240 m68kcontext.io_cycle_counter -= sft * 2;
38243 flag_X = flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38246 flag_N = res >> 24;
38248 DREGu32((Opcode >> 0) & 7) = res;
38252 if (sft == 32) flag_C = src << M68K_SR_C_SFT;
38259 DREGu32((Opcode >> 0) & 7) = res;
38265 flag_N = src >> 24;
38279 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38280 src = DREGu8((Opcode >> 0) & 7);
38283 m68kcontext.io_cycle_counter -= sft * 2;
38286 src |= (flag_X & M68K_SR_X) << 0;
38287 res = (src << sft) | (src >> (9 - sft));
38288 flag_X = flag_C = res >> 0;
38291 flag_NotZ = res & 0x000000FF;
38292 DREGu8((Opcode >> 0) & 7) = res;
38311 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38312 src = DREGu16((Opcode >> 0) & 7);
38315 m68kcontext.io_cycle_counter -= sft * 2;
38318 src |= (flag_X & M68K_SR_X) << 8;
38319 res = (src << sft) | (src >> (17 - sft));
38320 flag_X = flag_C = res >> 8;
38323 flag_NotZ = res & 0x0000FFFF;
38324 DREGu16((Opcode >> 0) & 7) = res;
38338 #ifdef USE_CYCLONE_TIMING
38348 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38349 src = DREGu32((Opcode >> 0) & 7);
38352 m68kcontext.io_cycle_counter -= sft * 2;
38357 if (sft == 1) res = (src << 1) | ((flag_X >> ((M68K_SR_X_SFT + 1) - 1)) & 1);
38358 else res = (src << sft) | (src >> (33 - sft)) | (((flag_X >> ((M68K_SR_X_SFT + 1) - 1)) & 1) << (sft - 1));
38359 flag_X = (src >> (32 - sft)) << M68K_SR_X_SFT;
38364 flag_N = res >> 24;
38366 DREGu32((Opcode >> 0) & 7) = res;
38372 flag_N = src >> 24;
38386 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38387 src = DREGu8((Opcode >> 0) & 7);
38390 m68kcontext.io_cycle_counter -= sft * 2;
38393 flag_C = (src << sft) >> 0;
38394 res = ((src << sft) | (src >> (8 - sft))) & 0x000000FF;
38398 DREGu8((Opcode >> 0) & 7) = res;
38403 flag_C = src << M68K_SR_C_SFT;
38424 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38425 src = DREGu16((Opcode >> 0) & 7);
38428 m68kcontext.io_cycle_counter -= sft * 2;
38431 flag_C = (src << sft) >> 8;
38432 res = ((src << sft) | (src >> (16 - sft))) & 0x0000FFFF;
38436 DREGu16((Opcode >> 0) & 7) = res;
38441 flag_C = src << M68K_SR_C_SFT;
38457 #ifdef USE_CYCLONE_TIMING
38467 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38468 src = DREGu32((Opcode >> 0) & 7);
38471 m68kcontext.io_cycle_counter -= sft * 2;
38474 flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38475 res = (src << sft) | (src >> (32 - sft));
38477 flag_N = res >> 24;
38479 DREGu32((Opcode >> 0) & 7) = res;
38484 flag_C = src << M68K_SR_C_SFT;
38485 flag_N = src >> 24;
38492 flag_N = src >> 24;
38504 adr = AREG((Opcode >> 0) & 7);
38506 READ_WORD_F(adr, src)
38508 flag_X = flag_C = src << M68K_SR_C_SFT;
38509 res = (src >> 1) | (src & (1 << 15));
38512 WRITE_WORD_F(adr, res)
38523 adr = AREG((Opcode >> 0) & 7);
38524 AREG((Opcode >> 0) & 7) += 2;
38526 READ_WORD_F(adr, src)
38528 flag_X = flag_C = src << M68K_SR_C_SFT;
38529 res = (src >> 1) | (src & (1 << 15));
38532 WRITE_WORD_F(adr, res)
38543 adr = AREG((Opcode >> 0) & 7) - 2;
38544 AREG((Opcode >> 0) & 7) = adr;
38546 READ_WORD_F(adr, src)
38548 flag_X = flag_C = src << M68K_SR_C_SFT;
38549 res = (src >> 1) | (src & (1 << 15));
38552 WRITE_WORD_F(adr, res)
38564 adr += AREG((Opcode >> 0) & 7);
38566 READ_WORD_F(adr, src)
38568 flag_X = flag_C = src << M68K_SR_C_SFT;
38569 res = (src >> 1) | (src & (1 << 15));
38572 WRITE_WORD_F(adr, res)
38583 adr = AREG((Opcode >> 0) & 7);
38586 READ_WORD_F(adr, src)
38588 flag_X = flag_C = src << M68K_SR_C_SFT;
38589 res = (src >> 1) | (src & (1 << 15));
38592 WRITE_WORD_F(adr, res)
38605 READ_WORD_F(adr, src)
38607 flag_X = flag_C = src << M68K_SR_C_SFT;
38608 res = (src >> 1) | (src & (1 << 15));
38611 WRITE_WORD_F(adr, res)
38624 READ_WORD_F(adr, src)
38626 flag_X = flag_C = src << M68K_SR_C_SFT;
38627 res = (src >> 1) | (src & (1 << 15));
38630 WRITE_WORD_F(adr, res)
38644 READ_WORD_F(adr, src)
38646 flag_X = flag_C = src << M68K_SR_C_SFT;
38647 res = (src >> 1) | (src & (1 << 15));
38650 WRITE_WORD_F(adr, res)
38664 READ_WORD_F(adr, src)
38666 flag_X = flag_C = src << M68K_SR_C_SFT;
38667 res = (src >> 1) | (src & (1 << 15));
38670 WRITE_WORD_F(adr, res)
38681 adr = AREG((Opcode >> 0) & 7);
38683 READ_WORD_F(adr, src)
38684 flag_N = flag_V = 0;
38685 flag_X = flag_C = src << M68K_SR_C_SFT;
38688 WRITE_WORD_F(adr, res)
38699 adr = AREG((Opcode >> 0) & 7);
38700 AREG((Opcode >> 0) & 7) += 2;
38702 READ_WORD_F(adr, src)
38703 flag_N = flag_V = 0;
38704 flag_X = flag_C = src << M68K_SR_C_SFT;
38707 WRITE_WORD_F(adr, res)
38718 adr = AREG((Opcode >> 0) & 7) - 2;
38719 AREG((Opcode >> 0) & 7) = adr;
38721 READ_WORD_F(adr, src)
38722 flag_N = flag_V = 0;
38723 flag_X = flag_C = src << M68K_SR_C_SFT;
38726 WRITE_WORD_F(adr, res)
38738 adr += AREG((Opcode >> 0) & 7);
38740 READ_WORD_F(adr, src)
38741 flag_N = flag_V = 0;
38742 flag_X = flag_C = src << M68K_SR_C_SFT;
38745 WRITE_WORD_F(adr, res)
38756 adr = AREG((Opcode >> 0) & 7);
38759 READ_WORD_F(adr, src)
38760 flag_N = flag_V = 0;
38761 flag_X = flag_C = src << M68K_SR_C_SFT;
38764 WRITE_WORD_F(adr, res)
38777 READ_WORD_F(adr, src)
38778 flag_N = flag_V = 0;
38779 flag_X = flag_C = src << M68K_SR_C_SFT;
38782 WRITE_WORD_F(adr, res)
38795 READ_WORD_F(adr, src)
38796 flag_N = flag_V = 0;
38797 flag_X = flag_C = src << M68K_SR_C_SFT;
38800 WRITE_WORD_F(adr, res)
38814 READ_WORD_F(adr, src)
38815 flag_N = flag_V = 0;
38816 flag_X = flag_C = src << M68K_SR_C_SFT;
38819 WRITE_WORD_F(adr, res)
38833 READ_WORD_F(adr, src)
38834 flag_N = flag_V = 0;
38835 flag_X = flag_C = src << M68K_SR_C_SFT;
38838 WRITE_WORD_F(adr, res)
38849 adr = AREG((Opcode >> 0) & 7);
38851 READ_WORD_F(adr, src)
38853 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38854 flag_C = flag_X = src << M68K_SR_C_SFT;
38857 WRITE_WORD_F(adr, res)
38868 adr = AREG((Opcode >> 0) & 7);
38869 AREG((Opcode >> 0) & 7) += 2;
38871 READ_WORD_F(adr, src)
38873 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38874 flag_C = flag_X = src << M68K_SR_C_SFT;
38877 WRITE_WORD_F(adr, res)
38888 adr = AREG((Opcode >> 0) & 7) - 2;
38889 AREG((Opcode >> 0) & 7) = adr;
38891 READ_WORD_F(adr, src)
38893 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38894 flag_C = flag_X = src << M68K_SR_C_SFT;
38897 WRITE_WORD_F(adr, res)
38909 adr += AREG((Opcode >> 0) & 7);
38911 READ_WORD_F(adr, src)
38913 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38914 flag_C = flag_X = src << M68K_SR_C_SFT;
38917 WRITE_WORD_F(adr, res)
38928 adr = AREG((Opcode >> 0) & 7);
38931 READ_WORD_F(adr, src)
38933 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38934 flag_C = flag_X = src << M68K_SR_C_SFT;
38937 WRITE_WORD_F(adr, res)
38950 READ_WORD_F(adr, src)
38952 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38953 flag_C = flag_X = src << M68K_SR_C_SFT;
38956 WRITE_WORD_F(adr, res)
38969 READ_WORD_F(adr, src)
38971 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38972 flag_C = flag_X = src << M68K_SR_C_SFT;
38975 WRITE_WORD_F(adr, res)
38989 READ_WORD_F(adr, src)
38991 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38992 flag_C = flag_X = src << M68K_SR_C_SFT;
38995 WRITE_WORD_F(adr, res)
39009 READ_WORD_F(adr, src)
39011 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39012 flag_C = flag_X = src << M68K_SR_C_SFT;
39015 WRITE_WORD_F(adr, res)
39026 adr = AREG((Opcode >> 0) & 7);
39028 READ_WORD_F(adr, src)
39030 flag_C = src << M68K_SR_C_SFT;
39031 res = (src >> 1) | (src << 15);
39033 flag_NotZ = res & 0x0000FFFF;
39034 WRITE_WORD_F(adr, res)
39045 adr = AREG((Opcode >> 0) & 7);
39046 AREG((Opcode >> 0) & 7) += 2;
39048 READ_WORD_F(adr, src)
39050 flag_C = src << M68K_SR_C_SFT;
39051 res = (src >> 1) | (src << 15);
39053 flag_NotZ = res & 0x0000FFFF;
39054 WRITE_WORD_F(adr, res)
39065 adr = AREG((Opcode >> 0) & 7) - 2;
39066 AREG((Opcode >> 0) & 7) = adr;
39068 READ_WORD_F(adr, src)
39070 flag_C = src << M68K_SR_C_SFT;
39071 res = (src >> 1) | (src << 15);
39073 flag_NotZ = res & 0x0000FFFF;
39074 WRITE_WORD_F(adr, res)
39086 adr += AREG((Opcode >> 0) & 7);
39088 READ_WORD_F(adr, src)
39090 flag_C = src << M68K_SR_C_SFT;
39091 res = (src >> 1) | (src << 15);
39093 flag_NotZ = res & 0x0000FFFF;
39094 WRITE_WORD_F(adr, res)
39105 adr = AREG((Opcode >> 0) & 7);
39108 READ_WORD_F(adr, src)
39110 flag_C = src << M68K_SR_C_SFT;
39111 res = (src >> 1) | (src << 15);
39113 flag_NotZ = res & 0x0000FFFF;
39114 WRITE_WORD_F(adr, res)
39127 READ_WORD_F(adr, src)
39129 flag_C = src << M68K_SR_C_SFT;
39130 res = (src >> 1) | (src << 15);
39132 flag_NotZ = res & 0x0000FFFF;
39133 WRITE_WORD_F(adr, res)
39146 READ_WORD_F(adr, src)
39148 flag_C = src << M68K_SR_C_SFT;
39149 res = (src >> 1) | (src << 15);
39151 flag_NotZ = res & 0x0000FFFF;
39152 WRITE_WORD_F(adr, res)
39166 READ_WORD_F(adr, src)
39168 flag_C = src << M68K_SR_C_SFT;
39169 res = (src >> 1) | (src << 15);
39171 flag_NotZ = res & 0x0000FFFF;
39172 WRITE_WORD_F(adr, res)
39186 READ_WORD_F(adr, src)
39188 flag_C = src << M68K_SR_C_SFT;
39189 res = (src >> 1) | (src << 15);
39191 flag_NotZ = res & 0x0000FFFF;
39192 WRITE_WORD_F(adr, res)
39203 adr = AREG((Opcode >> 0) & 7);
39205 READ_WORD_F(adr, src)
39206 flag_X = flag_C = src >> 7;
39208 flag_V = (src ^ res) >> 8;
39210 flag_NotZ = res & 0x0000FFFF;
39211 WRITE_WORD_F(adr, res)
39222 adr = AREG((Opcode >> 0) & 7);
39223 AREG((Opcode >> 0) & 7) += 2;
39225 READ_WORD_F(adr, src)
39226 flag_X = flag_C = src >> 7;
39228 flag_V = (src ^ res) >> 8;
39230 flag_NotZ = res & 0x0000FFFF;
39231 WRITE_WORD_F(adr, res)
39242 adr = AREG((Opcode >> 0) & 7) - 2;
39243 AREG((Opcode >> 0) & 7) = adr;
39245 READ_WORD_F(adr, src)
39246 flag_X = flag_C = src >> 7;
39248 flag_V = (src ^ res) >> 8;
39250 flag_NotZ = res & 0x0000FFFF;
39251 WRITE_WORD_F(adr, res)
39263 adr += AREG((Opcode >> 0) & 7);
39265 READ_WORD_F(adr, src)
39266 flag_X = flag_C = src >> 7;
39268 flag_V = (src ^ res) >> 8;
39270 flag_NotZ = res & 0x0000FFFF;
39271 WRITE_WORD_F(adr, res)
39282 adr = AREG((Opcode >> 0) & 7);
39285 READ_WORD_F(adr, src)
39286 flag_X = flag_C = src >> 7;
39288 flag_V = (src ^ res) >> 8;
39290 flag_NotZ = res & 0x0000FFFF;
39291 WRITE_WORD_F(adr, res)
39304 READ_WORD_F(adr, src)
39305 flag_X = flag_C = src >> 7;
39307 flag_V = (src ^ res) >> 8;
39309 flag_NotZ = res & 0x0000FFFF;
39310 WRITE_WORD_F(adr, res)
39323 READ_WORD_F(adr, src)
39324 flag_X = flag_C = src >> 7;
39326 flag_V = (src ^ res) >> 8;
39328 flag_NotZ = res & 0x0000FFFF;
39329 WRITE_WORD_F(adr, res)
39343 READ_WORD_F(adr, src)
39344 flag_X = flag_C = src >> 7;
39346 flag_V = (src ^ res) >> 8;
39348 flag_NotZ = res & 0x0000FFFF;
39349 WRITE_WORD_F(adr, res)
39363 READ_WORD_F(adr, src)
39364 flag_X = flag_C = src >> 7;
39366 flag_V = (src ^ res) >> 8;
39368 flag_NotZ = res & 0x0000FFFF;
39369 WRITE_WORD_F(adr, res)
39380 adr = AREG((Opcode >> 0) & 7);
39382 READ_WORD_F(adr, src)
39384 flag_X = flag_C = src >> 7;
39387 flag_NotZ = res & 0x0000FFFF;
39388 WRITE_WORD_F(adr, res)
39399 adr = AREG((Opcode >> 0) & 7);
39400 AREG((Opcode >> 0) & 7) += 2;
39402 READ_WORD_F(adr, src)
39404 flag_X = flag_C = src >> 7;
39407 flag_NotZ = res & 0x0000FFFF;
39408 WRITE_WORD_F(adr, res)
39419 adr = AREG((Opcode >> 0) & 7) - 2;
39420 AREG((Opcode >> 0) & 7) = adr;
39422 READ_WORD_F(adr, src)
39424 flag_X = flag_C = src >> 7;
39427 flag_NotZ = res & 0x0000FFFF;
39428 WRITE_WORD_F(adr, res)
39440 adr += AREG((Opcode >> 0) & 7);
39442 READ_WORD_F(adr, src)
39444 flag_X = flag_C = src >> 7;
39447 flag_NotZ = res & 0x0000FFFF;
39448 WRITE_WORD_F(adr, res)
39459 adr = AREG((Opcode >> 0) & 7);
39462 READ_WORD_F(adr, src)
39464 flag_X = flag_C = src >> 7;
39467 flag_NotZ = res & 0x0000FFFF;
39468 WRITE_WORD_F(adr, res)
39481 READ_WORD_F(adr, src)
39483 flag_X = flag_C = src >> 7;
39486 flag_NotZ = res & 0x0000FFFF;
39487 WRITE_WORD_F(adr, res)
39500 READ_WORD_F(adr, src)
39502 flag_X = flag_C = src >> 7;
39505 flag_NotZ = res & 0x0000FFFF;
39506 WRITE_WORD_F(adr, res)
39520 READ_WORD_F(adr, src)
39522 flag_X = flag_C = src >> 7;
39525 flag_NotZ = res & 0x0000FFFF;
39526 WRITE_WORD_F(adr, res)
39540 READ_WORD_F(adr, src)
39542 flag_X = flag_C = src >> 7;
39545 flag_NotZ = res & 0x0000FFFF;
39546 WRITE_WORD_F(adr, res)
39557 adr = AREG((Opcode >> 0) & 7);
39559 READ_WORD_F(adr, src)
39561 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39562 flag_X = flag_C = src >> 7;
39564 flag_NotZ = res & 0x0000FFFF;
39565 WRITE_WORD_F(adr, res)
39576 adr = AREG((Opcode >> 0) & 7);
39577 AREG((Opcode >> 0) & 7) += 2;
39579 READ_WORD_F(adr, src)
39581 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39582 flag_X = flag_C = src >> 7;
39584 flag_NotZ = res & 0x0000FFFF;
39585 WRITE_WORD_F(adr, res)
39596 adr = AREG((Opcode >> 0) & 7) - 2;
39597 AREG((Opcode >> 0) & 7) = adr;
39599 READ_WORD_F(adr, src)
39601 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39602 flag_X = flag_C = src >> 7;
39604 flag_NotZ = res & 0x0000FFFF;
39605 WRITE_WORD_F(adr, res)
39617 adr += AREG((Opcode >> 0) & 7);
39619 READ_WORD_F(adr, src)
39621 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39622 flag_X = flag_C = src >> 7;
39624 flag_NotZ = res & 0x0000FFFF;
39625 WRITE_WORD_F(adr, res)
39636 adr = AREG((Opcode >> 0) & 7);
39639 READ_WORD_F(adr, src)
39641 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39642 flag_X = flag_C = src >> 7;
39644 flag_NotZ = res & 0x0000FFFF;
39645 WRITE_WORD_F(adr, res)
39658 READ_WORD_F(adr, src)
39660 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39661 flag_X = flag_C = src >> 7;
39663 flag_NotZ = res & 0x0000FFFF;
39664 WRITE_WORD_F(adr, res)
39677 READ_WORD_F(adr, src)
39679 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39680 flag_X = flag_C = src >> 7;
39682 flag_NotZ = res & 0x0000FFFF;
39683 WRITE_WORD_F(adr, res)
39697 READ_WORD_F(adr, src)
39699 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39700 flag_X = flag_C = src >> 7;
39702 flag_NotZ = res & 0x0000FFFF;
39703 WRITE_WORD_F(adr, res)
39717 READ_WORD_F(adr, src)
39719 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39720 flag_X = flag_C = src >> 7;
39722 flag_NotZ = res & 0x0000FFFF;
39723 WRITE_WORD_F(adr, res)
39734 adr = AREG((Opcode >> 0) & 7);
39736 READ_WORD_F(adr, src)
39739 res = (src << 1) | (src >> 15);
39741 flag_NotZ = res & 0x0000FFFF;
39742 WRITE_WORD_F(adr, res)
39753 adr = AREG((Opcode >> 0) & 7);
39754 AREG((Opcode >> 0) & 7) += 2;
39756 READ_WORD_F(adr, src)
39759 res = (src << 1) | (src >> 15);
39761 flag_NotZ = res & 0x0000FFFF;
39762 WRITE_WORD_F(adr, res)
39773 adr = AREG((Opcode >> 0) & 7) - 2;
39774 AREG((Opcode >> 0) & 7) = adr;
39776 READ_WORD_F(adr, src)
39779 res = (src << 1) | (src >> 15);
39781 flag_NotZ = res & 0x0000FFFF;
39782 WRITE_WORD_F(adr, res)
39794 adr += AREG((Opcode >> 0) & 7);
39796 READ_WORD_F(adr, src)
39799 res = (src << 1) | (src >> 15);
39801 flag_NotZ = res & 0x0000FFFF;
39802 WRITE_WORD_F(adr, res)
39813 adr = AREG((Opcode >> 0) & 7);
39816 READ_WORD_F(adr, src)
39819 res = (src << 1) | (src >> 15);
39821 flag_NotZ = res & 0x0000FFFF;
39822 WRITE_WORD_F(adr, res)
39835 READ_WORD_F(adr, src)
39838 res = (src << 1) | (src >> 15);
39840 flag_NotZ = res & 0x0000FFFF;
39841 WRITE_WORD_F(adr, res)
39854 READ_WORD_F(adr, src)
39857 res = (src << 1) | (src >> 15);
39859 flag_NotZ = res & 0x0000FFFF;
39860 WRITE_WORD_F(adr, res)
39874 READ_WORD_F(adr, src)
39877 res = (src << 1) | (src >> 15);
39879 flag_NotZ = res & 0x0000FFFF;
39880 WRITE_WORD_F(adr, res)
39894 READ_WORD_F(adr, src)
39897 res = (src << 1) | (src >> 15);
39899 flag_NotZ = res & 0x0000FFFF;
39900 WRITE_WORD_F(adr, res)