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;
30058 adr = AREG((Opcode >> 0) & 7);
30059 AREG((Opcode >> 0) & 7) += 2;
30061 READSX_WORD_F(adr, src)
30062 dst = AREGu32((Opcode >> 9) & 7);
30064 AREG((Opcode >> 9) & 7) = res;
30075 adr = AREG((Opcode >> 0) & 7) - 2;
30076 AREG((Opcode >> 0) & 7) = adr;
30078 READSX_WORD_F(adr, src)
30079 dst = AREGu32((Opcode >> 9) & 7);
30081 AREG((Opcode >> 9) & 7) = res;
30093 adr += AREG((Opcode >> 0) & 7);
30095 READSX_WORD_F(adr, src)
30096 dst = AREGu32((Opcode >> 9) & 7);
30098 AREG((Opcode >> 9) & 7) = res;
30109 adr = AREG((Opcode >> 0) & 7);
30112 READSX_WORD_F(adr, src)
30113 dst = AREGu32((Opcode >> 9) & 7);
30115 AREG((Opcode >> 9) & 7) = res;
30128 READSX_WORD_F(adr, src)
30129 dst = AREGu32((Opcode >> 9) & 7);
30131 AREG((Opcode >> 9) & 7) = res;
30144 READSX_WORD_F(adr, src)
30145 dst = AREGu32((Opcode >> 9) & 7);
30147 AREG((Opcode >> 9) & 7) = res;
30158 adr = GET_SWORD + ((u32)(PC) - BasePC);
30161 READSX_WORD_F(adr, src)
30162 dst = AREGu32((Opcode >> 9) & 7);
30164 AREG((Opcode >> 9) & 7) = res;
30175 adr = (u32)(PC) - BasePC;
30178 READSX_WORD_F(adr, src)
30179 dst = AREGu32((Opcode >> 9) & 7);
30181 AREG((Opcode >> 9) & 7) = res;
30193 dst = AREGu32((Opcode >> 9) & 7);
30195 AREG((Opcode >> 9) & 7) = res;
30208 READSX_WORD_F(adr, src)
30209 dst = AREGu32((Opcode >> 9) & 7);
30211 AREG((Opcode >> 9) & 7) = res;
30225 READSX_WORD_F(adr, src)
30226 dst = AREGu32((Opcode >> 9) & 7);
30228 AREG((Opcode >> 9) & 7) = res;
30239 src = (s32)DREGs32((Opcode >> 0) & 7);
30240 dst = AREGu32((Opcode >> 9) & 7);
30242 AREG((Opcode >> 9) & 7) = res;
30243 #ifdef USE_CYCLONE_TIMING
30256 src = (s32)AREGs32((Opcode >> 0) & 7);
30257 dst = AREGu32((Opcode >> 9) & 7);
30259 AREG((Opcode >> 9) & 7) = res;
30260 #ifdef USE_CYCLONE_TIMING
30273 adr = AREG((Opcode >> 0) & 7);
30275 READSX_LONG_F(adr, src)
30276 dst = AREGu32((Opcode >> 9) & 7);
30278 AREG((Opcode >> 9) & 7) = res;
30289 adr = AREG((Opcode >> 0) & 7);
30290 AREG((Opcode >> 0) & 7) += 4;
30292 READSX_LONG_F(adr, src)
30293 dst = AREGu32((Opcode >> 9) & 7);
30295 AREG((Opcode >> 9) & 7) = res;
30306 adr = AREG((Opcode >> 0) & 7) - 4;
30307 AREG((Opcode >> 0) & 7) = adr;
30309 READSX_LONG_F(adr, src)
30310 dst = AREGu32((Opcode >> 9) & 7);
30312 AREG((Opcode >> 9) & 7) = res;
30324 adr += AREG((Opcode >> 0) & 7);
30326 READSX_LONG_F(adr, src)
30327 dst = AREGu32((Opcode >> 9) & 7);
30329 AREG((Opcode >> 9) & 7) = res;
30340 adr = AREG((Opcode >> 0) & 7);
30343 READSX_LONG_F(adr, src)
30344 dst = AREGu32((Opcode >> 9) & 7);
30346 AREG((Opcode >> 9) & 7) = res;
30359 READSX_LONG_F(adr, src)
30360 dst = AREGu32((Opcode >> 9) & 7);
30362 AREG((Opcode >> 9) & 7) = res;
30375 READSX_LONG_F(adr, src)
30376 dst = AREGu32((Opcode >> 9) & 7);
30378 AREG((Opcode >> 9) & 7) = res;
30389 adr = GET_SWORD + ((u32)(PC) - BasePC);
30392 READSX_LONG_F(adr, src)
30393 dst = AREGu32((Opcode >> 9) & 7);
30395 AREG((Opcode >> 9) & 7) = res;
30406 adr = (u32)(PC) - BasePC;
30409 READSX_LONG_F(adr, src)
30410 dst = AREGu32((Opcode >> 9) & 7);
30412 AREG((Opcode >> 9) & 7) = res;
30424 dst = AREGu32((Opcode >> 9) & 7);
30426 AREG((Opcode >> 9) & 7) = res;
30427 #ifdef USE_CYCLONE_TIMING
30443 READSX_LONG_F(adr, src)
30444 dst = AREGu32((Opcode >> 9) & 7);
30446 AREG((Opcode >> 9) & 7) = res;
30460 READSX_LONG_F(adr, src)
30461 dst = AREGu32((Opcode >> 9) & 7);
30463 AREG((Opcode >> 9) & 7) = res;
30474 src = DREGu8((Opcode >> 0) & 7);
30475 dst = DREGu8((Opcode >> 9) & 7);
30477 flag_N = flag_C = res;
30478 flag_V = (src ^ dst) & (res ^ dst);
30479 flag_NotZ = res & 0xFF;
30490 // can't read byte from Ax registers !
30491 m68kcontext.execinfo |= M68K_FAULTED;
30492 m68kcontext.io_cycle_counter = 0;
30494 goto famec_Exec_End;
30495 dst = DREGu8((Opcode >> 9) & 7);
30497 flag_N = flag_C = res;
30498 flag_V = (src ^ dst) & (res ^ dst);
30499 flag_NotZ = res & 0xFF;
30511 adr = AREG((Opcode >> 0) & 7);
30513 READ_BYTE_F(adr, src)
30514 dst = DREGu8((Opcode >> 9) & 7);
30516 flag_N = flag_C = res;
30517 flag_V = (src ^ dst) & (res ^ dst);
30518 flag_NotZ = res & 0xFF;
30529 adr = AREG((Opcode >> 0) & 7);
30530 AREG((Opcode >> 0) & 7) += 1;
30532 READ_BYTE_F(adr, src)
30533 dst = DREGu8((Opcode >> 9) & 7);
30535 flag_N = flag_C = res;
30536 flag_V = (src ^ dst) & (res ^ dst);
30537 flag_NotZ = res & 0xFF;
30548 adr = AREG((Opcode >> 0) & 7) - 1;
30549 AREG((Opcode >> 0) & 7) = adr;
30551 READ_BYTE_F(adr, src)
30552 dst = DREGu8((Opcode >> 9) & 7);
30554 flag_N = flag_C = res;
30555 flag_V = (src ^ dst) & (res ^ dst);
30556 flag_NotZ = res & 0xFF;
30568 adr += AREG((Opcode >> 0) & 7);
30570 READ_BYTE_F(adr, src)
30571 dst = DREGu8((Opcode >> 9) & 7);
30573 flag_N = flag_C = res;
30574 flag_V = (src ^ dst) & (res ^ dst);
30575 flag_NotZ = res & 0xFF;
30586 adr = AREG((Opcode >> 0) & 7);
30589 READ_BYTE_F(adr, src)
30590 dst = DREGu8((Opcode >> 9) & 7);
30592 flag_N = flag_C = res;
30593 flag_V = (src ^ dst) & (res ^ dst);
30594 flag_NotZ = res & 0xFF;
30607 READ_BYTE_F(adr, src)
30608 dst = DREGu8((Opcode >> 9) & 7);
30610 flag_N = flag_C = res;
30611 flag_V = (src ^ dst) & (res ^ dst);
30612 flag_NotZ = res & 0xFF;
30625 READ_BYTE_F(adr, src)
30626 dst = DREGu8((Opcode >> 9) & 7);
30628 flag_N = flag_C = res;
30629 flag_V = (src ^ dst) & (res ^ dst);
30630 flag_NotZ = res & 0xFF;
30641 adr = GET_SWORD + ((u32)(PC) - BasePC);
30644 READ_BYTE_F(adr, src)
30645 dst = DREGu8((Opcode >> 9) & 7);
30647 flag_N = flag_C = res;
30648 flag_V = (src ^ dst) & (res ^ dst);
30649 flag_NotZ = res & 0xFF;
30660 adr = (u32)(PC) - BasePC;
30663 READ_BYTE_F(adr, src)
30664 dst = DREGu8((Opcode >> 9) & 7);
30666 flag_N = flag_C = res;
30667 flag_V = (src ^ dst) & (res ^ dst);
30668 flag_NotZ = res & 0xFF;
30680 dst = DREGu8((Opcode >> 9) & 7);
30682 flag_N = flag_C = res;
30683 flag_V = (src ^ dst) & (res ^ dst);
30684 flag_NotZ = res & 0xFF;
30697 READ_BYTE_F(adr, src)
30698 dst = DREGu8((Opcode >> 9) & 7);
30700 flag_N = flag_C = res;
30701 flag_V = (src ^ dst) & (res ^ dst);
30702 flag_NotZ = res & 0xFF;
30716 READ_BYTE_F(adr, src)
30717 dst = DREGu8((Opcode >> 9) & 7);
30719 flag_N = flag_C = res;
30720 flag_V = (src ^ dst) & (res ^ dst);
30721 flag_NotZ = res & 0xFF;
30732 src = DREGu16((Opcode >> 0) & 7);
30733 dst = DREGu16((Opcode >> 9) & 7);
30735 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30736 flag_N = flag_C = res >> 8;
30737 flag_NotZ = res & 0xFFFF;
30747 src = AREGu16((Opcode >> 0) & 7);
30748 dst = DREGu16((Opcode >> 9) & 7);
30750 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30751 flag_N = flag_C = res >> 8;
30752 flag_NotZ = res & 0xFFFF;
30762 adr = AREG((Opcode >> 0) & 7);
30764 READ_WORD_F(adr, src)
30765 dst = DREGu16((Opcode >> 9) & 7);
30767 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30768 flag_N = flag_C = res >> 8;
30769 flag_NotZ = res & 0xFFFF;
30780 adr = AREG((Opcode >> 0) & 7);
30781 AREG((Opcode >> 0) & 7) += 2;
30783 READ_WORD_F(adr, src)
30784 dst = DREGu16((Opcode >> 9) & 7);
30786 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30787 flag_N = flag_C = res >> 8;
30788 flag_NotZ = res & 0xFFFF;
30799 adr = AREG((Opcode >> 0) & 7) - 2;
30800 AREG((Opcode >> 0) & 7) = adr;
30802 READ_WORD_F(adr, src)
30803 dst = DREGu16((Opcode >> 9) & 7);
30805 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30806 flag_N = flag_C = res >> 8;
30807 flag_NotZ = res & 0xFFFF;
30819 adr += AREG((Opcode >> 0) & 7);
30821 READ_WORD_F(adr, src)
30822 dst = DREGu16((Opcode >> 9) & 7);
30824 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30825 flag_N = flag_C = res >> 8;
30826 flag_NotZ = res & 0xFFFF;
30837 adr = AREG((Opcode >> 0) & 7);
30840 READ_WORD_F(adr, src)
30841 dst = DREGu16((Opcode >> 9) & 7);
30843 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30844 flag_N = flag_C = res >> 8;
30845 flag_NotZ = res & 0xFFFF;
30858 READ_WORD_F(adr, src)
30859 dst = DREGu16((Opcode >> 9) & 7);
30861 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30862 flag_N = flag_C = res >> 8;
30863 flag_NotZ = res & 0xFFFF;
30876 READ_WORD_F(adr, src)
30877 dst = DREGu16((Opcode >> 9) & 7);
30879 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30880 flag_N = flag_C = res >> 8;
30881 flag_NotZ = res & 0xFFFF;
30892 adr = GET_SWORD + ((u32)(PC) - BasePC);
30895 READ_WORD_F(adr, src)
30896 dst = DREGu16((Opcode >> 9) & 7);
30898 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30899 flag_N = flag_C = res >> 8;
30900 flag_NotZ = res & 0xFFFF;
30911 adr = (u32)(PC) - BasePC;
30914 READ_WORD_F(adr, src)
30915 dst = DREGu16((Opcode >> 9) & 7);
30917 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30918 flag_N = flag_C = res >> 8;
30919 flag_NotZ = res & 0xFFFF;
30931 dst = DREGu16((Opcode >> 9) & 7);
30933 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30934 flag_N = flag_C = res >> 8;
30935 flag_NotZ = res & 0xFFFF;
30948 READ_WORD_F(adr, src)
30949 dst = DREGu16((Opcode >> 9) & 7);
30951 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30952 flag_N = flag_C = res >> 8;
30953 flag_NotZ = res & 0xFFFF;
30967 READ_WORD_F(adr, src)
30968 dst = DREGu16((Opcode >> 9) & 7);
30970 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30971 flag_N = flag_C = res >> 8;
30972 flag_NotZ = res & 0xFFFF;
30983 src = DREGu32((Opcode >> 0) & 7);
30984 dst = DREGu32((Opcode >> 9) & 7);
30987 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
30988 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
30989 flag_N = res >> 24;
30999 src = AREGu32((Opcode >> 0) & 7);
31000 dst = DREGu32((Opcode >> 9) & 7);
31003 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31004 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31005 flag_N = res >> 24;
31015 adr = AREG((Opcode >> 0) & 7);
31017 READ_LONG_F(adr, src)
31018 dst = DREGu32((Opcode >> 9) & 7);
31021 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31022 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31023 flag_N = res >> 24;
31034 adr = AREG((Opcode >> 0) & 7);
31035 AREG((Opcode >> 0) & 7) += 4;
31037 READ_LONG_F(adr, src)
31038 dst = DREGu32((Opcode >> 9) & 7);
31041 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31042 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31043 flag_N = res >> 24;
31054 adr = AREG((Opcode >> 0) & 7) - 4;
31055 AREG((Opcode >> 0) & 7) = adr;
31057 READ_LONG_F(adr, src)
31058 dst = DREGu32((Opcode >> 9) & 7);
31061 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31062 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31063 flag_N = res >> 24;
31075 adr += AREG((Opcode >> 0) & 7);
31077 READ_LONG_F(adr, src)
31078 dst = DREGu32((Opcode >> 9) & 7);
31081 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31082 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31083 flag_N = res >> 24;
31094 adr = AREG((Opcode >> 0) & 7);
31097 READ_LONG_F(adr, src)
31098 dst = DREGu32((Opcode >> 9) & 7);
31101 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31102 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31103 flag_N = res >> 24;
31116 READ_LONG_F(adr, src)
31117 dst = DREGu32((Opcode >> 9) & 7);
31120 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31121 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31122 flag_N = res >> 24;
31135 READ_LONG_F(adr, src)
31136 dst = DREGu32((Opcode >> 9) & 7);
31139 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31140 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31141 flag_N = res >> 24;
31152 adr = GET_SWORD + ((u32)(PC) - BasePC);
31155 READ_LONG_F(adr, src)
31156 dst = DREGu32((Opcode >> 9) & 7);
31159 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31160 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31161 flag_N = res >> 24;
31172 adr = (u32)(PC) - BasePC;
31175 READ_LONG_F(adr, src)
31176 dst = DREGu32((Opcode >> 9) & 7);
31179 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31180 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31181 flag_N = res >> 24;
31193 dst = DREGu32((Opcode >> 9) & 7);
31196 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31197 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31198 flag_N = res >> 24;
31211 READ_LONG_F(adr, src)
31212 dst = DREGu32((Opcode >> 9) & 7);
31215 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31216 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31217 flag_N = res >> 24;
31231 READ_LONG_F(adr, src)
31232 dst = DREGu32((Opcode >> 9) & 7);
31235 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31236 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31237 flag_N = res >> 24;
31248 adr = AREG((Opcode >> 0) & 7);
31249 AREG((Opcode >> 0) & 7) += 1;
31251 READ_BYTE_F(adr, src)
31252 adr = AREG((Opcode >> 9) & 7);
31253 AREG((Opcode >> 9) & 7) += 1;
31254 READ_BYTE_F(adr, dst)
31256 flag_N = flag_C = res;
31257 flag_V = (src ^ dst) & (res ^ dst);
31258 flag_NotZ = res & 0xFF;
31269 adr = AREG((Opcode >> 0) & 7);
31270 AREG((Opcode >> 0) & 7) += 2;
31272 READ_WORD_F(adr, src)
31273 adr = AREG((Opcode >> 9) & 7);
31274 AREG((Opcode >> 9) & 7) += 2;
31275 READ_WORD_F(adr, dst)
31277 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31278 flag_N = flag_C = res >> 8;
31279 flag_NotZ = res & 0xFFFF;
31290 adr = AREG((Opcode >> 0) & 7);
31291 AREG((Opcode >> 0) & 7) += 4;
31293 READ_LONG_F(adr, src)
31294 adr = AREG((Opcode >> 9) & 7);
31295 AREG((Opcode >> 9) & 7) += 4;
31296 READ_LONG_F(adr, dst)
31299 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31300 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31301 flag_N = res >> 24;
31315 READ_BYTE_F(adr, src)
31316 adr = AREG((Opcode >> 9) & 7);
31317 AREG((Opcode >> 9) & 7) += 1;
31318 READ_BYTE_F(adr, dst)
31320 flag_N = flag_C = res;
31321 flag_V = (src ^ dst) & (res ^ dst);
31322 flag_NotZ = res & 0xFF;
31336 READ_WORD_F(adr, src)
31337 adr = AREG((Opcode >> 9) & 7);
31338 AREG((Opcode >> 9) & 7) += 2;
31339 READ_WORD_F(adr, dst)
31341 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31342 flag_N = flag_C = res >> 8;
31343 flag_NotZ = res & 0xFFFF;
31357 READ_LONG_F(adr, src)
31358 adr = AREG((Opcode >> 9) & 7);
31359 AREG((Opcode >> 9) & 7) += 4;
31360 READ_LONG_F(adr, dst)
31363 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31364 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31365 flag_N = res >> 24;
31376 adr = AREG((Opcode >> 0) & 7);
31377 AREG((Opcode >> 0) & 7) += 1;
31379 READ_BYTE_F(adr, src)
31382 READ_BYTE_F(adr, dst)
31384 flag_N = flag_C = res;
31385 flag_V = (src ^ dst) & (res ^ dst);
31386 flag_NotZ = res & 0xFF;
31397 adr = AREG((Opcode >> 0) & 7);
31398 AREG((Opcode >> 0) & 7) += 2;
31400 READ_WORD_F(adr, src)
31403 READ_WORD_F(adr, dst)
31405 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31406 flag_N = flag_C = res >> 8;
31407 flag_NotZ = res & 0xFFFF;
31418 adr = AREG((Opcode >> 0) & 7);
31419 AREG((Opcode >> 0) & 7) += 4;
31421 READ_LONG_F(adr, src)
31424 READ_LONG_F(adr, dst)
31427 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31428 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31429 flag_N = res >> 24;
31443 READ_BYTE_F(adr, src)
31446 READ_BYTE_F(adr, dst)
31448 flag_N = flag_C = res;
31449 flag_V = (src ^ dst) & (res ^ dst);
31450 flag_NotZ = res & 0xFF;
31464 READ_WORD_F(adr, src)
31467 READ_WORD_F(adr, dst)
31469 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31470 flag_N = flag_C = res >> 8;
31471 flag_NotZ = res & 0xFFFF;
31485 READ_LONG_F(adr, src)
31488 READ_LONG_F(adr, dst)
31491 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31492 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31493 flag_N = res >> 24;
31504 src = DREGu8((Opcode >> 9) & 7);
31505 res = DREGu8((Opcode >> 0) & 7);
31511 DREGu8((Opcode >> 0) & 7) = res;
31521 src = DREGu8((Opcode >> 9) & 7);
31522 adr = AREG((Opcode >> 0) & 7);
31524 READ_BYTE_F(adr, res)
31530 WRITE_BYTE_F(adr, res)
31541 src = DREGu8((Opcode >> 9) & 7);
31542 adr = AREG((Opcode >> 0) & 7);
31543 AREG((Opcode >> 0) & 7) += 1;
31545 READ_BYTE_F(adr, res)
31551 WRITE_BYTE_F(adr, res)
31562 src = DREGu8((Opcode >> 9) & 7);
31563 adr = AREG((Opcode >> 0) & 7) - 1;
31564 AREG((Opcode >> 0) & 7) = adr;
31566 READ_BYTE_F(adr, res)
31572 WRITE_BYTE_F(adr, res)
31583 src = DREGu8((Opcode >> 9) & 7);
31585 adr += AREG((Opcode >> 0) & 7);
31587 READ_BYTE_F(adr, res)
31593 WRITE_BYTE_F(adr, res)
31604 src = DREGu8((Opcode >> 9) & 7);
31605 adr = AREG((Opcode >> 0) & 7);
31608 READ_BYTE_F(adr, res)
31614 WRITE_BYTE_F(adr, res)
31625 src = DREGu8((Opcode >> 9) & 7);
31628 READ_BYTE_F(adr, res)
31634 WRITE_BYTE_F(adr, res)
31645 src = DREGu8((Opcode >> 9) & 7);
31648 READ_BYTE_F(adr, res)
31654 WRITE_BYTE_F(adr, res)
31665 src = DREGu8((Opcode >> 9) & 7);
31669 READ_BYTE_F(adr, res)
31675 WRITE_BYTE_F(adr, res)
31686 src = DREGu8((Opcode >> 9) & 7);
31690 READ_BYTE_F(adr, res)
31696 WRITE_BYTE_F(adr, res)
31707 src = DREGu16((Opcode >> 9) & 7);
31708 res = DREGu16((Opcode >> 0) & 7);
31714 DREGu16((Opcode >> 0) & 7) = res;
31724 src = DREGu16((Opcode >> 9) & 7);
31725 adr = AREG((Opcode >> 0) & 7);
31727 READ_WORD_F(adr, res)
31733 WRITE_WORD_F(adr, res)
31744 src = DREGu16((Opcode >> 9) & 7);
31745 adr = AREG((Opcode >> 0) & 7);
31746 AREG((Opcode >> 0) & 7) += 2;
31748 READ_WORD_F(adr, res)
31754 WRITE_WORD_F(adr, res)
31765 src = DREGu16((Opcode >> 9) & 7);
31766 adr = AREG((Opcode >> 0) & 7) - 2;
31767 AREG((Opcode >> 0) & 7) = adr;
31769 READ_WORD_F(adr, res)
31775 WRITE_WORD_F(adr, res)
31786 src = DREGu16((Opcode >> 9) & 7);
31788 adr += AREG((Opcode >> 0) & 7);
31790 READ_WORD_F(adr, res)
31796 WRITE_WORD_F(adr, res)
31807 src = DREGu16((Opcode >> 9) & 7);
31808 adr = AREG((Opcode >> 0) & 7);
31811 READ_WORD_F(adr, res)
31817 WRITE_WORD_F(adr, res)
31828 src = DREGu16((Opcode >> 9) & 7);
31831 READ_WORD_F(adr, res)
31837 WRITE_WORD_F(adr, res)
31848 src = DREGu16((Opcode >> 9) & 7);
31851 READ_WORD_F(adr, res)
31857 WRITE_WORD_F(adr, res)
31868 src = DREGu16((Opcode >> 9) & 7);
31872 READ_WORD_F(adr, res)
31878 WRITE_WORD_F(adr, res)
31889 src = DREGu16((Opcode >> 9) & 7);
31893 READ_WORD_F(adr, res)
31899 WRITE_WORD_F(adr, res)
31910 src = DREGu32((Opcode >> 9) & 7);
31911 res = DREGu32((Opcode >> 0) & 7);
31916 flag_N = res >> 24;
31917 DREGu32((Opcode >> 0) & 7) = res;
31927 src = DREGu32((Opcode >> 9) & 7);
31928 adr = AREG((Opcode >> 0) & 7);
31930 READ_LONG_F(adr, res)
31935 flag_N = res >> 24;
31936 WRITE_LONG_F(adr, res)
31947 src = DREGu32((Opcode >> 9) & 7);
31948 adr = AREG((Opcode >> 0) & 7);
31949 AREG((Opcode >> 0) & 7) += 4;
31951 READ_LONG_F(adr, res)
31956 flag_N = res >> 24;
31957 WRITE_LONG_F(adr, res)
31968 src = DREGu32((Opcode >> 9) & 7);
31969 adr = AREG((Opcode >> 0) & 7) - 4;
31970 AREG((Opcode >> 0) & 7) = adr;
31972 READ_LONG_F(adr, res)
31977 flag_N = res >> 24;
31978 WRITE_LONG_F(adr, res)
31989 src = DREGu32((Opcode >> 9) & 7);
31991 adr += AREG((Opcode >> 0) & 7);
31993 READ_LONG_F(adr, res)
31998 flag_N = res >> 24;
31999 WRITE_LONG_F(adr, res)
32010 src = DREGu32((Opcode >> 9) & 7);
32011 adr = AREG((Opcode >> 0) & 7);
32014 READ_LONG_F(adr, res)
32019 flag_N = res >> 24;
32020 WRITE_LONG_F(adr, res)
32031 src = DREGu32((Opcode >> 9) & 7);
32034 READ_LONG_F(adr, res)
32039 flag_N = res >> 24;
32040 WRITE_LONG_F(adr, res)
32051 src = DREGu32((Opcode >> 9) & 7);
32054 READ_LONG_F(adr, res)
32059 flag_N = res >> 24;
32060 WRITE_LONG_F(adr, res)
32071 src = DREGu32((Opcode >> 9) & 7);
32075 READ_LONG_F(adr, res)
32080 flag_N = res >> 24;
32081 WRITE_LONG_F(adr, res)
32092 src = DREGu32((Opcode >> 9) & 7);
32096 READ_LONG_F(adr, res)
32101 flag_N = res >> 24;
32102 WRITE_LONG_F(adr, res)
32113 src = (s32)DREGs16((Opcode >> 0) & 7);
32114 dst = AREGu32((Opcode >> 9) & 7);
32117 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32118 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32119 flag_N = res >> 24;
32129 src = (s32)AREGs16((Opcode >> 0) & 7);
32130 dst = AREGu32((Opcode >> 9) & 7);
32133 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32134 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32135 flag_N = res >> 24;
32145 adr = AREG((Opcode >> 0) & 7);
32147 READSX_WORD_F(adr, src)
32148 dst = AREGu32((Opcode >> 9) & 7);
32151 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32152 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32153 flag_N = res >> 24;
32164 adr = AREG((Opcode >> 0) & 7);
32165 AREG((Opcode >> 0) & 7) += 2;
32167 READSX_WORD_F(adr, src)
32168 dst = AREGu32((Opcode >> 9) & 7);
32171 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32172 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32173 flag_N = res >> 24;
32184 adr = AREG((Opcode >> 0) & 7) - 2;
32185 AREG((Opcode >> 0) & 7) = adr;
32187 READSX_WORD_F(adr, src)
32188 dst = AREGu32((Opcode >> 9) & 7);
32191 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32192 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32193 flag_N = res >> 24;
32205 adr += AREG((Opcode >> 0) & 7);
32207 READSX_WORD_F(adr, src)
32208 dst = AREGu32((Opcode >> 9) & 7);
32211 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32212 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32213 flag_N = res >> 24;
32224 adr = AREG((Opcode >> 0) & 7);
32227 READSX_WORD_F(adr, src)
32228 dst = AREGu32((Opcode >> 9) & 7);
32231 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32232 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32233 flag_N = res >> 24;
32246 READSX_WORD_F(adr, src)
32247 dst = AREGu32((Opcode >> 9) & 7);
32250 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32251 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32252 flag_N = res >> 24;
32265 READSX_WORD_F(adr, src)
32266 dst = AREGu32((Opcode >> 9) & 7);
32269 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32270 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32271 flag_N = res >> 24;
32282 adr = GET_SWORD + ((u32)(PC) - BasePC);
32285 READSX_WORD_F(adr, src)
32286 dst = AREGu32((Opcode >> 9) & 7);
32289 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32290 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32291 flag_N = res >> 24;
32302 adr = (u32)(PC) - BasePC;
32305 READSX_WORD_F(adr, src)
32306 dst = AREGu32((Opcode >> 9) & 7);
32309 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32310 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32311 flag_N = res >> 24;
32323 dst = AREGu32((Opcode >> 9) & 7);
32326 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32327 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32328 flag_N = res >> 24;
32341 READSX_WORD_F(adr, src)
32342 dst = AREGu32((Opcode >> 9) & 7);
32345 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32346 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32347 flag_N = res >> 24;
32361 READSX_WORD_F(adr, src)
32362 dst = AREGu32((Opcode >> 9) & 7);
32365 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32366 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32367 flag_N = res >> 24;
32378 src = (s32)DREGs32((Opcode >> 0) & 7);
32379 dst = AREGu32((Opcode >> 9) & 7);
32382 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32383 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32384 flag_N = res >> 24;
32394 src = (s32)AREGs32((Opcode >> 0) & 7);
32395 dst = AREGu32((Opcode >> 9) & 7);
32398 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32399 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32400 flag_N = res >> 24;
32410 adr = AREG((Opcode >> 0) & 7);
32412 READSX_LONG_F(adr, src)
32413 dst = AREGu32((Opcode >> 9) & 7);
32416 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32417 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32418 flag_N = res >> 24;
32429 adr = AREG((Opcode >> 0) & 7);
32430 AREG((Opcode >> 0) & 7) += 4;
32432 READSX_LONG_F(adr, src)
32433 dst = AREGu32((Opcode >> 9) & 7);
32436 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32437 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32438 flag_N = res >> 24;
32449 adr = AREG((Opcode >> 0) & 7) - 4;
32450 AREG((Opcode >> 0) & 7) = adr;
32452 READSX_LONG_F(adr, src)
32453 dst = AREGu32((Opcode >> 9) & 7);
32456 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32457 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32458 flag_N = res >> 24;
32470 adr += AREG((Opcode >> 0) & 7);
32472 READSX_LONG_F(adr, src)
32473 dst = AREGu32((Opcode >> 9) & 7);
32476 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32477 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32478 flag_N = res >> 24;
32489 adr = AREG((Opcode >> 0) & 7);
32492 READSX_LONG_F(adr, src)
32493 dst = AREGu32((Opcode >> 9) & 7);
32496 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32497 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32498 flag_N = res >> 24;
32511 READSX_LONG_F(adr, src)
32512 dst = AREGu32((Opcode >> 9) & 7);
32515 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32516 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32517 flag_N = res >> 24;
32530 READSX_LONG_F(adr, src)
32531 dst = AREGu32((Opcode >> 9) & 7);
32534 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32535 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32536 flag_N = res >> 24;
32547 adr = GET_SWORD + ((u32)(PC) - BasePC);
32550 READSX_LONG_F(adr, src)
32551 dst = AREGu32((Opcode >> 9) & 7);
32554 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32555 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32556 flag_N = res >> 24;
32567 adr = (u32)(PC) - BasePC;
32570 READSX_LONG_F(adr, src)
32571 dst = AREGu32((Opcode >> 9) & 7);
32574 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32575 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32576 flag_N = res >> 24;
32588 dst = AREGu32((Opcode >> 9) & 7);
32591 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32592 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32593 flag_N = res >> 24;
32606 READSX_LONG_F(adr, src)
32607 dst = AREGu32((Opcode >> 9) & 7);
32610 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32611 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32612 flag_N = res >> 24;
32626 READSX_LONG_F(adr, src)
32627 dst = AREGu32((Opcode >> 9) & 7);
32630 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32631 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32632 flag_N = res >> 24;
32643 src = DREGu8((Opcode >> 0) & 7);
32644 res = DREGu8((Opcode >> 9) & 7);
32650 DREGu8((Opcode >> 9) & 7) = res;
32660 adr = AREG((Opcode >> 0) & 7);
32662 READ_BYTE_F(adr, src)
32663 res = DREGu8((Opcode >> 9) & 7);
32669 DREGu8((Opcode >> 9) & 7) = res;
32680 adr = AREG((Opcode >> 0) & 7);
32681 AREG((Opcode >> 0) & 7) += 1;
32683 READ_BYTE_F(adr, src)
32684 res = DREGu8((Opcode >> 9) & 7);
32690 DREGu8((Opcode >> 9) & 7) = res;
32701 adr = AREG((Opcode >> 0) & 7) - 1;
32702 AREG((Opcode >> 0) & 7) = adr;
32704 READ_BYTE_F(adr, src)
32705 res = DREGu8((Opcode >> 9) & 7);
32711 DREGu8((Opcode >> 9) & 7) = res;
32723 adr += AREG((Opcode >> 0) & 7);
32725 READ_BYTE_F(adr, src)
32726 res = DREGu8((Opcode >> 9) & 7);
32732 DREGu8((Opcode >> 9) & 7) = res;
32743 adr = AREG((Opcode >> 0) & 7);
32746 READ_BYTE_F(adr, src)
32747 res = DREGu8((Opcode >> 9) & 7);
32753 DREGu8((Opcode >> 9) & 7) = res;
32766 READ_BYTE_F(adr, src)
32767 res = DREGu8((Opcode >> 9) & 7);
32773 DREGu8((Opcode >> 9) & 7) = res;
32786 READ_BYTE_F(adr, src)
32787 res = DREGu8((Opcode >> 9) & 7);
32793 DREGu8((Opcode >> 9) & 7) = res;
32804 adr = GET_SWORD + ((u32)(PC) - BasePC);
32807 READ_BYTE_F(adr, src)
32808 res = DREGu8((Opcode >> 9) & 7);
32814 DREGu8((Opcode >> 9) & 7) = res;
32825 adr = (u32)(PC) - BasePC;
32828 READ_BYTE_F(adr, src)
32829 res = DREGu8((Opcode >> 9) & 7);
32835 DREGu8((Opcode >> 9) & 7) = res;
32847 res = DREGu8((Opcode >> 9) & 7);
32853 DREGu8((Opcode >> 9) & 7) = res;
32866 READ_BYTE_F(adr, src)
32867 res = DREGu8((Opcode >> 9) & 7);
32873 DREGu8((Opcode >> 9) & 7) = res;
32887 READ_BYTE_F(adr, src)
32888 res = DREGu8((Opcode >> 9) & 7);
32894 DREGu8((Opcode >> 9) & 7) = res;
32905 src = DREGu16((Opcode >> 0) & 7);
32906 res = DREGu16((Opcode >> 9) & 7);
32912 DREGu16((Opcode >> 9) & 7) = res;
32922 adr = AREG((Opcode >> 0) & 7);
32924 READ_WORD_F(adr, src)
32925 res = DREGu16((Opcode >> 9) & 7);
32931 DREGu16((Opcode >> 9) & 7) = res;
32942 adr = AREG((Opcode >> 0) & 7);
32943 AREG((Opcode >> 0) & 7) += 2;
32945 READ_WORD_F(adr, src)
32946 res = DREGu16((Opcode >> 9) & 7);
32952 DREGu16((Opcode >> 9) & 7) = res;
32963 adr = AREG((Opcode >> 0) & 7) - 2;
32964 AREG((Opcode >> 0) & 7) = adr;
32966 READ_WORD_F(adr, src)
32967 res = DREGu16((Opcode >> 9) & 7);
32973 DREGu16((Opcode >> 9) & 7) = res;
32985 adr += AREG((Opcode >> 0) & 7);
32987 READ_WORD_F(adr, src)
32988 res = DREGu16((Opcode >> 9) & 7);
32994 DREGu16((Opcode >> 9) & 7) = res;
33005 adr = AREG((Opcode >> 0) & 7);
33008 READ_WORD_F(adr, src)
33009 res = DREGu16((Opcode >> 9) & 7);
33015 DREGu16((Opcode >> 9) & 7) = res;
33028 READ_WORD_F(adr, src)
33029 res = DREGu16((Opcode >> 9) & 7);
33035 DREGu16((Opcode >> 9) & 7) = res;
33048 READ_WORD_F(adr, src)
33049 res = DREGu16((Opcode >> 9) & 7);
33055 DREGu16((Opcode >> 9) & 7) = res;
33066 adr = GET_SWORD + ((u32)(PC) - BasePC);
33069 READ_WORD_F(adr, src)
33070 res = DREGu16((Opcode >> 9) & 7);
33076 DREGu16((Opcode >> 9) & 7) = res;
33087 adr = (u32)(PC) - BasePC;
33090 READ_WORD_F(adr, src)
33091 res = DREGu16((Opcode >> 9) & 7);
33097 DREGu16((Opcode >> 9) & 7) = res;
33109 res = DREGu16((Opcode >> 9) & 7);
33115 DREGu16((Opcode >> 9) & 7) = res;
33128 READ_WORD_F(adr, src)
33129 res = DREGu16((Opcode >> 9) & 7);
33135 DREGu16((Opcode >> 9) & 7) = res;
33149 READ_WORD_F(adr, src)
33150 res = DREGu16((Opcode >> 9) & 7);
33156 DREGu16((Opcode >> 9) & 7) = res;
33167 src = DREGu32((Opcode >> 0) & 7);
33168 res = DREGu32((Opcode >> 9) & 7);
33173 flag_N = res >> 24;
33174 DREGu32((Opcode >> 9) & 7) = res;
33184 adr = AREG((Opcode >> 0) & 7);
33186 READ_LONG_F(adr, src)
33187 res = DREGu32((Opcode >> 9) & 7);
33192 flag_N = res >> 24;
33193 DREGu32((Opcode >> 9) & 7) = res;
33204 adr = AREG((Opcode >> 0) & 7);
33205 AREG((Opcode >> 0) & 7) += 4;
33207 READ_LONG_F(adr, src)
33208 res = DREGu32((Opcode >> 9) & 7);
33213 flag_N = res >> 24;
33214 DREGu32((Opcode >> 9) & 7) = res;
33225 adr = AREG((Opcode >> 0) & 7) - 4;
33226 AREG((Opcode >> 0) & 7) = adr;
33228 READ_LONG_F(adr, src)
33229 res = DREGu32((Opcode >> 9) & 7);
33234 flag_N = res >> 24;
33235 DREGu32((Opcode >> 9) & 7) = res;
33247 adr += AREG((Opcode >> 0) & 7);
33249 READ_LONG_F(adr, src)
33250 res = DREGu32((Opcode >> 9) & 7);
33255 flag_N = res >> 24;
33256 DREGu32((Opcode >> 9) & 7) = res;
33267 adr = AREG((Opcode >> 0) & 7);
33270 READ_LONG_F(adr, src)
33271 res = DREGu32((Opcode >> 9) & 7);
33276 flag_N = res >> 24;
33277 DREGu32((Opcode >> 9) & 7) = res;
33290 READ_LONG_F(adr, src)
33291 res = DREGu32((Opcode >> 9) & 7);
33296 flag_N = res >> 24;
33297 DREGu32((Opcode >> 9) & 7) = res;
33310 READ_LONG_F(adr, src)
33311 res = DREGu32((Opcode >> 9) & 7);
33316 flag_N = res >> 24;
33317 DREGu32((Opcode >> 9) & 7) = res;
33328 adr = GET_SWORD + ((u32)(PC) - BasePC);
33331 READ_LONG_F(adr, src)
33332 res = DREGu32((Opcode >> 9) & 7);
33337 flag_N = res >> 24;
33338 DREGu32((Opcode >> 9) & 7) = res;
33349 adr = (u32)(PC) - BasePC;
33352 READ_LONG_F(adr, src)
33353 res = DREGu32((Opcode >> 9) & 7);
33358 flag_N = res >> 24;
33359 DREGu32((Opcode >> 9) & 7) = res;
33371 res = DREGu32((Opcode >> 9) & 7);
33376 flag_N = res >> 24;
33377 DREGu32((Opcode >> 9) & 7) = res;
33390 READ_LONG_F(adr, src)
33391 res = DREGu32((Opcode >> 9) & 7);
33396 flag_N = res >> 24;
33397 DREGu32((Opcode >> 9) & 7) = res;
33411 READ_LONG_F(adr, src)
33412 res = DREGu32((Opcode >> 9) & 7);
33417 flag_N = res >> 24;
33418 DREGu32((Opcode >> 9) & 7) = res;
33429 src = DREGu8((Opcode >> 9) & 7);
33430 adr = AREG((Opcode >> 0) & 7);
33432 READ_BYTE_F(adr, res)
33438 WRITE_BYTE_F(adr, res)
33449 src = DREGu8((Opcode >> 9) & 7);
33450 adr = AREG((Opcode >> 0) & 7);
33451 AREG((Opcode >> 0) & 7) += 1;
33453 READ_BYTE_F(adr, res)
33459 WRITE_BYTE_F(adr, res)
33470 src = DREGu8((Opcode >> 9) & 7);
33471 adr = AREG((Opcode >> 0) & 7) - 1;
33472 AREG((Opcode >> 0) & 7) = adr;
33474 READ_BYTE_F(adr, res)
33480 WRITE_BYTE_F(adr, res)
33491 src = DREGu8((Opcode >> 9) & 7);
33493 adr += AREG((Opcode >> 0) & 7);
33495 READ_BYTE_F(adr, res)
33501 WRITE_BYTE_F(adr, res)
33512 src = DREGu8((Opcode >> 9) & 7);
33513 adr = AREG((Opcode >> 0) & 7);
33516 READ_BYTE_F(adr, res)
33522 WRITE_BYTE_F(adr, res)
33533 src = DREGu8((Opcode >> 9) & 7);
33536 READ_BYTE_F(adr, res)
33542 WRITE_BYTE_F(adr, res)
33553 src = DREGu8((Opcode >> 9) & 7);
33556 READ_BYTE_F(adr, res)
33562 WRITE_BYTE_F(adr, res)
33573 src = DREGu8((Opcode >> 9) & 7);
33577 READ_BYTE_F(adr, res)
33583 WRITE_BYTE_F(adr, res)
33594 src = DREGu8((Opcode >> 9) & 7);
33598 READ_BYTE_F(adr, res)
33604 WRITE_BYTE_F(adr, res)
33615 src = DREGu16((Opcode >> 9) & 7);
33616 adr = AREG((Opcode >> 0) & 7);
33618 READ_WORD_F(adr, res)
33624 WRITE_WORD_F(adr, res)
33635 src = DREGu16((Opcode >> 9) & 7);
33636 adr = AREG((Opcode >> 0) & 7);
33637 AREG((Opcode >> 0) & 7) += 2;
33639 READ_WORD_F(adr, res)
33645 WRITE_WORD_F(adr, res)
33656 src = DREGu16((Opcode >> 9) & 7);
33657 adr = AREG((Opcode >> 0) & 7) - 2;
33658 AREG((Opcode >> 0) & 7) = adr;
33660 READ_WORD_F(adr, res)
33666 WRITE_WORD_F(adr, res)
33677 src = DREGu16((Opcode >> 9) & 7);
33679 adr += AREG((Opcode >> 0) & 7);
33681 READ_WORD_F(adr, res)
33687 WRITE_WORD_F(adr, res)
33698 src = DREGu16((Opcode >> 9) & 7);
33699 adr = AREG((Opcode >> 0) & 7);
33702 READ_WORD_F(adr, res)
33708 WRITE_WORD_F(adr, res)
33719 src = DREGu16((Opcode >> 9) & 7);
33722 READ_WORD_F(adr, res)
33728 WRITE_WORD_F(adr, res)
33739 src = DREGu16((Opcode >> 9) & 7);
33742 READ_WORD_F(adr, res)
33748 WRITE_WORD_F(adr, res)
33759 src = DREGu16((Opcode >> 9) & 7);
33763 READ_WORD_F(adr, res)
33769 WRITE_WORD_F(adr, res)
33780 src = DREGu16((Opcode >> 9) & 7);
33784 READ_WORD_F(adr, res)
33790 WRITE_WORD_F(adr, res)
33801 src = DREGu32((Opcode >> 9) & 7);
33802 adr = AREG((Opcode >> 0) & 7);
33804 READ_LONG_F(adr, res)
33809 flag_N = res >> 24;
33810 WRITE_LONG_F(adr, res)
33821 src = DREGu32((Opcode >> 9) & 7);
33822 adr = AREG((Opcode >> 0) & 7);
33823 AREG((Opcode >> 0) & 7) += 4;
33825 READ_LONG_F(adr, res)
33830 flag_N = res >> 24;
33831 WRITE_LONG_F(adr, res)
33842 src = DREGu32((Opcode >> 9) & 7);
33843 adr = AREG((Opcode >> 0) & 7) - 4;
33844 AREG((Opcode >> 0) & 7) = adr;
33846 READ_LONG_F(adr, res)
33851 flag_N = res >> 24;
33852 WRITE_LONG_F(adr, res)
33863 src = DREGu32((Opcode >> 9) & 7);
33865 adr += AREG((Opcode >> 0) & 7);
33867 READ_LONG_F(adr, res)
33872 flag_N = res >> 24;
33873 WRITE_LONG_F(adr, res)
33884 src = DREGu32((Opcode >> 9) & 7);
33885 adr = AREG((Opcode >> 0) & 7);
33888 READ_LONG_F(adr, res)
33893 flag_N = res >> 24;
33894 WRITE_LONG_F(adr, res)
33905 src = DREGu32((Opcode >> 9) & 7);
33908 READ_LONG_F(adr, res)
33913 flag_N = res >> 24;
33914 WRITE_LONG_F(adr, res)
33925 src = DREGu32((Opcode >> 9) & 7);
33928 READ_LONG_F(adr, res)
33933 flag_N = res >> 24;
33934 WRITE_LONG_F(adr, res)
33945 src = DREGu32((Opcode >> 9) & 7);
33949 READ_LONG_F(adr, res)
33954 flag_N = res >> 24;
33955 WRITE_LONG_F(adr, res)
33966 src = DREGu32((Opcode >> 9) & 7);
33970 READ_LONG_F(adr, res)
33975 flag_N = res >> 24;
33976 WRITE_LONG_F(adr, res)
33987 src = DREGu8((Opcode >> 0) & 7);
33988 dst = DREGu8((Opcode >> 9) & 7);
33989 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
33990 if (res > 9) res += 6;
33991 res += (dst & 0xF0) + (src & 0xF0);
33995 flag_X = flag_C = M68K_SR_C;
33997 else flag_X = flag_C = 0;
33998 flag_NotZ |= res & 0xFF;
34000 DREGu8((Opcode >> 9) & 7) = res;
34010 adr = AREG((Opcode >> 0) & 7) - 1;
34011 AREG((Opcode >> 0) & 7) = adr;
34013 READ_BYTE_F(adr, src)
34014 adr = AREG((Opcode >> 9) & 7) - 1;
34015 AREG((Opcode >> 9) & 7) = adr;
34016 READ_BYTE_F(adr, dst)
34017 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34018 if (res > 9) res += 6;
34019 res += (dst & 0xF0) + (src & 0xF0);
34023 flag_X = flag_C = M68K_SR_C;
34025 else flag_X = flag_C = 0;
34026 flag_NotZ |= res & 0xFF;
34028 WRITE_BYTE_F(adr, res)
34042 READ_BYTE_F(adr, src)
34043 adr = AREG((Opcode >> 9) & 7) - 1;
34044 AREG((Opcode >> 9) & 7) = adr;
34045 READ_BYTE_F(adr, dst)
34046 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34047 if (res > 9) res += 6;
34048 res += (dst & 0xF0) + (src & 0xF0);
34052 flag_X = flag_C = M68K_SR_C;
34054 else flag_X = flag_C = 0;
34055 flag_NotZ |= res & 0xFF;
34057 WRITE_BYTE_F(adr, res)
34068 adr = AREG((Opcode >> 0) & 7) - 1;
34069 AREG((Opcode >> 0) & 7) = adr;
34071 READ_BYTE_F(adr, src)
34074 READ_BYTE_F(adr, dst)
34075 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34076 if (res > 9) res += 6;
34077 res += (dst & 0xF0) + (src & 0xF0);
34081 flag_X = flag_C = M68K_SR_C;
34083 else flag_X = flag_C = 0;
34084 flag_NotZ |= res & 0xFF;
34086 WRITE_BYTE_F(adr, res)
34100 READ_BYTE_F(adr, src)
34103 READ_BYTE_F(adr, dst)
34104 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34105 if (res > 9) res += 6;
34106 res += (dst & 0xF0) + (src & 0xF0);
34110 flag_X = flag_C = M68K_SR_C;
34112 else flag_X = flag_C = 0;
34113 flag_NotZ |= res & 0xFF;
34115 WRITE_BYTE_F(adr, res)
34126 src = DREGu16((Opcode >> 0) & 7);
34127 res = DREGu16((Opcode >> 9) & 7);
34129 flag_N = res >> 24;
34131 flag_V = flag_C = 0;
34132 DREGu32((Opcode >> 9) & 7) = res;
34133 #ifdef USE_CYCLONE_TIMING
34146 adr = AREG((Opcode >> 0) & 7);
34148 READ_WORD_F(adr, src)
34149 res = DREGu16((Opcode >> 9) & 7);
34151 flag_N = res >> 24;
34153 flag_V = flag_C = 0;
34154 DREGu32((Opcode >> 9) & 7) = res;
34156 #ifdef USE_CYCLONE_TIMING
34169 adr = AREG((Opcode >> 0) & 7);
34170 AREG((Opcode >> 0) & 7) += 2;
34172 READ_WORD_F(adr, src)
34173 res = DREGu16((Opcode >> 9) & 7);
34175 flag_N = res >> 24;
34177 flag_V = flag_C = 0;
34178 DREGu32((Opcode >> 9) & 7) = res;
34180 #ifdef USE_CYCLONE_TIMING
34193 adr = AREG((Opcode >> 0) & 7) - 2;
34194 AREG((Opcode >> 0) & 7) = adr;
34196 READ_WORD_F(adr, src)
34197 res = DREGu16((Opcode >> 9) & 7);
34199 flag_N = res >> 24;
34201 flag_V = flag_C = 0;
34202 DREGu32((Opcode >> 9) & 7) = res;
34204 #ifdef USE_CYCLONE_TIMING
34218 adr += AREG((Opcode >> 0) & 7);
34220 READ_WORD_F(adr, src)
34221 res = DREGu16((Opcode >> 9) & 7);
34223 flag_N = res >> 24;
34225 flag_V = flag_C = 0;
34226 DREGu32((Opcode >> 9) & 7) = res;
34228 #ifdef USE_CYCLONE_TIMING
34241 adr = AREG((Opcode >> 0) & 7);
34244 READ_WORD_F(adr, src)
34245 res = DREGu16((Opcode >> 9) & 7);
34247 flag_N = res >> 24;
34249 flag_V = flag_C = 0;
34250 DREGu32((Opcode >> 9) & 7) = res;
34252 #ifdef USE_CYCLONE_TIMING
34267 READ_WORD_F(adr, src)
34268 res = DREGu16((Opcode >> 9) & 7);
34270 flag_N = res >> 24;
34272 flag_V = flag_C = 0;
34273 DREGu32((Opcode >> 9) & 7) = res;
34275 #ifdef USE_CYCLONE_TIMING
34290 READ_WORD_F(adr, src)
34291 res = DREGu16((Opcode >> 9) & 7);
34293 flag_N = res >> 24;
34295 flag_V = flag_C = 0;
34296 DREGu32((Opcode >> 9) & 7) = res;
34298 #ifdef USE_CYCLONE_TIMING
34311 adr = GET_SWORD + ((u32)(PC) - BasePC);
34314 READ_WORD_F(adr, src)
34315 res = DREGu16((Opcode >> 9) & 7);
34317 flag_N = res >> 24;
34319 flag_V = flag_C = 0;
34320 DREGu32((Opcode >> 9) & 7) = res;
34322 #ifdef USE_CYCLONE_TIMING
34335 adr = (u32)(PC) - BasePC;
34338 READ_WORD_F(adr, src)
34339 res = DREGu16((Opcode >> 9) & 7);
34341 flag_N = res >> 24;
34343 flag_V = flag_C = 0;
34344 DREGu32((Opcode >> 9) & 7) = res;
34346 #ifdef USE_CYCLONE_TIMING
34360 res = DREGu16((Opcode >> 9) & 7);
34362 flag_N = res >> 24;
34364 flag_V = flag_C = 0;
34365 DREGu32((Opcode >> 9) & 7) = res;
34366 #ifdef USE_CYCLONE_TIMING
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
34406 READ_WORD_F(adr, src)
34407 res = DREGu16((Opcode >> 9) & 7);
34409 flag_N = res >> 24;
34411 flag_V = flag_C = 0;
34412 DREGu32((Opcode >> 9) & 7) = res;
34414 #ifdef USE_CYCLONE_TIMING
34427 src = (s32)DREGs16((Opcode >> 0) & 7);
34428 res = (s32)DREGs16((Opcode >> 9) & 7);
34429 res = ((s32)res) * ((s32)src);
34430 flag_N = res >> 24;
34432 flag_V = flag_C = 0;
34433 DREGu32((Opcode >> 9) & 7) = res;
34434 #ifdef USE_CYCLONE_TIMING
34447 adr = AREG((Opcode >> 0) & 7);
34449 READSX_WORD_F(adr, src)
34450 res = (s32)DREGs16((Opcode >> 9) & 7);
34451 res = ((s32)res) * ((s32)src);
34452 flag_N = res >> 24;
34454 flag_V = flag_C = 0;
34455 DREGu32((Opcode >> 9) & 7) = res;
34457 #ifdef USE_CYCLONE_TIMING
34470 adr = AREG((Opcode >> 0) & 7);
34471 AREG((Opcode >> 0) & 7) += 2;
34473 READSX_WORD_F(adr, src)
34474 res = (s32)DREGs16((Opcode >> 9) & 7);
34475 res = ((s32)res) * ((s32)src);
34476 flag_N = res >> 24;
34478 flag_V = flag_C = 0;
34479 DREGu32((Opcode >> 9) & 7) = res;
34481 #ifdef USE_CYCLONE_TIMING
34494 adr = AREG((Opcode >> 0) & 7) - 2;
34495 AREG((Opcode >> 0) & 7) = adr;
34497 READSX_WORD_F(adr, src)
34498 res = (s32)DREGs16((Opcode >> 9) & 7);
34499 res = ((s32)res) * ((s32)src);
34500 flag_N = res >> 24;
34502 flag_V = flag_C = 0;
34503 DREGu32((Opcode >> 9) & 7) = res;
34505 #ifdef USE_CYCLONE_TIMING
34519 adr += AREG((Opcode >> 0) & 7);
34521 READSX_WORD_F(adr, src)
34522 res = (s32)DREGs16((Opcode >> 9) & 7);
34523 res = ((s32)res) * ((s32)src);
34524 flag_N = res >> 24;
34526 flag_V = flag_C = 0;
34527 DREGu32((Opcode >> 9) & 7) = res;
34529 #ifdef USE_CYCLONE_TIMING
34542 adr = AREG((Opcode >> 0) & 7);
34545 READSX_WORD_F(adr, src)
34546 res = (s32)DREGs16((Opcode >> 9) & 7);
34547 res = ((s32)res) * ((s32)src);
34548 flag_N = res >> 24;
34550 flag_V = flag_C = 0;
34551 DREGu32((Opcode >> 9) & 7) = res;
34553 #ifdef USE_CYCLONE_TIMING
34568 READSX_WORD_F(adr, src)
34569 res = (s32)DREGs16((Opcode >> 9) & 7);
34570 res = ((s32)res) * ((s32)src);
34571 flag_N = res >> 24;
34573 flag_V = flag_C = 0;
34574 DREGu32((Opcode >> 9) & 7) = res;
34576 #ifdef USE_CYCLONE_TIMING
34591 READSX_WORD_F(adr, src)
34592 res = (s32)DREGs16((Opcode >> 9) & 7);
34593 res = ((s32)res) * ((s32)src);
34594 flag_N = res >> 24;
34596 flag_V = flag_C = 0;
34597 DREGu32((Opcode >> 9) & 7) = res;
34599 #ifdef USE_CYCLONE_TIMING
34612 adr = GET_SWORD + ((u32)(PC) - BasePC);
34615 READSX_WORD_F(adr, src)
34616 res = (s32)DREGs16((Opcode >> 9) & 7);
34617 res = ((s32)res) * ((s32)src);
34618 flag_N = res >> 24;
34620 flag_V = flag_C = 0;
34621 DREGu32((Opcode >> 9) & 7) = res;
34623 #ifdef USE_CYCLONE_TIMING
34636 adr = (u32)(PC) - BasePC;
34639 READSX_WORD_F(adr, src)
34640 res = (s32)DREGs16((Opcode >> 9) & 7);
34641 res = ((s32)res) * ((s32)src);
34642 flag_N = res >> 24;
34644 flag_V = flag_C = 0;
34645 DREGu32((Opcode >> 9) & 7) = res;
34647 #ifdef USE_CYCLONE_TIMING
34661 res = (s32)DREGs16((Opcode >> 9) & 7);
34662 res = ((s32)res) * ((s32)src);
34663 flag_N = res >> 24;
34665 flag_V = flag_C = 0;
34666 DREGu32((Opcode >> 9) & 7) = res;
34667 #ifdef USE_CYCLONE_TIMING
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
34707 READSX_WORD_F(adr, src)
34708 res = (s32)DREGs16((Opcode >> 9) & 7);
34709 res = ((s32)res) * ((s32)src);
34710 flag_N = res >> 24;
34712 flag_V = flag_C = 0;
34713 DREGu32((Opcode >> 9) & 7) = res;
34715 #ifdef USE_CYCLONE_TIMING
34728 res = DREGu32((Opcode >> 0) & 7);
34729 src = DREGu32((Opcode >> 9) & 7);
34730 DREGu32((Opcode >> 9) & 7) = res;
34732 DREGu32((Opcode >> 0) & 7) = res;
34742 res = AREGu32((Opcode >> 0) & 7);
34743 src = AREGu32((Opcode >> 9) & 7);
34744 AREG((Opcode >> 9) & 7) = res;
34746 AREG((Opcode >> 0) & 7) = res;
34756 res = AREGu32((Opcode >> 0) & 7);
34757 src = DREGu32((Opcode >> 9) & 7);
34758 DREGu32((Opcode >> 9) & 7) = res;
34760 AREG((Opcode >> 0) & 7) = res;
34770 src = DREGu8((Opcode >> 0) & 7);
34771 dst = DREGu8((Opcode >> 9) & 7);
34773 flag_N = flag_X = flag_C = res;
34774 flag_V = (src ^ res) & (dst ^ res);
34775 flag_NotZ = res & 0xFF;
34776 DREGu8((Opcode >> 9) & 7) = res;
34787 // can't read byte from Ax registers !
34788 m68kcontext.execinfo |= M68K_FAULTED;
34789 m68kcontext.io_cycle_counter = 0;
34791 goto famec_Exec_End;
34792 dst = DREGu8((Opcode >> 9) & 7);
34794 flag_N = flag_X = flag_C = res;
34795 flag_V = (src ^ res) & (dst ^ res);
34796 flag_NotZ = res & 0xFF;
34797 DREGu8((Opcode >> 9) & 7) = res;
34809 adr = AREG((Opcode >> 0) & 7);
34811 READ_BYTE_F(adr, src)
34812 dst = DREGu8((Opcode >> 9) & 7);
34814 flag_N = flag_X = flag_C = res;
34815 flag_V = (src ^ res) & (dst ^ res);
34816 flag_NotZ = res & 0xFF;
34817 DREGu8((Opcode >> 9) & 7) = res;
34828 adr = AREG((Opcode >> 0) & 7);
34829 AREG((Opcode >> 0) & 7) += 1;
34831 READ_BYTE_F(adr, src)
34832 dst = DREGu8((Opcode >> 9) & 7);
34834 flag_N = flag_X = flag_C = res;
34835 flag_V = (src ^ res) & (dst ^ res);
34836 flag_NotZ = res & 0xFF;
34837 DREGu8((Opcode >> 9) & 7) = res;
34848 adr = AREG((Opcode >> 0) & 7) - 1;
34849 AREG((Opcode >> 0) & 7) = adr;
34851 READ_BYTE_F(adr, src)
34852 dst = DREGu8((Opcode >> 9) & 7);
34854 flag_N = flag_X = flag_C = res;
34855 flag_V = (src ^ res) & (dst ^ res);
34856 flag_NotZ = res & 0xFF;
34857 DREGu8((Opcode >> 9) & 7) = res;
34869 adr += AREG((Opcode >> 0) & 7);
34871 READ_BYTE_F(adr, src)
34872 dst = DREGu8((Opcode >> 9) & 7);
34874 flag_N = flag_X = flag_C = res;
34875 flag_V = (src ^ res) & (dst ^ res);
34876 flag_NotZ = res & 0xFF;
34877 DREGu8((Opcode >> 9) & 7) = res;
34888 adr = AREG((Opcode >> 0) & 7);
34891 READ_BYTE_F(adr, src)
34892 dst = DREGu8((Opcode >> 9) & 7);
34894 flag_N = flag_X = flag_C = res;
34895 flag_V = (src ^ res) & (dst ^ res);
34896 flag_NotZ = res & 0xFF;
34897 DREGu8((Opcode >> 9) & 7) = res;
34910 READ_BYTE_F(adr, src)
34911 dst = DREGu8((Opcode >> 9) & 7);
34913 flag_N = flag_X = flag_C = res;
34914 flag_V = (src ^ res) & (dst ^ res);
34915 flag_NotZ = res & 0xFF;
34916 DREGu8((Opcode >> 9) & 7) = res;
34929 READ_BYTE_F(adr, src)
34930 dst = DREGu8((Opcode >> 9) & 7);
34932 flag_N = flag_X = flag_C = res;
34933 flag_V = (src ^ res) & (dst ^ res);
34934 flag_NotZ = res & 0xFF;
34935 DREGu8((Opcode >> 9) & 7) = res;
34946 adr = GET_SWORD + ((u32)(PC) - BasePC);
34949 READ_BYTE_F(adr, src)
34950 dst = DREGu8((Opcode >> 9) & 7);
34952 flag_N = flag_X = flag_C = res;
34953 flag_V = (src ^ res) & (dst ^ res);
34954 flag_NotZ = res & 0xFF;
34955 DREGu8((Opcode >> 9) & 7) = res;
34966 adr = (u32)(PC) - BasePC;
34969 READ_BYTE_F(adr, src)
34970 dst = DREGu8((Opcode >> 9) & 7);
34972 flag_N = flag_X = flag_C = res;
34973 flag_V = (src ^ res) & (dst ^ res);
34974 flag_NotZ = res & 0xFF;
34975 DREGu8((Opcode >> 9) & 7) = res;
34987 dst = DREGu8((Opcode >> 9) & 7);
34989 flag_N = flag_X = flag_C = res;
34990 flag_V = (src ^ res) & (dst ^ res);
34991 flag_NotZ = res & 0xFF;
34992 DREGu8((Opcode >> 9) & 7) = res;
35005 READ_BYTE_F(adr, src)
35006 dst = DREGu8((Opcode >> 9) & 7);
35008 flag_N = flag_X = flag_C = res;
35009 flag_V = (src ^ res) & (dst ^ res);
35010 flag_NotZ = res & 0xFF;
35011 DREGu8((Opcode >> 9) & 7) = res;
35025 READ_BYTE_F(adr, src)
35026 dst = DREGu8((Opcode >> 9) & 7);
35028 flag_N = flag_X = flag_C = res;
35029 flag_V = (src ^ res) & (dst ^ res);
35030 flag_NotZ = res & 0xFF;
35031 DREGu8((Opcode >> 9) & 7) = res;
35042 src = DREGu16((Opcode >> 0) & 7);
35043 dst = DREGu16((Opcode >> 9) & 7);
35045 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35046 flag_N = flag_X = flag_C = res >> 8;
35047 flag_NotZ = res & 0xFFFF;
35048 DREGu16((Opcode >> 9) & 7) = res;
35058 src = AREGu16((Opcode >> 0) & 7);
35059 dst = DREGu16((Opcode >> 9) & 7);
35061 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35062 flag_N = flag_X = flag_C = res >> 8;
35063 flag_NotZ = res & 0xFFFF;
35064 DREGu16((Opcode >> 9) & 7) = res;
35074 adr = AREG((Opcode >> 0) & 7);
35076 READ_WORD_F(adr, src)
35077 dst = DREGu16((Opcode >> 9) & 7);
35079 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35080 flag_N = flag_X = flag_C = res >> 8;
35081 flag_NotZ = res & 0xFFFF;
35082 DREGu16((Opcode >> 9) & 7) = res;
35093 adr = AREG((Opcode >> 0) & 7);
35094 AREG((Opcode >> 0) & 7) += 2;
35096 READ_WORD_F(adr, src)
35097 dst = DREGu16((Opcode >> 9) & 7);
35099 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35100 flag_N = flag_X = flag_C = res >> 8;
35101 flag_NotZ = res & 0xFFFF;
35102 DREGu16((Opcode >> 9) & 7) = res;
35113 adr = AREG((Opcode >> 0) & 7) - 2;
35114 AREG((Opcode >> 0) & 7) = adr;
35116 READ_WORD_F(adr, src)
35117 dst = DREGu16((Opcode >> 9) & 7);
35119 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35120 flag_N = flag_X = flag_C = res >> 8;
35121 flag_NotZ = res & 0xFFFF;
35122 DREGu16((Opcode >> 9) & 7) = res;
35134 adr += AREG((Opcode >> 0) & 7);
35136 READ_WORD_F(adr, src)
35137 dst = DREGu16((Opcode >> 9) & 7);
35139 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35140 flag_N = flag_X = flag_C = res >> 8;
35141 flag_NotZ = res & 0xFFFF;
35142 DREGu16((Opcode >> 9) & 7) = res;
35153 adr = AREG((Opcode >> 0) & 7);
35156 READ_WORD_F(adr, src)
35157 dst = DREGu16((Opcode >> 9) & 7);
35159 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35160 flag_N = flag_X = flag_C = res >> 8;
35161 flag_NotZ = res & 0xFFFF;
35162 DREGu16((Opcode >> 9) & 7) = res;
35175 READ_WORD_F(adr, src)
35176 dst = DREGu16((Opcode >> 9) & 7);
35178 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35179 flag_N = flag_X = flag_C = res >> 8;
35180 flag_NotZ = res & 0xFFFF;
35181 DREGu16((Opcode >> 9) & 7) = res;
35194 READ_WORD_F(adr, src)
35195 dst = DREGu16((Opcode >> 9) & 7);
35197 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35198 flag_N = flag_X = flag_C = res >> 8;
35199 flag_NotZ = res & 0xFFFF;
35200 DREGu16((Opcode >> 9) & 7) = res;
35211 adr = GET_SWORD + ((u32)(PC) - BasePC);
35214 READ_WORD_F(adr, src)
35215 dst = DREGu16((Opcode >> 9) & 7);
35217 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35218 flag_N = flag_X = flag_C = res >> 8;
35219 flag_NotZ = res & 0xFFFF;
35220 DREGu16((Opcode >> 9) & 7) = res;
35231 adr = (u32)(PC) - BasePC;
35234 READ_WORD_F(adr, src)
35235 dst = DREGu16((Opcode >> 9) & 7);
35237 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35238 flag_N = flag_X = flag_C = res >> 8;
35239 flag_NotZ = res & 0xFFFF;
35240 DREGu16((Opcode >> 9) & 7) = res;
35252 dst = DREGu16((Opcode >> 9) & 7);
35254 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35255 flag_N = flag_X = flag_C = res >> 8;
35256 flag_NotZ = res & 0xFFFF;
35257 DREGu16((Opcode >> 9) & 7) = res;
35270 READ_WORD_F(adr, src)
35271 dst = DREGu16((Opcode >> 9) & 7);
35273 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35274 flag_N = flag_X = flag_C = res >> 8;
35275 flag_NotZ = res & 0xFFFF;
35276 DREGu16((Opcode >> 9) & 7) = res;
35290 READ_WORD_F(adr, src)
35291 dst = DREGu16((Opcode >> 9) & 7);
35293 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35294 flag_N = flag_X = flag_C = res >> 8;
35295 flag_NotZ = res & 0xFFFF;
35296 DREGu16((Opcode >> 9) & 7) = res;
35307 src = DREGu32((Opcode >> 0) & 7);
35308 dst = DREGu32((Opcode >> 9) & 7);
35311 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35312 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35313 flag_N = res >> 24;
35314 DREGu32((Opcode >> 9) & 7) = res;
35324 src = AREGu32((Opcode >> 0) & 7);
35325 dst = DREGu32((Opcode >> 9) & 7);
35328 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35329 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35330 flag_N = res >> 24;
35331 DREGu32((Opcode >> 9) & 7) = res;
35341 adr = AREG((Opcode >> 0) & 7);
35343 READ_LONG_F(adr, src)
35344 dst = DREGu32((Opcode >> 9) & 7);
35347 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35348 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35349 flag_N = res >> 24;
35350 DREGu32((Opcode >> 9) & 7) = res;
35361 adr = AREG((Opcode >> 0) & 7);
35362 AREG((Opcode >> 0) & 7) += 4;
35364 READ_LONG_F(adr, src)
35365 dst = DREGu32((Opcode >> 9) & 7);
35368 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35369 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35370 flag_N = res >> 24;
35371 DREGu32((Opcode >> 9) & 7) = res;
35382 adr = AREG((Opcode >> 0) & 7) - 4;
35383 AREG((Opcode >> 0) & 7) = adr;
35385 READ_LONG_F(adr, src)
35386 dst = DREGu32((Opcode >> 9) & 7);
35389 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35390 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35391 flag_N = res >> 24;
35392 DREGu32((Opcode >> 9) & 7) = res;
35404 adr += AREG((Opcode >> 0) & 7);
35406 READ_LONG_F(adr, src)
35407 dst = DREGu32((Opcode >> 9) & 7);
35410 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35411 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35412 flag_N = res >> 24;
35413 DREGu32((Opcode >> 9) & 7) = res;
35424 adr = AREG((Opcode >> 0) & 7);
35427 READ_LONG_F(adr, src)
35428 dst = DREGu32((Opcode >> 9) & 7);
35431 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35432 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35433 flag_N = res >> 24;
35434 DREGu32((Opcode >> 9) & 7) = res;
35447 READ_LONG_F(adr, src)
35448 dst = DREGu32((Opcode >> 9) & 7);
35451 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35452 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35453 flag_N = res >> 24;
35454 DREGu32((Opcode >> 9) & 7) = res;
35467 READ_LONG_F(adr, src)
35468 dst = DREGu32((Opcode >> 9) & 7);
35471 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35472 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35473 flag_N = res >> 24;
35474 DREGu32((Opcode >> 9) & 7) = res;
35485 adr = GET_SWORD + ((u32)(PC) - BasePC);
35488 READ_LONG_F(adr, src)
35489 dst = DREGu32((Opcode >> 9) & 7);
35492 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35493 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35494 flag_N = res >> 24;
35495 DREGu32((Opcode >> 9) & 7) = res;
35506 adr = (u32)(PC) - BasePC;
35509 READ_LONG_F(adr, src)
35510 dst = DREGu32((Opcode >> 9) & 7);
35513 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35514 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35515 flag_N = res >> 24;
35516 DREGu32((Opcode >> 9) & 7) = res;
35528 dst = DREGu32((Opcode >> 9) & 7);
35531 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35532 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35533 flag_N = res >> 24;
35534 DREGu32((Opcode >> 9) & 7) = res;
35547 READ_LONG_F(adr, src)
35548 dst = DREGu32((Opcode >> 9) & 7);
35551 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35552 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35553 flag_N = res >> 24;
35554 DREGu32((Opcode >> 9) & 7) = res;
35568 READ_LONG_F(adr, src)
35569 dst = DREGu32((Opcode >> 9) & 7);
35572 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35573 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35574 flag_N = res >> 24;
35575 DREGu32((Opcode >> 9) & 7) = res;
35586 src = DREGu8((Opcode >> 9) & 7);
35587 adr = AREG((Opcode >> 0) & 7);
35589 READ_BYTE_F(adr, dst)
35591 flag_N = flag_X = flag_C = res;
35592 flag_V = (src ^ res) & (dst ^ res);
35593 flag_NotZ = res & 0xFF;
35594 WRITE_BYTE_F(adr, res)
35605 src = DREGu8((Opcode >> 9) & 7);
35606 adr = AREG((Opcode >> 0) & 7);
35607 AREG((Opcode >> 0) & 7) += 1;
35609 READ_BYTE_F(adr, dst)
35611 flag_N = flag_X = flag_C = res;
35612 flag_V = (src ^ res) & (dst ^ res);
35613 flag_NotZ = res & 0xFF;
35614 WRITE_BYTE_F(adr, res)
35625 src = DREGu8((Opcode >> 9) & 7);
35626 adr = AREG((Opcode >> 0) & 7) - 1;
35627 AREG((Opcode >> 0) & 7) = adr;
35629 READ_BYTE_F(adr, dst)
35631 flag_N = flag_X = flag_C = res;
35632 flag_V = (src ^ res) & (dst ^ res);
35633 flag_NotZ = res & 0xFF;
35634 WRITE_BYTE_F(adr, res)
35645 src = DREGu8((Opcode >> 9) & 7);
35647 adr += AREG((Opcode >> 0) & 7);
35649 READ_BYTE_F(adr, dst)
35651 flag_N = flag_X = flag_C = res;
35652 flag_V = (src ^ res) & (dst ^ res);
35653 flag_NotZ = res & 0xFF;
35654 WRITE_BYTE_F(adr, res)
35665 src = DREGu8((Opcode >> 9) & 7);
35666 adr = AREG((Opcode >> 0) & 7);
35669 READ_BYTE_F(adr, dst)
35671 flag_N = flag_X = flag_C = res;
35672 flag_V = (src ^ res) & (dst ^ res);
35673 flag_NotZ = res & 0xFF;
35674 WRITE_BYTE_F(adr, res)
35685 src = DREGu8((Opcode >> 9) & 7);
35688 READ_BYTE_F(adr, dst)
35690 flag_N = flag_X = flag_C = res;
35691 flag_V = (src ^ res) & (dst ^ res);
35692 flag_NotZ = res & 0xFF;
35693 WRITE_BYTE_F(adr, res)
35704 src = DREGu8((Opcode >> 9) & 7);
35707 READ_BYTE_F(adr, dst)
35709 flag_N = flag_X = flag_C = res;
35710 flag_V = (src ^ res) & (dst ^ res);
35711 flag_NotZ = res & 0xFF;
35712 WRITE_BYTE_F(adr, res)
35723 src = DREGu8((Opcode >> 9) & 7);
35727 READ_BYTE_F(adr, dst)
35729 flag_N = flag_X = flag_C = res;
35730 flag_V = (src ^ res) & (dst ^ res);
35731 flag_NotZ = res & 0xFF;
35732 WRITE_BYTE_F(adr, res)
35743 src = DREGu8((Opcode >> 9) & 7);
35747 READ_BYTE_F(adr, dst)
35749 flag_N = flag_X = flag_C = res;
35750 flag_V = (src ^ res) & (dst ^ res);
35751 flag_NotZ = res & 0xFF;
35752 WRITE_BYTE_F(adr, res)
35763 src = DREGu16((Opcode >> 9) & 7);
35764 adr = AREG((Opcode >> 0) & 7);
35766 READ_WORD_F(adr, dst)
35768 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35769 flag_N = flag_X = flag_C = res >> 8;
35770 flag_NotZ = res & 0xFFFF;
35771 WRITE_WORD_F(adr, res)
35782 src = DREGu16((Opcode >> 9) & 7);
35783 adr = AREG((Opcode >> 0) & 7);
35784 AREG((Opcode >> 0) & 7) += 2;
35786 READ_WORD_F(adr, dst)
35788 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35789 flag_N = flag_X = flag_C = res >> 8;
35790 flag_NotZ = res & 0xFFFF;
35791 WRITE_WORD_F(adr, res)
35802 src = DREGu16((Opcode >> 9) & 7);
35803 adr = AREG((Opcode >> 0) & 7) - 2;
35804 AREG((Opcode >> 0) & 7) = adr;
35806 READ_WORD_F(adr, dst)
35808 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35809 flag_N = flag_X = flag_C = res >> 8;
35810 flag_NotZ = res & 0xFFFF;
35811 WRITE_WORD_F(adr, res)
35822 src = DREGu16((Opcode >> 9) & 7);
35824 adr += AREG((Opcode >> 0) & 7);
35826 READ_WORD_F(adr, dst)
35828 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35829 flag_N = flag_X = flag_C = res >> 8;
35830 flag_NotZ = res & 0xFFFF;
35831 WRITE_WORD_F(adr, res)
35842 src = DREGu16((Opcode >> 9) & 7);
35843 adr = AREG((Opcode >> 0) & 7);
35846 READ_WORD_F(adr, dst)
35848 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35849 flag_N = flag_X = flag_C = res >> 8;
35850 flag_NotZ = res & 0xFFFF;
35851 WRITE_WORD_F(adr, res)
35862 src = DREGu16((Opcode >> 9) & 7);
35865 READ_WORD_F(adr, dst)
35867 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35868 flag_N = flag_X = flag_C = res >> 8;
35869 flag_NotZ = res & 0xFFFF;
35870 WRITE_WORD_F(adr, res)
35881 src = DREGu16((Opcode >> 9) & 7);
35884 READ_WORD_F(adr, dst)
35886 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35887 flag_N = flag_X = flag_C = res >> 8;
35888 flag_NotZ = res & 0xFFFF;
35889 WRITE_WORD_F(adr, res)
35900 src = DREGu16((Opcode >> 9) & 7);
35904 READ_WORD_F(adr, dst)
35906 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35907 flag_N = flag_X = flag_C = res >> 8;
35908 flag_NotZ = res & 0xFFFF;
35909 WRITE_WORD_F(adr, res)
35920 src = DREGu16((Opcode >> 9) & 7);
35924 READ_WORD_F(adr, dst)
35926 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35927 flag_N = flag_X = flag_C = res >> 8;
35928 flag_NotZ = res & 0xFFFF;
35929 WRITE_WORD_F(adr, res)
35940 src = DREGu32((Opcode >> 9) & 7);
35941 adr = AREG((Opcode >> 0) & 7);
35943 READ_LONG_F(adr, dst)
35946 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35947 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35948 flag_N = res >> 24;
35949 WRITE_LONG_F(adr, res)
35960 src = DREGu32((Opcode >> 9) & 7);
35961 adr = AREG((Opcode >> 0) & 7);
35962 AREG((Opcode >> 0) & 7) += 4;
35964 READ_LONG_F(adr, dst)
35967 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35968 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35969 flag_N = res >> 24;
35970 WRITE_LONG_F(adr, res)
35981 src = DREGu32((Opcode >> 9) & 7);
35982 adr = AREG((Opcode >> 0) & 7) - 4;
35983 AREG((Opcode >> 0) & 7) = adr;
35985 READ_LONG_F(adr, dst)
35988 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35989 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35990 flag_N = res >> 24;
35991 WRITE_LONG_F(adr, res)
36002 src = DREGu32((Opcode >> 9) & 7);
36004 adr += AREG((Opcode >> 0) & 7);
36006 READ_LONG_F(adr, dst)
36009 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36010 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36011 flag_N = res >> 24;
36012 WRITE_LONG_F(adr, res)
36023 src = DREGu32((Opcode >> 9) & 7);
36024 adr = AREG((Opcode >> 0) & 7);
36027 READ_LONG_F(adr, dst)
36030 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36031 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36032 flag_N = res >> 24;
36033 WRITE_LONG_F(adr, res)
36044 src = DREGu32((Opcode >> 9) & 7);
36047 READ_LONG_F(adr, dst)
36050 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36051 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36052 flag_N = res >> 24;
36053 WRITE_LONG_F(adr, res)
36064 src = DREGu32((Opcode >> 9) & 7);
36067 READ_LONG_F(adr, dst)
36070 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36071 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36072 flag_N = res >> 24;
36073 WRITE_LONG_F(adr, res)
36084 src = DREGu32((Opcode >> 9) & 7);
36088 READ_LONG_F(adr, dst)
36091 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36092 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36093 flag_N = res >> 24;
36094 WRITE_LONG_F(adr, res)
36105 src = DREGu32((Opcode >> 9) & 7);
36109 READ_LONG_F(adr, dst)
36112 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36113 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36114 flag_N = res >> 24;
36115 WRITE_LONG_F(adr, res)
36126 src = DREGu8((Opcode >> 0) & 7);
36127 dst = DREGu8((Opcode >> 9) & 7);
36128 res = dst + src + ((flag_X >> 8) & 1);
36129 flag_N = flag_X = flag_C = res;
36130 flag_V = (src ^ res) & (dst ^ res);
36131 flag_NotZ |= res & 0xFF;
36132 DREGu8((Opcode >> 9) & 7) = res;
36142 src = DREGu16((Opcode >> 0) & 7);
36143 dst = DREGu16((Opcode >> 9) & 7);
36144 res = dst + src + ((flag_X >> 8) & 1);
36145 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36146 flag_N = flag_X = flag_C = res >> 8;
36147 flag_NotZ |= res & 0xFFFF;
36148 DREGu16((Opcode >> 9) & 7) = res;
36158 src = DREGu32((Opcode >> 0) & 7);
36159 dst = DREGu32((Opcode >> 9) & 7);
36160 res = dst + src + ((flag_X >> 8) & 1);
36162 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36163 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36164 flag_N = res >> 24;
36165 DREGu32((Opcode >> 9) & 7) = res;
36175 adr = AREG((Opcode >> 0) & 7) - 1;
36176 AREG((Opcode >> 0) & 7) = adr;
36178 READ_BYTE_F(adr, src)
36179 adr = AREG((Opcode >> 9) & 7) - 1;
36180 AREG((Opcode >> 9) & 7) = adr;
36181 READ_BYTE_F(adr, dst)
36182 res = dst + src + ((flag_X >> 8) & 1);
36183 flag_N = flag_X = flag_C = res;
36184 flag_V = (src ^ res) & (dst ^ res);
36185 flag_NotZ |= res & 0xFF;
36186 WRITE_BYTE_F(adr, res)
36197 adr = AREG((Opcode >> 0) & 7) - 2;
36198 AREG((Opcode >> 0) & 7) = adr;
36200 READ_WORD_F(adr, src)
36201 adr = AREG((Opcode >> 9) & 7) - 2;
36202 AREG((Opcode >> 9) & 7) = adr;
36203 READ_WORD_F(adr, dst)
36204 res = dst + src + ((flag_X >> 8) & 1);
36205 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36206 flag_N = flag_X = flag_C = res >> 8;
36207 flag_NotZ |= res & 0xFFFF;
36208 WRITE_WORD_F(adr, res)
36219 adr = AREG((Opcode >> 0) & 7) - 4;
36220 AREG((Opcode >> 0) & 7) = adr;
36222 READ_LONG_F(adr, src)
36223 adr = AREG((Opcode >> 9) & 7) - 4;
36224 AREG((Opcode >> 9) & 7) = adr;
36225 READ_LONG_F(adr, dst)
36226 res = dst + src + ((flag_X >> 8) & 1);
36228 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36229 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36230 flag_N = res >> 24;
36231 WRITE_LONG_F(adr, res)
36245 READ_BYTE_F(adr, src)
36246 adr = AREG((Opcode >> 9) & 7) - 1;
36247 AREG((Opcode >> 9) & 7) = adr;
36248 READ_BYTE_F(adr, dst)
36249 res = dst + src + ((flag_X >> 8) & 1);
36250 flag_N = flag_X = flag_C = res;
36251 flag_V = (src ^ res) & (dst ^ res);
36252 flag_NotZ |= res & 0xFF;
36253 WRITE_BYTE_F(adr, res)
36267 READ_WORD_F(adr, src)
36268 adr = AREG((Opcode >> 9) & 7) - 2;
36269 AREG((Opcode >> 9) & 7) = adr;
36270 READ_WORD_F(adr, dst)
36271 res = dst + src + ((flag_X >> 8) & 1);
36272 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36273 flag_N = flag_X = flag_C = res >> 8;
36274 flag_NotZ |= res & 0xFFFF;
36275 WRITE_WORD_F(adr, res)
36289 READ_LONG_F(adr, src)
36290 adr = AREG((Opcode >> 9) & 7) - 4;
36291 AREG((Opcode >> 9) & 7) = adr;
36292 READ_LONG_F(adr, dst)
36293 res = dst + src + ((flag_X >> 8) & 1);
36295 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36296 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36297 flag_N = res >> 24;
36298 WRITE_LONG_F(adr, res)
36309 adr = AREG((Opcode >> 0) & 7) - 1;
36310 AREG((Opcode >> 0) & 7) = adr;
36312 READ_BYTE_F(adr, src)
36315 READ_BYTE_F(adr, dst)
36316 res = dst + src + ((flag_X >> 8) & 1);
36317 flag_N = flag_X = flag_C = res;
36318 flag_V = (src ^ res) & (dst ^ res);
36319 flag_NotZ |= res & 0xFF;
36320 WRITE_BYTE_F(adr, res)
36331 adr = AREG((Opcode >> 0) & 7) - 2;
36332 AREG((Opcode >> 0) & 7) = adr;
36334 READ_WORD_F(adr, src)
36337 READ_WORD_F(adr, dst)
36338 res = dst + src + ((flag_X >> 8) & 1);
36339 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36340 flag_N = flag_X = flag_C = res >> 8;
36341 flag_NotZ |= res & 0xFFFF;
36342 WRITE_WORD_F(adr, res)
36353 adr = AREG((Opcode >> 0) & 7) - 4;
36354 AREG((Opcode >> 0) & 7) = adr;
36356 READ_LONG_F(adr, src)
36359 READ_LONG_F(adr, dst)
36360 res = dst + src + ((flag_X >> 8) & 1);
36362 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36363 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36364 flag_N = res >> 24;
36365 WRITE_LONG_F(adr, res)
36379 READ_BYTE_F(adr, src)
36382 READ_BYTE_F(adr, dst)
36383 res = dst + src + ((flag_X >> 8) & 1);
36384 flag_N = flag_X = flag_C = res;
36385 flag_V = (src ^ res) & (dst ^ res);
36386 flag_NotZ |= res & 0xFF;
36387 WRITE_BYTE_F(adr, res)
36401 READ_WORD_F(adr, src)
36404 READ_WORD_F(adr, dst)
36405 res = dst + src + ((flag_X >> 8) & 1);
36406 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36407 flag_N = flag_X = flag_C = res >> 8;
36408 flag_NotZ |= res & 0xFFFF;
36409 WRITE_WORD_F(adr, res)
36423 READ_LONG_F(adr, src)
36426 READ_LONG_F(adr, dst)
36427 res = dst + src + ((flag_X >> 8) & 1);
36429 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36430 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36431 flag_N = res >> 24;
36432 WRITE_LONG_F(adr, res)
36443 src = (s32)DREGs16((Opcode >> 0) & 7);
36444 dst = AREGu32((Opcode >> 9) & 7);
36446 AREG((Opcode >> 9) & 7) = res;
36456 src = (s32)AREGs16((Opcode >> 0) & 7);
36457 dst = AREGu32((Opcode >> 9) & 7);
36459 AREG((Opcode >> 9) & 7) = res;
36469 adr = AREG((Opcode >> 0) & 7);
36471 READSX_WORD_F(adr, src)
36472 dst = AREGu32((Opcode >> 9) & 7);
36474 AREG((Opcode >> 9) & 7) = res;
36476 #ifdef USE_CYCLONE_TIMING
36489 adr = AREG((Opcode >> 0) & 7);
36490 AREG((Opcode >> 0) & 7) += 2;
36492 READSX_WORD_F(adr, src)
36493 dst = AREGu32((Opcode >> 9) & 7);
36495 AREG((Opcode >> 9) & 7) = res;
36497 #ifdef USE_CYCLONE_TIMING
36510 adr = AREG((Opcode >> 0) & 7) - 2;
36511 AREG((Opcode >> 0) & 7) = adr;
36513 READSX_WORD_F(adr, src)
36514 dst = AREGu32((Opcode >> 9) & 7);
36516 AREG((Opcode >> 9) & 7) = res;
36518 #ifdef USE_CYCLONE_TIMING
36532 adr += AREG((Opcode >> 0) & 7);
36534 READSX_WORD_F(adr, src)
36535 dst = AREGu32((Opcode >> 9) & 7);
36537 AREG((Opcode >> 9) & 7) = res;
36539 #ifdef USE_CYCLONE_TIMING
36552 adr = AREG((Opcode >> 0) & 7);
36555 READSX_WORD_F(adr, src)
36556 dst = AREGu32((Opcode >> 9) & 7);
36558 AREG((Opcode >> 9) & 7) = res;
36560 #ifdef USE_CYCLONE_TIMING
36575 READSX_WORD_F(adr, src)
36576 dst = AREGu32((Opcode >> 9) & 7);
36578 AREG((Opcode >> 9) & 7) = res;
36580 #ifdef USE_CYCLONE_TIMING
36595 READSX_WORD_F(adr, src)
36596 dst = AREGu32((Opcode >> 9) & 7);
36598 AREG((Opcode >> 9) & 7) = res;
36600 #ifdef USE_CYCLONE_TIMING
36613 adr = GET_SWORD + ((u32)(PC) - BasePC);
36616 READSX_WORD_F(adr, src)
36617 dst = AREGu32((Opcode >> 9) & 7);
36619 AREG((Opcode >> 9) & 7) = res;
36621 #ifdef USE_CYCLONE_TIMING
36634 adr = (u32)(PC) - BasePC;
36637 READSX_WORD_F(adr, src)
36638 dst = AREGu32((Opcode >> 9) & 7);
36640 AREG((Opcode >> 9) & 7) = res;
36642 #ifdef USE_CYCLONE_TIMING
36656 dst = AREGu32((Opcode >> 9) & 7);
36658 AREG((Opcode >> 9) & 7) = res;
36671 READSX_WORD_F(adr, src)
36672 dst = AREGu32((Opcode >> 9) & 7);
36674 AREG((Opcode >> 9) & 7) = res;
36676 #ifdef USE_CYCLONE_TIMING
36692 READSX_WORD_F(adr, src)
36693 dst = AREGu32((Opcode >> 9) & 7);
36695 AREG((Opcode >> 9) & 7) = res;
36697 #ifdef USE_CYCLONE_TIMING
36710 src = (s32)DREGs32((Opcode >> 0) & 7);
36711 dst = AREGu32((Opcode >> 9) & 7);
36713 AREG((Opcode >> 9) & 7) = res;
36714 #ifdef USE_CYCLONE_TIMING
36727 src = (s32)AREGs32((Opcode >> 0) & 7);
36728 dst = AREGu32((Opcode >> 9) & 7);
36730 AREG((Opcode >> 9) & 7) = res;
36731 #ifdef USE_CYCLONE_TIMING
36744 adr = AREG((Opcode >> 0) & 7);
36746 READSX_LONG_F(adr, src)
36747 dst = AREGu32((Opcode >> 9) & 7);
36749 AREG((Opcode >> 9) & 7) = res;
36760 adr = AREG((Opcode >> 0) & 7);
36761 AREG((Opcode >> 0) & 7) += 4;
36763 READSX_LONG_F(adr, src)
36764 dst = AREGu32((Opcode >> 9) & 7);
36766 AREG((Opcode >> 9) & 7) = res;
36777 adr = AREG((Opcode >> 0) & 7) - 4;
36778 AREG((Opcode >> 0) & 7) = adr;
36780 READSX_LONG_F(adr, src)
36781 dst = AREGu32((Opcode >> 9) & 7);
36783 AREG((Opcode >> 9) & 7) = res;
36795 adr += AREG((Opcode >> 0) & 7);
36797 READSX_LONG_F(adr, src)
36798 dst = AREGu32((Opcode >> 9) & 7);
36800 AREG((Opcode >> 9) & 7) = res;
36811 adr = AREG((Opcode >> 0) & 7);
36814 READSX_LONG_F(adr, src)
36815 dst = AREGu32((Opcode >> 9) & 7);
36817 AREG((Opcode >> 9) & 7) = res;
36830 READSX_LONG_F(adr, src)
36831 dst = AREGu32((Opcode >> 9) & 7);
36833 AREG((Opcode >> 9) & 7) = res;
36846 READSX_LONG_F(adr, src)
36847 dst = AREGu32((Opcode >> 9) & 7);
36849 AREG((Opcode >> 9) & 7) = res;
36860 adr = GET_SWORD + ((u32)(PC) - BasePC);
36863 READSX_LONG_F(adr, src)
36864 dst = AREGu32((Opcode >> 9) & 7);
36866 AREG((Opcode >> 9) & 7) = res;
36877 adr = (u32)(PC) - BasePC;
36880 READSX_LONG_F(adr, src)
36881 dst = AREGu32((Opcode >> 9) & 7);
36883 AREG((Opcode >> 9) & 7) = res;
36895 dst = AREGu32((Opcode >> 9) & 7);
36897 AREG((Opcode >> 9) & 7) = res;
36898 #ifdef USE_CYCLONE_TIMING
36914 READSX_LONG_F(adr, src)
36915 dst = AREGu32((Opcode >> 9) & 7);
36917 AREG((Opcode >> 9) & 7) = res;
36931 READSX_LONG_F(adr, src)
36932 dst = AREGu32((Opcode >> 9) & 7);
36934 AREG((Opcode >> 9) & 7) = res;
36947 sft = (((Opcode >> 9) - 1) & 7) + 1;
36948 m68kcontext.io_cycle_counter -= sft * 2;
36949 src = (s32)DREGs8((Opcode >> 0) & 7);
36951 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
36952 res = ((s32)src) >> sft;
36955 DREGu8((Opcode >> 0) & 7) = res;
36967 sft = (((Opcode >> 9) - 1) & 7) + 1;
36968 m68kcontext.io_cycle_counter -= sft * 2;
36969 src = (s32)DREGs16((Opcode >> 0) & 7);
36971 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
36972 res = ((s32)src) >> sft;
36975 DREGu16((Opcode >> 0) & 7) = res;
36987 sft = (((Opcode >> 9) - 1) & 7) + 1;
36988 m68kcontext.io_cycle_counter -= sft * 2;
36989 src = (s32)DREGs32((Opcode >> 0) & 7);
36991 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
36992 res = ((s32)src) >> sft;
36993 flag_N = res >> 24;
36995 DREGu32((Opcode >> 0) & 7) = res;
37007 sft = (((Opcode >> 9) - 1) & 7) + 1;
37008 m68kcontext.io_cycle_counter -= sft * 2;
37009 src = DREGu8((Opcode >> 0) & 7);
37010 flag_N = flag_V = 0;
37011 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37014 DREGu8((Opcode >> 0) & 7) = res;
37026 sft = (((Opcode >> 9) - 1) & 7) + 1;
37027 m68kcontext.io_cycle_counter -= sft * 2;
37028 src = DREGu16((Opcode >> 0) & 7);
37029 flag_N = flag_V = 0;
37030 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37033 DREGu16((Opcode >> 0) & 7) = res;
37045 sft = (((Opcode >> 9) - 1) & 7) + 1;
37046 m68kcontext.io_cycle_counter -= sft * 2;
37047 src = DREGu32((Opcode >> 0) & 7);
37048 flag_N = flag_V = 0;
37049 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37052 DREGu32((Opcode >> 0) & 7) = res;
37064 sft = (((Opcode >> 9) - 1) & 7) + 1;
37065 m68kcontext.io_cycle_counter -= sft * 2;
37066 src = DREGu8((Opcode >> 0) & 7);
37067 src |= (flag_X & M68K_SR_X) << 0;
37068 res = (src >> sft) | (src << (9 - sft));
37069 flag_X = flag_C = res >> 0;
37072 flag_NotZ = res & 0x000000FF;
37073 DREGu8((Opcode >> 0) & 7) = res;
37085 sft = (((Opcode >> 9) - 1) & 7) + 1;
37086 m68kcontext.io_cycle_counter -= sft * 2;
37087 src = DREGu16((Opcode >> 0) & 7);
37088 src |= (flag_X & M68K_SR_X) << 8;
37089 res = (src >> sft) | (src << (17 - sft));
37090 flag_X = flag_C = res >> 8;
37093 flag_NotZ = res & 0x0000FFFF;
37094 DREGu16((Opcode >> 0) & 7) = res;
37106 sft = (((Opcode >> 9) - 1) & 7) + 1;
37107 m68kcontext.io_cycle_counter -= sft * 2;
37108 src = DREGu32((Opcode >> 0) & 7);
37109 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37110 if (sft == 1) res = (src >> 1) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1)));
37111 else res = (src >> sft) | (src << (33 - sft)) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + sft)));
37114 flag_N = res >> 24;
37116 DREGu32((Opcode >> 0) & 7) = res;
37128 sft = (((Opcode >> 9) - 1) & 7) + 1;
37129 m68kcontext.io_cycle_counter -= sft * 2;
37130 src = DREGu8((Opcode >> 0) & 7);
37132 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37133 res = (src >> sft) | (src << (8 - sft));
37135 flag_NotZ = res & 0x000000FF;
37136 DREGu8((Opcode >> 0) & 7) = res;
37148 sft = (((Opcode >> 9) - 1) & 7) + 1;
37149 m68kcontext.io_cycle_counter -= sft * 2;
37150 src = DREGu16((Opcode >> 0) & 7);
37152 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37153 res = (src >> sft) | (src << (16 - sft));
37155 flag_NotZ = res & 0x0000FFFF;
37156 DREGu16((Opcode >> 0) & 7) = res;
37168 sft = (((Opcode >> 9) - 1) & 7) + 1;
37169 m68kcontext.io_cycle_counter -= sft * 2;
37170 src = DREGu32((Opcode >> 0) & 7);
37172 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37173 res = (src >> sft) | (src << (32 - sft));
37174 flag_N = res >> 24;
37176 DREGu32((Opcode >> 0) & 7) = res;
37188 sft = (((Opcode >> 9) - 1) & 7) + 1;
37189 m68kcontext.io_cycle_counter -= sft * 2;
37190 src = DREGu8((Opcode >> 0) & 7);
37193 flag_X = flag_C = src << (0 + sft);
37196 flag_NotZ = res & 0x000000FF;
37197 DREGu8((Opcode >> 0) & 7) = res;
37199 if ((sft > 7) && (src)) flag_V = M68K_SR_V;
37202 u32 msk = (((s32)0x80000000) >> (sft + 24)) & 0x000000FF;
37204 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37209 if (src) flag_V = M68K_SR_V;
37211 flag_X = flag_C = src << M68K_SR_C_SFT;
37213 DREGu8((Opcode >> 0) & 7) = res;
37227 sft = (((Opcode >> 9) - 1) & 7) + 1;
37228 m68kcontext.io_cycle_counter -= sft * 2;
37229 src = DREGu16((Opcode >> 0) & 7);
37230 flag_X = flag_C = src >> (8 - sft);
37233 flag_NotZ = res & 0x0000FFFF;
37234 DREGu16((Opcode >> 0) & 7) = res;
37237 u32 msk = (((s32)0x80000000) >> (sft + 16)) & 0x0000FFFF;
37239 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37252 sft = (((Opcode >> 9) - 1) & 7) + 1;
37253 m68kcontext.io_cycle_counter -= sft * 2;
37254 src = DREGu32((Opcode >> 0) & 7);
37255 flag_X = flag_C = src >> (24 - sft);
37257 flag_N = res >> 24;
37258 flag_NotZ = res & 0xFFFFFFFF;
37259 DREGu32((Opcode >> 0) & 7) = res;
37262 u32 msk = (((s32)0x80000000) >> (sft + 0)) & 0xFFFFFFFF;
37264 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37277 sft = (((Opcode >> 9) - 1) & 7) + 1;
37278 m68kcontext.io_cycle_counter -= sft * 2;
37279 src = DREGu8((Opcode >> 0) & 7);
37281 flag_X = flag_C = src << (0 + sft);
37284 flag_NotZ = res & 0x000000FF;
37285 DREGu8((Opcode >> 0) & 7) = res;
37297 sft = (((Opcode >> 9) - 1) & 7) + 1;
37298 m68kcontext.io_cycle_counter -= sft * 2;
37299 src = DREGu16((Opcode >> 0) & 7);
37301 flag_X = flag_C = src >> (8 - sft);
37304 flag_NotZ = res & 0x0000FFFF;
37305 DREGu16((Opcode >> 0) & 7) = res;
37317 sft = (((Opcode >> 9) - 1) & 7) + 1;
37318 m68kcontext.io_cycle_counter -= sft * 2;
37319 src = DREGu32((Opcode >> 0) & 7);
37321 flag_X = flag_C = src >> (24 - sft);
37323 flag_N = res >> 24;
37324 flag_NotZ = res & 0xFFFFFFFF;
37325 DREGu32((Opcode >> 0) & 7) = res;
37337 sft = (((Opcode >> 9) - 1) & 7) + 1;
37338 m68kcontext.io_cycle_counter -= sft * 2;
37339 src = DREGu8((Opcode >> 0) & 7);
37340 src |= (flag_X & M68K_SR_X) << 0;
37341 res = (src << sft) | (src >> (9 - sft));
37342 flag_X = flag_C = res >> 0;
37345 flag_NotZ = res & 0x000000FF;
37346 DREGu8((Opcode >> 0) & 7) = res;
37358 sft = (((Opcode >> 9) - 1) & 7) + 1;
37359 m68kcontext.io_cycle_counter -= sft * 2;
37360 src = DREGu16((Opcode >> 0) & 7);
37361 src |= (flag_X & M68K_SR_X) << 8;
37362 res = (src << sft) | (src >> (17 - sft));
37363 flag_X = flag_C = res >> 8;
37366 flag_NotZ = res & 0x0000FFFF;
37367 DREGu16((Opcode >> 0) & 7) = res;
37379 sft = (((Opcode >> 9) - 1) & 7) + 1;
37380 m68kcontext.io_cycle_counter -= sft * 2;
37381 src = DREGu32((Opcode >> 0) & 7);
37382 flag_C = src >> ((32 - M68K_SR_C_SFT) - sft);
37383 if (sft == 1) res = (src << 1) | ((flag_X & M68K_SR_X) >> ((M68K_SR_X_SFT + 1) - 1));
37384 else res = (src << sft) | (src >> (33 - sft)) | ((flag_X & M68K_SR_X) >> ((M68K_SR_X_SFT + 1) - sft));
37387 flag_N = res >> 24;
37389 DREGu32((Opcode >> 0) & 7) = res;
37401 sft = (((Opcode >> 9) - 1) & 7) + 1;
37402 m68kcontext.io_cycle_counter -= sft * 2;
37403 src = DREGu8((Opcode >> 0) & 7);
37405 flag_C = src << (0 + sft);
37406 res = (src << sft) | (src >> (8 - sft));
37408 flag_NotZ = res & 0x000000FF;
37409 DREGu8((Opcode >> 0) & 7) = res;
37421 sft = (((Opcode >> 9) - 1) & 7) + 1;
37422 m68kcontext.io_cycle_counter -= sft * 2;
37423 src = DREGu16((Opcode >> 0) & 7);
37425 flag_C = src >> (8 - sft);
37426 res = (src << sft) | (src >> (16 - sft));
37428 flag_NotZ = res & 0x0000FFFF;
37429 DREGu16((Opcode >> 0) & 7) = res;
37441 sft = (((Opcode >> 9) - 1) & 7) + 1;
37442 m68kcontext.io_cycle_counter -= sft * 2;
37443 src = DREGu32((Opcode >> 0) & 7);
37445 flag_C = src >> (24 - sft);
37446 res = (src << sft) | (src >> (32 - sft));
37447 flag_N = res >> 24;
37449 DREGu32((Opcode >> 0) & 7) = res;
37461 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37462 src = (s32)DREGs8((Opcode >> 0) & 7);
37465 m68kcontext.io_cycle_counter -= sft * 2;
37469 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37470 res = ((s32)src) >> sft;
37473 DREGu8((Opcode >> 0) & 7) = res;
37477 if (src & (1 << 7))
37479 flag_N = M68K_SR_N;
37482 flag_C = M68K_SR_C;
37483 flag_X = M68K_SR_X;
37485 DREGu8((Opcode >> 0) & 7) = res;
37495 DREGu8((Opcode >> 0) & 7) = res;
37514 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37515 src = (s32)DREGs16((Opcode >> 0) & 7);
37518 m68kcontext.io_cycle_counter -= sft * 2;
37522 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37523 res = ((s32)src) >> sft;
37526 DREGu16((Opcode >> 0) & 7) = res;
37530 if (src & (1 << 15))
37532 flag_N = M68K_SR_N;
37535 flag_C = M68K_SR_C;
37536 flag_X = M68K_SR_X;
37538 DREGu16((Opcode >> 0) & 7) = res;
37548 DREGu16((Opcode >> 0) & 7) = res;
37562 #ifdef USE_CYCLONE_TIMING
37572 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37573 src = (s32)DREGs32((Opcode >> 0) & 7);
37576 m68kcontext.io_cycle_counter -= sft * 2;
37580 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37581 res = ((s32)src) >> sft;
37582 flag_N = res >> 24;
37584 DREGu32((Opcode >> 0) & 7) = res;
37588 if (src & (1 << 31))
37590 flag_N = M68K_SR_N;
37593 flag_C = M68K_SR_C;
37594 flag_X = M68K_SR_X;
37596 DREGu32((Opcode >> 0) & 7) = res;
37606 DREGu32((Opcode >> 0) & 7) = res;
37612 flag_N = src >> 24;
37626 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37627 src = DREGu8((Opcode >> 0) & 7);
37630 m68kcontext.io_cycle_counter -= sft * 2;
37633 flag_N = flag_V = 0;
37634 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37637 DREGu8((Opcode >> 0) & 7) = res;
37641 flag_X = flag_C = 0;
37646 DREGu8((Opcode >> 0) & 7) = res;
37665 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37666 src = DREGu16((Opcode >> 0) & 7);
37669 m68kcontext.io_cycle_counter -= sft * 2;
37672 flag_N = flag_V = 0;
37673 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37676 DREGu16((Opcode >> 0) & 7) = res;
37680 flag_X = flag_C = 0;
37685 DREGu16((Opcode >> 0) & 7) = res;
37699 #ifdef USE_CYCLONE_TIMING
37709 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37710 src = DREGu32((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 DREGu32((Opcode >> 0) & 7) = res;
37724 if (sft == 32) flag_C = src >> (31 - M68K_SR_C_SFT);
37731 DREGu32((Opcode >> 0) & 7) = res;
37737 flag_N = src >> 24;
37751 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37752 src = DREGu8((Opcode >> 0) & 7);
37755 m68kcontext.io_cycle_counter -= sft * 2;
37758 src |= (flag_X & M68K_SR_X) << 0;
37759 res = (src >> sft) | (src << (9 - sft));
37760 flag_X = flag_C = res >> 0;
37763 flag_NotZ = res & 0x000000FF;
37764 DREGu8((Opcode >> 0) & 7) = res;
37783 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37784 src = DREGu16((Opcode >> 0) & 7);
37787 m68kcontext.io_cycle_counter -= sft * 2;
37790 src |= (flag_X & M68K_SR_X) << 8;
37791 res = (src >> sft) | (src << (17 - sft));
37792 flag_X = flag_C = res >> 8;
37795 flag_NotZ = res & 0x0000FFFF;
37796 DREGu16((Opcode >> 0) & 7) = res;
37810 #ifdef USE_CYCLONE_TIMING
37820 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37821 src = DREGu32((Opcode >> 0) & 7);
37824 m68kcontext.io_cycle_counter -= sft * 2;
37829 if (sft == 1) res = (src >> 1) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1)));
37830 else res = (src >> sft) | (src << (33 - sft)) | (((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1))) >> (sft - 1));
37831 flag_X = (src >> (32 - sft)) << M68K_SR_X_SFT;
37836 flag_N = res >> 24;
37838 DREGu32((Opcode >> 0) & 7) = res;
37844 flag_N = src >> 24;
37858 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37859 src = DREGu8((Opcode >> 0) & 7);
37862 m68kcontext.io_cycle_counter -= sft * 2;
37865 flag_C = src << (M68K_SR_C_SFT - ((sft - 1) & 7));
37866 res = (src >> sft) | (src << (8 - sft));
37869 flag_NotZ = res & 0x000000FF;
37870 DREGu8((Opcode >> 0) & 7) = res;
37889 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37890 src = DREGu16((Opcode >> 0) & 7);
37893 m68kcontext.io_cycle_counter -= sft * 2;
37896 flag_C = (src >> ((sft - 1) & 15)) << M68K_SR_C_SFT;
37897 res = (src >> sft) | (src << (16 - sft));
37900 flag_NotZ = res & 0x0000FFFF;
37901 DREGu16((Opcode >> 0) & 7) = res;
37915 #ifdef USE_CYCLONE_TIMING
37925 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37926 src = DREGu32((Opcode >> 0) & 7);
37929 m68kcontext.io_cycle_counter -= sft * 2;
37932 flag_C = (src >> ((sft - 1) & 31)) << M68K_SR_C_SFT;
37933 res = (src >> sft) | (src << (32 - sft));
37935 flag_N = res >> 24;
37937 DREGu32((Opcode >> 0) & 7) = res;
37943 flag_N = src >> 24;
37957 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37958 src = DREGu8((Opcode >> 0) & 7);
37961 m68kcontext.io_cycle_counter -= sft * 2;
37964 flag_X = flag_C = (src << sft) >> 0;
37965 res = (src << sft) & 0x000000FF;
37968 DREGu8((Opcode >> 0) & 7) = res;
37971 u32 msk = (((s32)0x80000000) >> (sft + 24)) & 0x000000FF;
37973 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37978 if (sft == 256) flag_C = src << M68K_SR_C_SFT;
37981 if (src) flag_V = M68K_SR_V;
37984 DREGu8((Opcode >> 0) & 7) = res;
38005 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38006 src = DREGu16((Opcode >> 0) & 7);
38009 m68kcontext.io_cycle_counter -= sft * 2;
38012 flag_X = flag_C = (src << sft) >> 8;
38013 res = (src << sft) & 0x0000FFFF;
38016 DREGu16((Opcode >> 0) & 7) = res;
38019 u32 msk = (((s32)0x80000000) >> (sft + 16)) & 0x0000FFFF;
38021 if ((src) && (src != msk)) flag_V = M68K_SR_V;
38026 if (sft == 65536) flag_C = src << M68K_SR_C_SFT;
38029 if (src) flag_V = M68K_SR_V;
38032 DREGu16((Opcode >> 0) & 7) = res;
38048 #ifdef USE_CYCLONE_TIMING
38058 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38059 src = DREGu32((Opcode >> 0) & 7);
38062 m68kcontext.io_cycle_counter -= sft * 2;
38065 flag_X = flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38067 flag_N = res >> 24;
38069 DREGu32((Opcode >> 0) & 7) = res;
38072 u32 msk = (((s32)0x80000000) >> (sft + 0)) & 0xFFFFFFFF;
38074 if ((src) && (src != msk)) flag_V = M68K_SR_V;
38079 if (sft == 0) flag_C = src << M68K_SR_C_SFT;
38082 if (src) flag_V = M68K_SR_V;
38085 DREGu32((Opcode >> 0) & 7) = res;
38093 flag_N = src >> 24;
38107 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38108 src = DREGu8((Opcode >> 0) & 7);
38111 m68kcontext.io_cycle_counter -= sft * 2;
38114 flag_X = flag_C = (src << sft) >> 0;
38115 res = (src << sft) & 0x000000FF;
38119 DREGu8((Opcode >> 0) & 7) = res;
38123 flag_X = flag_C = 0;
38128 DREGu8((Opcode >> 0) & 7) = res;
38147 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38148 src = DREGu16((Opcode >> 0) & 7);
38151 m68kcontext.io_cycle_counter -= sft * 2;
38154 flag_X = flag_C = (src << sft) >> 8;
38155 res = (src << sft) & 0x0000FFFF;
38159 DREGu16((Opcode >> 0) & 7) = res;
38163 flag_X = flag_C = 0;
38168 DREGu16((Opcode >> 0) & 7) = res;
38182 #ifdef USE_CYCLONE_TIMING
38192 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38193 src = DREGu32((Opcode >> 0) & 7);
38196 m68kcontext.io_cycle_counter -= sft * 2;
38199 flag_X = flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38202 flag_N = res >> 24;
38204 DREGu32((Opcode >> 0) & 7) = res;
38208 if (sft == 32) flag_C = src << M68K_SR_C_SFT;
38215 DREGu32((Opcode >> 0) & 7) = res;
38221 flag_N = src >> 24;
38235 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38236 src = DREGu8((Opcode >> 0) & 7);
38239 m68kcontext.io_cycle_counter -= sft * 2;
38242 src |= (flag_X & M68K_SR_X) << 0;
38243 res = (src << sft) | (src >> (9 - sft));
38244 flag_X = flag_C = res >> 0;
38247 flag_NotZ = res & 0x000000FF;
38248 DREGu8((Opcode >> 0) & 7) = res;
38267 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38268 src = DREGu16((Opcode >> 0) & 7);
38271 m68kcontext.io_cycle_counter -= sft * 2;
38274 src |= (flag_X & M68K_SR_X) << 8;
38275 res = (src << sft) | (src >> (17 - sft));
38276 flag_X = flag_C = res >> 8;
38279 flag_NotZ = res & 0x0000FFFF;
38280 DREGu16((Opcode >> 0) & 7) = res;
38294 #ifdef USE_CYCLONE_TIMING
38304 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38305 src = DREGu32((Opcode >> 0) & 7);
38308 m68kcontext.io_cycle_counter -= sft * 2;
38313 if (sft == 1) res = (src << 1) | ((flag_X >> ((M68K_SR_X_SFT + 1) - 1)) & 1);
38314 else res = (src << sft) | (src >> (33 - sft)) | (((flag_X >> ((M68K_SR_X_SFT + 1) - 1)) & 1) << (sft - 1));
38315 flag_X = (src >> (32 - sft)) << M68K_SR_X_SFT;
38320 flag_N = res >> 24;
38322 DREGu32((Opcode >> 0) & 7) = res;
38328 flag_N = src >> 24;
38342 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38343 src = DREGu8((Opcode >> 0) & 7);
38346 m68kcontext.io_cycle_counter -= sft * 2;
38349 flag_C = (src << sft) >> 0;
38350 res = ((src << sft) | (src >> (8 - sft))) & 0x000000FF;
38354 DREGu8((Opcode >> 0) & 7) = res;
38359 flag_C = src << M68K_SR_C_SFT;
38380 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38381 src = DREGu16((Opcode >> 0) & 7);
38384 m68kcontext.io_cycle_counter -= sft * 2;
38387 flag_C = (src << sft) >> 8;
38388 res = ((src << sft) | (src >> (16 - sft))) & 0x0000FFFF;
38392 DREGu16((Opcode >> 0) & 7) = res;
38397 flag_C = src << M68K_SR_C_SFT;
38413 #ifdef USE_CYCLONE_TIMING
38423 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38424 src = DREGu32((Opcode >> 0) & 7);
38427 m68kcontext.io_cycle_counter -= sft * 2;
38430 flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38431 res = (src << sft) | (src >> (32 - sft));
38433 flag_N = res >> 24;
38435 DREGu32((Opcode >> 0) & 7) = res;
38440 flag_C = src << M68K_SR_C_SFT;
38441 flag_N = src >> 24;
38448 flag_N = src >> 24;
38460 adr = AREG((Opcode >> 0) & 7);
38462 READ_WORD_F(adr, src)
38464 flag_X = flag_C = src << M68K_SR_C_SFT;
38465 res = (src >> 1) | (src & (1 << 15));
38468 WRITE_WORD_F(adr, res)
38479 adr = AREG((Opcode >> 0) & 7);
38480 AREG((Opcode >> 0) & 7) += 2;
38482 READ_WORD_F(adr, src)
38484 flag_X = flag_C = src << M68K_SR_C_SFT;
38485 res = (src >> 1) | (src & (1 << 15));
38488 WRITE_WORD_F(adr, res)
38499 adr = AREG((Opcode >> 0) & 7) - 2;
38500 AREG((Opcode >> 0) & 7) = adr;
38502 READ_WORD_F(adr, src)
38504 flag_X = flag_C = src << M68K_SR_C_SFT;
38505 res = (src >> 1) | (src & (1 << 15));
38508 WRITE_WORD_F(adr, res)
38520 adr += AREG((Opcode >> 0) & 7);
38522 READ_WORD_F(adr, src)
38524 flag_X = flag_C = src << M68K_SR_C_SFT;
38525 res = (src >> 1) | (src & (1 << 15));
38528 WRITE_WORD_F(adr, res)
38539 adr = AREG((Opcode >> 0) & 7);
38542 READ_WORD_F(adr, src)
38544 flag_X = flag_C = src << M68K_SR_C_SFT;
38545 res = (src >> 1) | (src & (1 << 15));
38548 WRITE_WORD_F(adr, res)
38561 READ_WORD_F(adr, src)
38563 flag_X = flag_C = src << M68K_SR_C_SFT;
38564 res = (src >> 1) | (src & (1 << 15));
38567 WRITE_WORD_F(adr, res)
38580 READ_WORD_F(adr, src)
38582 flag_X = flag_C = src << M68K_SR_C_SFT;
38583 res = (src >> 1) | (src & (1 << 15));
38586 WRITE_WORD_F(adr, res)
38600 READ_WORD_F(adr, src)
38602 flag_X = flag_C = src << M68K_SR_C_SFT;
38603 res = (src >> 1) | (src & (1 << 15));
38606 WRITE_WORD_F(adr, res)
38620 READ_WORD_F(adr, src)
38622 flag_X = flag_C = src << M68K_SR_C_SFT;
38623 res = (src >> 1) | (src & (1 << 15));
38626 WRITE_WORD_F(adr, res)
38637 adr = AREG((Opcode >> 0) & 7);
38639 READ_WORD_F(adr, src)
38640 flag_N = flag_V = 0;
38641 flag_X = flag_C = src << M68K_SR_C_SFT;
38644 WRITE_WORD_F(adr, res)
38655 adr = AREG((Opcode >> 0) & 7);
38656 AREG((Opcode >> 0) & 7) += 2;
38658 READ_WORD_F(adr, src)
38659 flag_N = flag_V = 0;
38660 flag_X = flag_C = src << M68K_SR_C_SFT;
38663 WRITE_WORD_F(adr, res)
38674 adr = AREG((Opcode >> 0) & 7) - 2;
38675 AREG((Opcode >> 0) & 7) = adr;
38677 READ_WORD_F(adr, src)
38678 flag_N = flag_V = 0;
38679 flag_X = flag_C = src << M68K_SR_C_SFT;
38682 WRITE_WORD_F(adr, res)
38694 adr += AREG((Opcode >> 0) & 7);
38696 READ_WORD_F(adr, src)
38697 flag_N = flag_V = 0;
38698 flag_X = flag_C = src << M68K_SR_C_SFT;
38701 WRITE_WORD_F(adr, res)
38712 adr = AREG((Opcode >> 0) & 7);
38715 READ_WORD_F(adr, src)
38716 flag_N = flag_V = 0;
38717 flag_X = flag_C = src << M68K_SR_C_SFT;
38720 WRITE_WORD_F(adr, res)
38733 READ_WORD_F(adr, src)
38734 flag_N = flag_V = 0;
38735 flag_X = flag_C = src << M68K_SR_C_SFT;
38738 WRITE_WORD_F(adr, res)
38751 READ_WORD_F(adr, src)
38752 flag_N = flag_V = 0;
38753 flag_X = flag_C = src << M68K_SR_C_SFT;
38756 WRITE_WORD_F(adr, res)
38770 READ_WORD_F(adr, src)
38771 flag_N = flag_V = 0;
38772 flag_X = flag_C = src << M68K_SR_C_SFT;
38775 WRITE_WORD_F(adr, res)
38789 READ_WORD_F(adr, src)
38790 flag_N = flag_V = 0;
38791 flag_X = flag_C = src << M68K_SR_C_SFT;
38794 WRITE_WORD_F(adr, res)
38805 adr = AREG((Opcode >> 0) & 7);
38807 READ_WORD_F(adr, src)
38809 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38810 flag_C = flag_X = src << M68K_SR_C_SFT;
38813 WRITE_WORD_F(adr, res)
38824 adr = AREG((Opcode >> 0) & 7);
38825 AREG((Opcode >> 0) & 7) += 2;
38827 READ_WORD_F(adr, src)
38829 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38830 flag_C = flag_X = src << M68K_SR_C_SFT;
38833 WRITE_WORD_F(adr, res)
38844 adr = AREG((Opcode >> 0) & 7) - 2;
38845 AREG((Opcode >> 0) & 7) = adr;
38847 READ_WORD_F(adr, src)
38849 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38850 flag_C = flag_X = src << M68K_SR_C_SFT;
38853 WRITE_WORD_F(adr, res)
38865 adr += AREG((Opcode >> 0) & 7);
38867 READ_WORD_F(adr, src)
38869 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38870 flag_C = flag_X = src << M68K_SR_C_SFT;
38873 WRITE_WORD_F(adr, res)
38884 adr = AREG((Opcode >> 0) & 7);
38887 READ_WORD_F(adr, src)
38889 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38890 flag_C = flag_X = src << M68K_SR_C_SFT;
38893 WRITE_WORD_F(adr, res)
38906 READ_WORD_F(adr, src)
38908 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38909 flag_C = flag_X = src << M68K_SR_C_SFT;
38912 WRITE_WORD_F(adr, res)
38925 READ_WORD_F(adr, src)
38927 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38928 flag_C = flag_X = src << M68K_SR_C_SFT;
38931 WRITE_WORD_F(adr, res)
38945 READ_WORD_F(adr, src)
38947 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38948 flag_C = flag_X = src << M68K_SR_C_SFT;
38951 WRITE_WORD_F(adr, res)
38965 READ_WORD_F(adr, src)
38967 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38968 flag_C = flag_X = src << M68K_SR_C_SFT;
38971 WRITE_WORD_F(adr, res)
38982 adr = AREG((Opcode >> 0) & 7);
38984 READ_WORD_F(adr, src)
38986 flag_C = src << M68K_SR_C_SFT;
38987 res = (src >> 1) | (src << 15);
38989 flag_NotZ = res & 0x0000FFFF;
38990 WRITE_WORD_F(adr, res)
39001 adr = AREG((Opcode >> 0) & 7);
39002 AREG((Opcode >> 0) & 7) += 2;
39004 READ_WORD_F(adr, src)
39006 flag_C = src << M68K_SR_C_SFT;
39007 res = (src >> 1) | (src << 15);
39009 flag_NotZ = res & 0x0000FFFF;
39010 WRITE_WORD_F(adr, res)
39021 adr = AREG((Opcode >> 0) & 7) - 2;
39022 AREG((Opcode >> 0) & 7) = adr;
39024 READ_WORD_F(adr, src)
39026 flag_C = src << M68K_SR_C_SFT;
39027 res = (src >> 1) | (src << 15);
39029 flag_NotZ = res & 0x0000FFFF;
39030 WRITE_WORD_F(adr, res)
39042 adr += AREG((Opcode >> 0) & 7);
39044 READ_WORD_F(adr, src)
39046 flag_C = src << M68K_SR_C_SFT;
39047 res = (src >> 1) | (src << 15);
39049 flag_NotZ = res & 0x0000FFFF;
39050 WRITE_WORD_F(adr, res)
39061 adr = AREG((Opcode >> 0) & 7);
39064 READ_WORD_F(adr, src)
39066 flag_C = src << M68K_SR_C_SFT;
39067 res = (src >> 1) | (src << 15);
39069 flag_NotZ = res & 0x0000FFFF;
39070 WRITE_WORD_F(adr, res)
39083 READ_WORD_F(adr, src)
39085 flag_C = src << M68K_SR_C_SFT;
39086 res = (src >> 1) | (src << 15);
39088 flag_NotZ = res & 0x0000FFFF;
39089 WRITE_WORD_F(adr, res)
39102 READ_WORD_F(adr, src)
39104 flag_C = src << M68K_SR_C_SFT;
39105 res = (src >> 1) | (src << 15);
39107 flag_NotZ = res & 0x0000FFFF;
39108 WRITE_WORD_F(adr, res)
39122 READ_WORD_F(adr, src)
39124 flag_C = src << M68K_SR_C_SFT;
39125 res = (src >> 1) | (src << 15);
39127 flag_NotZ = res & 0x0000FFFF;
39128 WRITE_WORD_F(adr, res)
39142 READ_WORD_F(adr, src)
39144 flag_C = src << M68K_SR_C_SFT;
39145 res = (src >> 1) | (src << 15);
39147 flag_NotZ = res & 0x0000FFFF;
39148 WRITE_WORD_F(adr, res)
39159 adr = AREG((Opcode >> 0) & 7);
39161 READ_WORD_F(adr, src)
39162 flag_X = flag_C = src >> 7;
39164 flag_V = (src ^ res) >> 8;
39166 flag_NotZ = res & 0x0000FFFF;
39167 WRITE_WORD_F(adr, res)
39178 adr = AREG((Opcode >> 0) & 7);
39179 AREG((Opcode >> 0) & 7) += 2;
39181 READ_WORD_F(adr, src)
39182 flag_X = flag_C = src >> 7;
39184 flag_V = (src ^ res) >> 8;
39186 flag_NotZ = res & 0x0000FFFF;
39187 WRITE_WORD_F(adr, res)
39198 adr = AREG((Opcode >> 0) & 7) - 2;
39199 AREG((Opcode >> 0) & 7) = adr;
39201 READ_WORD_F(adr, src)
39202 flag_X = flag_C = src >> 7;
39204 flag_V = (src ^ res) >> 8;
39206 flag_NotZ = res & 0x0000FFFF;
39207 WRITE_WORD_F(adr, res)
39219 adr += AREG((Opcode >> 0) & 7);
39221 READ_WORD_F(adr, src)
39222 flag_X = flag_C = src >> 7;
39224 flag_V = (src ^ res) >> 8;
39226 flag_NotZ = res & 0x0000FFFF;
39227 WRITE_WORD_F(adr, res)
39238 adr = AREG((Opcode >> 0) & 7);
39241 READ_WORD_F(adr, src)
39242 flag_X = flag_C = src >> 7;
39244 flag_V = (src ^ res) >> 8;
39246 flag_NotZ = res & 0x0000FFFF;
39247 WRITE_WORD_F(adr, res)
39260 READ_WORD_F(adr, src)
39261 flag_X = flag_C = src >> 7;
39263 flag_V = (src ^ res) >> 8;
39265 flag_NotZ = res & 0x0000FFFF;
39266 WRITE_WORD_F(adr, res)
39279 READ_WORD_F(adr, src)
39280 flag_X = flag_C = src >> 7;
39282 flag_V = (src ^ res) >> 8;
39284 flag_NotZ = res & 0x0000FFFF;
39285 WRITE_WORD_F(adr, res)
39299 READ_WORD_F(adr, src)
39300 flag_X = flag_C = src >> 7;
39302 flag_V = (src ^ res) >> 8;
39304 flag_NotZ = res & 0x0000FFFF;
39305 WRITE_WORD_F(adr, res)
39319 READ_WORD_F(adr, src)
39320 flag_X = flag_C = src >> 7;
39322 flag_V = (src ^ res) >> 8;
39324 flag_NotZ = res & 0x0000FFFF;
39325 WRITE_WORD_F(adr, res)
39336 adr = AREG((Opcode >> 0) & 7);
39338 READ_WORD_F(adr, src)
39340 flag_X = flag_C = src >> 7;
39343 flag_NotZ = res & 0x0000FFFF;
39344 WRITE_WORD_F(adr, res)
39355 adr = AREG((Opcode >> 0) & 7);
39356 AREG((Opcode >> 0) & 7) += 2;
39358 READ_WORD_F(adr, src)
39360 flag_X = flag_C = src >> 7;
39363 flag_NotZ = res & 0x0000FFFF;
39364 WRITE_WORD_F(adr, res)
39375 adr = AREG((Opcode >> 0) & 7) - 2;
39376 AREG((Opcode >> 0) & 7) = adr;
39378 READ_WORD_F(adr, src)
39380 flag_X = flag_C = src >> 7;
39383 flag_NotZ = res & 0x0000FFFF;
39384 WRITE_WORD_F(adr, res)
39396 adr += AREG((Opcode >> 0) & 7);
39398 READ_WORD_F(adr, src)
39400 flag_X = flag_C = src >> 7;
39403 flag_NotZ = res & 0x0000FFFF;
39404 WRITE_WORD_F(adr, res)
39415 adr = AREG((Opcode >> 0) & 7);
39418 READ_WORD_F(adr, src)
39420 flag_X = flag_C = src >> 7;
39423 flag_NotZ = res & 0x0000FFFF;
39424 WRITE_WORD_F(adr, res)
39437 READ_WORD_F(adr, src)
39439 flag_X = flag_C = src >> 7;
39442 flag_NotZ = res & 0x0000FFFF;
39443 WRITE_WORD_F(adr, res)
39456 READ_WORD_F(adr, src)
39458 flag_X = flag_C = src >> 7;
39461 flag_NotZ = res & 0x0000FFFF;
39462 WRITE_WORD_F(adr, res)
39476 READ_WORD_F(adr, src)
39478 flag_X = flag_C = src >> 7;
39481 flag_NotZ = res & 0x0000FFFF;
39482 WRITE_WORD_F(adr, res)
39496 READ_WORD_F(adr, src)
39498 flag_X = flag_C = src >> 7;
39501 flag_NotZ = res & 0x0000FFFF;
39502 WRITE_WORD_F(adr, res)
39513 adr = AREG((Opcode >> 0) & 7);
39515 READ_WORD_F(adr, src)
39517 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39518 flag_X = flag_C = src >> 7;
39520 flag_NotZ = res & 0x0000FFFF;
39521 WRITE_WORD_F(adr, res)
39532 adr = AREG((Opcode >> 0) & 7);
39533 AREG((Opcode >> 0) & 7) += 2;
39535 READ_WORD_F(adr, src)
39537 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39538 flag_X = flag_C = src >> 7;
39540 flag_NotZ = res & 0x0000FFFF;
39541 WRITE_WORD_F(adr, res)
39552 adr = AREG((Opcode >> 0) & 7) - 2;
39553 AREG((Opcode >> 0) & 7) = adr;
39555 READ_WORD_F(adr, src)
39557 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39558 flag_X = flag_C = src >> 7;
39560 flag_NotZ = res & 0x0000FFFF;
39561 WRITE_WORD_F(adr, res)
39573 adr += AREG((Opcode >> 0) & 7);
39575 READ_WORD_F(adr, src)
39577 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39578 flag_X = flag_C = src >> 7;
39580 flag_NotZ = res & 0x0000FFFF;
39581 WRITE_WORD_F(adr, res)
39592 adr = AREG((Opcode >> 0) & 7);
39595 READ_WORD_F(adr, src)
39597 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39598 flag_X = flag_C = src >> 7;
39600 flag_NotZ = res & 0x0000FFFF;
39601 WRITE_WORD_F(adr, res)
39614 READ_WORD_F(adr, src)
39616 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39617 flag_X = flag_C = src >> 7;
39619 flag_NotZ = res & 0x0000FFFF;
39620 WRITE_WORD_F(adr, res)
39633 READ_WORD_F(adr, src)
39635 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39636 flag_X = flag_C = src >> 7;
39638 flag_NotZ = res & 0x0000FFFF;
39639 WRITE_WORD_F(adr, res)
39653 READ_WORD_F(adr, src)
39655 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39656 flag_X = flag_C = src >> 7;
39658 flag_NotZ = res & 0x0000FFFF;
39659 WRITE_WORD_F(adr, res)
39673 READ_WORD_F(adr, src)
39675 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39676 flag_X = flag_C = src >> 7;
39678 flag_NotZ = res & 0x0000FFFF;
39679 WRITE_WORD_F(adr, res)
39690 adr = AREG((Opcode >> 0) & 7);
39692 READ_WORD_F(adr, src)
39695 res = (src << 1) | (src >> 15);
39697 flag_NotZ = res & 0x0000FFFF;
39698 WRITE_WORD_F(adr, res)
39709 adr = AREG((Opcode >> 0) & 7);
39710 AREG((Opcode >> 0) & 7) += 2;
39712 READ_WORD_F(adr, src)
39715 res = (src << 1) | (src >> 15);
39717 flag_NotZ = res & 0x0000FFFF;
39718 WRITE_WORD_F(adr, res)
39729 adr = AREG((Opcode >> 0) & 7) - 2;
39730 AREG((Opcode >> 0) & 7) = adr;
39732 READ_WORD_F(adr, src)
39735 res = (src << 1) | (src >> 15);
39737 flag_NotZ = res & 0x0000FFFF;
39738 WRITE_WORD_F(adr, res)
39750 adr += AREG((Opcode >> 0) & 7);
39752 READ_WORD_F(adr, src)
39755 res = (src << 1) | (src >> 15);
39757 flag_NotZ = res & 0x0000FFFF;
39758 WRITE_WORD_F(adr, res)
39769 adr = AREG((Opcode >> 0) & 7);
39772 READ_WORD_F(adr, src)
39775 res = (src << 1) | (src >> 15);
39777 flag_NotZ = res & 0x0000FFFF;
39778 WRITE_WORD_F(adr, res)
39791 READ_WORD_F(adr, src)
39794 res = (src << 1) | (src >> 15);
39796 flag_NotZ = res & 0x0000FFFF;
39797 WRITE_WORD_F(adr, res)
39810 READ_WORD_F(adr, src)
39813 res = (src << 1) | (src >> 15);
39815 flag_NotZ = res & 0x0000FFFF;
39816 WRITE_WORD_F(adr, res)
39830 READ_WORD_F(adr, src)
39833 res = (src << 1) | (src >> 15);
39835 flag_NotZ = res & 0x0000FFFF;
39836 WRITE_WORD_F(adr, res)
39850 READ_WORD_F(adr, src)
39853 res = (src << 1) | (src >> 15);
39855 flag_NotZ = res & 0x0000FFFF;
39856 WRITE_WORD_F(adr, res)