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 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
642 #ifdef USE_CYCLONE_TIMING
658 res = DREGu8((Opcode >> 0) & 7);
664 DREGu8((Opcode >> 0) & 7) = res;
675 adr = AREG((Opcode >> 0) & 7);
677 READ_BYTE_F(adr, res)
683 WRITE_BYTE_F(adr, res)
695 adr = AREG((Opcode >> 0) & 7);
696 AREG((Opcode >> 0) & 7) += 1;
698 READ_BYTE_F(adr, res)
704 WRITE_BYTE_F(adr, res)
716 adr = AREG((Opcode >> 0) & 7) - 1;
717 AREG((Opcode >> 0) & 7) = adr;
719 READ_BYTE_F(adr, res)
725 WRITE_BYTE_F(adr, res)
738 adr += AREG((Opcode >> 0) & 7);
740 READ_BYTE_F(adr, res)
746 WRITE_BYTE_F(adr, res)
758 adr = AREG((Opcode >> 0) & 7);
761 READ_BYTE_F(adr, res)
767 WRITE_BYTE_F(adr, res)
781 READ_BYTE_F(adr, res)
787 WRITE_BYTE_F(adr, res)
801 READ_BYTE_F(adr, res)
807 WRITE_BYTE_F(adr, res)
822 READ_BYTE_F(adr, res)
828 WRITE_BYTE_F(adr, res)
843 READ_BYTE_F(adr, res)
849 WRITE_BYTE_F(adr, res)
861 res = DREGu16((Opcode >> 0) & 7);
867 DREGu16((Opcode >> 0) & 7) = res;
878 adr = AREG((Opcode >> 0) & 7);
880 READ_WORD_F(adr, res)
886 WRITE_WORD_F(adr, res)
898 adr = AREG((Opcode >> 0) & 7);
899 AREG((Opcode >> 0) & 7) += 2;
901 READ_WORD_F(adr, res)
907 WRITE_WORD_F(adr, res)
919 adr = AREG((Opcode >> 0) & 7) - 2;
920 AREG((Opcode >> 0) & 7) = adr;
922 READ_WORD_F(adr, res)
928 WRITE_WORD_F(adr, res)
941 adr += AREG((Opcode >> 0) & 7);
943 READ_WORD_F(adr, res)
949 WRITE_WORD_F(adr, res)
961 adr = AREG((Opcode >> 0) & 7);
964 READ_WORD_F(adr, res)
970 WRITE_WORD_F(adr, res)
984 READ_WORD_F(adr, res)
990 WRITE_WORD_F(adr, res)
1004 READ_WORD_F(adr, res)
1010 WRITE_WORD_F(adr, res)
1025 READ_WORD_F(adr, res)
1031 WRITE_WORD_F(adr, res)
1046 READ_WORD_F(adr, res)
1052 WRITE_WORD_F(adr, res)
1064 res = DREGu32((Opcode >> 0) & 7);
1070 DREGu32((Opcode >> 0) & 7) = res;
1071 #ifdef USE_CYCLONE_TIMING
1085 adr = AREG((Opcode >> 0) & 7);
1087 READ_LONG_F(adr, res)
1093 WRITE_LONG_F(adr, res)
1105 adr = AREG((Opcode >> 0) & 7);
1106 AREG((Opcode >> 0) & 7) += 4;
1108 READ_LONG_F(adr, res)
1114 WRITE_LONG_F(adr, res)
1126 adr = AREG((Opcode >> 0) & 7) - 4;
1127 AREG((Opcode >> 0) & 7) = adr;
1129 READ_LONG_F(adr, res)
1135 WRITE_LONG_F(adr, res)
1148 adr += AREG((Opcode >> 0) & 7);
1150 READ_LONG_F(adr, res)
1156 WRITE_LONG_F(adr, res)
1168 adr = AREG((Opcode >> 0) & 7);
1171 READ_LONG_F(adr, res)
1177 WRITE_LONG_F(adr, res)
1191 READ_LONG_F(adr, res)
1197 WRITE_LONG_F(adr, res)
1211 READ_LONG_F(adr, res)
1217 WRITE_LONG_F(adr, res)
1232 READ_LONG_F(adr, res)
1238 WRITE_LONG_F(adr, res)
1253 READ_LONG_F(adr, res)
1259 WRITE_LONG_F(adr, res)
1271 res &= M68K_CCR_MASK;
1286 res &= M68K_SR_MASK;
1295 CHECK_INT_TO_JUMP(20)
1299 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
1312 res = DREGu8((Opcode >> 0) & 7);
1318 DREGu8((Opcode >> 0) & 7) = res;
1329 adr = AREG((Opcode >> 0) & 7);
1331 READ_BYTE_F(adr, res)
1337 WRITE_BYTE_F(adr, res)
1349 adr = AREG((Opcode >> 0) & 7);
1350 AREG((Opcode >> 0) & 7) += 1;
1352 READ_BYTE_F(adr, res)
1358 WRITE_BYTE_F(adr, res)
1370 adr = AREG((Opcode >> 0) & 7) - 1;
1371 AREG((Opcode >> 0) & 7) = adr;
1373 READ_BYTE_F(adr, res)
1379 WRITE_BYTE_F(adr, res)
1392 adr += AREG((Opcode >> 0) & 7);
1394 READ_BYTE_F(adr, res)
1400 WRITE_BYTE_F(adr, res)
1412 adr = AREG((Opcode >> 0) & 7);
1415 READ_BYTE_F(adr, res)
1421 WRITE_BYTE_F(adr, res)
1435 READ_BYTE_F(adr, res)
1441 WRITE_BYTE_F(adr, res)
1455 READ_BYTE_F(adr, res)
1461 WRITE_BYTE_F(adr, res)
1476 READ_BYTE_F(adr, res)
1482 WRITE_BYTE_F(adr, res)
1497 READ_BYTE_F(adr, res)
1503 WRITE_BYTE_F(adr, res)
1515 res = DREGu16((Opcode >> 0) & 7);
1521 DREGu16((Opcode >> 0) & 7) = res;
1532 adr = AREG((Opcode >> 0) & 7);
1534 READ_WORD_F(adr, res)
1540 WRITE_WORD_F(adr, res)
1552 adr = AREG((Opcode >> 0) & 7);
1553 AREG((Opcode >> 0) & 7) += 2;
1555 READ_WORD_F(adr, res)
1561 WRITE_WORD_F(adr, res)
1573 adr = AREG((Opcode >> 0) & 7) - 2;
1574 AREG((Opcode >> 0) & 7) = adr;
1576 READ_WORD_F(adr, res)
1582 WRITE_WORD_F(adr, res)
1595 adr += AREG((Opcode >> 0) & 7);
1597 READ_WORD_F(adr, res)
1603 WRITE_WORD_F(adr, res)
1615 adr = AREG((Opcode >> 0) & 7);
1618 READ_WORD_F(adr, res)
1624 WRITE_WORD_F(adr, res)
1638 READ_WORD_F(adr, res)
1644 WRITE_WORD_F(adr, res)
1658 READ_WORD_F(adr, res)
1664 WRITE_WORD_F(adr, res)
1679 READ_WORD_F(adr, res)
1685 WRITE_WORD_F(adr, res)
1700 READ_WORD_F(adr, res)
1706 WRITE_WORD_F(adr, res)
1718 res = DREGu32((Opcode >> 0) & 7);
1724 DREGu32((Opcode >> 0) & 7) = res;
1735 adr = AREG((Opcode >> 0) & 7);
1737 READ_LONG_F(adr, res)
1743 WRITE_LONG_F(adr, res)
1755 adr = AREG((Opcode >> 0) & 7);
1756 AREG((Opcode >> 0) & 7) += 4;
1758 READ_LONG_F(adr, res)
1764 WRITE_LONG_F(adr, res)
1776 adr = AREG((Opcode >> 0) & 7) - 4;
1777 AREG((Opcode >> 0) & 7) = adr;
1779 READ_LONG_F(adr, res)
1785 WRITE_LONG_F(adr, res)
1798 adr += AREG((Opcode >> 0) & 7);
1800 READ_LONG_F(adr, res)
1806 WRITE_LONG_F(adr, res)
1818 adr = AREG((Opcode >> 0) & 7);
1821 READ_LONG_F(adr, res)
1827 WRITE_LONG_F(adr, res)
1841 READ_LONG_F(adr, res)
1847 WRITE_LONG_F(adr, res)
1861 READ_LONG_F(adr, res)
1867 WRITE_LONG_F(adr, res)
1882 READ_LONG_F(adr, res)
1888 WRITE_LONG_F(adr, res)
1903 READ_LONG_F(adr, res)
1909 WRITE_LONG_F(adr, res)
1921 res &= M68K_CCR_MASK;
1936 res &= M68K_SR_MASK;
1945 CHECK_INT_TO_JUMP(20)
1949 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
1962 dst = DREGu8((Opcode >> 0) & 7);
1964 flag_N = flag_X = flag_C = res;
1965 flag_V = (src ^ dst) & (res ^ dst);
1966 flag_NotZ = res & 0xFF;
1967 DREGu8((Opcode >> 0) & 7) = res;
1978 adr = AREG((Opcode >> 0) & 7);
1980 READ_BYTE_F(adr, dst)
1982 flag_N = flag_X = flag_C = res;
1983 flag_V = (src ^ dst) & (res ^ dst);
1984 flag_NotZ = res & 0xFF;
1985 WRITE_BYTE_F(adr, res)
1997 adr = AREG((Opcode >> 0) & 7);
1998 AREG((Opcode >> 0) & 7) += 1;
2000 READ_BYTE_F(adr, dst)
2002 flag_N = flag_X = flag_C = res;
2003 flag_V = (src ^ dst) & (res ^ dst);
2004 flag_NotZ = res & 0xFF;
2005 WRITE_BYTE_F(adr, res)
2017 adr = AREG((Opcode >> 0) & 7) - 1;
2018 AREG((Opcode >> 0) & 7) = adr;
2020 READ_BYTE_F(adr, dst)
2022 flag_N = flag_X = flag_C = res;
2023 flag_V = (src ^ dst) & (res ^ dst);
2024 flag_NotZ = res & 0xFF;
2025 WRITE_BYTE_F(adr, res)
2038 adr += AREG((Opcode >> 0) & 7);
2040 READ_BYTE_F(adr, dst)
2042 flag_N = flag_X = flag_C = res;
2043 flag_V = (src ^ dst) & (res ^ dst);
2044 flag_NotZ = res & 0xFF;
2045 WRITE_BYTE_F(adr, res)
2057 adr = AREG((Opcode >> 0) & 7);
2060 READ_BYTE_F(adr, dst)
2062 flag_N = flag_X = flag_C = res;
2063 flag_V = (src ^ dst) & (res ^ dst);
2064 flag_NotZ = res & 0xFF;
2065 WRITE_BYTE_F(adr, res)
2079 READ_BYTE_F(adr, dst)
2081 flag_N = flag_X = flag_C = res;
2082 flag_V = (src ^ dst) & (res ^ dst);
2083 flag_NotZ = res & 0xFF;
2084 WRITE_BYTE_F(adr, res)
2098 READ_BYTE_F(adr, dst)
2100 flag_N = flag_X = flag_C = res;
2101 flag_V = (src ^ dst) & (res ^ dst);
2102 flag_NotZ = res & 0xFF;
2103 WRITE_BYTE_F(adr, res)
2118 READ_BYTE_F(adr, dst)
2120 flag_N = flag_X = flag_C = res;
2121 flag_V = (src ^ dst) & (res ^ dst);
2122 flag_NotZ = res & 0xFF;
2123 WRITE_BYTE_F(adr, res)
2138 READ_BYTE_F(adr, dst)
2140 flag_N = flag_X = flag_C = res;
2141 flag_V = (src ^ dst) & (res ^ dst);
2142 flag_NotZ = res & 0xFF;
2143 WRITE_BYTE_F(adr, res)
2155 dst = DREGu16((Opcode >> 0) & 7);
2157 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2158 flag_N = flag_X = flag_C = res >> 8;
2159 flag_NotZ = res & 0xFFFF;
2160 DREGu16((Opcode >> 0) & 7) = res;
2171 adr = AREG((Opcode >> 0) & 7);
2173 READ_WORD_F(adr, dst)
2175 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2176 flag_N = flag_X = flag_C = res >> 8;
2177 flag_NotZ = res & 0xFFFF;
2178 WRITE_WORD_F(adr, res)
2190 adr = AREG((Opcode >> 0) & 7);
2191 AREG((Opcode >> 0) & 7) += 2;
2193 READ_WORD_F(adr, dst)
2195 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2196 flag_N = flag_X = flag_C = res >> 8;
2197 flag_NotZ = res & 0xFFFF;
2198 WRITE_WORD_F(adr, res)
2210 adr = AREG((Opcode >> 0) & 7) - 2;
2211 AREG((Opcode >> 0) & 7) = adr;
2213 READ_WORD_F(adr, dst)
2215 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2216 flag_N = flag_X = flag_C = res >> 8;
2217 flag_NotZ = res & 0xFFFF;
2218 WRITE_WORD_F(adr, res)
2231 adr += AREG((Opcode >> 0) & 7);
2233 READ_WORD_F(adr, dst)
2235 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2236 flag_N = flag_X = flag_C = res >> 8;
2237 flag_NotZ = res & 0xFFFF;
2238 WRITE_WORD_F(adr, res)
2250 adr = AREG((Opcode >> 0) & 7);
2253 READ_WORD_F(adr, dst)
2255 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2256 flag_N = flag_X = flag_C = res >> 8;
2257 flag_NotZ = res & 0xFFFF;
2258 WRITE_WORD_F(adr, res)
2272 READ_WORD_F(adr, dst)
2274 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2275 flag_N = flag_X = flag_C = res >> 8;
2276 flag_NotZ = res & 0xFFFF;
2277 WRITE_WORD_F(adr, res)
2291 READ_WORD_F(adr, dst)
2293 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2294 flag_N = flag_X = flag_C = res >> 8;
2295 flag_NotZ = res & 0xFFFF;
2296 WRITE_WORD_F(adr, res)
2311 READ_WORD_F(adr, dst)
2313 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2314 flag_N = flag_X = flag_C = res >> 8;
2315 flag_NotZ = res & 0xFFFF;
2316 WRITE_WORD_F(adr, res)
2331 READ_WORD_F(adr, dst)
2333 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
2334 flag_N = flag_X = flag_C = res >> 8;
2335 flag_NotZ = res & 0xFFFF;
2336 WRITE_WORD_F(adr, res)
2348 dst = DREGu32((Opcode >> 0) & 7);
2351 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2352 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2354 DREGu32((Opcode >> 0) & 7) = res;
2365 adr = AREG((Opcode >> 0) & 7);
2367 READ_LONG_F(adr, dst)
2370 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2371 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2373 WRITE_LONG_F(adr, res)
2385 adr = AREG((Opcode >> 0) & 7);
2386 AREG((Opcode >> 0) & 7) += 4;
2388 READ_LONG_F(adr, dst)
2391 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2392 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2394 WRITE_LONG_F(adr, res)
2406 adr = AREG((Opcode >> 0) & 7) - 4;
2407 AREG((Opcode >> 0) & 7) = adr;
2409 READ_LONG_F(adr, dst)
2412 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2413 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2415 WRITE_LONG_F(adr, res)
2428 adr += AREG((Opcode >> 0) & 7);
2430 READ_LONG_F(adr, dst)
2433 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2434 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2436 WRITE_LONG_F(adr, res)
2448 adr = AREG((Opcode >> 0) & 7);
2451 READ_LONG_F(adr, dst)
2454 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2455 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2457 WRITE_LONG_F(adr, res)
2471 READ_LONG_F(adr, dst)
2474 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2475 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2477 WRITE_LONG_F(adr, res)
2491 READ_LONG_F(adr, dst)
2494 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2495 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2497 WRITE_LONG_F(adr, res)
2512 READ_LONG_F(adr, dst)
2515 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2516 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2518 WRITE_LONG_F(adr, res)
2533 READ_LONG_F(adr, dst)
2536 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
2537 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
2539 WRITE_LONG_F(adr, res)
2551 dst = DREGu8((Opcode >> 0) & 7);
2553 flag_N = flag_X = flag_C = res;
2554 flag_V = (src ^ res) & (dst ^ res);
2555 flag_NotZ = res & 0xFF;
2556 DREGu8((Opcode >> 0) & 7) = res;
2567 adr = AREG((Opcode >> 0) & 7);
2569 READ_BYTE_F(adr, dst)
2571 flag_N = flag_X = flag_C = res;
2572 flag_V = (src ^ res) & (dst ^ res);
2573 flag_NotZ = res & 0xFF;
2574 WRITE_BYTE_F(adr, res)
2586 adr = AREG((Opcode >> 0) & 7);
2587 AREG((Opcode >> 0) & 7) += 1;
2589 READ_BYTE_F(adr, dst)
2591 flag_N = flag_X = flag_C = res;
2592 flag_V = (src ^ res) & (dst ^ res);
2593 flag_NotZ = res & 0xFF;
2594 WRITE_BYTE_F(adr, res)
2606 adr = AREG((Opcode >> 0) & 7) - 1;
2607 AREG((Opcode >> 0) & 7) = adr;
2609 READ_BYTE_F(adr, dst)
2611 flag_N = flag_X = flag_C = res;
2612 flag_V = (src ^ res) & (dst ^ res);
2613 flag_NotZ = res & 0xFF;
2614 WRITE_BYTE_F(adr, res)
2627 adr += AREG((Opcode >> 0) & 7);
2629 READ_BYTE_F(adr, dst)
2631 flag_N = flag_X = flag_C = res;
2632 flag_V = (src ^ res) & (dst ^ res);
2633 flag_NotZ = res & 0xFF;
2634 WRITE_BYTE_F(adr, res)
2646 adr = AREG((Opcode >> 0) & 7);
2649 READ_BYTE_F(adr, dst)
2651 flag_N = flag_X = flag_C = res;
2652 flag_V = (src ^ res) & (dst ^ res);
2653 flag_NotZ = res & 0xFF;
2654 WRITE_BYTE_F(adr, res)
2668 READ_BYTE_F(adr, dst)
2670 flag_N = flag_X = flag_C = res;
2671 flag_V = (src ^ res) & (dst ^ res);
2672 flag_NotZ = res & 0xFF;
2673 WRITE_BYTE_F(adr, res)
2687 READ_BYTE_F(adr, dst)
2689 flag_N = flag_X = flag_C = res;
2690 flag_V = (src ^ res) & (dst ^ res);
2691 flag_NotZ = res & 0xFF;
2692 WRITE_BYTE_F(adr, res)
2707 READ_BYTE_F(adr, dst)
2709 flag_N = flag_X = flag_C = res;
2710 flag_V = (src ^ res) & (dst ^ res);
2711 flag_NotZ = res & 0xFF;
2712 WRITE_BYTE_F(adr, res)
2727 READ_BYTE_F(adr, dst)
2729 flag_N = flag_X = flag_C = res;
2730 flag_V = (src ^ res) & (dst ^ res);
2731 flag_NotZ = res & 0xFF;
2732 WRITE_BYTE_F(adr, res)
2744 dst = DREGu16((Opcode >> 0) & 7);
2746 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2747 flag_N = flag_X = flag_C = res >> 8;
2748 flag_NotZ = res & 0xFFFF;
2749 DREGu16((Opcode >> 0) & 7) = res;
2760 adr = AREG((Opcode >> 0) & 7);
2762 READ_WORD_F(adr, dst)
2764 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2765 flag_N = flag_X = flag_C = res >> 8;
2766 flag_NotZ = res & 0xFFFF;
2767 WRITE_WORD_F(adr, res)
2779 adr = AREG((Opcode >> 0) & 7);
2780 AREG((Opcode >> 0) & 7) += 2;
2782 READ_WORD_F(adr, dst)
2784 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2785 flag_N = flag_X = flag_C = res >> 8;
2786 flag_NotZ = res & 0xFFFF;
2787 WRITE_WORD_F(adr, res)
2799 adr = AREG((Opcode >> 0) & 7) - 2;
2800 AREG((Opcode >> 0) & 7) = adr;
2802 READ_WORD_F(adr, dst)
2804 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2805 flag_N = flag_X = flag_C = res >> 8;
2806 flag_NotZ = res & 0xFFFF;
2807 WRITE_WORD_F(adr, res)
2820 adr += AREG((Opcode >> 0) & 7);
2822 READ_WORD_F(adr, dst)
2824 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2825 flag_N = flag_X = flag_C = res >> 8;
2826 flag_NotZ = res & 0xFFFF;
2827 WRITE_WORD_F(adr, res)
2839 adr = AREG((Opcode >> 0) & 7);
2842 READ_WORD_F(adr, dst)
2844 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2845 flag_N = flag_X = flag_C = res >> 8;
2846 flag_NotZ = res & 0xFFFF;
2847 WRITE_WORD_F(adr, res)
2861 READ_WORD_F(adr, dst)
2863 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2864 flag_N = flag_X = flag_C = res >> 8;
2865 flag_NotZ = res & 0xFFFF;
2866 WRITE_WORD_F(adr, res)
2880 READ_WORD_F(adr, dst)
2882 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2883 flag_N = flag_X = flag_C = res >> 8;
2884 flag_NotZ = res & 0xFFFF;
2885 WRITE_WORD_F(adr, res)
2900 READ_WORD_F(adr, dst)
2902 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2903 flag_N = flag_X = flag_C = res >> 8;
2904 flag_NotZ = res & 0xFFFF;
2905 WRITE_WORD_F(adr, res)
2920 READ_WORD_F(adr, dst)
2922 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
2923 flag_N = flag_X = flag_C = res >> 8;
2924 flag_NotZ = res & 0xFFFF;
2925 WRITE_WORD_F(adr, res)
2937 dst = DREGu32((Opcode >> 0) & 7);
2940 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
2941 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
2943 DREGu32((Opcode >> 0) & 7) = res;
2954 adr = AREG((Opcode >> 0) & 7);
2956 READ_LONG_F(adr, dst)
2959 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
2960 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
2962 WRITE_LONG_F(adr, res)
2974 adr = AREG((Opcode >> 0) & 7);
2975 AREG((Opcode >> 0) & 7) += 4;
2977 READ_LONG_F(adr, dst)
2980 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
2981 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
2983 WRITE_LONG_F(adr, res)
2995 adr = AREG((Opcode >> 0) & 7) - 4;
2996 AREG((Opcode >> 0) & 7) = adr;
2998 READ_LONG_F(adr, dst)
3001 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3002 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3004 WRITE_LONG_F(adr, res)
3017 adr += AREG((Opcode >> 0) & 7);
3019 READ_LONG_F(adr, dst)
3022 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3023 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3025 WRITE_LONG_F(adr, res)
3037 adr = AREG((Opcode >> 0) & 7);
3040 READ_LONG_F(adr, dst)
3043 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3044 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3046 WRITE_LONG_F(adr, res)
3060 READ_LONG_F(adr, dst)
3063 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3064 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3066 WRITE_LONG_F(adr, res)
3080 READ_LONG_F(adr, dst)
3083 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3084 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3086 WRITE_LONG_F(adr, res)
3101 READ_LONG_F(adr, dst)
3104 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3105 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3107 WRITE_LONG_F(adr, res)
3122 READ_LONG_F(adr, dst)
3125 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
3126 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
3128 WRITE_LONG_F(adr, res)
3140 dst = DREGu8((Opcode >> 0) & 7);
3142 flag_N = flag_C = res;
3143 flag_V = (src ^ dst) & (res ^ dst);
3144 flag_NotZ = res & 0xFF;
3155 adr = AREG((Opcode >> 0) & 7);
3157 READ_BYTE_F(adr, dst)
3159 flag_N = flag_C = res;
3160 flag_V = (src ^ dst) & (res ^ dst);
3161 flag_NotZ = res & 0xFF;
3173 adr = AREG((Opcode >> 0) & 7);
3174 AREG((Opcode >> 0) & 7) += 1;
3176 READ_BYTE_F(adr, dst)
3178 flag_N = flag_C = res;
3179 flag_V = (src ^ dst) & (res ^ dst);
3180 flag_NotZ = res & 0xFF;
3192 adr = AREG((Opcode >> 0) & 7) - 1;
3193 AREG((Opcode >> 0) & 7) = adr;
3195 READ_BYTE_F(adr, dst)
3197 flag_N = flag_C = res;
3198 flag_V = (src ^ dst) & (res ^ dst);
3199 flag_NotZ = res & 0xFF;
3212 adr += AREG((Opcode >> 0) & 7);
3214 READ_BYTE_F(adr, dst)
3216 flag_N = flag_C = res;
3217 flag_V = (src ^ dst) & (res ^ dst);
3218 flag_NotZ = res & 0xFF;
3230 adr = AREG((Opcode >> 0) & 7);
3233 READ_BYTE_F(adr, dst)
3235 flag_N = flag_C = res;
3236 flag_V = (src ^ dst) & (res ^ dst);
3237 flag_NotZ = res & 0xFF;
3251 READ_BYTE_F(adr, dst)
3253 flag_N = flag_C = res;
3254 flag_V = (src ^ dst) & (res ^ dst);
3255 flag_NotZ = res & 0xFF;
3269 READ_BYTE_F(adr, dst)
3271 flag_N = flag_C = res;
3272 flag_V = (src ^ dst) & (res ^ dst);
3273 flag_NotZ = res & 0xFF;
3288 READ_BYTE_F(adr, dst)
3290 flag_N = flag_C = res;
3291 flag_V = (src ^ dst) & (res ^ dst);
3292 flag_NotZ = res & 0xFF;
3307 READ_BYTE_F(adr, dst)
3309 flag_N = flag_C = res;
3310 flag_V = (src ^ dst) & (res ^ dst);
3311 flag_NotZ = res & 0xFF;
3323 dst = DREGu16((Opcode >> 0) & 7);
3325 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3326 flag_N = flag_C = res >> 8;
3327 flag_NotZ = res & 0xFFFF;
3338 adr = AREG((Opcode >> 0) & 7);
3340 READ_WORD_F(adr, dst)
3342 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3343 flag_N = flag_C = res >> 8;
3344 flag_NotZ = res & 0xFFFF;
3356 adr = AREG((Opcode >> 0) & 7);
3357 AREG((Opcode >> 0) & 7) += 2;
3359 READ_WORD_F(adr, dst)
3361 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3362 flag_N = flag_C = res >> 8;
3363 flag_NotZ = res & 0xFFFF;
3375 adr = AREG((Opcode >> 0) & 7) - 2;
3376 AREG((Opcode >> 0) & 7) = adr;
3378 READ_WORD_F(adr, dst)
3380 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3381 flag_N = flag_C = res >> 8;
3382 flag_NotZ = res & 0xFFFF;
3395 adr += AREG((Opcode >> 0) & 7);
3397 READ_WORD_F(adr, dst)
3399 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3400 flag_N = flag_C = res >> 8;
3401 flag_NotZ = res & 0xFFFF;
3413 adr = AREG((Opcode >> 0) & 7);
3416 READ_WORD_F(adr, dst)
3418 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3419 flag_N = flag_C = res >> 8;
3420 flag_NotZ = res & 0xFFFF;
3434 READ_WORD_F(adr, dst)
3436 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3437 flag_N = flag_C = res >> 8;
3438 flag_NotZ = res & 0xFFFF;
3452 READ_WORD_F(adr, dst)
3454 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3455 flag_N = flag_C = res >> 8;
3456 flag_NotZ = res & 0xFFFF;
3471 READ_WORD_F(adr, dst)
3473 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3474 flag_N = flag_C = res >> 8;
3475 flag_NotZ = res & 0xFFFF;
3490 READ_WORD_F(adr, dst)
3492 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
3493 flag_N = flag_C = res >> 8;
3494 flag_NotZ = res & 0xFFFF;
3506 dst = DREGu32((Opcode >> 0) & 7);
3509 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3510 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3522 adr = AREG((Opcode >> 0) & 7);
3524 READ_LONG_F(adr, dst)
3527 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3528 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3541 adr = AREG((Opcode >> 0) & 7);
3542 AREG((Opcode >> 0) & 7) += 4;
3544 READ_LONG_F(adr, dst)
3547 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3548 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3561 adr = AREG((Opcode >> 0) & 7) - 4;
3562 AREG((Opcode >> 0) & 7) = adr;
3564 READ_LONG_F(adr, dst)
3567 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3568 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3582 adr += AREG((Opcode >> 0) & 7);
3584 READ_LONG_F(adr, dst)
3587 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3588 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3601 adr = AREG((Opcode >> 0) & 7);
3604 READ_LONG_F(adr, dst)
3607 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3608 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3623 READ_LONG_F(adr, dst)
3626 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3627 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3642 READ_LONG_F(adr, dst)
3645 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3646 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3662 READ_LONG_F(adr, dst)
3665 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3666 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3682 READ_LONG_F(adr, dst)
3685 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
3686 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
3699 src = 1 << (src & 31);
3700 res = DREGu32((Opcode >> 0) & 7);
3701 flag_NotZ = res & src;
3712 src = 1 << (src & 7);
3713 adr = AREG((Opcode >> 0) & 7);
3715 READ_BYTE_F(adr, res)
3716 flag_NotZ = res & src;
3728 src = 1 << (src & 7);
3729 adr = AREG((Opcode >> 0) & 7);
3730 AREG((Opcode >> 0) & 7) += 1;
3732 READ_BYTE_F(adr, res)
3733 flag_NotZ = res & src;
3745 src = 1 << (src & 7);
3746 adr = AREG((Opcode >> 0) & 7) - 1;
3747 AREG((Opcode >> 0) & 7) = adr;
3749 READ_BYTE_F(adr, res)
3750 flag_NotZ = res & src;
3762 src = 1 << (src & 7);
3764 adr += AREG((Opcode >> 0) & 7);
3766 READ_BYTE_F(adr, res)
3767 flag_NotZ = res & src;
3779 src = 1 << (src & 7);
3780 adr = AREG((Opcode >> 0) & 7);
3783 READ_BYTE_F(adr, res)
3784 flag_NotZ = res & src;
3796 src = 1 << (src & 7);
3799 READ_BYTE_F(adr, res)
3800 flag_NotZ = res & src;
3812 src = 1 << (src & 7);
3815 READ_BYTE_F(adr, res)
3816 flag_NotZ = res & src;
3828 src = 1 << (src & 7);
3829 adr = GET_SWORD + ((u32)(PC) - BasePC);
3832 READ_BYTE_F(adr, res)
3833 flag_NotZ = res & src;
3845 src = 1 << (src & 7);
3846 adr = (u32)(PC) - BasePC;
3849 READ_BYTE_F(adr, res)
3850 flag_NotZ = res & src;
3862 src = 1 << (src & 7);
3866 READ_BYTE_F(adr, res)
3867 flag_NotZ = res & src;
3879 src = 1 << (src & 7);
3883 READ_BYTE_F(adr, res)
3884 flag_NotZ = res & src;
3896 src = 1 << (src & 31);
3897 res = DREGu32((Opcode >> 0) & 7);
3898 flag_NotZ = res & src;
3900 DREGu32((Opcode >> 0) & 7) = res;
3911 src = 1 << (src & 7);
3912 adr = AREG((Opcode >> 0) & 7);
3914 READ_BYTE_F(adr, res)
3915 flag_NotZ = res & src;
3917 WRITE_BYTE_F(adr, res)
3929 src = 1 << (src & 7);
3930 adr = AREG((Opcode >> 0) & 7);
3931 AREG((Opcode >> 0) & 7) += 1;
3933 READ_BYTE_F(adr, res)
3934 flag_NotZ = res & src;
3936 WRITE_BYTE_F(adr, res)
3948 src = 1 << (src & 7);
3949 adr = AREG((Opcode >> 0) & 7) - 1;
3950 AREG((Opcode >> 0) & 7) = adr;
3952 READ_BYTE_F(adr, res)
3953 flag_NotZ = res & src;
3955 WRITE_BYTE_F(adr, res)
3967 src = 1 << (src & 7);
3969 adr += AREG((Opcode >> 0) & 7);
3971 READ_BYTE_F(adr, res)
3972 flag_NotZ = res & src;
3974 WRITE_BYTE_F(adr, res)
3986 src = 1 << (src & 7);
3987 adr = AREG((Opcode >> 0) & 7);
3990 READ_BYTE_F(adr, res)
3991 flag_NotZ = res & src;
3993 WRITE_BYTE_F(adr, res)
4005 src = 1 << (src & 7);
4008 READ_BYTE_F(adr, res)
4009 flag_NotZ = res & src;
4011 WRITE_BYTE_F(adr, res)
4023 src = 1 << (src & 7);
4026 READ_BYTE_F(adr, res)
4027 flag_NotZ = res & src;
4029 WRITE_BYTE_F(adr, res)
4041 src = 1 << (src & 7);
4045 READ_BYTE_F(adr, res)
4046 flag_NotZ = res & src;
4048 WRITE_BYTE_F(adr, res)
4060 src = 1 << (src & 7);
4064 READ_BYTE_F(adr, res)
4065 flag_NotZ = res & src;
4067 WRITE_BYTE_F(adr, res)
4079 src = 1 << (src & 31);
4080 res = DREGu32((Opcode >> 0) & 7);
4081 flag_NotZ = res & src;
4083 DREGu32((Opcode >> 0) & 7) = res;
4094 src = 1 << (src & 7);
4095 adr = AREG((Opcode >> 0) & 7);
4097 READ_BYTE_F(adr, res)
4098 flag_NotZ = res & src;
4100 WRITE_BYTE_F(adr, res)
4112 src = 1 << (src & 7);
4113 adr = AREG((Opcode >> 0) & 7);
4114 AREG((Opcode >> 0) & 7) += 1;
4116 READ_BYTE_F(adr, res)
4117 flag_NotZ = res & src;
4119 WRITE_BYTE_F(adr, res)
4131 src = 1 << (src & 7);
4132 adr = AREG((Opcode >> 0) & 7) - 1;
4133 AREG((Opcode >> 0) & 7) = adr;
4135 READ_BYTE_F(adr, res)
4136 flag_NotZ = res & src;
4138 WRITE_BYTE_F(adr, res)
4150 src = 1 << (src & 7);
4152 adr += AREG((Opcode >> 0) & 7);
4154 READ_BYTE_F(adr, res)
4155 flag_NotZ = res & src;
4157 WRITE_BYTE_F(adr, res)
4169 src = 1 << (src & 7);
4170 adr = AREG((Opcode >> 0) & 7);
4173 READ_BYTE_F(adr, res)
4174 flag_NotZ = res & src;
4176 WRITE_BYTE_F(adr, res)
4188 src = 1 << (src & 7);
4191 READ_BYTE_F(adr, res)
4192 flag_NotZ = res & src;
4194 WRITE_BYTE_F(adr, res)
4206 src = 1 << (src & 7);
4209 READ_BYTE_F(adr, res)
4210 flag_NotZ = res & src;
4212 WRITE_BYTE_F(adr, res)
4224 src = 1 << (src & 7);
4228 READ_BYTE_F(adr, res)
4229 flag_NotZ = res & src;
4231 WRITE_BYTE_F(adr, res)
4243 src = 1 << (src & 7);
4247 READ_BYTE_F(adr, res)
4248 flag_NotZ = res & src;
4250 WRITE_BYTE_F(adr, res)
4262 src = 1 << (src & 31);
4263 res = DREGu32((Opcode >> 0) & 7);
4264 flag_NotZ = res & src;
4266 DREGu32((Opcode >> 0) & 7) = res;
4277 src = 1 << (src & 7);
4278 adr = AREG((Opcode >> 0) & 7);
4280 READ_BYTE_F(adr, res)
4281 flag_NotZ = res & src;
4283 WRITE_BYTE_F(adr, res)
4295 src = 1 << (src & 7);
4296 adr = AREG((Opcode >> 0) & 7);
4297 AREG((Opcode >> 0) & 7) += 1;
4299 READ_BYTE_F(adr, res)
4300 flag_NotZ = res & src;
4302 WRITE_BYTE_F(adr, res)
4314 src = 1 << (src & 7);
4315 adr = AREG((Opcode >> 0) & 7) - 1;
4316 AREG((Opcode >> 0) & 7) = adr;
4318 READ_BYTE_F(adr, res)
4319 flag_NotZ = res & src;
4321 WRITE_BYTE_F(adr, res)
4333 src = 1 << (src & 7);
4335 adr += AREG((Opcode >> 0) & 7);
4337 READ_BYTE_F(adr, res)
4338 flag_NotZ = res & src;
4340 WRITE_BYTE_F(adr, res)
4352 src = 1 << (src & 7);
4353 adr = AREG((Opcode >> 0) & 7);
4356 READ_BYTE_F(adr, res)
4357 flag_NotZ = res & src;
4359 WRITE_BYTE_F(adr, res)
4371 src = 1 << (src & 7);
4374 READ_BYTE_F(adr, res)
4375 flag_NotZ = res & src;
4377 WRITE_BYTE_F(adr, res)
4389 src = 1 << (src & 7);
4392 READ_BYTE_F(adr, res)
4393 flag_NotZ = res & src;
4395 WRITE_BYTE_F(adr, res)
4407 src = 1 << (src & 7);
4411 READ_BYTE_F(adr, res)
4412 flag_NotZ = res & src;
4414 WRITE_BYTE_F(adr, res)
4426 src = 1 << (src & 7);
4430 READ_BYTE_F(adr, res)
4431 flag_NotZ = res & src;
4433 WRITE_BYTE_F(adr, res)
4444 src = DREGu32((Opcode >> 9) & 7);
4445 src = 1 << (src & 31);
4446 res = DREGu32((Opcode >> 0) & 7);
4447 flag_NotZ = res & src;
4457 src = DREGu8((Opcode >> 9) & 7);
4458 src = 1 << (src & 7);
4459 adr = AREG((Opcode >> 0) & 7);
4461 READ_BYTE_F(adr, res)
4462 flag_NotZ = res & src;
4473 src = DREGu8((Opcode >> 9) & 7);
4474 src = 1 << (src & 7);
4475 adr = AREG((Opcode >> 0) & 7);
4476 AREG((Opcode >> 0) & 7) += 1;
4478 READ_BYTE_F(adr, res)
4479 flag_NotZ = res & src;
4490 src = DREGu8((Opcode >> 9) & 7);
4491 src = 1 << (src & 7);
4492 adr = AREG((Opcode >> 0) & 7) - 1;
4493 AREG((Opcode >> 0) & 7) = adr;
4495 READ_BYTE_F(adr, res)
4496 flag_NotZ = res & src;
4507 src = DREGu8((Opcode >> 9) & 7);
4508 src = 1 << (src & 7);
4510 adr += AREG((Opcode >> 0) & 7);
4512 READ_BYTE_F(adr, res)
4513 flag_NotZ = res & src;
4524 src = DREGu8((Opcode >> 9) & 7);
4525 src = 1 << (src & 7);
4526 adr = AREG((Opcode >> 0) & 7);
4529 READ_BYTE_F(adr, res)
4530 flag_NotZ = res & src;
4541 src = DREGu8((Opcode >> 9) & 7);
4542 src = 1 << (src & 7);
4545 READ_BYTE_F(adr, res)
4546 flag_NotZ = res & src;
4557 src = DREGu8((Opcode >> 9) & 7);
4558 src = 1 << (src & 7);
4561 READ_BYTE_F(adr, res)
4562 flag_NotZ = res & src;
4573 src = DREGu8((Opcode >> 9) & 7);
4574 src = 1 << (src & 7);
4575 adr = GET_SWORD + ((u32)(PC) - BasePC);
4578 READ_BYTE_F(adr, res)
4579 flag_NotZ = res & src;
4590 src = DREGu8((Opcode >> 9) & 7);
4591 src = 1 << (src & 7);
4592 adr = (u32)(PC) - BasePC;
4595 READ_BYTE_F(adr, res)
4596 flag_NotZ = res & src;
4607 src = DREGu8((Opcode >> 9) & 7);
4608 src = 1 << (src & 7);
4610 flag_NotZ = res & src;
4620 src = DREGu8((Opcode >> 9) & 7);
4621 src = 1 << (src & 7);
4625 READ_BYTE_F(adr, res)
4626 flag_NotZ = res & src;
4637 src = DREGu8((Opcode >> 9) & 7);
4638 src = 1 << (src & 7);
4642 READ_BYTE_F(adr, res)
4643 flag_NotZ = res & src;
4654 src = DREGu32((Opcode >> 9) & 7);
4655 src = 1 << (src & 31);
4656 res = DREGu32((Opcode >> 0) & 7);
4657 flag_NotZ = res & src;
4659 DREGu32((Opcode >> 0) & 7) = res;
4669 src = DREGu8((Opcode >> 9) & 7);
4670 src = 1 << (src & 7);
4671 adr = AREG((Opcode >> 0) & 7);
4673 READ_BYTE_F(adr, res)
4674 flag_NotZ = res & src;
4676 WRITE_BYTE_F(adr, res)
4687 src = DREGu8((Opcode >> 9) & 7);
4688 src = 1 << (src & 7);
4689 adr = AREG((Opcode >> 0) & 7);
4690 AREG((Opcode >> 0) & 7) += 1;
4692 READ_BYTE_F(adr, res)
4693 flag_NotZ = res & src;
4695 WRITE_BYTE_F(adr, res)
4706 src = DREGu8((Opcode >> 9) & 7);
4707 src = 1 << (src & 7);
4708 adr = AREG((Opcode >> 0) & 7) - 1;
4709 AREG((Opcode >> 0) & 7) = adr;
4711 READ_BYTE_F(adr, res)
4712 flag_NotZ = res & src;
4714 WRITE_BYTE_F(adr, res)
4725 src = DREGu8((Opcode >> 9) & 7);
4726 src = 1 << (src & 7);
4728 adr += AREG((Opcode >> 0) & 7);
4730 READ_BYTE_F(adr, res)
4731 flag_NotZ = res & src;
4733 WRITE_BYTE_F(adr, res)
4744 src = DREGu8((Opcode >> 9) & 7);
4745 src = 1 << (src & 7);
4746 adr = AREG((Opcode >> 0) & 7);
4749 READ_BYTE_F(adr, res)
4750 flag_NotZ = res & src;
4752 WRITE_BYTE_F(adr, res)
4763 src = DREGu8((Opcode >> 9) & 7);
4764 src = 1 << (src & 7);
4767 READ_BYTE_F(adr, res)
4768 flag_NotZ = res & src;
4770 WRITE_BYTE_F(adr, res)
4781 src = DREGu8((Opcode >> 9) & 7);
4782 src = 1 << (src & 7);
4785 READ_BYTE_F(adr, res)
4786 flag_NotZ = res & src;
4788 WRITE_BYTE_F(adr, res)
4799 src = DREGu8((Opcode >> 9) & 7);
4800 src = 1 << (src & 7);
4804 READ_BYTE_F(adr, res)
4805 flag_NotZ = res & src;
4807 WRITE_BYTE_F(adr, res)
4818 src = DREGu8((Opcode >> 9) & 7);
4819 src = 1 << (src & 7);
4823 READ_BYTE_F(adr, res)
4824 flag_NotZ = res & src;
4826 WRITE_BYTE_F(adr, res)
4837 src = DREGu32((Opcode >> 9) & 7);
4838 src = 1 << (src & 31);
4839 res = DREGu32((Opcode >> 0) & 7);
4840 flag_NotZ = res & src;
4842 DREGu32((Opcode >> 0) & 7) = res;
4852 src = DREGu8((Opcode >> 9) & 7);
4853 src = 1 << (src & 7);
4854 adr = AREG((Opcode >> 0) & 7);
4856 READ_BYTE_F(adr, res)
4857 flag_NotZ = res & src;
4859 WRITE_BYTE_F(adr, res)
4870 src = DREGu8((Opcode >> 9) & 7);
4871 src = 1 << (src & 7);
4872 adr = AREG((Opcode >> 0) & 7);
4873 AREG((Opcode >> 0) & 7) += 1;
4875 READ_BYTE_F(adr, res)
4876 flag_NotZ = res & src;
4878 WRITE_BYTE_F(adr, res)
4889 src = DREGu8((Opcode >> 9) & 7);
4890 src = 1 << (src & 7);
4891 adr = AREG((Opcode >> 0) & 7) - 1;
4892 AREG((Opcode >> 0) & 7) = adr;
4894 READ_BYTE_F(adr, res)
4895 flag_NotZ = res & src;
4897 WRITE_BYTE_F(adr, res)
4908 src = DREGu8((Opcode >> 9) & 7);
4909 src = 1 << (src & 7);
4911 adr += AREG((Opcode >> 0) & 7);
4913 READ_BYTE_F(adr, res)
4914 flag_NotZ = res & src;
4916 WRITE_BYTE_F(adr, res)
4927 src = DREGu8((Opcode >> 9) & 7);
4928 src = 1 << (src & 7);
4929 adr = AREG((Opcode >> 0) & 7);
4932 READ_BYTE_F(adr, res)
4933 flag_NotZ = res & src;
4935 WRITE_BYTE_F(adr, res)
4946 src = DREGu8((Opcode >> 9) & 7);
4947 src = 1 << (src & 7);
4950 READ_BYTE_F(adr, res)
4951 flag_NotZ = res & src;
4953 WRITE_BYTE_F(adr, res)
4964 src = DREGu8((Opcode >> 9) & 7);
4965 src = 1 << (src & 7);
4968 READ_BYTE_F(adr, res)
4969 flag_NotZ = res & src;
4971 WRITE_BYTE_F(adr, res)
4982 src = DREGu8((Opcode >> 9) & 7);
4983 src = 1 << (src & 7);
4987 READ_BYTE_F(adr, res)
4988 flag_NotZ = res & src;
4990 WRITE_BYTE_F(adr, res)
5001 src = DREGu8((Opcode >> 9) & 7);
5002 src = 1 << (src & 7);
5006 READ_BYTE_F(adr, res)
5007 flag_NotZ = res & src;
5009 WRITE_BYTE_F(adr, res)
5020 src = DREGu32((Opcode >> 9) & 7);
5021 src = 1 << (src & 31);
5022 res = DREGu32((Opcode >> 0) & 7);
5023 flag_NotZ = res & src;
5025 DREGu32((Opcode >> 0) & 7) = res;
5035 src = DREGu8((Opcode >> 9) & 7);
5036 src = 1 << (src & 7);
5037 adr = AREG((Opcode >> 0) & 7);
5039 READ_BYTE_F(adr, res)
5040 flag_NotZ = res & src;
5042 WRITE_BYTE_F(adr, res)
5053 src = DREGu8((Opcode >> 9) & 7);
5054 src = 1 << (src & 7);
5055 adr = AREG((Opcode >> 0) & 7);
5056 AREG((Opcode >> 0) & 7) += 1;
5058 READ_BYTE_F(adr, res)
5059 flag_NotZ = res & src;
5061 WRITE_BYTE_F(adr, res)
5072 src = DREGu8((Opcode >> 9) & 7);
5073 src = 1 << (src & 7);
5074 adr = AREG((Opcode >> 0) & 7) - 1;
5075 AREG((Opcode >> 0) & 7) = adr;
5077 READ_BYTE_F(adr, res)
5078 flag_NotZ = res & src;
5080 WRITE_BYTE_F(adr, res)
5091 src = DREGu8((Opcode >> 9) & 7);
5092 src = 1 << (src & 7);
5094 adr += AREG((Opcode >> 0) & 7);
5096 READ_BYTE_F(adr, res)
5097 flag_NotZ = res & src;
5099 WRITE_BYTE_F(adr, res)
5110 src = DREGu8((Opcode >> 9) & 7);
5111 src = 1 << (src & 7);
5112 adr = AREG((Opcode >> 0) & 7);
5115 READ_BYTE_F(adr, res)
5116 flag_NotZ = res & src;
5118 WRITE_BYTE_F(adr, res)
5129 src = DREGu8((Opcode >> 9) & 7);
5130 src = 1 << (src & 7);
5133 READ_BYTE_F(adr, res)
5134 flag_NotZ = res & src;
5136 WRITE_BYTE_F(adr, res)
5147 src = DREGu8((Opcode >> 9) & 7);
5148 src = 1 << (src & 7);
5151 READ_BYTE_F(adr, res)
5152 flag_NotZ = res & src;
5154 WRITE_BYTE_F(adr, res)
5165 src = DREGu8((Opcode >> 9) & 7);
5166 src = 1 << (src & 7);
5170 READ_BYTE_F(adr, res)
5171 flag_NotZ = res & src;
5173 WRITE_BYTE_F(adr, res)
5184 src = DREGu8((Opcode >> 9) & 7);
5185 src = 1 << (src & 7);
5189 READ_BYTE_F(adr, res)
5190 flag_NotZ = res & src;
5192 WRITE_BYTE_F(adr, res)
5204 adr += AREG((Opcode >> 0) & 7);
5206 READ_BYTE_F(adr + 0, res)
5207 READ_BYTE_F(adr + 2, src)
5208 DREGu16((Opcode >> 9) & 7) = (res << 8) | src;
5210 #ifdef USE_CYCLONE_TIMING
5224 adr += AREG((Opcode >> 0) & 7);
5226 READ_BYTE_F(adr, res)
5229 READ_BYTE_F(adr, src)
5232 READ_BYTE_F(adr, src)
5235 READ_BYTE_F(adr, src)
5236 DREG((Opcode >> 9) & 7) = res | src;
5238 #ifdef USE_CYCLONE_TIMING
5251 res = DREGu32((Opcode >> 9) & 7);
5253 adr += AREG((Opcode >> 0) & 7);
5255 WRITE_BYTE_F(adr + 0, res >> 8)
5256 WRITE_BYTE_F(adr + 2, res >> 0)
5258 #ifdef USE_CYCLONE_TIMING
5271 res = DREGu32((Opcode >> 9) & 7);
5273 adr += AREG((Opcode >> 0) & 7);
5275 WRITE_BYTE_F(adr, res >> 24)
5277 WRITE_BYTE_F(adr, res >> 16)
5279 WRITE_BYTE_F(adr, res >> 8)
5281 WRITE_BYTE_F(adr, res >> 0)
5283 #ifdef USE_CYCLONE_TIMING
5296 res = DREGu8((Opcode >> 0) & 7);
5301 DREGu8((Opcode >> 9) & 7) = res;
5311 res = DREGu8((Opcode >> 0) & 7);
5316 adr = AREG((Opcode >> 9) & 7);
5318 WRITE_BYTE_F(adr, res)
5329 res = DREGu8((Opcode >> 0) & 7);
5334 adr = AREG((Opcode >> 9) & 7);
5335 AREG((Opcode >> 9) & 7) += 1;
5337 WRITE_BYTE_F(adr, res)
5348 res = DREGu8((Opcode >> 0) & 7);
5353 adr = AREG((Opcode >> 9) & 7) - 1;
5354 AREG((Opcode >> 9) & 7) = adr;
5356 WRITE_BYTE_F(adr, res)
5367 res = DREGu8((Opcode >> 0) & 7);
5373 adr += AREG((Opcode >> 9) & 7);
5375 WRITE_BYTE_F(adr, res)
5386 res = DREGu8((Opcode >> 0) & 7);
5391 adr = AREG((Opcode >> 9) & 7);
5394 WRITE_BYTE_F(adr, res)
5405 res = DREGu8((Opcode >> 0) & 7);
5412 WRITE_BYTE_F(adr, res)
5423 res = DREGu8((Opcode >> 0) & 7);
5430 WRITE_BYTE_F(adr, res)
5441 res = DREGu8((Opcode >> 0) & 7);
5449 WRITE_BYTE_F(adr, res)
5460 res = DREGu8((Opcode >> 0) & 7);
5468 WRITE_BYTE_F(adr, res)
5480 // can't read byte from Ax registers !
5481 m68kcontext.execinfo |= M68K_FAULTED;
5482 m68kcontext.io_cycle_counter = 0;
5484 goto famec_Exec_End;
5489 DREGu8((Opcode >> 9) & 7) = res;
5500 // can't read byte from Ax registers !
5501 m68kcontext.execinfo |= M68K_FAULTED;
5502 m68kcontext.io_cycle_counter = 0;
5504 goto famec_Exec_End;
5509 adr = AREG((Opcode >> 9) & 7);
5511 WRITE_BYTE_F(adr, res)
5523 // can't read byte from Ax registers !
5524 m68kcontext.execinfo |= M68K_FAULTED;
5525 m68kcontext.io_cycle_counter = 0;
5527 goto famec_Exec_End;
5532 adr = AREG((Opcode >> 9) & 7);
5533 AREG((Opcode >> 9) & 7) += 1;
5535 WRITE_BYTE_F(adr, res)
5547 // can't read byte from Ax registers !
5548 m68kcontext.execinfo |= M68K_FAULTED;
5549 m68kcontext.io_cycle_counter = 0;
5551 goto famec_Exec_End;
5556 adr = AREG((Opcode >> 9) & 7) - 1;
5557 AREG((Opcode >> 9) & 7) = adr;
5559 WRITE_BYTE_F(adr, res)
5571 // can't read byte from Ax registers !
5572 m68kcontext.execinfo |= M68K_FAULTED;
5573 m68kcontext.io_cycle_counter = 0;
5575 goto famec_Exec_End;
5581 adr += AREG((Opcode >> 9) & 7);
5583 WRITE_BYTE_F(adr, res)
5595 // can't read byte from Ax registers !
5596 m68kcontext.execinfo |= M68K_FAULTED;
5597 m68kcontext.io_cycle_counter = 0;
5599 goto famec_Exec_End;
5604 adr = AREG((Opcode >> 9) & 7);
5607 WRITE_BYTE_F(adr, res)
5619 // can't read byte from Ax registers !
5620 m68kcontext.execinfo |= M68K_FAULTED;
5621 m68kcontext.io_cycle_counter = 0;
5623 goto famec_Exec_End;
5630 WRITE_BYTE_F(adr, res)
5642 // can't read byte from Ax registers !
5643 m68kcontext.execinfo |= M68K_FAULTED;
5644 m68kcontext.io_cycle_counter = 0;
5646 goto famec_Exec_End;
5653 WRITE_BYTE_F(adr, res)
5665 // can't read byte from Ax registers !
5666 m68kcontext.execinfo |= M68K_FAULTED;
5667 m68kcontext.io_cycle_counter = 0;
5669 goto famec_Exec_End;
5677 WRITE_BYTE_F(adr, res)
5689 // can't read byte from Ax registers !
5690 m68kcontext.execinfo |= M68K_FAULTED;
5691 m68kcontext.io_cycle_counter = 0;
5693 goto famec_Exec_End;
5701 WRITE_BYTE_F(adr, res)
5714 adr = AREG((Opcode >> 0) & 7);
5716 READ_BYTE_F(adr, res)
5721 DREGu8((Opcode >> 9) & 7) = res;
5732 adr = AREG((Opcode >> 0) & 7);
5734 READ_BYTE_F(adr, res)
5739 adr = AREG((Opcode >> 9) & 7);
5740 WRITE_BYTE_F(adr, res)
5751 adr = AREG((Opcode >> 0) & 7);
5753 READ_BYTE_F(adr, res)
5758 adr = AREG((Opcode >> 9) & 7);
5759 AREG((Opcode >> 9) & 7) += 1;
5760 WRITE_BYTE_F(adr, res)
5771 adr = AREG((Opcode >> 0) & 7);
5773 READ_BYTE_F(adr, res)
5778 adr = AREG((Opcode >> 9) & 7) - 1;
5779 AREG((Opcode >> 9) & 7) = adr;
5780 WRITE_BYTE_F(adr, res)
5791 adr = AREG((Opcode >> 0) & 7);
5793 READ_BYTE_F(adr, res)
5799 adr += AREG((Opcode >> 9) & 7);
5800 WRITE_BYTE_F(adr, res)
5811 adr = AREG((Opcode >> 0) & 7);
5813 READ_BYTE_F(adr, res)
5818 adr = AREG((Opcode >> 9) & 7);
5820 WRITE_BYTE_F(adr, res)
5831 adr = AREG((Opcode >> 0) & 7);
5833 READ_BYTE_F(adr, res)
5839 WRITE_BYTE_F(adr, res)
5850 adr = AREG((Opcode >> 0) & 7);
5852 READ_BYTE_F(adr, res)
5858 WRITE_BYTE_F(adr, res)
5869 adr = AREG((Opcode >> 0) & 7);
5871 READ_BYTE_F(adr, res)
5878 WRITE_BYTE_F(adr, res)
5889 adr = AREG((Opcode >> 0) & 7);
5891 READ_BYTE_F(adr, res)
5898 WRITE_BYTE_F(adr, res)
5909 adr = AREG((Opcode >> 0) & 7);
5910 AREG((Opcode >> 0) & 7) += 1;
5912 READ_BYTE_F(adr, res)
5917 DREGu8((Opcode >> 9) & 7) = res;
5928 adr = AREG((Opcode >> 0) & 7);
5929 AREG((Opcode >> 0) & 7) += 1;
5931 READ_BYTE_F(adr, res)
5936 adr = AREG((Opcode >> 9) & 7);
5937 WRITE_BYTE_F(adr, res)
5948 adr = AREG((Opcode >> 0) & 7);
5949 AREG((Opcode >> 0) & 7) += 1;
5951 READ_BYTE_F(adr, res)
5956 adr = AREG((Opcode >> 9) & 7);
5957 AREG((Opcode >> 9) & 7) += 1;
5958 WRITE_BYTE_F(adr, res)
5969 adr = AREG((Opcode >> 0) & 7);
5970 AREG((Opcode >> 0) & 7) += 1;
5972 READ_BYTE_F(adr, res)
5977 adr = AREG((Opcode >> 9) & 7) - 1;
5978 AREG((Opcode >> 9) & 7) = adr;
5979 WRITE_BYTE_F(adr, res)
5990 adr = AREG((Opcode >> 0) & 7);
5991 AREG((Opcode >> 0) & 7) += 1;
5993 READ_BYTE_F(adr, res)
5999 adr += AREG((Opcode >> 9) & 7);
6000 WRITE_BYTE_F(adr, res)
6011 adr = AREG((Opcode >> 0) & 7);
6012 AREG((Opcode >> 0) & 7) += 1;
6014 READ_BYTE_F(adr, res)
6019 adr = AREG((Opcode >> 9) & 7);
6021 WRITE_BYTE_F(adr, res)
6032 adr = AREG((Opcode >> 0) & 7);
6033 AREG((Opcode >> 0) & 7) += 1;
6035 READ_BYTE_F(adr, res)
6041 WRITE_BYTE_F(adr, res)
6052 adr = AREG((Opcode >> 0) & 7);
6053 AREG((Opcode >> 0) & 7) += 1;
6055 READ_BYTE_F(adr, res)
6061 WRITE_BYTE_F(adr, res)
6072 adr = AREG((Opcode >> 0) & 7);
6073 AREG((Opcode >> 0) & 7) += 1;
6075 READ_BYTE_F(adr, res)
6082 WRITE_BYTE_F(adr, res)
6093 adr = AREG((Opcode >> 0) & 7);
6094 AREG((Opcode >> 0) & 7) += 1;
6096 READ_BYTE_F(adr, res)
6103 WRITE_BYTE_F(adr, res)
6114 adr = AREG((Opcode >> 0) & 7) - 1;
6115 AREG((Opcode >> 0) & 7) = adr;
6117 READ_BYTE_F(adr, res)
6122 DREGu8((Opcode >> 9) & 7) = res;
6133 adr = AREG((Opcode >> 0) & 7) - 1;
6134 AREG((Opcode >> 0) & 7) = adr;
6136 READ_BYTE_F(adr, res)
6141 adr = AREG((Opcode >> 9) & 7);
6142 WRITE_BYTE_F(adr, res)
6153 adr = AREG((Opcode >> 0) & 7) - 1;
6154 AREG((Opcode >> 0) & 7) = adr;
6156 READ_BYTE_F(adr, res)
6161 adr = AREG((Opcode >> 9) & 7);
6162 AREG((Opcode >> 9) & 7) += 1;
6163 WRITE_BYTE_F(adr, res)
6174 adr = AREG((Opcode >> 0) & 7) - 1;
6175 AREG((Opcode >> 0) & 7) = adr;
6177 READ_BYTE_F(adr, res)
6182 adr = AREG((Opcode >> 9) & 7) - 1;
6183 AREG((Opcode >> 9) & 7) = adr;
6184 WRITE_BYTE_F(adr, res)
6195 adr = AREG((Opcode >> 0) & 7) - 1;
6196 AREG((Opcode >> 0) & 7) = adr;
6198 READ_BYTE_F(adr, res)
6204 adr += AREG((Opcode >> 9) & 7);
6205 WRITE_BYTE_F(adr, res)
6216 adr = AREG((Opcode >> 0) & 7) - 1;
6217 AREG((Opcode >> 0) & 7) = adr;
6219 READ_BYTE_F(adr, res)
6224 adr = AREG((Opcode >> 9) & 7);
6226 WRITE_BYTE_F(adr, res)
6237 adr = AREG((Opcode >> 0) & 7) - 1;
6238 AREG((Opcode >> 0) & 7) = adr;
6240 READ_BYTE_F(adr, res)
6246 WRITE_BYTE_F(adr, res)
6257 adr = AREG((Opcode >> 0) & 7) - 1;
6258 AREG((Opcode >> 0) & 7) = adr;
6260 READ_BYTE_F(adr, res)
6266 WRITE_BYTE_F(adr, res)
6277 adr = AREG((Opcode >> 0) & 7) - 1;
6278 AREG((Opcode >> 0) & 7) = adr;
6280 READ_BYTE_F(adr, res)
6287 WRITE_BYTE_F(adr, res)
6298 adr = AREG((Opcode >> 0) & 7) - 1;
6299 AREG((Opcode >> 0) & 7) = adr;
6301 READ_BYTE_F(adr, res)
6308 WRITE_BYTE_F(adr, res)
6320 adr += AREG((Opcode >> 0) & 7);
6322 READ_BYTE_F(adr, res)
6327 DREGu8((Opcode >> 9) & 7) = res;
6339 adr += AREG((Opcode >> 0) & 7);
6341 READ_BYTE_F(adr, res)
6346 adr = AREG((Opcode >> 9) & 7);
6347 WRITE_BYTE_F(adr, res)
6359 adr += AREG((Opcode >> 0) & 7);
6361 READ_BYTE_F(adr, res)
6366 adr = AREG((Opcode >> 9) & 7);
6367 AREG((Opcode >> 9) & 7) += 1;
6368 WRITE_BYTE_F(adr, res)
6380 adr += AREG((Opcode >> 0) & 7);
6382 READ_BYTE_F(adr, res)
6387 adr = AREG((Opcode >> 9) & 7) - 1;
6388 AREG((Opcode >> 9) & 7) = adr;
6389 WRITE_BYTE_F(adr, res)
6401 adr += AREG((Opcode >> 0) & 7);
6403 READ_BYTE_F(adr, res)
6409 adr += AREG((Opcode >> 9) & 7);
6410 WRITE_BYTE_F(adr, res)
6422 adr += AREG((Opcode >> 0) & 7);
6424 READ_BYTE_F(adr, res)
6429 adr = AREG((Opcode >> 9) & 7);
6431 WRITE_BYTE_F(adr, res)
6443 adr += AREG((Opcode >> 0) & 7);
6445 READ_BYTE_F(adr, res)
6451 WRITE_BYTE_F(adr, res)
6463 adr += AREG((Opcode >> 0) & 7);
6465 READ_BYTE_F(adr, res)
6471 WRITE_BYTE_F(adr, res)
6483 adr += AREG((Opcode >> 0) & 7);
6485 READ_BYTE_F(adr, res)
6492 WRITE_BYTE_F(adr, res)
6504 adr += AREG((Opcode >> 0) & 7);
6506 READ_BYTE_F(adr, res)
6513 WRITE_BYTE_F(adr, res)
6524 adr = AREG((Opcode >> 0) & 7);
6527 READ_BYTE_F(adr, res)
6532 DREGu8((Opcode >> 9) & 7) = res;
6543 adr = AREG((Opcode >> 0) & 7);
6546 READ_BYTE_F(adr, res)
6551 adr = AREG((Opcode >> 9) & 7);
6552 WRITE_BYTE_F(adr, res)
6563 adr = AREG((Opcode >> 0) & 7);
6566 READ_BYTE_F(adr, res)
6571 adr = AREG((Opcode >> 9) & 7);
6572 AREG((Opcode >> 9) & 7) += 1;
6573 WRITE_BYTE_F(adr, res)
6584 adr = AREG((Opcode >> 0) & 7);
6587 READ_BYTE_F(adr, res)
6592 adr = AREG((Opcode >> 9) & 7) - 1;
6593 AREG((Opcode >> 9) & 7) = adr;
6594 WRITE_BYTE_F(adr, res)
6605 adr = AREG((Opcode >> 0) & 7);
6608 READ_BYTE_F(adr, res)
6614 adr += AREG((Opcode >> 9) & 7);
6615 WRITE_BYTE_F(adr, res)
6626 adr = AREG((Opcode >> 0) & 7);
6629 READ_BYTE_F(adr, res)
6634 adr = AREG((Opcode >> 9) & 7);
6636 WRITE_BYTE_F(adr, res)
6647 adr = AREG((Opcode >> 0) & 7);
6650 READ_BYTE_F(adr, res)
6656 WRITE_BYTE_F(adr, res)
6667 adr = AREG((Opcode >> 0) & 7);
6670 READ_BYTE_F(adr, res)
6676 WRITE_BYTE_F(adr, res)
6687 adr = AREG((Opcode >> 0) & 7);
6690 READ_BYTE_F(adr, res)
6697 WRITE_BYTE_F(adr, res)
6708 adr = AREG((Opcode >> 0) & 7);
6711 READ_BYTE_F(adr, res)
6718 WRITE_BYTE_F(adr, res)
6731 READ_BYTE_F(adr, res)
6736 DREGu8((Opcode >> 9) & 7) = res;
6749 READ_BYTE_F(adr, res)
6754 adr = AREG((Opcode >> 9) & 7);
6755 WRITE_BYTE_F(adr, res)
6768 READ_BYTE_F(adr, res)
6773 adr = AREG((Opcode >> 9) & 7);
6774 AREG((Opcode >> 9) & 7) += 1;
6775 WRITE_BYTE_F(adr, res)
6788 READ_BYTE_F(adr, res)
6793 adr = AREG((Opcode >> 9) & 7) - 1;
6794 AREG((Opcode >> 9) & 7) = adr;
6795 WRITE_BYTE_F(adr, res)
6808 READ_BYTE_F(adr, res)
6814 adr += AREG((Opcode >> 9) & 7);
6815 WRITE_BYTE_F(adr, res)
6828 READ_BYTE_F(adr, res)
6833 adr = AREG((Opcode >> 9) & 7);
6835 WRITE_BYTE_F(adr, res)
6848 READ_BYTE_F(adr, res)
6854 WRITE_BYTE_F(adr, res)
6867 READ_BYTE_F(adr, res)
6873 WRITE_BYTE_F(adr, res)
6886 READ_BYTE_F(adr, res)
6893 WRITE_BYTE_F(adr, res)
6906 READ_BYTE_F(adr, res)
6913 WRITE_BYTE_F(adr, res)
6926 READ_BYTE_F(adr, res)
6931 DREGu8((Opcode >> 9) & 7) = res;
6944 READ_BYTE_F(adr, res)
6949 adr = AREG((Opcode >> 9) & 7);
6950 WRITE_BYTE_F(adr, res)
6963 READ_BYTE_F(adr, res)
6968 adr = AREG((Opcode >> 9) & 7);
6969 AREG((Opcode >> 9) & 7) += 1;
6970 WRITE_BYTE_F(adr, res)
6983 READ_BYTE_F(adr, res)
6988 adr = AREG((Opcode >> 9) & 7) - 1;
6989 AREG((Opcode >> 9) & 7) = adr;
6990 WRITE_BYTE_F(adr, res)
7003 READ_BYTE_F(adr, res)
7009 adr += AREG((Opcode >> 9) & 7);
7010 WRITE_BYTE_F(adr, res)
7023 READ_BYTE_F(adr, res)
7028 adr = AREG((Opcode >> 9) & 7);
7030 WRITE_BYTE_F(adr, res)
7043 READ_BYTE_F(adr, res)
7049 WRITE_BYTE_F(adr, res)
7062 READ_BYTE_F(adr, res)
7068 WRITE_BYTE_F(adr, res)
7081 READ_BYTE_F(adr, res)
7088 WRITE_BYTE_F(adr, res)
7101 READ_BYTE_F(adr, res)
7108 WRITE_BYTE_F(adr, res)
7119 adr = GET_SWORD + ((u32)(PC) - BasePC);
7122 READ_BYTE_F(adr, res)
7127 DREGu8((Opcode >> 9) & 7) = res;
7138 adr = GET_SWORD + ((u32)(PC) - BasePC);
7141 READ_BYTE_F(adr, res)
7146 adr = AREG((Opcode >> 9) & 7);
7147 WRITE_BYTE_F(adr, res)
7158 adr = GET_SWORD + ((u32)(PC) - BasePC);
7161 READ_BYTE_F(adr, res)
7166 adr = AREG((Opcode >> 9) & 7);
7167 AREG((Opcode >> 9) & 7) += 1;
7168 WRITE_BYTE_F(adr, res)
7179 adr = GET_SWORD + ((u32)(PC) - BasePC);
7182 READ_BYTE_F(adr, res)
7187 adr = AREG((Opcode >> 9) & 7) - 1;
7188 AREG((Opcode >> 9) & 7) = adr;
7189 WRITE_BYTE_F(adr, res)
7200 adr = GET_SWORD + ((u32)(PC) - BasePC);
7203 READ_BYTE_F(adr, res)
7209 adr += AREG((Opcode >> 9) & 7);
7210 WRITE_BYTE_F(adr, res)
7221 adr = GET_SWORD + ((u32)(PC) - BasePC);
7224 READ_BYTE_F(adr, res)
7229 adr = AREG((Opcode >> 9) & 7);
7231 WRITE_BYTE_F(adr, res)
7242 adr = GET_SWORD + ((u32)(PC) - BasePC);
7245 READ_BYTE_F(adr, res)
7251 WRITE_BYTE_F(adr, res)
7262 adr = GET_SWORD + ((u32)(PC) - BasePC);
7265 READ_BYTE_F(adr, res)
7271 WRITE_BYTE_F(adr, res)
7282 adr = GET_SWORD + ((u32)(PC) - BasePC);
7285 READ_BYTE_F(adr, res)
7292 WRITE_BYTE_F(adr, res)
7303 adr = GET_SWORD + ((u32)(PC) - BasePC);
7306 READ_BYTE_F(adr, res)
7313 WRITE_BYTE_F(adr, res)
7324 adr = (u32)(PC) - BasePC;
7327 READ_BYTE_F(adr, res)
7332 DREGu8((Opcode >> 9) & 7) = res;
7343 adr = (u32)(PC) - BasePC;
7346 READ_BYTE_F(adr, res)
7351 adr = AREG((Opcode >> 9) & 7);
7352 WRITE_BYTE_F(adr, res)
7363 adr = (u32)(PC) - BasePC;
7366 READ_BYTE_F(adr, res)
7371 adr = AREG((Opcode >> 9) & 7);
7372 AREG((Opcode >> 9) & 7) += 1;
7373 WRITE_BYTE_F(adr, res)
7384 adr = (u32)(PC) - BasePC;
7387 READ_BYTE_F(adr, res)
7392 adr = AREG((Opcode >> 9) & 7) - 1;
7393 AREG((Opcode >> 9) & 7) = adr;
7394 WRITE_BYTE_F(adr, res)
7405 adr = (u32)(PC) - BasePC;
7408 READ_BYTE_F(adr, res)
7414 adr += AREG((Opcode >> 9) & 7);
7415 WRITE_BYTE_F(adr, res)
7426 adr = (u32)(PC) - BasePC;
7429 READ_BYTE_F(adr, res)
7434 adr = AREG((Opcode >> 9) & 7);
7436 WRITE_BYTE_F(adr, res)
7447 adr = (u32)(PC) - BasePC;
7450 READ_BYTE_F(adr, res)
7456 WRITE_BYTE_F(adr, res)
7467 adr = (u32)(PC) - BasePC;
7470 READ_BYTE_F(adr, res)
7476 WRITE_BYTE_F(adr, res)
7487 adr = (u32)(PC) - BasePC;
7490 READ_BYTE_F(adr, res)
7497 WRITE_BYTE_F(adr, res)
7508 adr = (u32)(PC) - BasePC;
7511 READ_BYTE_F(adr, res)
7518 WRITE_BYTE_F(adr, res)
7534 DREGu8((Opcode >> 9) & 7) = res;
7549 adr = AREG((Opcode >> 9) & 7);
7551 WRITE_BYTE_F(adr, res)
7567 adr = AREG((Opcode >> 9) & 7);
7568 AREG((Opcode >> 9) & 7) += 1;
7570 WRITE_BYTE_F(adr, res)
7586 adr = AREG((Opcode >> 9) & 7) - 1;
7587 AREG((Opcode >> 9) & 7) = adr;
7589 WRITE_BYTE_F(adr, res)
7606 adr += AREG((Opcode >> 9) & 7);
7608 WRITE_BYTE_F(adr, res)
7624 adr = AREG((Opcode >> 9) & 7);
7627 WRITE_BYTE_F(adr, res)
7645 WRITE_BYTE_F(adr, res)
7663 WRITE_BYTE_F(adr, res)
7682 WRITE_BYTE_F(adr, res)
7701 WRITE_BYTE_F(adr, res)
7715 READ_BYTE_F(adr, res)
7720 DREGu8((Opcode >> 9) & 7) = res;
7734 READ_BYTE_F(adr, res)
7739 adr = AREG((Opcode >> 9) & 7);
7740 WRITE_BYTE_F(adr, res)
7754 READ_BYTE_F(adr, res)
7759 adr = AREG((Opcode >> 9) & 7);
7760 AREG((Opcode >> 9) & 7) += 1;
7761 WRITE_BYTE_F(adr, res)
7775 READ_BYTE_F(adr, res)
7780 adr = AREG((Opcode >> 9) & 7) - 1;
7781 AREG((Opcode >> 9) & 7) = adr;
7782 WRITE_BYTE_F(adr, res)
7796 READ_BYTE_F(adr, res)
7802 adr += AREG((Opcode >> 9) & 7);
7803 WRITE_BYTE_F(adr, res)
7817 READ_BYTE_F(adr, res)
7822 adr = AREG((Opcode >> 9) & 7);
7824 WRITE_BYTE_F(adr, res)
7838 READ_BYTE_F(adr, res)
7844 WRITE_BYTE_F(adr, res)
7858 READ_BYTE_F(adr, res)
7864 WRITE_BYTE_F(adr, res)
7878 READ_BYTE_F(adr, res)
7885 WRITE_BYTE_F(adr, res)
7899 READ_BYTE_F(adr, res)
7906 WRITE_BYTE_F(adr, res)
7920 READ_BYTE_F(adr, res)
7925 DREGu8((Opcode >> 9) & 7) = res;
7939 READ_BYTE_F(adr, res)
7944 adr = AREG((Opcode >> 9) & 7);
7945 WRITE_BYTE_F(adr, res)
7959 READ_BYTE_F(adr, res)
7964 adr = AREG((Opcode >> 9) & 7);
7965 AREG((Opcode >> 9) & 7) += 1;
7966 WRITE_BYTE_F(adr, res)
7980 READ_BYTE_F(adr, res)
7985 adr = AREG((Opcode >> 9) & 7) - 1;
7986 AREG((Opcode >> 9) & 7) = adr;
7987 WRITE_BYTE_F(adr, res)
8001 READ_BYTE_F(adr, res)
8007 adr += AREG((Opcode >> 9) & 7);
8008 WRITE_BYTE_F(adr, res)
8022 READ_BYTE_F(adr, res)
8027 adr = AREG((Opcode >> 9) & 7);
8029 WRITE_BYTE_F(adr, res)
8043 READ_BYTE_F(adr, res)
8049 WRITE_BYTE_F(adr, res)
8063 READ_BYTE_F(adr, res)
8069 WRITE_BYTE_F(adr, res)
8083 READ_BYTE_F(adr, res)
8090 WRITE_BYTE_F(adr, res)
8104 READ_BYTE_F(adr, res)
8111 WRITE_BYTE_F(adr, res)
8122 res = DREGu32((Opcode >> 0) & 7);
8127 DREGu32((Opcode >> 9) & 7) = res;
8137 res = DREGu32((Opcode >> 0) & 7);
8142 adr = AREG((Opcode >> 9) & 7);
8144 WRITE_LONG_F(adr, res)
8155 res = DREGu32((Opcode >> 0) & 7);
8160 adr = AREG((Opcode >> 9) & 7);
8161 AREG((Opcode >> 9) & 7) += 4;
8163 WRITE_LONG_F(adr, res)
8174 res = DREGu32((Opcode >> 0) & 7);
8179 adr = AREG((Opcode >> 9) & 7) - 4;
8180 AREG((Opcode >> 9) & 7) = adr;
8182 WRITE_LONG_DEC_F(adr, res)
8193 res = DREGu32((Opcode >> 0) & 7);
8199 adr += AREG((Opcode >> 9) & 7);
8201 WRITE_LONG_F(adr, res)
8212 res = DREGu32((Opcode >> 0) & 7);
8217 adr = AREG((Opcode >> 9) & 7);
8220 WRITE_LONG_F(adr, res)
8231 res = DREGu32((Opcode >> 0) & 7);
8238 WRITE_LONG_F(adr, res)
8249 res = DREGu32((Opcode >> 0) & 7);
8256 WRITE_LONG_F(adr, res)
8267 res = DREGu32((Opcode >> 0) & 7);
8275 WRITE_LONG_F(adr, res)
8286 res = DREGu32((Opcode >> 0) & 7);
8294 WRITE_LONG_DEC_F(adr, res)
8305 res = AREGu32((Opcode >> 0) & 7);
8310 DREGu32((Opcode >> 9) & 7) = res;
8320 res = AREGu32((Opcode >> 0) & 7);
8325 adr = AREG((Opcode >> 9) & 7);
8327 WRITE_LONG_F(adr, res)
8338 res = AREGu32((Opcode >> 0) & 7);
8343 adr = AREG((Opcode >> 9) & 7);
8344 AREG((Opcode >> 9) & 7) += 4;
8346 WRITE_LONG_F(adr, res)
8357 res = AREGu32((Opcode >> 0) & 7);
8362 adr = AREG((Opcode >> 9) & 7) - 4;
8363 AREG((Opcode >> 9) & 7) = adr;
8365 WRITE_LONG_DEC_F(adr, res)
8376 res = AREGu32((Opcode >> 0) & 7);
8382 adr += AREG((Opcode >> 9) & 7);
8384 WRITE_LONG_F(adr, res)
8395 res = AREGu32((Opcode >> 0) & 7);
8400 adr = AREG((Opcode >> 9) & 7);
8403 WRITE_LONG_F(adr, res)
8414 res = AREGu32((Opcode >> 0) & 7);
8421 WRITE_LONG_F(adr, res)
8432 res = AREGu32((Opcode >> 0) & 7);
8439 WRITE_LONG_F(adr, res)
8450 res = AREGu32((Opcode >> 0) & 7);
8458 WRITE_LONG_F(adr, res)
8469 res = AREGu32((Opcode >> 0) & 7);
8477 WRITE_LONG_DEC_F(adr, res)
8488 adr = AREG((Opcode >> 0) & 7);
8490 READ_LONG_F(adr, res)
8495 DREGu32((Opcode >> 9) & 7) = res;
8506 adr = AREG((Opcode >> 0) & 7);
8508 READ_LONG_F(adr, res)
8513 adr = AREG((Opcode >> 9) & 7);
8514 WRITE_LONG_F(adr, res)
8525 adr = AREG((Opcode >> 0) & 7);
8527 READ_LONG_F(adr, res)
8532 adr = AREG((Opcode >> 9) & 7);
8533 AREG((Opcode >> 9) & 7) += 4;
8534 WRITE_LONG_F(adr, res)
8545 adr = AREG((Opcode >> 0) & 7);
8547 READ_LONG_F(adr, res)
8552 adr = AREG((Opcode >> 9) & 7) - 4;
8553 AREG((Opcode >> 9) & 7) = adr;
8554 WRITE_LONG_DEC_F(adr, res)
8565 adr = AREG((Opcode >> 0) & 7);
8567 READ_LONG_F(adr, res)
8573 adr += AREG((Opcode >> 9) & 7);
8574 WRITE_LONG_F(adr, res)
8585 adr = AREG((Opcode >> 0) & 7);
8587 READ_LONG_F(adr, res)
8592 adr = AREG((Opcode >> 9) & 7);
8594 WRITE_LONG_F(adr, res)
8605 adr = AREG((Opcode >> 0) & 7);
8607 READ_LONG_F(adr, res)
8613 WRITE_LONG_F(adr, res)
8624 adr = AREG((Opcode >> 0) & 7);
8626 READ_LONG_F(adr, res)
8632 WRITE_LONG_F(adr, res)
8643 adr = AREG((Opcode >> 0) & 7);
8645 READ_LONG_F(adr, res)
8652 WRITE_LONG_F(adr, res)
8663 adr = AREG((Opcode >> 0) & 7);
8665 READ_LONG_F(adr, res)
8672 WRITE_LONG_DEC_F(adr, res)
8683 adr = AREG((Opcode >> 0) & 7);
8684 AREG((Opcode >> 0) & 7) += 4;
8686 READ_LONG_F(adr, res)
8691 DREGu32((Opcode >> 9) & 7) = res;
8702 adr = AREG((Opcode >> 0) & 7);
8703 AREG((Opcode >> 0) & 7) += 4;
8705 READ_LONG_F(adr, res)
8710 adr = AREG((Opcode >> 9) & 7);
8711 WRITE_LONG_F(adr, res)
8722 adr = AREG((Opcode >> 0) & 7);
8723 AREG((Opcode >> 0) & 7) += 4;
8725 READ_LONG_F(adr, res)
8730 adr = AREG((Opcode >> 9) & 7);
8731 AREG((Opcode >> 9) & 7) += 4;
8732 WRITE_LONG_F(adr, res)
8743 adr = AREG((Opcode >> 0) & 7);
8744 AREG((Opcode >> 0) & 7) += 4;
8746 READ_LONG_F(adr, res)
8751 adr = AREG((Opcode >> 9) & 7) - 4;
8752 AREG((Opcode >> 9) & 7) = adr;
8753 WRITE_LONG_DEC_F(adr, res)
8764 adr = AREG((Opcode >> 0) & 7);
8765 AREG((Opcode >> 0) & 7) += 4;
8767 READ_LONG_F(adr, res)
8773 adr += AREG((Opcode >> 9) & 7);
8774 WRITE_LONG_F(adr, res)
8785 adr = AREG((Opcode >> 0) & 7);
8786 AREG((Opcode >> 0) & 7) += 4;
8788 READ_LONG_F(adr, res)
8793 adr = AREG((Opcode >> 9) & 7);
8795 WRITE_LONG_F(adr, res)
8806 adr = AREG((Opcode >> 0) & 7);
8807 AREG((Opcode >> 0) & 7) += 4;
8809 READ_LONG_F(adr, res)
8815 WRITE_LONG_F(adr, res)
8826 adr = AREG((Opcode >> 0) & 7);
8827 AREG((Opcode >> 0) & 7) += 4;
8829 READ_LONG_F(adr, res)
8835 WRITE_LONG_F(adr, res)
8846 adr = AREG((Opcode >> 0) & 7);
8847 AREG((Opcode >> 0) & 7) += 4;
8849 READ_LONG_F(adr, res)
8856 WRITE_LONG_F(adr, res)
8867 adr = AREG((Opcode >> 0) & 7);
8868 AREG((Opcode >> 0) & 7) += 4;
8870 READ_LONG_F(adr, res)
8877 WRITE_LONG_DEC_F(adr, res)
8888 adr = AREG((Opcode >> 0) & 7) - 4;
8889 AREG((Opcode >> 0) & 7) = adr;
8891 READ_LONG_F(adr, res)
8896 DREGu32((Opcode >> 9) & 7) = res;
8907 adr = AREG((Opcode >> 0) & 7) - 4;
8908 AREG((Opcode >> 0) & 7) = adr;
8910 READ_LONG_F(adr, res)
8915 adr = AREG((Opcode >> 9) & 7);
8916 WRITE_LONG_F(adr, res)
8927 adr = AREG((Opcode >> 0) & 7) - 4;
8928 AREG((Opcode >> 0) & 7) = adr;
8930 READ_LONG_F(adr, res)
8935 adr = AREG((Opcode >> 9) & 7);
8936 AREG((Opcode >> 9) & 7) += 4;
8937 WRITE_LONG_F(adr, res)
8948 adr = AREG((Opcode >> 0) & 7) - 4;
8949 AREG((Opcode >> 0) & 7) = adr;
8951 READ_LONG_F(adr, res)
8956 adr = AREG((Opcode >> 9) & 7) - 4;
8957 AREG((Opcode >> 9) & 7) = adr;
8958 WRITE_LONG_DEC_F(adr, res)
8969 adr = AREG((Opcode >> 0) & 7) - 4;
8970 AREG((Opcode >> 0) & 7) = adr;
8972 READ_LONG_F(adr, res)
8978 adr += AREG((Opcode >> 9) & 7);
8979 WRITE_LONG_F(adr, res)
8990 adr = AREG((Opcode >> 0) & 7) - 4;
8991 AREG((Opcode >> 0) & 7) = adr;
8993 READ_LONG_F(adr, res)
8998 adr = AREG((Opcode >> 9) & 7);
9000 WRITE_LONG_F(adr, res)
9011 adr = AREG((Opcode >> 0) & 7) - 4;
9012 AREG((Opcode >> 0) & 7) = adr;
9014 READ_LONG_F(adr, res)
9020 WRITE_LONG_F(adr, res)
9031 adr = AREG((Opcode >> 0) & 7) - 4;
9032 AREG((Opcode >> 0) & 7) = adr;
9034 READ_LONG_F(adr, res)
9040 WRITE_LONG_F(adr, res)
9051 adr = AREG((Opcode >> 0) & 7) - 4;
9052 AREG((Opcode >> 0) & 7) = adr;
9054 READ_LONG_F(adr, res)
9061 WRITE_LONG_F(adr, res)
9072 adr = AREG((Opcode >> 0) & 7) - 4;
9073 AREG((Opcode >> 0) & 7) = adr;
9075 READ_LONG_F(adr, res)
9082 WRITE_LONG_DEC_F(adr, res)
9094 adr += AREG((Opcode >> 0) & 7);
9096 READ_LONG_F(adr, res)
9101 DREGu32((Opcode >> 9) & 7) = res;
9113 adr += AREG((Opcode >> 0) & 7);
9115 READ_LONG_F(adr, res)
9120 adr = AREG((Opcode >> 9) & 7);
9121 WRITE_LONG_F(adr, res)
9133 adr += AREG((Opcode >> 0) & 7);
9135 READ_LONG_F(adr, res)
9140 adr = AREG((Opcode >> 9) & 7);
9141 AREG((Opcode >> 9) & 7) += 4;
9142 WRITE_LONG_F(adr, res)
9154 adr += AREG((Opcode >> 0) & 7);
9156 READ_LONG_F(adr, res)
9161 adr = AREG((Opcode >> 9) & 7) - 4;
9162 AREG((Opcode >> 9) & 7) = adr;
9163 WRITE_LONG_DEC_F(adr, res)
9175 adr += AREG((Opcode >> 0) & 7);
9177 READ_LONG_F(adr, res)
9183 adr += AREG((Opcode >> 9) & 7);
9184 WRITE_LONG_F(adr, res)
9196 adr += AREG((Opcode >> 0) & 7);
9198 READ_LONG_F(adr, res)
9203 adr = AREG((Opcode >> 9) & 7);
9205 WRITE_LONG_F(adr, res)
9217 adr += AREG((Opcode >> 0) & 7);
9219 READ_LONG_F(adr, res)
9225 WRITE_LONG_F(adr, res)
9237 adr += AREG((Opcode >> 0) & 7);
9239 READ_LONG_F(adr, res)
9245 WRITE_LONG_F(adr, res)
9257 adr += AREG((Opcode >> 0) & 7);
9259 READ_LONG_F(adr, res)
9266 WRITE_LONG_F(adr, res)
9278 adr += AREG((Opcode >> 0) & 7);
9280 READ_LONG_F(adr, res)
9287 WRITE_LONG_DEC_F(adr, res)
9298 adr = AREG((Opcode >> 0) & 7);
9301 READ_LONG_F(adr, res)
9306 DREGu32((Opcode >> 9) & 7) = res;
9317 adr = AREG((Opcode >> 0) & 7);
9320 READ_LONG_F(adr, res)
9325 adr = AREG((Opcode >> 9) & 7);
9326 WRITE_LONG_F(adr, res)
9337 adr = AREG((Opcode >> 0) & 7);
9340 READ_LONG_F(adr, res)
9345 adr = AREG((Opcode >> 9) & 7);
9346 AREG((Opcode >> 9) & 7) += 4;
9347 WRITE_LONG_F(adr, res)
9358 adr = AREG((Opcode >> 0) & 7);
9361 READ_LONG_F(adr, res)
9366 adr = AREG((Opcode >> 9) & 7) - 4;
9367 AREG((Opcode >> 9) & 7) = adr;
9368 WRITE_LONG_DEC_F(adr, res)
9379 adr = AREG((Opcode >> 0) & 7);
9382 READ_LONG_F(adr, res)
9388 adr += AREG((Opcode >> 9) & 7);
9389 WRITE_LONG_F(adr, res)
9400 adr = AREG((Opcode >> 0) & 7);
9403 READ_LONG_F(adr, res)
9408 adr = AREG((Opcode >> 9) & 7);
9410 WRITE_LONG_F(adr, res)
9421 adr = AREG((Opcode >> 0) & 7);
9424 READ_LONG_F(adr, res)
9430 WRITE_LONG_F(adr, res)
9441 adr = AREG((Opcode >> 0) & 7);
9444 READ_LONG_F(adr, res)
9450 WRITE_LONG_F(adr, res)
9461 adr = AREG((Opcode >> 0) & 7);
9464 READ_LONG_F(adr, res)
9471 WRITE_LONG_F(adr, res)
9482 adr = AREG((Opcode >> 0) & 7);
9485 READ_LONG_F(adr, res)
9492 WRITE_LONG_DEC_F(adr, res)
9505 READ_LONG_F(adr, res)
9510 DREGu32((Opcode >> 9) & 7) = res;
9523 READ_LONG_F(adr, res)
9528 adr = AREG((Opcode >> 9) & 7);
9529 WRITE_LONG_F(adr, res)
9542 READ_LONG_F(adr, res)
9547 adr = AREG((Opcode >> 9) & 7);
9548 AREG((Opcode >> 9) & 7) += 4;
9549 WRITE_LONG_F(adr, res)
9562 READ_LONG_F(adr, res)
9567 adr = AREG((Opcode >> 9) & 7) - 4;
9568 AREG((Opcode >> 9) & 7) = adr;
9569 WRITE_LONG_DEC_F(adr, res)
9582 READ_LONG_F(adr, res)
9588 adr += AREG((Opcode >> 9) & 7);
9589 WRITE_LONG_F(adr, res)
9602 READ_LONG_F(adr, res)
9607 adr = AREG((Opcode >> 9) & 7);
9609 WRITE_LONG_F(adr, res)
9622 READ_LONG_F(adr, res)
9628 WRITE_LONG_F(adr, res)
9641 READ_LONG_F(adr, res)
9647 WRITE_LONG_F(adr, res)
9660 READ_LONG_F(adr, res)
9667 WRITE_LONG_F(adr, res)
9680 READ_LONG_F(adr, res)
9687 WRITE_LONG_DEC_F(adr, res)
9700 READ_LONG_F(adr, res)
9705 DREGu32((Opcode >> 9) & 7) = res;
9718 READ_LONG_F(adr, res)
9723 adr = AREG((Opcode >> 9) & 7);
9724 WRITE_LONG_F(adr, res)
9737 READ_LONG_F(adr, res)
9742 adr = AREG((Opcode >> 9) & 7);
9743 AREG((Opcode >> 9) & 7) += 4;
9744 WRITE_LONG_F(adr, res)
9757 READ_LONG_F(adr, res)
9762 adr = AREG((Opcode >> 9) & 7) - 4;
9763 AREG((Opcode >> 9) & 7) = adr;
9764 WRITE_LONG_DEC_F(adr, res)
9777 READ_LONG_F(adr, res)
9783 adr += AREG((Opcode >> 9) & 7);
9784 WRITE_LONG_F(adr, res)
9797 READ_LONG_F(adr, res)
9802 adr = AREG((Opcode >> 9) & 7);
9804 WRITE_LONG_F(adr, res)
9817 READ_LONG_F(adr, res)
9823 WRITE_LONG_F(adr, res)
9836 READ_LONG_F(adr, res)
9842 WRITE_LONG_F(adr, res)
9855 READ_LONG_F(adr, res)
9862 WRITE_LONG_F(adr, res)
9875 READ_LONG_F(adr, res)
9882 WRITE_LONG_DEC_F(adr, res)
9893 adr = GET_SWORD + ((u32)(PC) - BasePC);
9896 READ_LONG_F(adr, res)
9901 DREGu32((Opcode >> 9) & 7) = res;
9912 adr = GET_SWORD + ((u32)(PC) - BasePC);
9915 READ_LONG_F(adr, res)
9920 adr = AREG((Opcode >> 9) & 7);
9921 WRITE_LONG_F(adr, res)
9932 adr = GET_SWORD + ((u32)(PC) - BasePC);
9935 READ_LONG_F(adr, res)
9940 adr = AREG((Opcode >> 9) & 7);
9941 AREG((Opcode >> 9) & 7) += 4;
9942 WRITE_LONG_F(adr, res)
9953 adr = GET_SWORD + ((u32)(PC) - BasePC);
9956 READ_LONG_F(adr, res)
9961 adr = AREG((Opcode >> 9) & 7) - 4;
9962 AREG((Opcode >> 9) & 7) = adr;
9963 WRITE_LONG_DEC_F(adr, res)
9974 adr = GET_SWORD + ((u32)(PC) - BasePC);
9977 READ_LONG_F(adr, res)
9983 adr += AREG((Opcode >> 9) & 7);
9984 WRITE_LONG_F(adr, res)
9995 adr = GET_SWORD + ((u32)(PC) - BasePC);
9998 READ_LONG_F(adr, res)
10002 flag_N = res >> 24;
10003 adr = AREG((Opcode >> 9) & 7);
10005 WRITE_LONG_F(adr, res)
10016 adr = GET_SWORD + ((u32)(PC) - BasePC);
10019 READ_LONG_F(adr, res)
10023 flag_N = res >> 24;
10025 WRITE_LONG_F(adr, res)
10036 adr = GET_SWORD + ((u32)(PC) - BasePC);
10039 READ_LONG_F(adr, res)
10043 flag_N = res >> 24;
10045 WRITE_LONG_F(adr, res)
10056 adr = GET_SWORD + ((u32)(PC) - BasePC);
10059 READ_LONG_F(adr, res)
10063 flag_N = res >> 24;
10066 WRITE_LONG_F(adr, res)
10077 adr = GET_SWORD + ((u32)(PC) - BasePC);
10080 READ_LONG_F(adr, res)
10084 flag_N = res >> 24;
10087 WRITE_LONG_DEC_F(adr, res)
10098 adr = (u32)(PC) - BasePC;
10101 READ_LONG_F(adr, res)
10105 flag_N = res >> 24;
10106 DREGu32((Opcode >> 9) & 7) = res;
10117 adr = (u32)(PC) - BasePC;
10120 READ_LONG_F(adr, res)
10124 flag_N = res >> 24;
10125 adr = AREG((Opcode >> 9) & 7);
10126 WRITE_LONG_F(adr, res)
10137 adr = (u32)(PC) - BasePC;
10140 READ_LONG_F(adr, res)
10144 flag_N = res >> 24;
10145 adr = AREG((Opcode >> 9) & 7);
10146 AREG((Opcode >> 9) & 7) += 4;
10147 WRITE_LONG_F(adr, res)
10158 adr = (u32)(PC) - BasePC;
10161 READ_LONG_F(adr, res)
10165 flag_N = res >> 24;
10166 adr = AREG((Opcode >> 9) & 7) - 4;
10167 AREG((Opcode >> 9) & 7) = adr;
10168 WRITE_LONG_DEC_F(adr, res)
10179 adr = (u32)(PC) - BasePC;
10182 READ_LONG_F(adr, res)
10186 flag_N = res >> 24;
10188 adr += AREG((Opcode >> 9) & 7);
10189 WRITE_LONG_F(adr, res)
10200 adr = (u32)(PC) - BasePC;
10203 READ_LONG_F(adr, res)
10207 flag_N = res >> 24;
10208 adr = AREG((Opcode >> 9) & 7);
10210 WRITE_LONG_F(adr, res)
10221 adr = (u32)(PC) - BasePC;
10224 READ_LONG_F(adr, res)
10228 flag_N = res >> 24;
10230 WRITE_LONG_F(adr, res)
10241 adr = (u32)(PC) - BasePC;
10244 READ_LONG_F(adr, res)
10248 flag_N = res >> 24;
10250 WRITE_LONG_F(adr, res)
10261 adr = (u32)(PC) - BasePC;
10264 READ_LONG_F(adr, res)
10268 flag_N = res >> 24;
10271 WRITE_LONG_F(adr, res)
10282 adr = (u32)(PC) - BasePC;
10285 READ_LONG_F(adr, res)
10289 flag_N = res >> 24;
10292 WRITE_LONG_DEC_F(adr, res)
10307 flag_N = res >> 24;
10308 DREGu32((Opcode >> 9) & 7) = res;
10322 flag_N = res >> 24;
10323 adr = AREG((Opcode >> 9) & 7);
10325 WRITE_LONG_F(adr, res)
10340 flag_N = res >> 24;
10341 adr = AREG((Opcode >> 9) & 7);
10342 AREG((Opcode >> 9) & 7) += 4;
10344 WRITE_LONG_F(adr, res)
10359 flag_N = res >> 24;
10360 adr = AREG((Opcode >> 9) & 7) - 4;
10361 AREG((Opcode >> 9) & 7) = adr;
10363 WRITE_LONG_DEC_F(adr, res)
10378 flag_N = res >> 24;
10380 adr += AREG((Opcode >> 9) & 7);
10382 WRITE_LONG_F(adr, res)
10397 flag_N = res >> 24;
10398 adr = AREG((Opcode >> 9) & 7);
10401 WRITE_LONG_F(adr, res)
10416 flag_N = res >> 24;
10419 WRITE_LONG_F(adr, res)
10434 flag_N = res >> 24;
10437 WRITE_LONG_F(adr, res)
10452 flag_N = res >> 24;
10456 WRITE_LONG_F(adr, res)
10471 flag_N = res >> 24;
10475 WRITE_LONG_DEC_F(adr, res)
10489 READ_LONG_F(adr, res)
10493 flag_N = res >> 24;
10494 DREGu32((Opcode >> 9) & 7) = res;
10508 READ_LONG_F(adr, res)
10512 flag_N = res >> 24;
10513 adr = AREG((Opcode >> 9) & 7);
10514 WRITE_LONG_F(adr, res)
10528 READ_LONG_F(adr, res)
10532 flag_N = res >> 24;
10533 adr = AREG((Opcode >> 9) & 7);
10534 AREG((Opcode >> 9) & 7) += 4;
10535 WRITE_LONG_F(adr, res)
10549 READ_LONG_F(adr, res)
10553 flag_N = res >> 24;
10554 adr = AREG((Opcode >> 9) & 7) - 4;
10555 AREG((Opcode >> 9) & 7) = adr;
10556 WRITE_LONG_DEC_F(adr, res)
10570 READ_LONG_F(adr, res)
10574 flag_N = res >> 24;
10576 adr += AREG((Opcode >> 9) & 7);
10577 WRITE_LONG_F(adr, res)
10591 READ_LONG_F(adr, res)
10595 flag_N = res >> 24;
10596 adr = AREG((Opcode >> 9) & 7);
10598 WRITE_LONG_F(adr, res)
10612 READ_LONG_F(adr, res)
10616 flag_N = res >> 24;
10618 WRITE_LONG_F(adr, res)
10632 READ_LONG_F(adr, res)
10636 flag_N = res >> 24;
10638 WRITE_LONG_F(adr, res)
10652 READ_LONG_F(adr, res)
10656 flag_N = res >> 24;
10659 WRITE_LONG_F(adr, res)
10673 READ_LONG_F(adr, res)
10677 flag_N = res >> 24;
10680 WRITE_LONG_DEC_F(adr, res)
10694 READ_LONG_F(adr, res)
10698 flag_N = res >> 24;
10699 DREGu32((Opcode >> 9) & 7) = res;
10713 READ_LONG_F(adr, res)
10717 flag_N = res >> 24;
10718 adr = AREG((Opcode >> 9) & 7);
10719 WRITE_LONG_F(adr, res)
10733 READ_LONG_F(adr, res)
10737 flag_N = res >> 24;
10738 adr = AREG((Opcode >> 9) & 7);
10739 AREG((Opcode >> 9) & 7) += 4;
10740 WRITE_LONG_F(adr, res)
10754 READ_LONG_F(adr, res)
10758 flag_N = res >> 24;
10759 adr = AREG((Opcode >> 9) & 7) - 4;
10760 AREG((Opcode >> 9) & 7) = adr;
10761 WRITE_LONG_DEC_F(adr, res)
10775 READ_LONG_F(adr, res)
10779 flag_N = res >> 24;
10781 adr += AREG((Opcode >> 9) & 7);
10782 WRITE_LONG_F(adr, res)
10796 READ_LONG_F(adr, res)
10800 flag_N = res >> 24;
10801 adr = AREG((Opcode >> 9) & 7);
10803 WRITE_LONG_F(adr, res)
10817 READ_LONG_F(adr, res)
10821 flag_N = res >> 24;
10823 WRITE_LONG_F(adr, res)
10837 READ_LONG_F(adr, res)
10841 flag_N = res >> 24;
10843 WRITE_LONG_F(adr, res)
10857 READ_LONG_F(adr, res)
10861 flag_N = res >> 24;
10864 WRITE_LONG_F(adr, res)
10878 READ_LONG_F(adr, res)
10882 flag_N = res >> 24;
10885 WRITE_LONG_DEC_F(adr, res)
10896 res = (s32)DREGs32((Opcode >> 0) & 7);
10897 AREG((Opcode >> 9) & 7) = res;
10907 res = (s32)AREGs32((Opcode >> 0) & 7);
10908 AREG((Opcode >> 9) & 7) = res;
10918 adr = AREG((Opcode >> 0) & 7);
10920 READSX_LONG_F(adr, res)
10921 AREG((Opcode >> 9) & 7) = res;
10932 adr = AREG((Opcode >> 0) & 7);
10933 AREG((Opcode >> 0) & 7) += 4;
10935 READSX_LONG_F(adr, res)
10936 AREG((Opcode >> 9) & 7) = res;
10947 adr = AREG((Opcode >> 0) & 7) - 4;
10948 AREG((Opcode >> 0) & 7) = adr;
10950 READSX_LONG_F(adr, res)
10951 AREG((Opcode >> 9) & 7) = res;
10963 adr += AREG((Opcode >> 0) & 7);
10965 READSX_LONG_F(adr, res)
10966 AREG((Opcode >> 9) & 7) = res;
10977 adr = AREG((Opcode >> 0) & 7);
10980 READSX_LONG_F(adr, res)
10981 AREG((Opcode >> 9) & 7) = res;
10994 READSX_LONG_F(adr, res)
10995 AREG((Opcode >> 9) & 7) = res;
11008 READSX_LONG_F(adr, res)
11009 AREG((Opcode >> 9) & 7) = res;
11020 adr = GET_SWORD + ((u32)(PC) - BasePC);
11023 READSX_LONG_F(adr, res)
11024 AREG((Opcode >> 9) & 7) = res;
11035 adr = (u32)(PC) - BasePC;
11038 READSX_LONG_F(adr, res)
11039 AREG((Opcode >> 9) & 7) = res;
11051 AREG((Opcode >> 9) & 7) = res;
11064 READSX_LONG_F(adr, res)
11065 AREG((Opcode >> 9) & 7) = res;
11079 READSX_LONG_F(adr, res)
11080 AREG((Opcode >> 9) & 7) = res;
11091 res = DREGu16((Opcode >> 0) & 7);
11096 DREGu16((Opcode >> 9) & 7) = res;
11106 res = DREGu16((Opcode >> 0) & 7);
11111 adr = AREG((Opcode >> 9) & 7);
11113 WRITE_WORD_F(adr, res)
11124 res = DREGu16((Opcode >> 0) & 7);
11129 adr = AREG((Opcode >> 9) & 7);
11130 AREG((Opcode >> 9) & 7) += 2;
11132 WRITE_WORD_F(adr, res)
11143 res = DREGu16((Opcode >> 0) & 7);
11148 adr = AREG((Opcode >> 9) & 7) - 2;
11149 AREG((Opcode >> 9) & 7) = adr;
11151 WRITE_WORD_F(adr, res)
11162 res = DREGu16((Opcode >> 0) & 7);
11168 adr += AREG((Opcode >> 9) & 7);
11170 WRITE_WORD_F(adr, res)
11181 res = DREGu16((Opcode >> 0) & 7);
11186 adr = AREG((Opcode >> 9) & 7);
11189 WRITE_WORD_F(adr, res)
11200 res = DREGu16((Opcode >> 0) & 7);
11207 WRITE_WORD_F(adr, res)
11218 res = DREGu16((Opcode >> 0) & 7);
11225 WRITE_WORD_F(adr, res)
11236 res = DREGu16((Opcode >> 0) & 7);
11244 WRITE_WORD_F(adr, res)
11255 res = DREGu16((Opcode >> 0) & 7);
11263 WRITE_WORD_F(adr, res)
11274 res = AREGu16((Opcode >> 0) & 7);
11279 DREGu16((Opcode >> 9) & 7) = res;
11289 res = AREGu16((Opcode >> 0) & 7);
11294 adr = AREG((Opcode >> 9) & 7);
11296 WRITE_WORD_F(adr, res)
11307 res = AREGu16((Opcode >> 0) & 7);
11312 adr = AREG((Opcode >> 9) & 7);
11313 AREG((Opcode >> 9) & 7) += 2;
11315 WRITE_WORD_F(adr, res)
11326 res = AREGu16((Opcode >> 0) & 7);
11331 adr = AREG((Opcode >> 9) & 7) - 2;
11332 AREG((Opcode >> 9) & 7) = adr;
11334 WRITE_WORD_F(adr, res)
11345 res = AREGu16((Opcode >> 0) & 7);
11351 adr += AREG((Opcode >> 9) & 7);
11353 WRITE_WORD_F(adr, res)
11364 res = AREGu16((Opcode >> 0) & 7);
11369 adr = AREG((Opcode >> 9) & 7);
11372 WRITE_WORD_F(adr, res)
11383 res = AREGu16((Opcode >> 0) & 7);
11390 WRITE_WORD_F(adr, res)
11401 res = AREGu16((Opcode >> 0) & 7);
11408 WRITE_WORD_F(adr, res)
11419 res = AREGu16((Opcode >> 0) & 7);
11427 WRITE_WORD_F(adr, res)
11438 res = AREGu16((Opcode >> 0) & 7);
11446 WRITE_WORD_F(adr, res)
11457 adr = AREG((Opcode >> 0) & 7);
11459 READ_WORD_F(adr, res)
11464 DREGu16((Opcode >> 9) & 7) = res;
11475 adr = AREG((Opcode >> 0) & 7);
11477 READ_WORD_F(adr, res)
11482 adr = AREG((Opcode >> 9) & 7);
11483 WRITE_WORD_F(adr, res)
11494 adr = AREG((Opcode >> 0) & 7);
11496 READ_WORD_F(adr, res)
11501 adr = AREG((Opcode >> 9) & 7);
11502 AREG((Opcode >> 9) & 7) += 2;
11503 WRITE_WORD_F(adr, res)
11514 adr = AREG((Opcode >> 0) & 7);
11516 READ_WORD_F(adr, res)
11521 adr = AREG((Opcode >> 9) & 7) - 2;
11522 AREG((Opcode >> 9) & 7) = adr;
11523 WRITE_WORD_F(adr, res)
11534 adr = AREG((Opcode >> 0) & 7);
11536 READ_WORD_F(adr, res)
11542 adr += AREG((Opcode >> 9) & 7);
11543 WRITE_WORD_F(adr, res)
11554 adr = AREG((Opcode >> 0) & 7);
11556 READ_WORD_F(adr, res)
11561 adr = AREG((Opcode >> 9) & 7);
11563 WRITE_WORD_F(adr, res)
11574 adr = AREG((Opcode >> 0) & 7);
11576 READ_WORD_F(adr, res)
11582 WRITE_WORD_F(adr, res)
11593 adr = AREG((Opcode >> 0) & 7);
11595 READ_WORD_F(adr, res)
11601 WRITE_WORD_F(adr, res)
11612 adr = AREG((Opcode >> 0) & 7);
11614 READ_WORD_F(adr, res)
11621 WRITE_WORD_F(adr, res)
11632 adr = AREG((Opcode >> 0) & 7);
11634 READ_WORD_F(adr, res)
11641 WRITE_WORD_F(adr, res)
11652 adr = AREG((Opcode >> 0) & 7);
11653 AREG((Opcode >> 0) & 7) += 2;
11655 READ_WORD_F(adr, res)
11660 DREGu16((Opcode >> 9) & 7) = res;
11671 adr = AREG((Opcode >> 0) & 7);
11672 AREG((Opcode >> 0) & 7) += 2;
11674 READ_WORD_F(adr, res)
11679 adr = AREG((Opcode >> 9) & 7);
11680 WRITE_WORD_F(adr, res)
11691 adr = AREG((Opcode >> 0) & 7);
11692 AREG((Opcode >> 0) & 7) += 2;
11694 READ_WORD_F(adr, res)
11699 adr = AREG((Opcode >> 9) & 7);
11700 AREG((Opcode >> 9) & 7) += 2;
11701 WRITE_WORD_F(adr, res)
11712 adr = AREG((Opcode >> 0) & 7);
11713 AREG((Opcode >> 0) & 7) += 2;
11715 READ_WORD_F(adr, res)
11720 adr = AREG((Opcode >> 9) & 7) - 2;
11721 AREG((Opcode >> 9) & 7) = adr;
11722 WRITE_WORD_F(adr, res)
11733 adr = AREG((Opcode >> 0) & 7);
11734 AREG((Opcode >> 0) & 7) += 2;
11736 READ_WORD_F(adr, res)
11742 adr += AREG((Opcode >> 9) & 7);
11743 WRITE_WORD_F(adr, res)
11754 adr = AREG((Opcode >> 0) & 7);
11755 AREG((Opcode >> 0) & 7) += 2;
11757 READ_WORD_F(adr, res)
11762 adr = AREG((Opcode >> 9) & 7);
11764 WRITE_WORD_F(adr, res)
11775 adr = AREG((Opcode >> 0) & 7);
11776 AREG((Opcode >> 0) & 7) += 2;
11778 READ_WORD_F(adr, res)
11784 WRITE_WORD_F(adr, res)
11795 adr = AREG((Opcode >> 0) & 7);
11796 AREG((Opcode >> 0) & 7) += 2;
11798 READ_WORD_F(adr, res)
11804 WRITE_WORD_F(adr, res)
11815 adr = AREG((Opcode >> 0) & 7);
11816 AREG((Opcode >> 0) & 7) += 2;
11818 READ_WORD_F(adr, res)
11825 WRITE_WORD_F(adr, res)
11836 adr = AREG((Opcode >> 0) & 7);
11837 AREG((Opcode >> 0) & 7) += 2;
11839 READ_WORD_F(adr, res)
11846 WRITE_WORD_F(adr, res)
11857 adr = AREG((Opcode >> 0) & 7) - 2;
11858 AREG((Opcode >> 0) & 7) = adr;
11860 READ_WORD_F(adr, res)
11865 DREGu16((Opcode >> 9) & 7) = res;
11876 adr = AREG((Opcode >> 0) & 7) - 2;
11877 AREG((Opcode >> 0) & 7) = adr;
11879 READ_WORD_F(adr, res)
11884 adr = AREG((Opcode >> 9) & 7);
11885 WRITE_WORD_F(adr, res)
11896 adr = AREG((Opcode >> 0) & 7) - 2;
11897 AREG((Opcode >> 0) & 7) = adr;
11899 READ_WORD_F(adr, res)
11904 adr = AREG((Opcode >> 9) & 7);
11905 AREG((Opcode >> 9) & 7) += 2;
11906 WRITE_WORD_F(adr, res)
11917 adr = AREG((Opcode >> 0) & 7) - 2;
11918 AREG((Opcode >> 0) & 7) = adr;
11920 READ_WORD_F(adr, res)
11925 adr = AREG((Opcode >> 9) & 7) - 2;
11926 AREG((Opcode >> 9) & 7) = adr;
11927 WRITE_WORD_F(adr, res)
11938 adr = AREG((Opcode >> 0) & 7) - 2;
11939 AREG((Opcode >> 0) & 7) = adr;
11941 READ_WORD_F(adr, res)
11947 adr += AREG((Opcode >> 9) & 7);
11948 WRITE_WORD_F(adr, res)
11959 adr = AREG((Opcode >> 0) & 7) - 2;
11960 AREG((Opcode >> 0) & 7) = adr;
11962 READ_WORD_F(adr, res)
11967 adr = AREG((Opcode >> 9) & 7);
11969 WRITE_WORD_F(adr, res)
11980 adr = AREG((Opcode >> 0) & 7) - 2;
11981 AREG((Opcode >> 0) & 7) = adr;
11983 READ_WORD_F(adr, res)
11989 WRITE_WORD_F(adr, res)
12000 adr = AREG((Opcode >> 0) & 7) - 2;
12001 AREG((Opcode >> 0) & 7) = adr;
12003 READ_WORD_F(adr, res)
12009 WRITE_WORD_F(adr, res)
12020 adr = AREG((Opcode >> 0) & 7) - 2;
12021 AREG((Opcode >> 0) & 7) = adr;
12023 READ_WORD_F(adr, res)
12030 WRITE_WORD_F(adr, res)
12041 adr = AREG((Opcode >> 0) & 7) - 2;
12042 AREG((Opcode >> 0) & 7) = adr;
12044 READ_WORD_F(adr, res)
12051 WRITE_WORD_F(adr, res)
12063 adr += AREG((Opcode >> 0) & 7);
12065 READ_WORD_F(adr, res)
12070 DREGu16((Opcode >> 9) & 7) = res;
12082 adr += AREG((Opcode >> 0) & 7);
12084 READ_WORD_F(adr, res)
12089 adr = AREG((Opcode >> 9) & 7);
12090 WRITE_WORD_F(adr, res)
12102 adr += AREG((Opcode >> 0) & 7);
12104 READ_WORD_F(adr, res)
12109 adr = AREG((Opcode >> 9) & 7);
12110 AREG((Opcode >> 9) & 7) += 2;
12111 WRITE_WORD_F(adr, res)
12123 adr += AREG((Opcode >> 0) & 7);
12125 READ_WORD_F(adr, res)
12130 adr = AREG((Opcode >> 9) & 7) - 2;
12131 AREG((Opcode >> 9) & 7) = adr;
12132 WRITE_WORD_F(adr, res)
12144 adr += AREG((Opcode >> 0) & 7);
12146 READ_WORD_F(adr, res)
12152 adr += AREG((Opcode >> 9) & 7);
12153 WRITE_WORD_F(adr, res)
12165 adr += AREG((Opcode >> 0) & 7);
12167 READ_WORD_F(adr, res)
12172 adr = AREG((Opcode >> 9) & 7);
12174 WRITE_WORD_F(adr, res)
12186 adr += AREG((Opcode >> 0) & 7);
12188 READ_WORD_F(adr, res)
12194 WRITE_WORD_F(adr, res)
12206 adr += AREG((Opcode >> 0) & 7);
12208 READ_WORD_F(adr, res)
12214 WRITE_WORD_F(adr, res)
12226 adr += AREG((Opcode >> 0) & 7);
12228 READ_WORD_F(adr, res)
12235 WRITE_WORD_F(adr, res)
12247 adr += AREG((Opcode >> 0) & 7);
12249 READ_WORD_F(adr, res)
12256 WRITE_WORD_F(adr, res)
12267 adr = AREG((Opcode >> 0) & 7);
12270 READ_WORD_F(adr, res)
12275 DREGu16((Opcode >> 9) & 7) = res;
12286 adr = AREG((Opcode >> 0) & 7);
12289 READ_WORD_F(adr, res)
12294 adr = AREG((Opcode >> 9) & 7);
12295 WRITE_WORD_F(adr, res)
12306 adr = AREG((Opcode >> 0) & 7);
12309 READ_WORD_F(adr, res)
12314 adr = AREG((Opcode >> 9) & 7);
12315 AREG((Opcode >> 9) & 7) += 2;
12316 WRITE_WORD_F(adr, res)
12327 adr = AREG((Opcode >> 0) & 7);
12330 READ_WORD_F(adr, res)
12335 adr = AREG((Opcode >> 9) & 7) - 2;
12336 AREG((Opcode >> 9) & 7) = adr;
12337 WRITE_WORD_F(adr, res)
12348 adr = AREG((Opcode >> 0) & 7);
12351 READ_WORD_F(adr, res)
12357 adr += AREG((Opcode >> 9) & 7);
12358 WRITE_WORD_F(adr, res)
12369 adr = AREG((Opcode >> 0) & 7);
12372 READ_WORD_F(adr, res)
12377 adr = AREG((Opcode >> 9) & 7);
12379 WRITE_WORD_F(adr, res)
12390 adr = AREG((Opcode >> 0) & 7);
12393 READ_WORD_F(adr, res)
12399 WRITE_WORD_F(adr, res)
12410 adr = AREG((Opcode >> 0) & 7);
12413 READ_WORD_F(adr, res)
12419 WRITE_WORD_F(adr, res)
12430 adr = AREG((Opcode >> 0) & 7);
12433 READ_WORD_F(adr, res)
12440 WRITE_WORD_F(adr, res)
12451 adr = AREG((Opcode >> 0) & 7);
12454 READ_WORD_F(adr, res)
12461 WRITE_WORD_F(adr, res)
12474 READ_WORD_F(adr, res)
12479 DREGu16((Opcode >> 9) & 7) = res;
12492 READ_WORD_F(adr, res)
12497 adr = AREG((Opcode >> 9) & 7);
12498 WRITE_WORD_F(adr, res)
12511 READ_WORD_F(adr, res)
12516 adr = AREG((Opcode >> 9) & 7);
12517 AREG((Opcode >> 9) & 7) += 2;
12518 WRITE_WORD_F(adr, res)
12531 READ_WORD_F(adr, res)
12536 adr = AREG((Opcode >> 9) & 7) - 2;
12537 AREG((Opcode >> 9) & 7) = adr;
12538 WRITE_WORD_F(adr, res)
12551 READ_WORD_F(adr, res)
12557 adr += AREG((Opcode >> 9) & 7);
12558 WRITE_WORD_F(adr, res)
12571 READ_WORD_F(adr, res)
12576 adr = AREG((Opcode >> 9) & 7);
12578 WRITE_WORD_F(adr, res)
12591 READ_WORD_F(adr, res)
12597 WRITE_WORD_F(adr, res)
12610 READ_WORD_F(adr, res)
12616 WRITE_WORD_F(adr, res)
12629 READ_WORD_F(adr, res)
12636 WRITE_WORD_F(adr, res)
12649 READ_WORD_F(adr, res)
12656 WRITE_WORD_F(adr, res)
12669 READ_WORD_F(adr, res)
12674 DREGu16((Opcode >> 9) & 7) = res;
12687 READ_WORD_F(adr, res)
12692 adr = AREG((Opcode >> 9) & 7);
12693 WRITE_WORD_F(adr, res)
12706 READ_WORD_F(adr, res)
12711 adr = AREG((Opcode >> 9) & 7);
12712 AREG((Opcode >> 9) & 7) += 2;
12713 WRITE_WORD_F(adr, res)
12726 READ_WORD_F(adr, res)
12731 adr = AREG((Opcode >> 9) & 7) - 2;
12732 AREG((Opcode >> 9) & 7) = adr;
12733 WRITE_WORD_F(adr, res)
12746 READ_WORD_F(adr, res)
12752 adr += AREG((Opcode >> 9) & 7);
12753 WRITE_WORD_F(adr, res)
12766 READ_WORD_F(adr, res)
12771 adr = AREG((Opcode >> 9) & 7);
12773 WRITE_WORD_F(adr, res)
12786 READ_WORD_F(adr, res)
12792 WRITE_WORD_F(adr, res)
12805 READ_WORD_F(adr, res)
12811 WRITE_WORD_F(adr, res)
12824 READ_WORD_F(adr, res)
12831 WRITE_WORD_F(adr, res)
12844 READ_WORD_F(adr, res)
12851 WRITE_WORD_F(adr, res)
12862 adr = GET_SWORD + ((u32)(PC) - BasePC);
12865 READ_WORD_F(adr, res)
12870 DREGu16((Opcode >> 9) & 7) = res;
12881 adr = GET_SWORD + ((u32)(PC) - BasePC);
12884 READ_WORD_F(adr, res)
12889 adr = AREG((Opcode >> 9) & 7);
12890 WRITE_WORD_F(adr, res)
12901 adr = GET_SWORD + ((u32)(PC) - BasePC);
12904 READ_WORD_F(adr, res)
12909 adr = AREG((Opcode >> 9) & 7);
12910 AREG((Opcode >> 9) & 7) += 2;
12911 WRITE_WORD_F(adr, res)
12922 adr = GET_SWORD + ((u32)(PC) - BasePC);
12925 READ_WORD_F(adr, res)
12930 adr = AREG((Opcode >> 9) & 7) - 2;
12931 AREG((Opcode >> 9) & 7) = adr;
12932 WRITE_WORD_F(adr, res)
12943 adr = GET_SWORD + ((u32)(PC) - BasePC);
12946 READ_WORD_F(adr, res)
12952 adr += AREG((Opcode >> 9) & 7);
12953 WRITE_WORD_F(adr, res)
12964 adr = GET_SWORD + ((u32)(PC) - BasePC);
12967 READ_WORD_F(adr, res)
12972 adr = AREG((Opcode >> 9) & 7);
12974 WRITE_WORD_F(adr, res)
12985 adr = GET_SWORD + ((u32)(PC) - BasePC);
12988 READ_WORD_F(adr, res)
12994 WRITE_WORD_F(adr, res)
13005 adr = GET_SWORD + ((u32)(PC) - BasePC);
13008 READ_WORD_F(adr, res)
13014 WRITE_WORD_F(adr, res)
13025 adr = GET_SWORD + ((u32)(PC) - BasePC);
13028 READ_WORD_F(adr, res)
13035 WRITE_WORD_F(adr, res)
13046 adr = GET_SWORD + ((u32)(PC) - BasePC);
13049 READ_WORD_F(adr, res)
13056 WRITE_WORD_F(adr, res)
13067 adr = (u32)(PC) - BasePC;
13070 READ_WORD_F(adr, res)
13075 DREGu16((Opcode >> 9) & 7) = res;
13086 adr = (u32)(PC) - BasePC;
13089 READ_WORD_F(adr, res)
13094 adr = AREG((Opcode >> 9) & 7);
13095 WRITE_WORD_F(adr, res)
13106 adr = (u32)(PC) - BasePC;
13109 READ_WORD_F(adr, res)
13114 adr = AREG((Opcode >> 9) & 7);
13115 AREG((Opcode >> 9) & 7) += 2;
13116 WRITE_WORD_F(adr, res)
13127 adr = (u32)(PC) - BasePC;
13130 READ_WORD_F(adr, res)
13135 adr = AREG((Opcode >> 9) & 7) - 2;
13136 AREG((Opcode >> 9) & 7) = adr;
13137 WRITE_WORD_F(adr, res)
13148 adr = (u32)(PC) - BasePC;
13151 READ_WORD_F(adr, res)
13157 adr += AREG((Opcode >> 9) & 7);
13158 WRITE_WORD_F(adr, res)
13169 adr = (u32)(PC) - BasePC;
13172 READ_WORD_F(adr, res)
13177 adr = AREG((Opcode >> 9) & 7);
13179 WRITE_WORD_F(adr, res)
13190 adr = (u32)(PC) - BasePC;
13193 READ_WORD_F(adr, res)
13199 WRITE_WORD_F(adr, res)
13210 adr = (u32)(PC) - BasePC;
13213 READ_WORD_F(adr, res)
13219 WRITE_WORD_F(adr, res)
13230 adr = (u32)(PC) - BasePC;
13233 READ_WORD_F(adr, res)
13240 WRITE_WORD_F(adr, res)
13251 adr = (u32)(PC) - BasePC;
13254 READ_WORD_F(adr, res)
13261 WRITE_WORD_F(adr, res)
13277 DREGu16((Opcode >> 9) & 7) = res;
13292 adr = AREG((Opcode >> 9) & 7);
13294 WRITE_WORD_F(adr, res)
13310 adr = AREG((Opcode >> 9) & 7);
13311 AREG((Opcode >> 9) & 7) += 2;
13313 WRITE_WORD_F(adr, res)
13329 adr = AREG((Opcode >> 9) & 7) - 2;
13330 AREG((Opcode >> 9) & 7) = adr;
13332 WRITE_WORD_F(adr, res)
13349 adr += AREG((Opcode >> 9) & 7);
13351 WRITE_WORD_F(adr, res)
13367 adr = AREG((Opcode >> 9) & 7);
13370 WRITE_WORD_F(adr, res)
13388 WRITE_WORD_F(adr, res)
13406 WRITE_WORD_F(adr, res)
13425 WRITE_WORD_F(adr, res)
13444 WRITE_WORD_F(adr, res)
13458 READ_WORD_F(adr, res)
13463 DREGu16((Opcode >> 9) & 7) = res;
13477 READ_WORD_F(adr, res)
13482 adr = AREG((Opcode >> 9) & 7);
13483 WRITE_WORD_F(adr, res)
13497 READ_WORD_F(adr, res)
13502 adr = AREG((Opcode >> 9) & 7);
13503 AREG((Opcode >> 9) & 7) += 2;
13504 WRITE_WORD_F(adr, res)
13518 READ_WORD_F(adr, res)
13523 adr = AREG((Opcode >> 9) & 7) - 2;
13524 AREG((Opcode >> 9) & 7) = adr;
13525 WRITE_WORD_F(adr, res)
13539 READ_WORD_F(adr, res)
13545 adr += AREG((Opcode >> 9) & 7);
13546 WRITE_WORD_F(adr, res)
13560 READ_WORD_F(adr, res)
13565 adr = AREG((Opcode >> 9) & 7);
13567 WRITE_WORD_F(adr, res)
13581 READ_WORD_F(adr, res)
13587 WRITE_WORD_F(adr, res)
13601 READ_WORD_F(adr, res)
13607 WRITE_WORD_F(adr, res)
13621 READ_WORD_F(adr, res)
13628 WRITE_WORD_F(adr, res)
13642 READ_WORD_F(adr, res)
13649 WRITE_WORD_F(adr, res)
13663 READ_WORD_F(adr, res)
13668 DREGu16((Opcode >> 9) & 7) = res;
13682 READ_WORD_F(adr, res)
13687 adr = AREG((Opcode >> 9) & 7);
13688 WRITE_WORD_F(adr, res)
13702 READ_WORD_F(adr, res)
13707 adr = AREG((Opcode >> 9) & 7);
13708 AREG((Opcode >> 9) & 7) += 2;
13709 WRITE_WORD_F(adr, res)
13723 READ_WORD_F(adr, res)
13728 adr = AREG((Opcode >> 9) & 7) - 2;
13729 AREG((Opcode >> 9) & 7) = adr;
13730 WRITE_WORD_F(adr, res)
13744 READ_WORD_F(adr, res)
13750 adr += AREG((Opcode >> 9) & 7);
13751 WRITE_WORD_F(adr, res)
13765 READ_WORD_F(adr, res)
13770 adr = AREG((Opcode >> 9) & 7);
13772 WRITE_WORD_F(adr, res)
13786 READ_WORD_F(adr, res)
13792 WRITE_WORD_F(adr, res)
13806 READ_WORD_F(adr, res)
13812 WRITE_WORD_F(adr, res)
13826 READ_WORD_F(adr, res)
13833 WRITE_WORD_F(adr, res)
13847 READ_WORD_F(adr, res)
13854 WRITE_WORD_F(adr, res)
13865 res = (s32)DREGs16((Opcode >> 0) & 7);
13866 AREG((Opcode >> 9) & 7) = res;
13876 res = (s32)AREGs16((Opcode >> 0) & 7);
13877 AREG((Opcode >> 9) & 7) = res;
13887 adr = AREG((Opcode >> 0) & 7);
13889 READSX_WORD_F(adr, res)
13890 AREG((Opcode >> 9) & 7) = res;
13901 adr = AREG((Opcode >> 0) & 7);
13902 AREG((Opcode >> 0) & 7) += 2;
13904 READSX_WORD_F(adr, res)
13905 AREG((Opcode >> 9) & 7) = res;
13916 adr = AREG((Opcode >> 0) & 7) - 2;
13917 AREG((Opcode >> 0) & 7) = adr;
13919 READSX_WORD_F(adr, res)
13920 AREG((Opcode >> 9) & 7) = res;
13932 adr += AREG((Opcode >> 0) & 7);
13934 READSX_WORD_F(adr, res)
13935 AREG((Opcode >> 9) & 7) = res;
13946 adr = AREG((Opcode >> 0) & 7);
13949 READSX_WORD_F(adr, res)
13950 AREG((Opcode >> 9) & 7) = res;
13963 READSX_WORD_F(adr, res)
13964 AREG((Opcode >> 9) & 7) = res;
13977 READSX_WORD_F(adr, res)
13978 AREG((Opcode >> 9) & 7) = res;
13989 adr = GET_SWORD + ((u32)(PC) - BasePC);
13992 READSX_WORD_F(adr, res)
13993 AREG((Opcode >> 9) & 7) = res;
14004 adr = (u32)(PC) - BasePC;
14007 READSX_WORD_F(adr, res)
14008 AREG((Opcode >> 9) & 7) = res;
14020 AREG((Opcode >> 9) & 7) = res;
14033 READSX_WORD_F(adr, res)
14034 AREG((Opcode >> 9) & 7) = res;
14048 READSX_WORD_F(adr, res)
14049 AREG((Opcode >> 9) & 7) = res;
14060 src = DREGu8((Opcode >> 0) & 7);
14061 res = -src - ((flag_X >> 8) & 1);
14062 flag_V = res & src;
14063 flag_N = flag_X = flag_C = res;
14064 flag_NotZ |= res & 0xFF;
14065 DREGu8((Opcode >> 0) & 7) = res;
14075 adr = AREG((Opcode >> 0) & 7);
14077 READ_BYTE_F(adr, src)
14078 res = -src - ((flag_X >> 8) & 1);
14079 flag_V = res & src;
14080 flag_N = flag_X = flag_C = res;
14081 flag_NotZ |= res & 0xFF;
14082 WRITE_BYTE_F(adr, res)
14093 adr = AREG((Opcode >> 0) & 7);
14094 AREG((Opcode >> 0) & 7) += 1;
14096 READ_BYTE_F(adr, src)
14097 res = -src - ((flag_X >> 8) & 1);
14098 flag_V = res & src;
14099 flag_N = flag_X = flag_C = res;
14100 flag_NotZ |= res & 0xFF;
14101 WRITE_BYTE_F(adr, res)
14112 adr = AREG((Opcode >> 0) & 7) - 1;
14113 AREG((Opcode >> 0) & 7) = adr;
14115 READ_BYTE_F(adr, src)
14116 res = -src - ((flag_X >> 8) & 1);
14117 flag_V = res & src;
14118 flag_N = flag_X = flag_C = res;
14119 flag_NotZ |= res & 0xFF;
14120 WRITE_BYTE_F(adr, res)
14132 adr += AREG((Opcode >> 0) & 7);
14134 READ_BYTE_F(adr, src)
14135 res = -src - ((flag_X >> 8) & 1);
14136 flag_V = res & src;
14137 flag_N = flag_X = flag_C = res;
14138 flag_NotZ |= res & 0xFF;
14139 WRITE_BYTE_F(adr, res)
14150 adr = AREG((Opcode >> 0) & 7);
14153 READ_BYTE_F(adr, src)
14154 res = -src - ((flag_X >> 8) & 1);
14155 flag_V = res & src;
14156 flag_N = flag_X = flag_C = res;
14157 flag_NotZ |= res & 0xFF;
14158 WRITE_BYTE_F(adr, res)
14171 READ_BYTE_F(adr, src)
14172 res = -src - ((flag_X >> 8) & 1);
14173 flag_V = res & src;
14174 flag_N = flag_X = flag_C = res;
14175 flag_NotZ |= res & 0xFF;
14176 WRITE_BYTE_F(adr, res)
14189 READ_BYTE_F(adr, src)
14190 res = -src - ((flag_X >> 8) & 1);
14191 flag_V = res & src;
14192 flag_N = flag_X = flag_C = res;
14193 flag_NotZ |= res & 0xFF;
14194 WRITE_BYTE_F(adr, res)
14208 READ_BYTE_F(adr, src)
14209 res = -src - ((flag_X >> 8) & 1);
14210 flag_V = res & src;
14211 flag_N = flag_X = flag_C = res;
14212 flag_NotZ |= res & 0xFF;
14213 WRITE_BYTE_F(adr, res)
14227 READ_BYTE_F(adr, src)
14228 res = -src - ((flag_X >> 8) & 1);
14229 flag_V = res & src;
14230 flag_N = flag_X = flag_C = res;
14231 flag_NotZ |= res & 0xFF;
14232 WRITE_BYTE_F(adr, res)
14243 src = DREGu16((Opcode >> 0) & 7);
14244 res = -src - ((flag_X >> 8) & 1);
14245 flag_V = (res & src) >> 8;
14246 flag_N = flag_X = flag_C = res >> 8;
14247 flag_NotZ |= res & 0xFFFF;
14248 DREGu16((Opcode >> 0) & 7) = res;
14258 adr = AREG((Opcode >> 0) & 7);
14260 READ_WORD_F(adr, src)
14261 res = -src - ((flag_X >> 8) & 1);
14262 flag_V = (res & src) >> 8;
14263 flag_N = flag_X = flag_C = res >> 8;
14264 flag_NotZ |= res & 0xFFFF;
14265 WRITE_WORD_F(adr, res)
14276 adr = AREG((Opcode >> 0) & 7);
14277 AREG((Opcode >> 0) & 7) += 2;
14279 READ_WORD_F(adr, src)
14280 res = -src - ((flag_X >> 8) & 1);
14281 flag_V = (res & src) >> 8;
14282 flag_N = flag_X = flag_C = res >> 8;
14283 flag_NotZ |= res & 0xFFFF;
14284 WRITE_WORD_F(adr, res)
14295 adr = AREG((Opcode >> 0) & 7) - 2;
14296 AREG((Opcode >> 0) & 7) = adr;
14298 READ_WORD_F(adr, src)
14299 res = -src - ((flag_X >> 8) & 1);
14300 flag_V = (res & src) >> 8;
14301 flag_N = flag_X = flag_C = res >> 8;
14302 flag_NotZ |= res & 0xFFFF;
14303 WRITE_WORD_F(adr, res)
14315 adr += AREG((Opcode >> 0) & 7);
14317 READ_WORD_F(adr, src)
14318 res = -src - ((flag_X >> 8) & 1);
14319 flag_V = (res & src) >> 8;
14320 flag_N = flag_X = flag_C = res >> 8;
14321 flag_NotZ |= res & 0xFFFF;
14322 WRITE_WORD_F(adr, res)
14333 adr = AREG((Opcode >> 0) & 7);
14336 READ_WORD_F(adr, src)
14337 res = -src - ((flag_X >> 8) & 1);
14338 flag_V = (res & src) >> 8;
14339 flag_N = flag_X = flag_C = res >> 8;
14340 flag_NotZ |= res & 0xFFFF;
14341 WRITE_WORD_F(adr, res)
14354 READ_WORD_F(adr, src)
14355 res = -src - ((flag_X >> 8) & 1);
14356 flag_V = (res & src) >> 8;
14357 flag_N = flag_X = flag_C = res >> 8;
14358 flag_NotZ |= res & 0xFFFF;
14359 WRITE_WORD_F(adr, res)
14372 READ_WORD_F(adr, src)
14373 res = -src - ((flag_X >> 8) & 1);
14374 flag_V = (res & src) >> 8;
14375 flag_N = flag_X = flag_C = res >> 8;
14376 flag_NotZ |= res & 0xFFFF;
14377 WRITE_WORD_F(adr, res)
14391 READ_WORD_F(adr, src)
14392 res = -src - ((flag_X >> 8) & 1);
14393 flag_V = (res & src) >> 8;
14394 flag_N = flag_X = flag_C = res >> 8;
14395 flag_NotZ |= res & 0xFFFF;
14396 WRITE_WORD_F(adr, res)
14410 READ_WORD_F(adr, src)
14411 res = -src - ((flag_X >> 8) & 1);
14412 flag_V = (res & src) >> 8;
14413 flag_N = flag_X = flag_C = res >> 8;
14414 flag_NotZ |= res & 0xFFFF;
14415 WRITE_WORD_F(adr, res)
14426 src = DREGu32((Opcode >> 0) & 7);
14427 res = -src - ((flag_X >> 8) & 1);
14429 flag_V = (res & src) >> 24;
14430 flag_X = flag_C = (res?1:0)<<8;
14431 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14432 flag_N = res >> 24;
14433 DREGu32((Opcode >> 0) & 7) = res;
14443 adr = AREG((Opcode >> 0) & 7);
14445 READ_LONG_F(adr, src)
14446 res = -src - ((flag_X >> 8) & 1);
14448 flag_V = (res & src) >> 24;
14449 flag_X = flag_C = (res?1:0)<<8;
14450 // flag_X = flag_C = ((src & res & 1) | (src >> 1) | (res >> 1)) >> 23;
14451 flag_N = res >> 24;
14452 WRITE_LONG_F(adr, res)
14463 adr = AREG((Opcode >> 0) & 7);
14464 AREG((Opcode >> 0) & 7) += 4;
14466 READ_LONG_F(adr, src)
14467 res = -src - ((flag_X >> 8) & 1);
14469 flag_V = (res & src) >> 24;
14470 flag_X = flag_C = (res?1:0)<<8;
14471 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14472 flag_N = res >> 24;
14473 WRITE_LONG_F(adr, res)
14484 adr = AREG((Opcode >> 0) & 7) - 4;
14485 AREG((Opcode >> 0) & 7) = adr;
14487 READ_LONG_F(adr, src)
14488 res = -src - ((flag_X >> 8) & 1);
14490 flag_V = (res & src) >> 24;
14491 flag_X = flag_C = (res?1:0)<<8;
14492 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14493 flag_N = res >> 24;
14494 WRITE_LONG_F(adr, res)
14506 adr += AREG((Opcode >> 0) & 7);
14508 READ_LONG_F(adr, src)
14509 res = -src - ((flag_X >> 8) & 1);
14511 flag_V = (res & src) >> 24;
14512 flag_X = flag_C = (res?1:0)<<8;
14513 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14514 flag_N = res >> 24;
14515 WRITE_LONG_F(adr, res)
14526 adr = AREG((Opcode >> 0) & 7);
14529 READ_LONG_F(adr, src)
14530 res = -src - ((flag_X >> 8) & 1);
14532 flag_V = (res & src) >> 24;
14533 flag_X = flag_C = (res?1:0)<<8;
14534 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14535 flag_N = res >> 24;
14536 WRITE_LONG_F(adr, res)
14549 READ_LONG_F(adr, src)
14550 res = -src - ((flag_X >> 8) & 1);
14552 flag_V = (res & src) >> 24;
14553 flag_X = flag_C = (res?1:0)<<8;
14554 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14555 flag_N = res >> 24;
14556 WRITE_LONG_F(adr, res)
14569 READ_LONG_F(adr, src)
14570 res = -src - ((flag_X >> 8) & 1);
14572 flag_V = (res & src) >> 24;
14573 flag_X = flag_C = (res?1:0)<<8;
14574 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14575 flag_N = res >> 24;
14576 WRITE_LONG_F(adr, res)
14590 READ_LONG_F(adr, src)
14591 res = -src - ((flag_X >> 8) & 1);
14593 flag_V = (res & src) >> 24;
14594 flag_X = flag_C = (res?1:0)<<8;
14595 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14596 flag_N = res >> 24;
14597 WRITE_LONG_F(adr, res)
14611 READ_LONG_F(adr, src)
14612 res = -src - ((flag_X >> 8) & 1);
14614 flag_V = (res & src) >> 24;
14615 flag_X = flag_C = (res?1:0)<<8;
14616 // flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
14617 flag_N = res >> 24;
14618 WRITE_LONG_F(adr, res)
14630 flag_N = flag_NotZ = flag_V = flag_C = 0;
14631 DREGu8((Opcode >> 0) & 7) = res;
14641 adr = AREG((Opcode >> 0) & 7);
14643 flag_N = flag_NotZ = flag_V = flag_C = 0;
14645 WRITE_BYTE_F(adr, res)
14656 adr = AREG((Opcode >> 0) & 7);
14657 AREG((Opcode >> 0) & 7) += 1;
14659 flag_N = flag_NotZ = flag_V = flag_C = 0;
14661 WRITE_BYTE_F(adr, res)
14672 adr = AREG((Opcode >> 0) & 7) - 1;
14673 AREG((Opcode >> 0) & 7) = adr;
14675 flag_N = flag_NotZ = flag_V = flag_C = 0;
14677 WRITE_BYTE_F(adr, res)
14689 adr += AREG((Opcode >> 0) & 7);
14691 flag_N = flag_NotZ = flag_V = flag_C = 0;
14693 WRITE_BYTE_F(adr, res)
14704 adr = AREG((Opcode >> 0) & 7);
14707 flag_N = flag_NotZ = flag_V = flag_C = 0;
14709 WRITE_BYTE_F(adr, res)
14722 flag_N = flag_NotZ = flag_V = flag_C = 0;
14724 WRITE_BYTE_F(adr, res)
14737 flag_N = flag_NotZ = flag_V = flag_C = 0;
14739 WRITE_BYTE_F(adr, res)
14753 flag_N = flag_NotZ = flag_V = flag_C = 0;
14755 WRITE_BYTE_F(adr, res)
14769 flag_N = flag_NotZ = flag_V = flag_C = 0;
14771 WRITE_BYTE_F(adr, res)
14783 flag_N = flag_NotZ = flag_V = flag_C = 0;
14784 DREGu16((Opcode >> 0) & 7) = res;
14794 adr = AREG((Opcode >> 0) & 7);
14796 flag_N = flag_NotZ = flag_V = flag_C = 0;
14798 WRITE_WORD_F(adr, res)
14809 adr = AREG((Opcode >> 0) & 7);
14810 AREG((Opcode >> 0) & 7) += 2;
14812 flag_N = flag_NotZ = flag_V = flag_C = 0;
14814 WRITE_WORD_F(adr, res)
14825 adr = AREG((Opcode >> 0) & 7) - 2;
14826 AREG((Opcode >> 0) & 7) = adr;
14828 flag_N = flag_NotZ = flag_V = flag_C = 0;
14830 WRITE_WORD_F(adr, res)
14842 adr += AREG((Opcode >> 0) & 7);
14844 flag_N = flag_NotZ = flag_V = flag_C = 0;
14846 WRITE_WORD_F(adr, res)
14857 adr = AREG((Opcode >> 0) & 7);
14860 flag_N = flag_NotZ = flag_V = flag_C = 0;
14862 WRITE_WORD_F(adr, res)
14875 flag_N = flag_NotZ = flag_V = flag_C = 0;
14877 WRITE_WORD_F(adr, res)
14890 flag_N = flag_NotZ = flag_V = flag_C = 0;
14892 WRITE_WORD_F(adr, res)
14906 flag_N = flag_NotZ = flag_V = flag_C = 0;
14908 WRITE_WORD_F(adr, res)
14922 flag_N = flag_NotZ = flag_V = flag_C = 0;
14924 WRITE_WORD_F(adr, res)
14936 flag_N = flag_NotZ = flag_V = flag_C = 0;
14937 DREGu32((Opcode >> 0) & 7) = res;
14947 adr = AREG((Opcode >> 0) & 7);
14949 flag_N = flag_NotZ = flag_V = flag_C = 0;
14951 WRITE_LONG_F(adr, res)
14962 adr = AREG((Opcode >> 0) & 7);
14963 AREG((Opcode >> 0) & 7) += 4;
14965 flag_N = flag_NotZ = flag_V = flag_C = 0;
14967 WRITE_LONG_F(adr, res)
14978 adr = AREG((Opcode >> 0) & 7) - 4;
14979 AREG((Opcode >> 0) & 7) = adr;
14981 flag_N = flag_NotZ = flag_V = flag_C = 0;
14983 WRITE_LONG_F(adr, res)
14995 adr += AREG((Opcode >> 0) & 7);
14997 flag_N = flag_NotZ = flag_V = flag_C = 0;
14999 WRITE_LONG_F(adr, res)
15010 adr = AREG((Opcode >> 0) & 7);
15013 flag_N = flag_NotZ = flag_V = flag_C = 0;
15015 WRITE_LONG_F(adr, res)
15028 flag_N = flag_NotZ = flag_V = flag_C = 0;
15030 WRITE_LONG_F(adr, res)
15043 flag_N = flag_NotZ = flag_V = flag_C = 0;
15045 WRITE_LONG_F(adr, res)
15059 flag_N = flag_NotZ = flag_V = flag_C = 0;
15061 WRITE_LONG_F(adr, res)
15075 flag_N = flag_NotZ = flag_V = flag_C = 0;
15077 WRITE_LONG_F(adr, res)
15088 src = DREGu8((Opcode >> 0) & 7);
15090 flag_V = res & src;
15091 flag_N = flag_X = flag_C = res;
15092 flag_NotZ = res & 0xFF;
15093 DREGu8((Opcode >> 0) & 7) = res;
15103 adr = AREG((Opcode >> 0) & 7);
15105 READ_BYTE_F(adr, src)
15107 flag_V = res & src;
15108 flag_N = flag_X = flag_C = res;
15109 flag_NotZ = res & 0xFF;
15110 WRITE_BYTE_F(adr, res)
15121 adr = AREG((Opcode >> 0) & 7);
15122 AREG((Opcode >> 0) & 7) += 1;
15124 READ_BYTE_F(adr, src)
15126 flag_V = res & src;
15127 flag_N = flag_X = flag_C = res;
15128 flag_NotZ = res & 0xFF;
15129 WRITE_BYTE_F(adr, res)
15140 adr = AREG((Opcode >> 0) & 7) - 1;
15141 AREG((Opcode >> 0) & 7) = adr;
15143 READ_BYTE_F(adr, src)
15145 flag_V = res & src;
15146 flag_N = flag_X = flag_C = res;
15147 flag_NotZ = res & 0xFF;
15148 WRITE_BYTE_F(adr, res)
15160 adr += AREG((Opcode >> 0) & 7);
15162 READ_BYTE_F(adr, src)
15164 flag_V = res & src;
15165 flag_N = flag_X = flag_C = res;
15166 flag_NotZ = res & 0xFF;
15167 WRITE_BYTE_F(adr, res)
15178 adr = AREG((Opcode >> 0) & 7);
15181 READ_BYTE_F(adr, src)
15183 flag_V = res & src;
15184 flag_N = flag_X = flag_C = res;
15185 flag_NotZ = res & 0xFF;
15186 WRITE_BYTE_F(adr, res)
15199 READ_BYTE_F(adr, src)
15201 flag_V = res & src;
15202 flag_N = flag_X = flag_C = res;
15203 flag_NotZ = res & 0xFF;
15204 WRITE_BYTE_F(adr, res)
15217 READ_BYTE_F(adr, src)
15219 flag_V = res & src;
15220 flag_N = flag_X = flag_C = res;
15221 flag_NotZ = res & 0xFF;
15222 WRITE_BYTE_F(adr, res)
15236 READ_BYTE_F(adr, src)
15238 flag_V = res & src;
15239 flag_N = flag_X = flag_C = res;
15240 flag_NotZ = res & 0xFF;
15241 WRITE_BYTE_F(adr, res)
15255 READ_BYTE_F(adr, src)
15257 flag_V = res & src;
15258 flag_N = flag_X = flag_C = res;
15259 flag_NotZ = res & 0xFF;
15260 WRITE_BYTE_F(adr, res)
15271 src = DREGu16((Opcode >> 0) & 7);
15273 flag_V = (res & src) >> 8;
15274 flag_N = flag_X = flag_C = res >> 8;
15275 flag_NotZ = res & 0xFFFF;
15276 DREGu16((Opcode >> 0) & 7) = res;
15286 adr = AREG((Opcode >> 0) & 7);
15288 READ_WORD_F(adr, src)
15290 flag_V = (res & src) >> 8;
15291 flag_N = flag_X = flag_C = res >> 8;
15292 flag_NotZ = res & 0xFFFF;
15293 WRITE_WORD_F(adr, res)
15304 adr = AREG((Opcode >> 0) & 7);
15305 AREG((Opcode >> 0) & 7) += 2;
15307 READ_WORD_F(adr, src)
15309 flag_V = (res & src) >> 8;
15310 flag_N = flag_X = flag_C = res >> 8;
15311 flag_NotZ = res & 0xFFFF;
15312 WRITE_WORD_F(adr, res)
15323 adr = AREG((Opcode >> 0) & 7) - 2;
15324 AREG((Opcode >> 0) & 7) = adr;
15326 READ_WORD_F(adr, src)
15328 flag_V = (res & src) >> 8;
15329 flag_N = flag_X = flag_C = res >> 8;
15330 flag_NotZ = res & 0xFFFF;
15331 WRITE_WORD_F(adr, res)
15343 adr += AREG((Opcode >> 0) & 7);
15345 READ_WORD_F(adr, src)
15347 flag_V = (res & src) >> 8;
15348 flag_N = flag_X = flag_C = res >> 8;
15349 flag_NotZ = res & 0xFFFF;
15350 WRITE_WORD_F(adr, res)
15361 adr = AREG((Opcode >> 0) & 7);
15364 READ_WORD_F(adr, src)
15366 flag_V = (res & src) >> 8;
15367 flag_N = flag_X = flag_C = res >> 8;
15368 flag_NotZ = res & 0xFFFF;
15369 WRITE_WORD_F(adr, res)
15382 READ_WORD_F(adr, src)
15384 flag_V = (res & src) >> 8;
15385 flag_N = flag_X = flag_C = res >> 8;
15386 flag_NotZ = res & 0xFFFF;
15387 WRITE_WORD_F(adr, res)
15400 READ_WORD_F(adr, src)
15402 flag_V = (res & src) >> 8;
15403 flag_N = flag_X = flag_C = res >> 8;
15404 flag_NotZ = res & 0xFFFF;
15405 WRITE_WORD_F(adr, res)
15419 READ_WORD_F(adr, src)
15421 flag_V = (res & src) >> 8;
15422 flag_N = flag_X = flag_C = res >> 8;
15423 flag_NotZ = res & 0xFFFF;
15424 WRITE_WORD_F(adr, res)
15438 READ_WORD_F(adr, src)
15440 flag_V = (res & src) >> 8;
15441 flag_N = flag_X = flag_C = res >> 8;
15442 flag_NotZ = res & 0xFFFF;
15443 WRITE_WORD_F(adr, res)
15454 src = DREGu32((Opcode >> 0) & 7);
15457 flag_V = (res & src) >> 24;
15458 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15459 flag_N = res >> 24;
15460 DREGu32((Opcode >> 0) & 7) = res;
15470 adr = AREG((Opcode >> 0) & 7);
15472 READ_LONG_F(adr, src)
15475 flag_V = (res & src) >> 24;
15476 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15477 flag_N = res >> 24;
15478 WRITE_LONG_F(adr, res)
15489 adr = AREG((Opcode >> 0) & 7);
15490 AREG((Opcode >> 0) & 7) += 4;
15492 READ_LONG_F(adr, src)
15495 flag_V = (res & src) >> 24;
15496 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15497 flag_N = res >> 24;
15498 WRITE_LONG_F(adr, res)
15509 adr = AREG((Opcode >> 0) & 7) - 4;
15510 AREG((Opcode >> 0) & 7) = adr;
15512 READ_LONG_F(adr, src)
15515 flag_V = (res & src) >> 24;
15516 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15517 flag_N = res >> 24;
15518 WRITE_LONG_F(adr, res)
15530 adr += AREG((Opcode >> 0) & 7);
15532 READ_LONG_F(adr, src)
15535 flag_V = (res & src) >> 24;
15536 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15537 flag_N = res >> 24;
15538 WRITE_LONG_F(adr, res)
15549 adr = AREG((Opcode >> 0) & 7);
15552 READ_LONG_F(adr, src)
15555 flag_V = (res & src) >> 24;
15556 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15557 flag_N = res >> 24;
15558 WRITE_LONG_F(adr, res)
15571 READ_LONG_F(adr, src)
15574 flag_V = (res & src) >> 24;
15575 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15576 flag_N = res >> 24;
15577 WRITE_LONG_F(adr, res)
15590 READ_LONG_F(adr, src)
15593 flag_V = (res & src) >> 24;
15594 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15595 flag_N = res >> 24;
15596 WRITE_LONG_F(adr, res)
15610 READ_LONG_F(adr, src)
15613 flag_V = (res & src) >> 24;
15614 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15615 flag_N = res >> 24;
15616 WRITE_LONG_F(adr, res)
15630 READ_LONG_F(adr, src)
15633 flag_V = (res & src) >> 24;
15634 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
15635 flag_N = res >> 24;
15636 WRITE_LONG_F(adr, res)
15647 src = DREGu8((Opcode >> 0) & 7);
15652 flag_NotZ = res & 0xFF;
15653 DREGu8((Opcode >> 0) & 7) = res;
15663 adr = AREG((Opcode >> 0) & 7);
15665 READ_BYTE_F(adr, src)
15670 flag_NotZ = res & 0xFF;
15671 WRITE_BYTE_F(adr, res)
15682 adr = AREG((Opcode >> 0) & 7);
15683 AREG((Opcode >> 0) & 7) += 1;
15685 READ_BYTE_F(adr, src)
15690 flag_NotZ = res & 0xFF;
15691 WRITE_BYTE_F(adr, res)
15702 adr = AREG((Opcode >> 0) & 7) - 1;
15703 AREG((Opcode >> 0) & 7) = adr;
15705 READ_BYTE_F(adr, src)
15710 flag_NotZ = res & 0xFF;
15711 WRITE_BYTE_F(adr, res)
15723 adr += AREG((Opcode >> 0) & 7);
15725 READ_BYTE_F(adr, src)
15730 flag_NotZ = res & 0xFF;
15731 WRITE_BYTE_F(adr, res)
15742 adr = AREG((Opcode >> 0) & 7);
15745 READ_BYTE_F(adr, src)
15750 flag_NotZ = res & 0xFF;
15751 WRITE_BYTE_F(adr, res)
15764 READ_BYTE_F(adr, src)
15769 flag_NotZ = res & 0xFF;
15770 WRITE_BYTE_F(adr, res)
15783 READ_BYTE_F(adr, src)
15788 flag_NotZ = res & 0xFF;
15789 WRITE_BYTE_F(adr, res)
15803 READ_BYTE_F(adr, src)
15808 flag_NotZ = res & 0xFF;
15809 WRITE_BYTE_F(adr, res)
15823 READ_BYTE_F(adr, src)
15828 flag_NotZ = res & 0xFF;
15829 WRITE_BYTE_F(adr, res)
15840 src = DREGu16((Opcode >> 0) & 7);
15844 flag_NotZ = res & 0xFFFF;
15846 DREGu16((Opcode >> 0) & 7) = res;
15856 adr = AREG((Opcode >> 0) & 7);
15858 READ_WORD_F(adr, src)
15862 flag_NotZ = res & 0xFFFF;
15864 WRITE_WORD_F(adr, res)
15875 adr = AREG((Opcode >> 0) & 7);
15876 AREG((Opcode >> 0) & 7) += 2;
15878 READ_WORD_F(adr, src)
15882 flag_NotZ = res & 0xFFFF;
15884 WRITE_WORD_F(adr, res)
15895 adr = AREG((Opcode >> 0) & 7) - 2;
15896 AREG((Opcode >> 0) & 7) = adr;
15898 READ_WORD_F(adr, src)
15902 flag_NotZ = res & 0xFFFF;
15904 WRITE_WORD_F(adr, res)
15916 adr += AREG((Opcode >> 0) & 7);
15918 READ_WORD_F(adr, src)
15922 flag_NotZ = res & 0xFFFF;
15924 WRITE_WORD_F(adr, res)
15935 adr = AREG((Opcode >> 0) & 7);
15938 READ_WORD_F(adr, src)
15942 flag_NotZ = res & 0xFFFF;
15944 WRITE_WORD_F(adr, res)
15957 READ_WORD_F(adr, src)
15961 flag_NotZ = res & 0xFFFF;
15963 WRITE_WORD_F(adr, res)
15976 READ_WORD_F(adr, src)
15980 flag_NotZ = res & 0xFFFF;
15982 WRITE_WORD_F(adr, res)
15996 READ_WORD_F(adr, src)
16000 flag_NotZ = res & 0xFFFF;
16002 WRITE_WORD_F(adr, res)
16016 READ_WORD_F(adr, src)
16020 flag_NotZ = res & 0xFFFF;
16022 WRITE_WORD_F(adr, res)
16033 src = DREGu32((Opcode >> 0) & 7);
16038 flag_N = res >> 24;
16039 DREGu32((Opcode >> 0) & 7) = res;
16049 adr = AREG((Opcode >> 0) & 7);
16051 READ_LONG_F(adr, src)
16056 flag_N = res >> 24;
16057 WRITE_LONG_F(adr, res)
16068 adr = AREG((Opcode >> 0) & 7);
16069 AREG((Opcode >> 0) & 7) += 4;
16071 READ_LONG_F(adr, src)
16076 flag_N = res >> 24;
16077 WRITE_LONG_F(adr, res)
16088 adr = AREG((Opcode >> 0) & 7) - 4;
16089 AREG((Opcode >> 0) & 7) = adr;
16091 READ_LONG_F(adr, src)
16096 flag_N = res >> 24;
16097 WRITE_LONG_F(adr, res)
16109 adr += AREG((Opcode >> 0) & 7);
16111 READ_LONG_F(adr, src)
16116 flag_N = res >> 24;
16117 WRITE_LONG_F(adr, res)
16128 adr = AREG((Opcode >> 0) & 7);
16131 READ_LONG_F(adr, src)
16136 flag_N = res >> 24;
16137 WRITE_LONG_F(adr, res)
16150 READ_LONG_F(adr, src)
16155 flag_N = res >> 24;
16156 WRITE_LONG_F(adr, res)
16169 READ_LONG_F(adr, src)
16174 flag_N = res >> 24;
16175 WRITE_LONG_F(adr, res)
16189 READ_LONG_F(adr, src)
16194 flag_N = res >> 24;
16195 WRITE_LONG_F(adr, res)
16209 READ_LONG_F(adr, src)
16214 flag_N = res >> 24;
16215 WRITE_LONG_F(adr, res)
16227 DREGu16((Opcode >> 0) & 7) = res;
16238 adr = AREG((Opcode >> 0) & 7);
16240 WRITE_WORD_F(adr, res)
16252 adr = AREG((Opcode >> 0) & 7);
16253 AREG((Opcode >> 0) & 7) += 2;
16255 WRITE_WORD_F(adr, res)
16267 adr = AREG((Opcode >> 0) & 7) - 2;
16268 AREG((Opcode >> 0) & 7) = adr;
16270 WRITE_WORD_F(adr, res)
16283 adr += AREG((Opcode >> 0) & 7);
16285 WRITE_WORD_F(adr, res)
16297 adr = AREG((Opcode >> 0) & 7);
16300 WRITE_WORD_F(adr, res)
16314 WRITE_WORD_F(adr, res)
16328 WRITE_WORD_F(adr, res)
16343 WRITE_WORD_F(adr, res)
16358 WRITE_WORD_F(adr, res)
16369 res = DREGu16((Opcode >> 0) & 7);
16380 adr = AREG((Opcode >> 0) & 7);
16382 READ_WORD_F(adr, res)
16394 adr = AREG((Opcode >> 0) & 7);
16395 AREG((Opcode >> 0) & 7) += 2;
16397 READ_WORD_F(adr, res)
16409 adr = AREG((Opcode >> 0) & 7) - 2;
16410 AREG((Opcode >> 0) & 7) = adr;
16412 READ_WORD_F(adr, res)
16425 adr += AREG((Opcode >> 0) & 7);
16427 READ_WORD_F(adr, res)
16439 adr = AREG((Opcode >> 0) & 7);
16442 READ_WORD_F(adr, res)
16456 READ_WORD_F(adr, res)
16470 READ_WORD_F(adr, res)
16482 adr = GET_SWORD + ((u32)(PC) - BasePC);
16485 READ_WORD_F(adr, res)
16497 adr = (u32)(PC) - BasePC;
16500 READ_WORD_F(adr, res)
16526 READ_WORD_F(adr, res)
16541 READ_WORD_F(adr, res)
16555 res = DREGu16((Opcode >> 0) & 7);
16563 CHECK_INT_TO_JUMP(12)
16567 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16581 adr = AREG((Opcode >> 0) & 7);
16583 READ_WORD_F(adr, res)
16592 CHECK_INT_TO_JUMP(16)
16596 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16610 adr = AREG((Opcode >> 0) & 7);
16611 AREG((Opcode >> 0) & 7) += 2;
16613 READ_WORD_F(adr, res)
16622 CHECK_INT_TO_JUMP(16)
16626 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16640 adr = AREG((Opcode >> 0) & 7) - 2;
16641 AREG((Opcode >> 0) & 7) = adr;
16643 READ_WORD_F(adr, res)
16652 CHECK_INT_TO_JUMP(18)
16656 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16671 adr += AREG((Opcode >> 0) & 7);
16673 READ_WORD_F(adr, res)
16682 CHECK_INT_TO_JUMP(20)
16686 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16700 adr = AREG((Opcode >> 0) & 7);
16703 READ_WORD_F(adr, res)
16712 CHECK_INT_TO_JUMP(22)
16716 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16733 READ_WORD_F(adr, res)
16742 CHECK_INT_TO_JUMP(20)
16746 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16762 READ_WORD_F(adr, res)
16771 CHECK_INT_TO_JUMP(24)
16775 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16789 adr = GET_SWORD + ((u32)(PC) - BasePC);
16792 READ_WORD_F(adr, res)
16801 CHECK_INT_TO_JUMP(20)
16805 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16819 adr = (u32)(PC) - BasePC;
16822 READ_WORD_F(adr, res)
16831 CHECK_INT_TO_JUMP(22)
16835 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16857 CHECK_INT_TO_JUMP(16)
16861 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16878 READ_WORD_F(adr, res)
16887 CHECK_INT_TO_JUMP(16)
16891 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16908 READ_WORD_F(adr, res)
16917 CHECK_INT_TO_JUMP(18)
16921 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
16933 res = DREGu8((Opcode >> 0) & 7);
16934 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
16938 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
16940 DREGu8((Opcode >> 0) & 7) = res;
16942 flag_X = flag_C = M68K_SR_C;
16944 else flag_X = flag_C = 0;
16955 adr = AREG((Opcode >> 0) & 7);
16957 READ_BYTE_F(adr, res)
16958 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
16962 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
16964 WRITE_BYTE_F(adr, res)
16966 flag_X = flag_C = M68K_SR_C;
16968 else flag_X = flag_C = 0;
16980 adr = AREG((Opcode >> 0) & 7);
16981 AREG((Opcode >> 0) & 7) += 1;
16983 READ_BYTE_F(adr, res)
16984 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
16988 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
16990 WRITE_BYTE_F(adr, res)
16992 flag_X = flag_C = M68K_SR_C;
16994 else flag_X = flag_C = 0;
17006 adr = AREG((Opcode >> 0) & 7) - 1;
17007 AREG((Opcode >> 0) & 7) = adr;
17009 READ_BYTE_F(adr, res)
17010 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17014 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17016 WRITE_BYTE_F(adr, res)
17018 flag_X = flag_C = M68K_SR_C;
17020 else flag_X = flag_C = 0;
17033 adr += AREG((Opcode >> 0) & 7);
17035 READ_BYTE_F(adr, res)
17036 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17040 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17042 WRITE_BYTE_F(adr, res)
17044 flag_X = flag_C = M68K_SR_C;
17046 else flag_X = flag_C = 0;
17058 adr = AREG((Opcode >> 0) & 7);
17061 READ_BYTE_F(adr, res)
17062 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17066 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17068 WRITE_BYTE_F(adr, res)
17070 flag_X = flag_C = M68K_SR_C;
17072 else flag_X = flag_C = 0;
17086 READ_BYTE_F(adr, res)
17087 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17091 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17093 WRITE_BYTE_F(adr, res)
17095 flag_X = flag_C = M68K_SR_C;
17097 else flag_X = flag_C = 0;
17111 READ_BYTE_F(adr, res)
17112 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17116 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17118 WRITE_BYTE_F(adr, res)
17120 flag_X = flag_C = M68K_SR_C;
17122 else flag_X = flag_C = 0;
17137 READ_BYTE_F(adr, res)
17138 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17142 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17144 WRITE_BYTE_F(adr, res)
17146 flag_X = flag_C = M68K_SR_C;
17148 else flag_X = flag_C = 0;
17163 READ_BYTE_F(adr, res)
17164 res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1);
17168 if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10;
17170 WRITE_BYTE_F(adr, res)
17172 flag_X = flag_C = M68K_SR_C;
17174 else flag_X = flag_C = 0;
17186 adr = AREG((Opcode >> 0) & 7);
17200 adr += AREG((Opcode >> 0) & 7);
17213 adr = AREG((Opcode >> 0) & 7);
17253 adr = GET_SWORD + ((u32)(PC) - BasePC);
17267 adr = (u32)(PC) - BasePC;
17281 res = DREGu32((Opcode >> 0) & 7);
17282 res = (res >> 16) | (res << 16);
17286 flag_N = res >> 24;
17287 DREGu32((Opcode >> 0) & 7) = res;
17300 adr = AREG((Opcode >> 0) & 7);
17301 psrc = &DREGu32(0);
17308 WRITE_WORD_F(adr, *psrc)
17312 } while (res >>= 1);
17314 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17315 #ifdef USE_CYCLONE_TIMING
17331 adr = AREG((Opcode >> 0) & 7);
17332 psrc = &AREGu32(7);
17340 WRITE_WORD_F(adr, *psrc)
17343 } while (res >>= 1);
17344 AREG((Opcode >> 0) & 7) = adr;
17346 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17360 adr += AREG((Opcode >> 0) & 7);
17361 psrc = &DREGu32(0);
17368 WRITE_WORD_F(adr, *psrc)
17372 } while (res >>= 1);
17374 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17375 #ifdef USE_CYCLONE_TIMING
17391 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
17424 psrc = &DREGu32(0);
17431 WRITE_WORD_F(adr, *psrc)
17435 } while (res >>= 1);
17437 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17438 #ifdef USE_CYCLONE_TIMING
17455 psrc = &DREGu32(0);
17462 WRITE_WORD_F(adr, *psrc)
17466 } while (res >>= 1);
17468 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17469 #ifdef USE_CYCLONE_TIMING
17486 psrc = &AREGu32(7);
17494 WRITE_WORD_F(adr, *psrc)
17497 } while (res >>= 1);
17500 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17513 adr = AREG((Opcode >> 0) & 7);
17514 psrc = &DREGu32(0);
17521 WRITE_LONG_F(adr, *psrc)
17525 } while (res >>= 1);
17527 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17528 #ifdef USE_CYCLONE_TIMING
17544 adr = AREG((Opcode >> 0) & 7);
17545 psrc = &AREGu32(7);
17553 WRITE_LONG_DEC_F(adr, *psrc)
17556 } while (res >>= 1);
17557 AREG((Opcode >> 0) & 7) = adr;
17559 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17573 adr += AREG((Opcode >> 0) & 7);
17574 psrc = &DREGu32(0);
17581 WRITE_LONG_F(adr, *psrc)
17585 } while (res >>= 1);
17587 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17588 #ifdef USE_CYCLONE_TIMING
17604 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
17637 psrc = &DREGu32(0);
17644 WRITE_LONG_F(adr, *psrc)
17648 } while (res >>= 1);
17650 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17651 #ifdef USE_CYCLONE_TIMING
17668 psrc = &DREGu32(0);
17675 WRITE_LONG_F(adr, *psrc)
17679 } while (res >>= 1);
17681 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
17682 #ifdef USE_CYCLONE_TIMING
17699 psrc = &AREGu32(7);
17707 WRITE_LONG_DEC_F(adr, *psrc)
17710 } while (res >>= 1);
17713 m68kcontext.io_cycle_counter -= (dst - adr) * 2;
17723 res = (s32)DREGs8((Opcode >> 0) & 7);
17728 DREGu16((Opcode >> 0) & 7) = res;
17738 res = (s32)DREGs16((Opcode >> 0) & 7);
17743 DREGu32((Opcode >> 0) & 7) = res;
17753 res = DREGu8((Opcode >> 0) & 7);
17767 adr = AREG((Opcode >> 0) & 7);
17769 READ_BYTE_F(adr, res)
17784 adr = AREG((Opcode >> 0) & 7);
17785 AREG((Opcode >> 0) & 7) += 1;
17787 READ_BYTE_F(adr, res)
17802 adr = AREG((Opcode >> 0) & 7) - 1;
17803 AREG((Opcode >> 0) & 7) = adr;
17805 READ_BYTE_F(adr, res)
17821 adr += AREG((Opcode >> 0) & 7);
17823 READ_BYTE_F(adr, res)
17838 adr = AREG((Opcode >> 0) & 7);
17841 READ_BYTE_F(adr, res)
17858 READ_BYTE_F(adr, res)
17875 READ_BYTE_F(adr, res)
17893 READ_BYTE_F(adr, res)
17911 READ_BYTE_F(adr, res)
17926 res = DREGu16((Opcode >> 0) & 7);
17940 adr = AREG((Opcode >> 0) & 7);
17942 READ_WORD_F(adr, res)
17957 adr = AREG((Opcode >> 0) & 7);
17958 AREG((Opcode >> 0) & 7) += 2;
17960 READ_WORD_F(adr, res)
17975 adr = AREG((Opcode >> 0) & 7) - 2;
17976 AREG((Opcode >> 0) & 7) = adr;
17978 READ_WORD_F(adr, res)
17994 adr += AREG((Opcode >> 0) & 7);
17996 READ_WORD_F(adr, res)
18011 adr = AREG((Opcode >> 0) & 7);
18014 READ_WORD_F(adr, res)
18031 READ_WORD_F(adr, res)
18048 READ_WORD_F(adr, res)
18066 READ_WORD_F(adr, res)
18084 READ_WORD_F(adr, res)
18099 res = DREGu32((Opcode >> 0) & 7);
18103 flag_N = res >> 24;
18113 adr = AREG((Opcode >> 0) & 7);
18115 READ_LONG_F(adr, res)
18119 flag_N = res >> 24;
18130 adr = AREG((Opcode >> 0) & 7);
18131 AREG((Opcode >> 0) & 7) += 4;
18133 READ_LONG_F(adr, res)
18137 flag_N = res >> 24;
18148 adr = AREG((Opcode >> 0) & 7) - 4;
18149 AREG((Opcode >> 0) & 7) = adr;
18151 READ_LONG_F(adr, res)
18155 flag_N = res >> 24;
18167 adr += AREG((Opcode >> 0) & 7);
18169 READ_LONG_F(adr, res)
18173 flag_N = res >> 24;
18184 adr = AREG((Opcode >> 0) & 7);
18187 READ_LONG_F(adr, res)
18191 flag_N = res >> 24;
18204 READ_LONG_F(adr, res)
18208 flag_N = res >> 24;
18221 READ_LONG_F(adr, res)
18225 flag_N = res >> 24;
18239 READ_LONG_F(adr, res)
18243 flag_N = res >> 24;
18257 READ_LONG_F(adr, res)
18261 flag_N = res >> 24;
18272 res = DREGu8((Opcode >> 0) & 7);
18278 DREGu8((Opcode >> 0) & 7) = res;
18288 adr = AREG((Opcode >> 0) & 7);
18290 READ_BYTE_F(adr, res)
18295 #ifdef PICODRIVE_HACK
18296 if (g_m68kcontext == &PicoCpuFS68k) {
18298 WRITE_BYTE_F(adr, res);
18303 #ifdef USE_CYCLONE_TIMING
18316 adr = AREG((Opcode >> 0) & 7);
18317 AREG((Opcode >> 0) & 7) += 1;
18319 READ_BYTE_F(adr, res)
18325 #ifdef PICODRIVE_HACK
18326 if (g_m68kcontext == &PicoCpuFS68k) {
18328 WRITE_BYTE_F(adr, res);
18333 #ifdef USE_CYCLONE_TIMING
18346 adr = AREG((Opcode >> 0) & 7) - 1;
18347 AREG((Opcode >> 0) & 7) = adr;
18349 READ_BYTE_F(adr, res)
18355 #ifdef PICODRIVE_HACK
18356 if (g_m68kcontext == &PicoCpuFS68k) {
18358 WRITE_BYTE_F(adr, res);
18363 #ifdef USE_CYCLONE_TIMING
18377 adr += AREG((Opcode >> 0) & 7);
18379 READ_BYTE_F(adr, res)
18385 #ifdef PICODRIVE_HACK
18386 if (g_m68kcontext == &PicoCpuFS68k) {
18388 WRITE_BYTE_F(adr, res);
18393 #ifdef USE_CYCLONE_TIMING
18406 adr = AREG((Opcode >> 0) & 7);
18409 READ_BYTE_F(adr, res)
18415 #ifdef PICODRIVE_HACK
18416 if (g_m68kcontext == &PicoCpuFS68k) {
18418 WRITE_BYTE_F(adr, res);
18423 #ifdef USE_CYCLONE_TIMING
18438 READ_BYTE_F(adr, res)
18444 #ifdef PICODRIVE_HACK
18445 if (g_m68kcontext == &PicoCpuFS68k) {
18447 WRITE_BYTE_F(adr, res);
18452 #ifdef USE_CYCLONE_TIMING
18467 READ_BYTE_F(adr, res)
18473 #ifdef PICODRIVE_HACK
18474 if (g_m68kcontext == &PicoCpuFS68k) {
18476 WRITE_BYTE_F(adr, res);
18481 #ifdef USE_CYCLONE_TIMING
18497 READ_BYTE_F(adr, res)
18503 #ifdef PICODRIVE_HACK
18504 if (g_m68kcontext == &PicoCpuFS68k) {
18506 WRITE_BYTE_F(adr, res);
18511 #ifdef USE_CYCLONE_TIMING
18527 READ_BYTE_F(adr, res)
18533 #ifdef PICODRIVE_HACK
18534 if (g_m68kcontext == &PicoCpuFS68k) {
18536 WRITE_BYTE_F(adr, res);
18541 #ifdef USE_CYCLONE_TIMING
18551 SET_PC(execute_exception(M68K_ILLEGAL_INSTRUCTION_EX, GET_PC-2, GET_SR));
18555 // ILLEGAL A000-AFFF
18558 SET_PC(execute_exception(M68K_1010_EX, GET_PC-2, GET_SR));
18562 // ILLEGAL F000-FFFF
18565 SET_PC(execute_exception(M68K_1111_EX, GET_PC-2, GET_SR));
18566 RET(0) // 4 already taken by exc. handler
18578 adr = AREG((Opcode >> 0) & 7);
18579 psrc = &DREGs32(0);
18586 READSX_WORD_F(adr, *psrc)
18590 } while (res >>= 1);
18592 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18593 #ifdef USE_CYCLONE_TIMING
18609 adr = AREG((Opcode >> 0) & 7);
18610 psrc = &DREGs32(0);
18617 READSX_WORD_F(adr, *psrc)
18621 } while (res >>= 1);
18622 AREG((Opcode >> 0) & 7) = adr;
18624 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18638 adr += AREG((Opcode >> 0) & 7);
18639 psrc = &DREGs32(0);
18646 READSX_WORD_F(adr, *psrc)
18650 } while (res >>= 1);
18652 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18653 #ifdef USE_CYCLONE_TIMING
18669 adr = AREG((Opcode >> 0) & 7);
18671 psrc = &DREGs32(0);
18678 READSX_WORD_F(adr, *psrc)
18682 } while (res >>= 1);
18684 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18685 #ifdef USE_CYCLONE_TIMING
18702 psrc = &DREGs32(0);
18709 READSX_WORD_F(adr, *psrc)
18713 } while (res >>= 1);
18715 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18716 #ifdef USE_CYCLONE_TIMING
18733 psrc = &DREGs32(0);
18740 READSX_WORD_F(adr, *psrc)
18744 } while (res >>= 1);
18746 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18747 #ifdef USE_CYCLONE_TIMING
18763 adr = GET_SWORD + ((u32)(PC) - BasePC);
18765 psrc = &DREGs32(0);
18772 READSX_WORD_F(adr, *psrc)
18776 } while (res >>= 1);
18778 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18779 #ifdef USE_CYCLONE_TIMING
18795 adr = (u32)(PC) - BasePC;
18797 psrc = &DREGs32(0);
18804 READSX_WORD_F(adr, *psrc)
18808 } while (res >>= 1);
18810 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18811 #ifdef USE_CYCLONE_TIMING
18828 psrc = &DREGs32(0);
18835 READSX_WORD_F(adr, *psrc)
18839 } while (res >>= 1);
18842 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18855 adr = AREG((Opcode >> 0) & 7);
18856 psrc = &DREGu32(0);
18863 READ_LONG_F(adr, *psrc)
18867 } while (res >>= 1);
18869 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18870 #ifdef USE_CYCLONE_TIMING
18886 adr = AREG((Opcode >> 0) & 7);
18887 psrc = &DREGu32(0);
18894 READ_LONG_F(adr, *psrc)
18898 } while (res >>= 1);
18899 AREG((Opcode >> 0) & 7) = adr;
18901 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18915 adr += AREG((Opcode >> 0) & 7);
18916 psrc = &DREGu32(0);
18923 READ_LONG_F(adr, *psrc)
18927 } while (res >>= 1);
18929 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18930 #ifdef USE_CYCLONE_TIMING
18946 adr = AREG((Opcode >> 0) & 7);
18948 psrc = &DREGu32(0);
18955 READ_LONG_F(adr, *psrc)
18959 } while (res >>= 1);
18961 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18962 #ifdef USE_CYCLONE_TIMING
18979 psrc = &DREGu32(0);
18986 READ_LONG_F(adr, *psrc)
18990 } while (res >>= 1);
18992 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18993 #ifdef USE_CYCLONE_TIMING
19010 psrc = &DREGu32(0);
19017 READ_LONG_F(adr, *psrc)
19021 } while (res >>= 1);
19023 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
19024 #ifdef USE_CYCLONE_TIMING
19040 adr = GET_SWORD + ((u32)(PC) - BasePC);
19042 psrc = &DREGu32(0);
19049 READ_LONG_F(adr, *psrc)
19053 } while (res >>= 1);
19055 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
19056 #ifdef USE_CYCLONE_TIMING
19072 adr = (u32)(PC) - BasePC;
19074 psrc = &DREGu32(0);
19081 READ_LONG_F(adr, *psrc)
19085 } while (res >>= 1);
19087 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
19088 #ifdef USE_CYCLONE_TIMING
19105 psrc = &DREGu32(0);
19112 READ_LONG_F(adr, *psrc)
19116 } while (res >>= 1);
19119 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
19126 SET_PC(execute_exception(M68K_TRAP_BASE_EX + (Opcode & 0xF), GET_PC, GET_SR));
19136 res = AREGu32((Opcode >> 0) & 7);
19140 AREG((Opcode >> 0) & 7) = res;
19155 WRITE_LONG_DEC_F(AREG(7), AREG(7))
19168 src = AREGu32((Opcode >> 0) & 7);
19171 READ_LONG_F(src, res)
19172 AREG((Opcode >> 0) & 7) = res;
19184 READ_LONG_F(AREG(7), AREG(7))
19197 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19200 res = AREGu32((Opcode >> 0) & 7);
19213 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19217 AREG((Opcode >> 0) & 7) = res;
19229 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19233 if (m68kcontext.reset_handler) m68kcontext.reset_handler();
19234 // CPU->Reset_CallBack();
19253 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19257 res &= M68K_SR_MASK;
19265 m68kcontext.execinfo |= FM68K_HALTED;
19277 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19292 m68kcontext.execinfo &= ~(FM68K_EMULATE_GROUP_0|FM68K_EMULATE_TRACE|FM68K_DO_TRACE);
19293 CHECK_INT_TO_JUMP(20)
19306 CHECK_BRANCH_EXCEPTION(res)
19315 SET_PC(execute_exception(M68K_TRAPV_EX, GET_PC, GET_SR));
19330 CHECK_BRANCH_EXCEPTION(res)
19341 adr = AREG((Opcode >> 0) & 7);
19345 oldPC = (u32)(PC) - BasePC;
19350 CHECK_BRANCH_EXCEPTION(adr)
19362 adr += AREG((Opcode >> 0) & 7);
19366 oldPC = (u32)(PC) - BasePC;
19371 CHECK_BRANCH_EXCEPTION(adr)
19382 adr = AREG((Opcode >> 0) & 7);
19387 oldPC = (u32)(PC) - BasePC;
19392 CHECK_BRANCH_EXCEPTION(adr)
19407 oldPC = (u32)(PC) - BasePC;
19412 CHECK_BRANCH_EXCEPTION(adr)
19427 oldPC = (u32)(PC) - BasePC;
19432 CHECK_BRANCH_EXCEPTION(adr)
19443 adr = GET_SWORD + ((u32)(PC) - BasePC);
19448 oldPC = (u32)(PC) - BasePC;
19453 CHECK_BRANCH_EXCEPTION(adr)
19464 adr = (u32)(PC) - BasePC;
19469 oldPC = (u32)(PC) - BasePC;
19474 CHECK_BRANCH_EXCEPTION(adr)
19485 adr = AREG((Opcode >> 0) & 7);
19487 CHECK_BRANCH_EXCEPTION(adr)
19498 adr += AREG((Opcode >> 0) & 7);
19500 CHECK_BRANCH_EXCEPTION(adr)
19510 adr = AREG((Opcode >> 0) & 7);
19513 CHECK_BRANCH_EXCEPTION(adr)
19525 CHECK_BRANCH_EXCEPTION(adr)
19537 CHECK_BRANCH_EXCEPTION(adr)
19547 adr = GET_SWORD + ((u32)(PC) - BasePC);
19550 CHECK_BRANCH_EXCEPTION(adr)
19560 adr = (u32)(PC) - BasePC;
19563 CHECK_BRANCH_EXCEPTION(adr)
19573 src = DREGu16((Opcode >> 0) & 7);
19574 res = DREGu16((Opcode >> 9) & 7);
19575 if (((s32)res < 0) || (res > src))
19578 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19589 adr = AREG((Opcode >> 0) & 7);
19591 READ_WORD_F(adr, src)
19592 res = DREGu16((Opcode >> 9) & 7);
19593 if (((s32)res < 0) || (res > src))
19596 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19608 adr = AREG((Opcode >> 0) & 7);
19609 AREG((Opcode >> 0) & 7) += 2;
19611 READ_WORD_F(adr, src)
19612 res = DREGu16((Opcode >> 9) & 7);
19613 if (((s32)res < 0) || (res > src))
19616 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19628 adr = AREG((Opcode >> 0) & 7) - 2;
19629 AREG((Opcode >> 0) & 7) = adr;
19631 READ_WORD_F(adr, src)
19632 res = DREGu16((Opcode >> 9) & 7);
19633 if (((s32)res < 0) || (res > src))
19636 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19649 adr += AREG((Opcode >> 0) & 7);
19651 READ_WORD_F(adr, src)
19652 res = DREGu16((Opcode >> 9) & 7);
19653 if (((s32)res < 0) || (res > src))
19656 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19668 adr = AREG((Opcode >> 0) & 7);
19671 READ_WORD_F(adr, src)
19672 res = DREGu16((Opcode >> 9) & 7);
19673 if (((s32)res < 0) || (res > src))
19676 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19690 READ_WORD_F(adr, src)
19691 res = DREGu16((Opcode >> 9) & 7);
19692 if (((s32)res < 0) || (res > src))
19695 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19709 READ_WORD_F(adr, src)
19710 res = DREGu16((Opcode >> 9) & 7);
19711 if (((s32)res < 0) || (res > src))
19714 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19726 adr = GET_SWORD + ((u32)(PC) - BasePC);
19729 READ_WORD_F(adr, src)
19730 res = DREGu16((Opcode >> 9) & 7);
19731 if (((s32)res < 0) || (res > src))
19734 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19746 adr = (u32)(PC) - BasePC;
19749 READ_WORD_F(adr, src)
19750 res = DREGu16((Opcode >> 9) & 7);
19751 if (((s32)res < 0) || (res > src))
19754 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19767 res = DREGu16((Opcode >> 9) & 7);
19768 if (((s32)res < 0) || (res > src))
19771 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19786 READ_WORD_F(adr, src)
19787 res = DREGu16((Opcode >> 9) & 7);
19788 if (((s32)res < 0) || (res > src))
19791 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19806 READ_WORD_F(adr, src)
19807 res = DREGu16((Opcode >> 9) & 7);
19808 if (((s32)res < 0) || (res > src))
19811 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19823 adr = AREG((Opcode >> 0) & 7);
19825 AREG((Opcode >> 9) & 7) = res;
19836 adr += AREG((Opcode >> 0) & 7);
19838 AREG((Opcode >> 9) & 7) = res;
19848 adr = AREG((Opcode >> 0) & 7);
19851 AREG((Opcode >> 9) & 7) = res;
19863 AREG((Opcode >> 9) & 7) = res;
19875 AREG((Opcode >> 9) & 7) = res;
19885 adr = GET_SWORD + ((u32)(PC) - BasePC);
19888 AREG((Opcode >> 9) & 7) = res;
19898 adr = (u32)(PC) - BasePC;
19901 AREG((Opcode >> 9) & 7) = res;
19912 DREGu8((Opcode >> 0) & 7) = res;
19923 DREGu8((Opcode >> 0) & 7) = res;
19933 if (flag_NotZ && (!(flag_C & 0x100)))
19936 DREGu8((Opcode >> 0) & 7) = res;
19940 DREGu8((Opcode >> 0) & 7) = res;
19950 if ((!flag_NotZ) || (flag_C & 0x100))
19953 DREGu8((Opcode >> 0) & 7) = res;
19957 DREGu8((Opcode >> 0) & 7) = res;
19967 if (!(flag_C & 0x100))
19970 DREGu8((Opcode >> 0) & 7) = res;
19974 DREGu8((Opcode >> 0) & 7) = res;
19984 if (flag_C & 0x100)
19987 DREGu8((Opcode >> 0) & 7) = res;
19991 DREGu8((Opcode >> 0) & 7) = res;
20004 DREGu8((Opcode >> 0) & 7) = res;
20008 DREGu8((Opcode >> 0) & 7) = res;
20021 DREGu8((Opcode >> 0) & 7) = res;
20025 DREGu8((Opcode >> 0) & 7) = res;
20035 if (!(flag_V & 0x80))
20038 DREGu8((Opcode >> 0) & 7) = res;
20042 DREGu8((Opcode >> 0) & 7) = res;
20055 DREGu8((Opcode >> 0) & 7) = res;
20059 DREGu8((Opcode >> 0) & 7) = res;
20069 if (!(flag_N & 0x80))
20072 DREGu8((Opcode >> 0) & 7) = res;
20076 DREGu8((Opcode >> 0) & 7) = res;
20089 DREGu8((Opcode >> 0) & 7) = res;
20093 DREGu8((Opcode >> 0) & 7) = res;
20103 if (!((flag_N ^ flag_V) & 0x80))
20106 DREGu8((Opcode >> 0) & 7) = res;
20110 DREGu8((Opcode >> 0) & 7) = res;
20120 if ((flag_N ^ flag_V) & 0x80)
20123 DREGu8((Opcode >> 0) & 7) = res;
20127 DREGu8((Opcode >> 0) & 7) = res;
20137 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20140 DREGu8((Opcode >> 0) & 7) = res;
20144 DREGu8((Opcode >> 0) & 7) = res;
20154 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20157 DREGu8((Opcode >> 0) & 7) = res;
20161 DREGu8((Opcode >> 0) & 7) = res;
20171 adr = AREG((Opcode >> 0) & 7);
20174 WRITE_BYTE_F(adr, res)
20185 adr = AREG((Opcode >> 0) & 7);
20188 WRITE_BYTE_F(adr, res)
20199 adr = AREG((Opcode >> 0) & 7);
20200 if (flag_NotZ && (!(flag_C & 0x100)))
20204 WRITE_BYTE_F(adr, res)
20210 WRITE_BYTE_F(adr, res)
20221 adr = AREG((Opcode >> 0) & 7);
20222 if ((!flag_NotZ) || (flag_C & 0x100))
20226 WRITE_BYTE_F(adr, res)
20232 WRITE_BYTE_F(adr, res)
20243 adr = AREG((Opcode >> 0) & 7);
20244 if (!(flag_C & 0x100))
20248 WRITE_BYTE_F(adr, res)
20254 WRITE_BYTE_F(adr, res)
20265 adr = AREG((Opcode >> 0) & 7);
20266 if (flag_C & 0x100)
20270 WRITE_BYTE_F(adr, res)
20276 WRITE_BYTE_F(adr, res)
20287 adr = AREG((Opcode >> 0) & 7);
20292 WRITE_BYTE_F(adr, res)
20298 WRITE_BYTE_F(adr, res)
20309 adr = AREG((Opcode >> 0) & 7);
20314 WRITE_BYTE_F(adr, res)
20320 WRITE_BYTE_F(adr, res)
20331 adr = AREG((Opcode >> 0) & 7);
20332 if (!(flag_V & 0x80))
20336 WRITE_BYTE_F(adr, res)
20342 WRITE_BYTE_F(adr, res)
20353 adr = AREG((Opcode >> 0) & 7);
20358 WRITE_BYTE_F(adr, res)
20364 WRITE_BYTE_F(adr, res)
20375 adr = AREG((Opcode >> 0) & 7);
20376 if (!(flag_N & 0x80))
20380 WRITE_BYTE_F(adr, res)
20386 WRITE_BYTE_F(adr, res)
20397 adr = AREG((Opcode >> 0) & 7);
20402 WRITE_BYTE_F(adr, res)
20408 WRITE_BYTE_F(adr, res)
20419 adr = AREG((Opcode >> 0) & 7);
20420 if (!((flag_N ^ flag_V) & 0x80))
20424 WRITE_BYTE_F(adr, res)
20430 WRITE_BYTE_F(adr, res)
20441 adr = AREG((Opcode >> 0) & 7);
20442 if ((flag_N ^ flag_V) & 0x80)
20446 WRITE_BYTE_F(adr, res)
20452 WRITE_BYTE_F(adr, res)
20463 adr = AREG((Opcode >> 0) & 7);
20464 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20468 WRITE_BYTE_F(adr, res)
20474 WRITE_BYTE_F(adr, res)
20485 adr = AREG((Opcode >> 0) & 7);
20486 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20490 WRITE_BYTE_F(adr, res)
20496 WRITE_BYTE_F(adr, res)
20507 adr = AREG((Opcode >> 0) & 7);
20508 AREG((Opcode >> 0) & 7) += 1;
20511 WRITE_BYTE_F(adr, res)
20522 adr = AREG((Opcode >> 0) & 7);
20523 AREG((Opcode >> 0) & 7) += 1;
20526 WRITE_BYTE_F(adr, res)
20537 adr = AREG((Opcode >> 0) & 7);
20538 AREG((Opcode >> 0) & 7) += 1;
20539 if (flag_NotZ && (!(flag_C & 0x100)))
20543 WRITE_BYTE_F(adr, res)
20549 WRITE_BYTE_F(adr, res)
20560 adr = AREG((Opcode >> 0) & 7);
20561 AREG((Opcode >> 0) & 7) += 1;
20562 if ((!flag_NotZ) || (flag_C & 0x100))
20566 WRITE_BYTE_F(adr, res)
20572 WRITE_BYTE_F(adr, res)
20583 adr = AREG((Opcode >> 0) & 7);
20584 AREG((Opcode >> 0) & 7) += 1;
20585 if (!(flag_C & 0x100))
20589 WRITE_BYTE_F(adr, res)
20595 WRITE_BYTE_F(adr, res)
20606 adr = AREG((Opcode >> 0) & 7);
20607 AREG((Opcode >> 0) & 7) += 1;
20608 if (flag_C & 0x100)
20612 WRITE_BYTE_F(adr, res)
20618 WRITE_BYTE_F(adr, res)
20629 adr = AREG((Opcode >> 0) & 7);
20630 AREG((Opcode >> 0) & 7) += 1;
20635 WRITE_BYTE_F(adr, res)
20641 WRITE_BYTE_F(adr, res)
20652 adr = AREG((Opcode >> 0) & 7);
20653 AREG((Opcode >> 0) & 7) += 1;
20658 WRITE_BYTE_F(adr, res)
20664 WRITE_BYTE_F(adr, res)
20675 adr = AREG((Opcode >> 0) & 7);
20676 AREG((Opcode >> 0) & 7) += 1;
20677 if (!(flag_V & 0x80))
20681 WRITE_BYTE_F(adr, res)
20687 WRITE_BYTE_F(adr, res)
20698 adr = AREG((Opcode >> 0) & 7);
20699 AREG((Opcode >> 0) & 7) += 1;
20704 WRITE_BYTE_F(adr, res)
20710 WRITE_BYTE_F(adr, res)
20721 adr = AREG((Opcode >> 0) & 7);
20722 AREG((Opcode >> 0) & 7) += 1;
20723 if (!(flag_N & 0x80))
20727 WRITE_BYTE_F(adr, res)
20733 WRITE_BYTE_F(adr, res)
20744 adr = AREG((Opcode >> 0) & 7);
20745 AREG((Opcode >> 0) & 7) += 1;
20750 WRITE_BYTE_F(adr, res)
20756 WRITE_BYTE_F(adr, res)
20767 adr = AREG((Opcode >> 0) & 7);
20768 AREG((Opcode >> 0) & 7) += 1;
20769 if (!((flag_N ^ flag_V) & 0x80))
20773 WRITE_BYTE_F(adr, res)
20779 WRITE_BYTE_F(adr, res)
20790 adr = AREG((Opcode >> 0) & 7);
20791 AREG((Opcode >> 0) & 7) += 1;
20792 if ((flag_N ^ flag_V) & 0x80)
20796 WRITE_BYTE_F(adr, res)
20802 WRITE_BYTE_F(adr, res)
20813 adr = AREG((Opcode >> 0) & 7);
20814 AREG((Opcode >> 0) & 7) += 1;
20815 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20819 WRITE_BYTE_F(adr, res)
20825 WRITE_BYTE_F(adr, res)
20836 adr = AREG((Opcode >> 0) & 7);
20837 AREG((Opcode >> 0) & 7) += 1;
20838 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20842 WRITE_BYTE_F(adr, res)
20848 WRITE_BYTE_F(adr, res)
20859 adr = AREG((Opcode >> 0) & 7) - 1;
20860 AREG((Opcode >> 0) & 7) = adr;
20863 WRITE_BYTE_F(adr, res)
20874 adr = AREG((Opcode >> 0) & 7) - 1;
20875 AREG((Opcode >> 0) & 7) = adr;
20878 WRITE_BYTE_F(adr, res)
20889 adr = AREG((Opcode >> 0) & 7) - 1;
20890 AREG((Opcode >> 0) & 7) = adr;
20891 if (flag_NotZ && (!(flag_C & 0x100)))
20895 WRITE_BYTE_F(adr, res)
20901 WRITE_BYTE_F(adr, res)
20912 adr = AREG((Opcode >> 0) & 7) - 1;
20913 AREG((Opcode >> 0) & 7) = adr;
20914 if ((!flag_NotZ) || (flag_C & 0x100))
20918 WRITE_BYTE_F(adr, res)
20924 WRITE_BYTE_F(adr, res)
20935 adr = AREG((Opcode >> 0) & 7) - 1;
20936 AREG((Opcode >> 0) & 7) = adr;
20937 if (!(flag_C & 0x100))
20941 WRITE_BYTE_F(adr, res)
20947 WRITE_BYTE_F(adr, res)
20958 adr = AREG((Opcode >> 0) & 7) - 1;
20959 AREG((Opcode >> 0) & 7) = adr;
20960 if (flag_C & 0x100)
20964 WRITE_BYTE_F(adr, res)
20970 WRITE_BYTE_F(adr, res)
20981 adr = AREG((Opcode >> 0) & 7) - 1;
20982 AREG((Opcode >> 0) & 7) = adr;
20987 WRITE_BYTE_F(adr, res)
20993 WRITE_BYTE_F(adr, res)
21004 adr = AREG((Opcode >> 0) & 7) - 1;
21005 AREG((Opcode >> 0) & 7) = adr;
21010 WRITE_BYTE_F(adr, res)
21016 WRITE_BYTE_F(adr, res)
21027 adr = AREG((Opcode >> 0) & 7) - 1;
21028 AREG((Opcode >> 0) & 7) = adr;
21029 if (!(flag_V & 0x80))
21033 WRITE_BYTE_F(adr, res)
21039 WRITE_BYTE_F(adr, res)
21050 adr = AREG((Opcode >> 0) & 7) - 1;
21051 AREG((Opcode >> 0) & 7) = adr;
21056 WRITE_BYTE_F(adr, res)
21062 WRITE_BYTE_F(adr, res)
21073 adr = AREG((Opcode >> 0) & 7) - 1;
21074 AREG((Opcode >> 0) & 7) = adr;
21075 if (!(flag_N & 0x80))
21079 WRITE_BYTE_F(adr, res)
21085 WRITE_BYTE_F(adr, res)
21096 adr = AREG((Opcode >> 0) & 7) - 1;
21097 AREG((Opcode >> 0) & 7) = adr;
21102 WRITE_BYTE_F(adr, res)
21108 WRITE_BYTE_F(adr, res)
21119 adr = AREG((Opcode >> 0) & 7) - 1;
21120 AREG((Opcode >> 0) & 7) = adr;
21121 if (!((flag_N ^ flag_V) & 0x80))
21125 WRITE_BYTE_F(adr, res)
21131 WRITE_BYTE_F(adr, res)
21142 adr = AREG((Opcode >> 0) & 7) - 1;
21143 AREG((Opcode >> 0) & 7) = adr;
21144 if ((flag_N ^ flag_V) & 0x80)
21148 WRITE_BYTE_F(adr, res)
21154 WRITE_BYTE_F(adr, res)
21165 adr = AREG((Opcode >> 0) & 7) - 1;
21166 AREG((Opcode >> 0) & 7) = adr;
21167 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21171 WRITE_BYTE_F(adr, res)
21177 WRITE_BYTE_F(adr, res)
21188 adr = AREG((Opcode >> 0) & 7) - 1;
21189 AREG((Opcode >> 0) & 7) = adr;
21190 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21194 WRITE_BYTE_F(adr, res)
21200 WRITE_BYTE_F(adr, res)
21212 adr += AREG((Opcode >> 0) & 7);
21215 WRITE_BYTE_F(adr, res)
21227 adr += AREG((Opcode >> 0) & 7);
21230 WRITE_BYTE_F(adr, res)
21242 adr += AREG((Opcode >> 0) & 7);
21243 if (flag_NotZ && (!(flag_C & 0x100)))
21247 WRITE_BYTE_F(adr, res)
21253 WRITE_BYTE_F(adr, res)
21265 adr += AREG((Opcode >> 0) & 7);
21266 if ((!flag_NotZ) || (flag_C & 0x100))
21270 WRITE_BYTE_F(adr, res)
21276 WRITE_BYTE_F(adr, res)
21288 adr += AREG((Opcode >> 0) & 7);
21289 if (!(flag_C & 0x100))
21293 WRITE_BYTE_F(adr, res)
21299 WRITE_BYTE_F(adr, res)
21311 adr += AREG((Opcode >> 0) & 7);
21312 if (flag_C & 0x100)
21316 WRITE_BYTE_F(adr, res)
21322 WRITE_BYTE_F(adr, res)
21334 adr += AREG((Opcode >> 0) & 7);
21339 WRITE_BYTE_F(adr, res)
21345 WRITE_BYTE_F(adr, res)
21357 adr += AREG((Opcode >> 0) & 7);
21362 WRITE_BYTE_F(adr, res)
21368 WRITE_BYTE_F(adr, res)
21380 adr += AREG((Opcode >> 0) & 7);
21381 if (!(flag_V & 0x80))
21385 WRITE_BYTE_F(adr, res)
21391 WRITE_BYTE_F(adr, res)
21403 adr += AREG((Opcode >> 0) & 7);
21408 WRITE_BYTE_F(adr, res)
21414 WRITE_BYTE_F(adr, res)
21426 adr += AREG((Opcode >> 0) & 7);
21427 if (!(flag_N & 0x80))
21431 WRITE_BYTE_F(adr, res)
21437 WRITE_BYTE_F(adr, res)
21449 adr += AREG((Opcode >> 0) & 7);
21454 WRITE_BYTE_F(adr, res)
21460 WRITE_BYTE_F(adr, res)
21472 adr += AREG((Opcode >> 0) & 7);
21473 if (!((flag_N ^ flag_V) & 0x80))
21477 WRITE_BYTE_F(adr, res)
21483 WRITE_BYTE_F(adr, res)
21495 adr += AREG((Opcode >> 0) & 7);
21496 if ((flag_N ^ flag_V) & 0x80)
21500 WRITE_BYTE_F(adr, res)
21506 WRITE_BYTE_F(adr, res)
21518 adr += AREG((Opcode >> 0) & 7);
21519 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21523 WRITE_BYTE_F(adr, res)
21529 WRITE_BYTE_F(adr, res)
21541 adr += AREG((Opcode >> 0) & 7);
21542 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21546 WRITE_BYTE_F(adr, res)
21552 WRITE_BYTE_F(adr, res)
21563 adr = AREG((Opcode >> 0) & 7);
21567 WRITE_BYTE_F(adr, res)
21578 adr = AREG((Opcode >> 0) & 7);
21582 WRITE_BYTE_F(adr, res)
21593 adr = AREG((Opcode >> 0) & 7);
21595 if (flag_NotZ && (!(flag_C & 0x100)))
21599 WRITE_BYTE_F(adr, res)
21605 WRITE_BYTE_F(adr, res)
21616 adr = AREG((Opcode >> 0) & 7);
21618 if ((!flag_NotZ) || (flag_C & 0x100))
21622 WRITE_BYTE_F(adr, res)
21628 WRITE_BYTE_F(adr, res)
21639 adr = AREG((Opcode >> 0) & 7);
21641 if (!(flag_C & 0x100))
21645 WRITE_BYTE_F(adr, res)
21651 WRITE_BYTE_F(adr, res)
21662 adr = AREG((Opcode >> 0) & 7);
21664 if (flag_C & 0x100)
21668 WRITE_BYTE_F(adr, res)
21674 WRITE_BYTE_F(adr, res)
21685 adr = AREG((Opcode >> 0) & 7);
21691 WRITE_BYTE_F(adr, res)
21697 WRITE_BYTE_F(adr, res)
21708 adr = AREG((Opcode >> 0) & 7);
21714 WRITE_BYTE_F(adr, res)
21720 WRITE_BYTE_F(adr, res)
21731 adr = AREG((Opcode >> 0) & 7);
21733 if (!(flag_V & 0x80))
21737 WRITE_BYTE_F(adr, res)
21743 WRITE_BYTE_F(adr, res)
21754 adr = AREG((Opcode >> 0) & 7);
21760 WRITE_BYTE_F(adr, res)
21766 WRITE_BYTE_F(adr, res)
21777 adr = AREG((Opcode >> 0) & 7);
21779 if (!(flag_N & 0x80))
21783 WRITE_BYTE_F(adr, res)
21789 WRITE_BYTE_F(adr, res)
21800 adr = AREG((Opcode >> 0) & 7);
21806 WRITE_BYTE_F(adr, res)
21812 WRITE_BYTE_F(adr, res)
21823 adr = AREG((Opcode >> 0) & 7);
21825 if (!((flag_N ^ flag_V) & 0x80))
21829 WRITE_BYTE_F(adr, res)
21835 WRITE_BYTE_F(adr, res)
21846 adr = AREG((Opcode >> 0) & 7);
21848 if ((flag_N ^ flag_V) & 0x80)
21852 WRITE_BYTE_F(adr, res)
21858 WRITE_BYTE_F(adr, res)
21869 adr = AREG((Opcode >> 0) & 7);
21871 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21875 WRITE_BYTE_F(adr, res)
21881 WRITE_BYTE_F(adr, res)
21892 adr = AREG((Opcode >> 0) & 7);
21894 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21898 WRITE_BYTE_F(adr, res)
21904 WRITE_BYTE_F(adr, res)
21918 WRITE_BYTE_F(adr, res)
21932 WRITE_BYTE_F(adr, res)
21944 if (flag_NotZ && (!(flag_C & 0x100)))
21948 WRITE_BYTE_F(adr, res)
21954 WRITE_BYTE_F(adr, res)
21966 if ((!flag_NotZ) || (flag_C & 0x100))
21970 WRITE_BYTE_F(adr, res)
21976 WRITE_BYTE_F(adr, res)
21988 if (!(flag_C & 0x100))
21992 WRITE_BYTE_F(adr, res)
21998 WRITE_BYTE_F(adr, res)
22010 if (flag_C & 0x100)
22014 WRITE_BYTE_F(adr, res)
22020 WRITE_BYTE_F(adr, res)
22036 WRITE_BYTE_F(adr, res)
22042 WRITE_BYTE_F(adr, res)
22058 WRITE_BYTE_F(adr, res)
22064 WRITE_BYTE_F(adr, res)
22076 if (!(flag_V & 0x80))
22080 WRITE_BYTE_F(adr, res)
22086 WRITE_BYTE_F(adr, res)
22102 WRITE_BYTE_F(adr, res)
22108 WRITE_BYTE_F(adr, res)
22120 if (!(flag_N & 0x80))
22124 WRITE_BYTE_F(adr, res)
22130 WRITE_BYTE_F(adr, res)
22146 WRITE_BYTE_F(adr, res)
22152 WRITE_BYTE_F(adr, res)
22164 if (!((flag_N ^ flag_V) & 0x80))
22168 WRITE_BYTE_F(adr, res)
22174 WRITE_BYTE_F(adr, res)
22186 if ((flag_N ^ flag_V) & 0x80)
22190 WRITE_BYTE_F(adr, res)
22196 WRITE_BYTE_F(adr, res)
22208 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22212 WRITE_BYTE_F(adr, res)
22218 WRITE_BYTE_F(adr, res)
22230 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22234 WRITE_BYTE_F(adr, res)
22240 WRITE_BYTE_F(adr, res)
22254 WRITE_BYTE_F(adr, res)
22268 WRITE_BYTE_F(adr, res)
22280 if (flag_NotZ && (!(flag_C & 0x100)))
22284 WRITE_BYTE_F(adr, res)
22290 WRITE_BYTE_F(adr, res)
22302 if ((!flag_NotZ) || (flag_C & 0x100))
22306 WRITE_BYTE_F(adr, res)
22312 WRITE_BYTE_F(adr, res)
22324 if (!(flag_C & 0x100))
22328 WRITE_BYTE_F(adr, res)
22334 WRITE_BYTE_F(adr, res)
22346 if (flag_C & 0x100)
22350 WRITE_BYTE_F(adr, res)
22356 WRITE_BYTE_F(adr, res)
22372 WRITE_BYTE_F(adr, res)
22378 WRITE_BYTE_F(adr, res)
22394 WRITE_BYTE_F(adr, res)
22400 WRITE_BYTE_F(adr, res)
22412 if (!(flag_V & 0x80))
22416 WRITE_BYTE_F(adr, res)
22422 WRITE_BYTE_F(adr, res)
22438 WRITE_BYTE_F(adr, res)
22444 WRITE_BYTE_F(adr, res)
22456 if (!(flag_N & 0x80))
22460 WRITE_BYTE_F(adr, res)
22466 WRITE_BYTE_F(adr, res)
22482 WRITE_BYTE_F(adr, res)
22488 WRITE_BYTE_F(adr, res)
22500 if (!((flag_N ^ flag_V) & 0x80))
22504 WRITE_BYTE_F(adr, res)
22510 WRITE_BYTE_F(adr, res)
22522 if ((flag_N ^ flag_V) & 0x80)
22526 WRITE_BYTE_F(adr, res)
22532 WRITE_BYTE_F(adr, res)
22544 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22548 WRITE_BYTE_F(adr, res)
22554 WRITE_BYTE_F(adr, res)
22566 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22570 WRITE_BYTE_F(adr, res)
22576 WRITE_BYTE_F(adr, res)
22591 WRITE_BYTE_F(adr, res)
22606 WRITE_BYTE_F(adr, res)
22619 if (flag_NotZ && (!(flag_C & 0x100)))
22623 WRITE_BYTE_F(adr, res)
22629 WRITE_BYTE_F(adr, res)
22642 if ((!flag_NotZ) || (flag_C & 0x100))
22646 WRITE_BYTE_F(adr, res)
22652 WRITE_BYTE_F(adr, res)
22665 if (!(flag_C & 0x100))
22669 WRITE_BYTE_F(adr, res)
22675 WRITE_BYTE_F(adr, res)
22688 if (flag_C & 0x100)
22692 WRITE_BYTE_F(adr, res)
22698 WRITE_BYTE_F(adr, res)
22715 WRITE_BYTE_F(adr, res)
22721 WRITE_BYTE_F(adr, res)
22738 WRITE_BYTE_F(adr, res)
22744 WRITE_BYTE_F(adr, res)
22757 if (!(flag_V & 0x80))
22761 WRITE_BYTE_F(adr, res)
22767 WRITE_BYTE_F(adr, res)
22784 WRITE_BYTE_F(adr, res)
22790 WRITE_BYTE_F(adr, res)
22803 if (!(flag_N & 0x80))
22807 WRITE_BYTE_F(adr, res)
22813 WRITE_BYTE_F(adr, res)
22830 WRITE_BYTE_F(adr, res)
22836 WRITE_BYTE_F(adr, res)
22849 if (!((flag_N ^ flag_V) & 0x80))
22853 WRITE_BYTE_F(adr, res)
22859 WRITE_BYTE_F(adr, res)
22872 if ((flag_N ^ flag_V) & 0x80)
22876 WRITE_BYTE_F(adr, res)
22882 WRITE_BYTE_F(adr, res)
22895 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22899 WRITE_BYTE_F(adr, res)
22905 WRITE_BYTE_F(adr, res)
22918 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22922 WRITE_BYTE_F(adr, res)
22928 WRITE_BYTE_F(adr, res)
22943 WRITE_BYTE_F(adr, res)
22958 WRITE_BYTE_F(adr, res)
22971 if (flag_NotZ && (!(flag_C & 0x100)))
22975 WRITE_BYTE_F(adr, res)
22981 WRITE_BYTE_F(adr, res)
22994 if ((!flag_NotZ) || (flag_C & 0x100))
22998 WRITE_BYTE_F(adr, res)
23004 WRITE_BYTE_F(adr, res)
23017 if (!(flag_C & 0x100))
23021 WRITE_BYTE_F(adr, res)
23027 WRITE_BYTE_F(adr, res)
23040 if (flag_C & 0x100)
23044 WRITE_BYTE_F(adr, res)
23050 WRITE_BYTE_F(adr, res)
23067 WRITE_BYTE_F(adr, res)
23073 WRITE_BYTE_F(adr, res)
23090 WRITE_BYTE_F(adr, res)
23096 WRITE_BYTE_F(adr, res)
23109 if (!(flag_V & 0x80))
23113 WRITE_BYTE_F(adr, res)
23119 WRITE_BYTE_F(adr, res)
23136 WRITE_BYTE_F(adr, res)
23142 WRITE_BYTE_F(adr, res)
23155 if (!(flag_N & 0x80))
23159 WRITE_BYTE_F(adr, res)
23165 WRITE_BYTE_F(adr, res)
23182 WRITE_BYTE_F(adr, res)
23188 WRITE_BYTE_F(adr, res)
23201 if (!((flag_N ^ flag_V) & 0x80))
23205 WRITE_BYTE_F(adr, res)
23211 WRITE_BYTE_F(adr, res)
23224 if ((flag_N ^ flag_V) & 0x80)
23228 WRITE_BYTE_F(adr, res)
23234 WRITE_BYTE_F(adr, res)
23247 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
23251 WRITE_BYTE_F(adr, res)
23257 WRITE_BYTE_F(adr, res)
23270 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
23274 WRITE_BYTE_F(adr, res)
23280 WRITE_BYTE_F(adr, res)
23301 res = DREGu16((Opcode >> 0) & 7);
23303 DREGu16((Opcode >> 0) & 7) = res;
23304 if ((s32)res != -1)
23308 newPC = (u32)(PC) - BasePC;
23309 newPC += GET_SWORD;
23311 CHECK_BRANCH_EXCEPTION(newPC)
23324 if ((!flag_NotZ) || (flag_C & 0x100))
23326 res = DREGu16((Opcode >> 0) & 7);
23328 DREGu16((Opcode >> 0) & 7) = res;
23329 if ((s32)res != -1)
23333 newPC = (u32)(PC) - BasePC;
23334 newPC += GET_SWORD;
23336 CHECK_BRANCH_EXCEPTION(newPC)
23355 if (flag_NotZ && (!(flag_C & 0x100)))
23357 res = DREGu16((Opcode >> 0) & 7);
23359 DREGu16((Opcode >> 0) & 7) = res;
23360 if ((s32)res != -1)
23364 newPC = (u32)(PC) - BasePC;
23365 newPC += GET_SWORD;
23367 CHECK_BRANCH_EXCEPTION(newPC)
23386 if (flag_C & 0x100)
23388 res = DREGu16((Opcode >> 0) & 7);
23390 DREGu16((Opcode >> 0) & 7) = res;
23391 if ((s32)res != -1)
23395 newPC = (u32)(PC) - BasePC;
23396 newPC += GET_SWORD;
23398 CHECK_BRANCH_EXCEPTION(newPC)
23417 if (!(flag_C & 0x100))
23419 res = DREGu16((Opcode >> 0) & 7);
23421 DREGu16((Opcode >> 0) & 7) = res;
23422 if ((s32)res != -1)
23426 newPC = (u32)(PC) - BasePC;
23427 newPC += GET_SWORD;
23429 CHECK_BRANCH_EXCEPTION(newPC)
23450 res = DREGu16((Opcode >> 0) & 7);
23452 DREGu16((Opcode >> 0) & 7) = res;
23453 if ((s32)res != -1)
23457 newPC = (u32)(PC) - BasePC;
23458 newPC += GET_SWORD;
23460 CHECK_BRANCH_EXCEPTION(newPC)
23481 res = DREGu16((Opcode >> 0) & 7);
23483 DREGu16((Opcode >> 0) & 7) = res;
23484 if ((s32)res != -1)
23488 newPC = (u32)(PC) - BasePC;
23489 newPC += GET_SWORD;
23491 CHECK_BRANCH_EXCEPTION(newPC)
23512 res = DREGu16((Opcode >> 0) & 7);
23514 DREGu16((Opcode >> 0) & 7) = res;
23515 if ((s32)res != -1)
23519 newPC = (u32)(PC) - BasePC;
23520 newPC += GET_SWORD;
23522 CHECK_BRANCH_EXCEPTION(newPC)
23541 if (!(flag_V & 0x80))
23543 res = DREGu16((Opcode >> 0) & 7);
23545 DREGu16((Opcode >> 0) & 7) = res;
23546 if ((s32)res != -1)
23550 newPC = (u32)(PC) - BasePC;
23551 newPC += GET_SWORD;
23553 CHECK_BRANCH_EXCEPTION(newPC)
23574 res = DREGu16((Opcode >> 0) & 7);
23576 DREGu16((Opcode >> 0) & 7) = res;
23577 if ((s32)res != -1)
23581 newPC = (u32)(PC) - BasePC;
23582 newPC += GET_SWORD;
23584 CHECK_BRANCH_EXCEPTION(newPC)
23603 if (!(flag_N & 0x80))
23605 res = DREGu16((Opcode >> 0) & 7);
23607 DREGu16((Opcode >> 0) & 7) = res;
23608 if ((s32)res != -1)
23612 newPC = (u32)(PC) - BasePC;
23613 newPC += GET_SWORD;
23615 CHECK_BRANCH_EXCEPTION(newPC)
23634 if ((flag_N ^ flag_V) & 0x80)
23636 res = DREGu16((Opcode >> 0) & 7);
23638 DREGu16((Opcode >> 0) & 7) = res;
23639 if ((s32)res != -1)
23643 newPC = (u32)(PC) - BasePC;
23644 newPC += GET_SWORD;
23646 CHECK_BRANCH_EXCEPTION(newPC)
23665 if (!((flag_N ^ flag_V) & 0x80))
23667 res = DREGu16((Opcode >> 0) & 7);
23669 DREGu16((Opcode >> 0) & 7) = res;
23670 if ((s32)res != -1)
23674 newPC = (u32)(PC) - BasePC;
23675 newPC += GET_SWORD;
23677 CHECK_BRANCH_EXCEPTION(newPC)
23696 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
23698 res = DREGu16((Opcode >> 0) & 7);
23700 DREGu16((Opcode >> 0) & 7) = res;
23701 if ((s32)res != -1)
23705 newPC = (u32)(PC) - BasePC;
23706 newPC += GET_SWORD;
23708 CHECK_BRANCH_EXCEPTION(newPC)
23727 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
23729 res = DREGu16((Opcode >> 0) & 7);
23731 DREGu16((Opcode >> 0) & 7) = res;
23732 if ((s32)res != -1)
23736 newPC = (u32)(PC) - BasePC;
23737 newPC += GET_SWORD;
23739 CHECK_BRANCH_EXCEPTION(newPC)
23758 src = (((Opcode >> 9) - 1) & 7) + 1;
23759 dst = DREGu8((Opcode >> 0) & 7);
23761 flag_N = flag_X = flag_C = res;
23762 flag_V = (src ^ res) & (dst ^ res);
23763 flag_NotZ = res & 0xFF;
23764 DREGu8((Opcode >> 0) & 7) = res;
23774 src = (((Opcode >> 9) - 1) & 7) + 1;
23775 adr = AREG((Opcode >> 0) & 7);
23777 READ_BYTE_F(adr, dst)
23779 flag_N = flag_X = flag_C = res;
23780 flag_V = (src ^ res) & (dst ^ res);
23781 flag_NotZ = res & 0xFF;
23782 WRITE_BYTE_F(adr, res)
23793 src = (((Opcode >> 9) - 1) & 7) + 1;
23794 adr = AREG((Opcode >> 0) & 7);
23795 AREG((Opcode >> 0) & 7) += 1;
23797 READ_BYTE_F(adr, dst)
23799 flag_N = flag_X = flag_C = res;
23800 flag_V = (src ^ res) & (dst ^ res);
23801 flag_NotZ = res & 0xFF;
23802 WRITE_BYTE_F(adr, res)
23813 src = (((Opcode >> 9) - 1) & 7) + 1;
23814 adr = AREG((Opcode >> 0) & 7) - 1;
23815 AREG((Opcode >> 0) & 7) = adr;
23817 READ_BYTE_F(adr, dst)
23819 flag_N = flag_X = flag_C = res;
23820 flag_V = (src ^ res) & (dst ^ res);
23821 flag_NotZ = res & 0xFF;
23822 WRITE_BYTE_F(adr, res)
23833 src = (((Opcode >> 9) - 1) & 7) + 1;
23835 adr += AREG((Opcode >> 0) & 7);
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;
23854 adr = AREG((Opcode >> 0) & 7);
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;
23876 READ_BYTE_F(adr, dst)
23878 flag_N = flag_X = flag_C = res;
23879 flag_V = (src ^ res) & (dst ^ res);
23880 flag_NotZ = res & 0xFF;
23881 WRITE_BYTE_F(adr, res)
23892 src = (((Opcode >> 9) - 1) & 7) + 1;
23895 READ_BYTE_F(adr, dst)
23897 flag_N = flag_X = flag_C = res;
23898 flag_V = (src ^ res) & (dst ^ res);
23899 flag_NotZ = res & 0xFF;
23900 WRITE_BYTE_F(adr, res)
23911 src = (((Opcode >> 9) - 1) & 7) + 1;
23915 READ_BYTE_F(adr, dst)
23917 flag_N = flag_X = flag_C = res;
23918 flag_V = (src ^ res) & (dst ^ res);
23919 flag_NotZ = res & 0xFF;
23920 WRITE_BYTE_F(adr, res)
23931 src = (((Opcode >> 9) - 1) & 7) + 1;
23935 READ_BYTE_F(adr, dst)
23937 flag_N = flag_X = flag_C = res;
23938 flag_V = (src ^ res) & (dst ^ res);
23939 flag_NotZ = res & 0xFF;
23940 WRITE_BYTE_F(adr, res)
23951 src = (((Opcode >> 9) - 1) & 7) + 1;
23952 dst = DREGu16((Opcode >> 0) & 7);
23954 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
23955 flag_N = flag_X = flag_C = res >> 8;
23956 flag_NotZ = res & 0xFFFF;
23957 DREGu16((Opcode >> 0) & 7) = res;
23967 src = (((Opcode >> 9) - 1) & 7) + 1;
23968 dst = AREGu32((Opcode >> 0) & 7);
23970 AREG((Opcode >> 0) & 7) = res;
23971 #ifdef USE_CYCLONE_TIMING
23984 src = (((Opcode >> 9) - 1) & 7) + 1;
23985 adr = AREG((Opcode >> 0) & 7);
23987 READ_WORD_F(adr, dst)
23989 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
23990 flag_N = flag_X = flag_C = res >> 8;
23991 flag_NotZ = res & 0xFFFF;
23992 WRITE_WORD_F(adr, res)
24003 src = (((Opcode >> 9) - 1) & 7) + 1;
24004 adr = AREG((Opcode >> 0) & 7);
24005 AREG((Opcode >> 0) & 7) += 2;
24007 READ_WORD_F(adr, dst)
24009 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24010 flag_N = flag_X = flag_C = res >> 8;
24011 flag_NotZ = res & 0xFFFF;
24012 WRITE_WORD_F(adr, res)
24023 src = (((Opcode >> 9) - 1) & 7) + 1;
24024 adr = AREG((Opcode >> 0) & 7) - 2;
24025 AREG((Opcode >> 0) & 7) = adr;
24027 READ_WORD_F(adr, dst)
24029 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24030 flag_N = flag_X = flag_C = res >> 8;
24031 flag_NotZ = res & 0xFFFF;
24032 WRITE_WORD_F(adr, res)
24043 src = (((Opcode >> 9) - 1) & 7) + 1;
24045 adr += AREG((Opcode >> 0) & 7);
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;
24064 adr = AREG((Opcode >> 0) & 7);
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;
24086 READ_WORD_F(adr, dst)
24088 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24089 flag_N = flag_X = flag_C = res >> 8;
24090 flag_NotZ = res & 0xFFFF;
24091 WRITE_WORD_F(adr, res)
24102 src = (((Opcode >> 9) - 1) & 7) + 1;
24105 READ_WORD_F(adr, dst)
24107 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24108 flag_N = flag_X = flag_C = res >> 8;
24109 flag_NotZ = res & 0xFFFF;
24110 WRITE_WORD_F(adr, res)
24121 src = (((Opcode >> 9) - 1) & 7) + 1;
24125 READ_WORD_F(adr, dst)
24127 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24128 flag_N = flag_X = flag_C = res >> 8;
24129 flag_NotZ = res & 0xFFFF;
24130 WRITE_WORD_F(adr, res)
24141 src = (((Opcode >> 9) - 1) & 7) + 1;
24145 READ_WORD_F(adr, dst)
24147 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24148 flag_N = flag_X = flag_C = res >> 8;
24149 flag_NotZ = res & 0xFFFF;
24150 WRITE_WORD_F(adr, res)
24161 src = (((Opcode >> 9) - 1) & 7) + 1;
24162 dst = DREGu32((Opcode >> 0) & 7);
24165 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24166 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24167 flag_N = res >> 24;
24168 DREGu32((Opcode >> 0) & 7) = res;
24178 src = (((Opcode >> 9) - 1) & 7) + 1;
24179 dst = AREGu32((Opcode >> 0) & 7);
24181 AREG((Opcode >> 0) & 7) = res;
24191 src = (((Opcode >> 9) - 1) & 7) + 1;
24192 adr = AREG((Opcode >> 0) & 7);
24194 READ_LONG_F(adr, dst)
24197 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24198 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24199 flag_N = res >> 24;
24200 WRITE_LONG_F(adr, res)
24211 src = (((Opcode >> 9) - 1) & 7) + 1;
24212 adr = AREG((Opcode >> 0) & 7);
24213 AREG((Opcode >> 0) & 7) += 4;
24215 READ_LONG_F(adr, dst)
24218 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24219 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24220 flag_N = res >> 24;
24221 WRITE_LONG_F(adr, res)
24232 src = (((Opcode >> 9) - 1) & 7) + 1;
24233 adr = AREG((Opcode >> 0) & 7) - 4;
24234 AREG((Opcode >> 0) & 7) = adr;
24236 READ_LONG_F(adr, dst)
24239 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24240 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24241 flag_N = res >> 24;
24242 WRITE_LONG_F(adr, res)
24253 src = (((Opcode >> 9) - 1) & 7) + 1;
24255 adr += AREG((Opcode >> 0) & 7);
24257 READ_LONG_F(adr, dst)
24260 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24261 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24262 flag_N = res >> 24;
24263 WRITE_LONG_F(adr, res)
24274 src = (((Opcode >> 9) - 1) & 7) + 1;
24275 adr = AREG((Opcode >> 0) & 7);
24278 READ_LONG_F(adr, dst)
24281 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24282 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24283 flag_N = res >> 24;
24284 WRITE_LONG_F(adr, res)
24295 src = (((Opcode >> 9) - 1) & 7) + 1;
24298 READ_LONG_F(adr, dst)
24301 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24302 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24303 flag_N = res >> 24;
24304 WRITE_LONG_F(adr, res)
24315 src = (((Opcode >> 9) - 1) & 7) + 1;
24318 READ_LONG_F(adr, dst)
24321 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24322 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24323 flag_N = res >> 24;
24324 WRITE_LONG_F(adr, res)
24335 src = (((Opcode >> 9) - 1) & 7) + 1;
24339 READ_LONG_F(adr, dst)
24342 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24343 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24344 flag_N = res >> 24;
24345 WRITE_LONG_F(adr, res)
24356 src = (((Opcode >> 9) - 1) & 7) + 1;
24360 READ_LONG_F(adr, dst)
24363 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24364 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24365 flag_N = res >> 24;
24366 WRITE_LONG_F(adr, res)
24377 src = (((Opcode >> 9) - 1) & 7) + 1;
24378 dst = DREGu8((Opcode >> 0) & 7);
24380 flag_N = flag_X = flag_C = res;
24381 flag_V = (src ^ dst) & (res ^ dst);
24382 flag_NotZ = res & 0xFF;
24383 DREGu8((Opcode >> 0) & 7) = res;
24393 src = (((Opcode >> 9) - 1) & 7) + 1;
24394 adr = AREG((Opcode >> 0) & 7);
24396 READ_BYTE_F(adr, dst)
24398 flag_N = flag_X = flag_C = res;
24399 flag_V = (src ^ dst) & (res ^ dst);
24400 flag_NotZ = res & 0xFF;
24401 WRITE_BYTE_F(adr, res)
24412 src = (((Opcode >> 9) - 1) & 7) + 1;
24413 adr = AREG((Opcode >> 0) & 7);
24414 AREG((Opcode >> 0) & 7) += 1;
24416 READ_BYTE_F(adr, dst)
24418 flag_N = flag_X = flag_C = res;
24419 flag_V = (src ^ dst) & (res ^ dst);
24420 flag_NotZ = res & 0xFF;
24421 WRITE_BYTE_F(adr, res)
24432 src = (((Opcode >> 9) - 1) & 7) + 1;
24433 adr = AREG((Opcode >> 0) & 7) - 1;
24434 AREG((Opcode >> 0) & 7) = adr;
24436 READ_BYTE_F(adr, dst)
24438 flag_N = flag_X = flag_C = res;
24439 flag_V = (src ^ dst) & (res ^ dst);
24440 flag_NotZ = res & 0xFF;
24441 WRITE_BYTE_F(adr, res)
24452 src = (((Opcode >> 9) - 1) & 7) + 1;
24454 adr += AREG((Opcode >> 0) & 7);
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;
24473 adr = AREG((Opcode >> 0) & 7);
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;
24495 READ_BYTE_F(adr, dst)
24497 flag_N = flag_X = flag_C = res;
24498 flag_V = (src ^ dst) & (res ^ dst);
24499 flag_NotZ = res & 0xFF;
24500 WRITE_BYTE_F(adr, res)
24511 src = (((Opcode >> 9) - 1) & 7) + 1;
24514 READ_BYTE_F(adr, dst)
24516 flag_N = flag_X = flag_C = res;
24517 flag_V = (src ^ dst) & (res ^ dst);
24518 flag_NotZ = res & 0xFF;
24519 WRITE_BYTE_F(adr, res)
24530 src = (((Opcode >> 9) - 1) & 7) + 1;
24534 READ_BYTE_F(adr, dst)
24536 flag_N = flag_X = flag_C = res;
24537 flag_V = (src ^ dst) & (res ^ dst);
24538 flag_NotZ = res & 0xFF;
24539 WRITE_BYTE_F(adr, res)
24550 src = (((Opcode >> 9) - 1) & 7) + 1;
24554 READ_BYTE_F(adr, dst)
24556 flag_N = flag_X = flag_C = res;
24557 flag_V = (src ^ dst) & (res ^ dst);
24558 flag_NotZ = res & 0xFF;
24559 WRITE_BYTE_F(adr, res)
24570 src = (((Opcode >> 9) - 1) & 7) + 1;
24571 dst = DREGu16((Opcode >> 0) & 7);
24573 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24574 flag_N = flag_X = flag_C = res >> 8;
24575 flag_NotZ = res & 0xFFFF;
24576 DREGu16((Opcode >> 0) & 7) = res;
24586 src = (((Opcode >> 9) - 1) & 7) + 1;
24587 dst = AREGu32((Opcode >> 0) & 7);
24589 AREG((Opcode >> 0) & 7) = res;
24599 src = (((Opcode >> 9) - 1) & 7) + 1;
24600 adr = AREG((Opcode >> 0) & 7);
24602 READ_WORD_F(adr, dst)
24604 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24605 flag_N = flag_X = flag_C = res >> 8;
24606 flag_NotZ = res & 0xFFFF;
24607 WRITE_WORD_F(adr, res)
24618 src = (((Opcode >> 9) - 1) & 7) + 1;
24619 adr = AREG((Opcode >> 0) & 7);
24620 AREG((Opcode >> 0) & 7) += 2;
24622 READ_WORD_F(adr, dst)
24624 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24625 flag_N = flag_X = flag_C = res >> 8;
24626 flag_NotZ = res & 0xFFFF;
24627 WRITE_WORD_F(adr, res)
24638 src = (((Opcode >> 9) - 1) & 7) + 1;
24639 adr = AREG((Opcode >> 0) & 7) - 2;
24640 AREG((Opcode >> 0) & 7) = adr;
24642 READ_WORD_F(adr, dst)
24644 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24645 flag_N = flag_X = flag_C = res >> 8;
24646 flag_NotZ = res & 0xFFFF;
24647 WRITE_WORD_F(adr, res)
24658 src = (((Opcode >> 9) - 1) & 7) + 1;
24660 adr += AREG((Opcode >> 0) & 7);
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;
24679 adr = AREG((Opcode >> 0) & 7);
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;
24701 READ_WORD_F(adr, dst)
24703 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24704 flag_N = flag_X = flag_C = res >> 8;
24705 flag_NotZ = res & 0xFFFF;
24706 WRITE_WORD_F(adr, res)
24717 src = (((Opcode >> 9) - 1) & 7) + 1;
24720 READ_WORD_F(adr, dst)
24722 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24723 flag_N = flag_X = flag_C = res >> 8;
24724 flag_NotZ = res & 0xFFFF;
24725 WRITE_WORD_F(adr, res)
24736 src = (((Opcode >> 9) - 1) & 7) + 1;
24740 READ_WORD_F(adr, dst)
24742 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24743 flag_N = flag_X = flag_C = res >> 8;
24744 flag_NotZ = res & 0xFFFF;
24745 WRITE_WORD_F(adr, res)
24756 src = (((Opcode >> 9) - 1) & 7) + 1;
24760 READ_WORD_F(adr, dst)
24762 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24763 flag_N = flag_X = flag_C = res >> 8;
24764 flag_NotZ = res & 0xFFFF;
24765 WRITE_WORD_F(adr, res)
24776 src = (((Opcode >> 9) - 1) & 7) + 1;
24777 dst = DREGu32((Opcode >> 0) & 7);
24780 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24781 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24782 flag_N = res >> 24;
24783 DREGu32((Opcode >> 0) & 7) = res;
24793 src = (((Opcode >> 9) - 1) & 7) + 1;
24794 dst = AREGu32((Opcode >> 0) & 7);
24796 AREG((Opcode >> 0) & 7) = res;
24806 src = (((Opcode >> 9) - 1) & 7) + 1;
24807 adr = AREG((Opcode >> 0) & 7);
24809 READ_LONG_F(adr, dst)
24812 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24813 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24814 flag_N = res >> 24;
24815 WRITE_LONG_F(adr, res)
24826 src = (((Opcode >> 9) - 1) & 7) + 1;
24827 adr = AREG((Opcode >> 0) & 7);
24828 AREG((Opcode >> 0) & 7) += 4;
24830 READ_LONG_F(adr, dst)
24833 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24834 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24835 flag_N = res >> 24;
24836 WRITE_LONG_F(adr, res)
24847 src = (((Opcode >> 9) - 1) & 7) + 1;
24848 adr = AREG((Opcode >> 0) & 7) - 4;
24849 AREG((Opcode >> 0) & 7) = adr;
24851 READ_LONG_F(adr, dst)
24854 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24855 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24856 flag_N = res >> 24;
24857 WRITE_LONG_F(adr, res)
24868 src = (((Opcode >> 9) - 1) & 7) + 1;
24870 adr += AREG((Opcode >> 0) & 7);
24872 READ_LONG_F(adr, dst)
24875 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24876 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24877 flag_N = res >> 24;
24878 WRITE_LONG_F(adr, res)
24889 src = (((Opcode >> 9) - 1) & 7) + 1;
24890 adr = AREG((Opcode >> 0) & 7);
24893 READ_LONG_F(adr, dst)
24896 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24897 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24898 flag_N = res >> 24;
24899 WRITE_LONG_F(adr, res)
24910 src = (((Opcode >> 9) - 1) & 7) + 1;
24913 READ_LONG_F(adr, dst)
24916 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24917 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24918 flag_N = res >> 24;
24919 WRITE_LONG_F(adr, res)
24930 src = (((Opcode >> 9) - 1) & 7) + 1;
24933 READ_LONG_F(adr, dst)
24936 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24937 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24938 flag_N = res >> 24;
24939 WRITE_LONG_F(adr, res)
24950 src = (((Opcode >> 9) - 1) & 7) + 1;
24954 READ_LONG_F(adr, dst)
24957 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24958 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24959 flag_N = res >> 24;
24960 WRITE_LONG_F(adr, res)
24971 src = (((Opcode >> 9) - 1) & 7) + 1;
24975 READ_LONG_F(adr, dst)
24978 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24979 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24980 flag_N = res >> 24;
24981 WRITE_LONG_F(adr, res)
24992 if (flag_NotZ && (!(flag_C & 0x100)))
24994 PC += ((s8)(Opcode & 0xFE)) >> 1;
24995 m68kcontext.io_cycle_counter -= 2;
25006 if ((!flag_NotZ) || (flag_C & 0x100))
25008 PC += ((s8)(Opcode & 0xFE)) >> 1;
25009 m68kcontext.io_cycle_counter -= 2;
25020 if (!(flag_C & 0x100))
25022 PC += ((s8)(Opcode & 0xFE)) >> 1;
25023 m68kcontext.io_cycle_counter -= 2;
25034 if (flag_C & 0x100)
25036 PC += ((s8)(Opcode & 0xFE)) >> 1;
25037 m68kcontext.io_cycle_counter -= 2;
25050 PC += ((s8)(Opcode & 0xFE)) >> 1;
25051 m68kcontext.io_cycle_counter -= 2;
25064 PC += ((s8)(Opcode & 0xFE)) >> 1;
25065 m68kcontext.io_cycle_counter -= 2;
25076 if (!(flag_V & 0x80))
25078 PC += ((s8)(Opcode & 0xFE)) >> 1;
25079 m68kcontext.io_cycle_counter -= 2;
25092 PC += ((s8)(Opcode & 0xFE)) >> 1;
25093 m68kcontext.io_cycle_counter -= 2;
25104 if (!(flag_N & 0x80))
25106 PC += ((s8)(Opcode & 0xFE)) >> 1;
25107 m68kcontext.io_cycle_counter -= 2;
25120 PC += ((s8)(Opcode & 0xFE)) >> 1;
25121 m68kcontext.io_cycle_counter -= 2;
25132 if (!((flag_N ^ flag_V) & 0x80))
25134 PC += ((s8)(Opcode & 0xFE)) >> 1;
25135 m68kcontext.io_cycle_counter -= 2;
25146 if ((flag_N ^ flag_V) & 0x80)
25148 PC += ((s8)(Opcode & 0xFE)) >> 1;
25149 m68kcontext.io_cycle_counter -= 2;
25160 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
25162 PC += ((s8)(Opcode & 0xFE)) >> 1;
25163 m68kcontext.io_cycle_counter -= 2;
25174 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
25176 PC += ((s8)(Opcode & 0xFE)) >> 1;
25177 m68kcontext.io_cycle_counter -= 2;
25188 if (flag_NotZ && (!(flag_C & 0x100)))
25192 newPC = (u32)(PC) - BasePC;
25193 newPC += GET_SWORD;
25195 CHECK_BRANCH_EXCEPTION(newPC)
25208 if ((!flag_NotZ) || (flag_C & 0x100))
25212 newPC = (u32)(PC) - BasePC;
25213 newPC += GET_SWORD;
25215 CHECK_BRANCH_EXCEPTION(newPC)
25228 if (!(flag_C & 0x100))
25232 newPC = (u32)(PC) - BasePC;
25233 newPC += GET_SWORD;
25235 CHECK_BRANCH_EXCEPTION(newPC)
25248 if (flag_C & 0x100)
25252 newPC = (u32)(PC) - BasePC;
25253 newPC += GET_SWORD;
25255 CHECK_BRANCH_EXCEPTION(newPC)
25272 newPC = (u32)(PC) - BasePC;
25273 newPC += GET_SWORD;
25275 CHECK_BRANCH_EXCEPTION(newPC)
25292 newPC = (u32)(PC) - BasePC;
25293 newPC += GET_SWORD;
25295 CHECK_BRANCH_EXCEPTION(newPC)
25308 if (!(flag_V & 0x80))
25312 newPC = (u32)(PC) - BasePC;
25313 newPC += GET_SWORD;
25315 CHECK_BRANCH_EXCEPTION(newPC)
25332 newPC = (u32)(PC) - BasePC;
25333 newPC += GET_SWORD;
25335 CHECK_BRANCH_EXCEPTION(newPC)
25348 if (!(flag_N & 0x80))
25352 newPC = (u32)(PC) - BasePC;
25353 newPC += GET_SWORD;
25355 CHECK_BRANCH_EXCEPTION(newPC)
25372 newPC = (u32)(PC) - BasePC;
25373 newPC += GET_SWORD;
25375 CHECK_BRANCH_EXCEPTION(newPC)
25388 if (!((flag_N ^ flag_V) & 0x80))
25392 newPC = (u32)(PC) - BasePC;
25393 newPC += GET_SWORD;
25395 CHECK_BRANCH_EXCEPTION(newPC)
25408 if ((flag_N ^ flag_V) & 0x80)
25412 newPC = (u32)(PC) - BasePC;
25413 newPC += GET_SWORD;
25415 CHECK_BRANCH_EXCEPTION(newPC)
25428 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
25432 newPC = (u32)(PC) - BasePC;
25433 newPC += GET_SWORD;
25435 CHECK_BRANCH_EXCEPTION(newPC)
25448 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
25452 newPC = (u32)(PC) - BasePC;
25453 newPC += GET_SWORD;
25455 CHECK_BRANCH_EXCEPTION(newPC)
25465 #ifdef FAMEC_CHECK_BRANCHES
25466 u32 newPC = (u32)(PC) - BasePC;
25470 CHECK_BRANCH_EXCEPTION(offs)
25472 PC += ((s8)(Opcode & 0xFE)) >> 1;
25486 newPC = (u32)(PC) - BasePC;
25487 newPC += GET_SWORD;
25489 CHECK_BRANCH_EXCEPTION(newPC)
25504 oldPC = (u32)(PC) - BasePC;
25506 #ifdef FAMEC_CHECK_BRANCHES
25510 CHECK_BRANCH_EXCEPTION(offs)
25512 PC += ((s8)(Opcode & 0xFE)) >> 1;
25528 newPC = (u32)(PC) - BasePC;
25531 newPC += GET_SWORD;
25533 CHECK_BRANCH_EXCEPTION(newPC)
25545 res = (s32)(s8)Opcode;
25546 flag_C = flag_V = 0;
25547 flag_N = flag_NotZ = res;
25548 DREGu32((Opcode >> 9) & 7) = res;
25558 src = DREGu8((Opcode >> 0) & 7);
25559 res = DREGu8((Opcode >> 9) & 7);
25565 DREGu8((Opcode >> 9) & 7) = res;
25575 adr = AREG((Opcode >> 0) & 7);
25577 READ_BYTE_F(adr, src)
25578 res = DREGu8((Opcode >> 9) & 7);
25584 DREGu8((Opcode >> 9) & 7) = res;
25595 adr = AREG((Opcode >> 0) & 7);
25596 AREG((Opcode >> 0) & 7) += 1;
25598 READ_BYTE_F(adr, src)
25599 res = DREGu8((Opcode >> 9) & 7);
25605 DREGu8((Opcode >> 9) & 7) = res;
25616 adr = AREG((Opcode >> 0) & 7) - 1;
25617 AREG((Opcode >> 0) & 7) = adr;
25619 READ_BYTE_F(adr, src)
25620 res = DREGu8((Opcode >> 9) & 7);
25626 DREGu8((Opcode >> 9) & 7) = res;
25638 adr += AREG((Opcode >> 0) & 7);
25640 READ_BYTE_F(adr, src)
25641 res = DREGu8((Opcode >> 9) & 7);
25647 DREGu8((Opcode >> 9) & 7) = res;
25658 adr = AREG((Opcode >> 0) & 7);
25661 READ_BYTE_F(adr, src)
25662 res = DREGu8((Opcode >> 9) & 7);
25668 DREGu8((Opcode >> 9) & 7) = res;
25681 READ_BYTE_F(adr, src)
25682 res = DREGu8((Opcode >> 9) & 7);
25688 DREGu8((Opcode >> 9) & 7) = res;
25701 READ_BYTE_F(adr, src)
25702 res = DREGu8((Opcode >> 9) & 7);
25708 DREGu8((Opcode >> 9) & 7) = res;
25719 adr = GET_SWORD + ((u32)(PC) - BasePC);
25722 READ_BYTE_F(adr, src)
25723 res = DREGu8((Opcode >> 9) & 7);
25729 DREGu8((Opcode >> 9) & 7) = res;
25740 adr = (u32)(PC) - BasePC;
25743 READ_BYTE_F(adr, src)
25744 res = DREGu8((Opcode >> 9) & 7);
25750 DREGu8((Opcode >> 9) & 7) = res;
25762 res = DREGu8((Opcode >> 9) & 7);
25768 DREGu8((Opcode >> 9) & 7) = res;
25781 READ_BYTE_F(adr, src)
25782 res = DREGu8((Opcode >> 9) & 7);
25788 DREGu8((Opcode >> 9) & 7) = res;
25802 READ_BYTE_F(adr, src)
25803 res = DREGu8((Opcode >> 9) & 7);
25809 DREGu8((Opcode >> 9) & 7) = res;
25820 src = DREGu16((Opcode >> 0) & 7);
25821 res = DREGu16((Opcode >> 9) & 7);
25827 DREGu16((Opcode >> 9) & 7) = res;
25837 adr = AREG((Opcode >> 0) & 7);
25839 READ_WORD_F(adr, src)
25840 res = DREGu16((Opcode >> 9) & 7);
25846 DREGu16((Opcode >> 9) & 7) = res;
25857 adr = AREG((Opcode >> 0) & 7);
25858 AREG((Opcode >> 0) & 7) += 2;
25860 READ_WORD_F(adr, src)
25861 res = DREGu16((Opcode >> 9) & 7);
25867 DREGu16((Opcode >> 9) & 7) = res;
25878 adr = AREG((Opcode >> 0) & 7) - 2;
25879 AREG((Opcode >> 0) & 7) = adr;
25881 READ_WORD_F(adr, src)
25882 res = DREGu16((Opcode >> 9) & 7);
25888 DREGu16((Opcode >> 9) & 7) = res;
25900 adr += AREG((Opcode >> 0) & 7);
25902 READ_WORD_F(adr, src)
25903 res = DREGu16((Opcode >> 9) & 7);
25909 DREGu16((Opcode >> 9) & 7) = res;
25920 adr = AREG((Opcode >> 0) & 7);
25923 READ_WORD_F(adr, src)
25924 res = DREGu16((Opcode >> 9) & 7);
25930 DREGu16((Opcode >> 9) & 7) = res;
25943 READ_WORD_F(adr, src)
25944 res = DREGu16((Opcode >> 9) & 7);
25950 DREGu16((Opcode >> 9) & 7) = res;
25963 READ_WORD_F(adr, src)
25964 res = DREGu16((Opcode >> 9) & 7);
25970 DREGu16((Opcode >> 9) & 7) = res;
25981 adr = GET_SWORD + ((u32)(PC) - BasePC);
25984 READ_WORD_F(adr, src)
25985 res = DREGu16((Opcode >> 9) & 7);
25991 DREGu16((Opcode >> 9) & 7) = res;
26002 adr = (u32)(PC) - BasePC;
26005 READ_WORD_F(adr, src)
26006 res = DREGu16((Opcode >> 9) & 7);
26012 DREGu16((Opcode >> 9) & 7) = res;
26024 res = DREGu16((Opcode >> 9) & 7);
26030 DREGu16((Opcode >> 9) & 7) = res;
26043 READ_WORD_F(adr, src)
26044 res = DREGu16((Opcode >> 9) & 7);
26050 DREGu16((Opcode >> 9) & 7) = res;
26064 READ_WORD_F(adr, src)
26065 res = DREGu16((Opcode >> 9) & 7);
26071 DREGu16((Opcode >> 9) & 7) = res;
26082 src = DREGu32((Opcode >> 0) & 7);
26083 res = DREGu32((Opcode >> 9) & 7);
26088 flag_N = res >> 24;
26089 DREGu32((Opcode >> 9) & 7) = res;
26099 adr = AREG((Opcode >> 0) & 7);
26101 READ_LONG_F(adr, src)
26102 res = DREGu32((Opcode >> 9) & 7);
26107 flag_N = res >> 24;
26108 DREGu32((Opcode >> 9) & 7) = res;
26119 adr = AREG((Opcode >> 0) & 7);
26120 AREG((Opcode >> 0) & 7) += 4;
26122 READ_LONG_F(adr, src)
26123 res = DREGu32((Opcode >> 9) & 7);
26128 flag_N = res >> 24;
26129 DREGu32((Opcode >> 9) & 7) = res;
26140 adr = AREG((Opcode >> 0) & 7) - 4;
26141 AREG((Opcode >> 0) & 7) = adr;
26143 READ_LONG_F(adr, src)
26144 res = DREGu32((Opcode >> 9) & 7);
26149 flag_N = res >> 24;
26150 DREGu32((Opcode >> 9) & 7) = res;
26162 adr += AREG((Opcode >> 0) & 7);
26164 READ_LONG_F(adr, src)
26165 res = DREGu32((Opcode >> 9) & 7);
26170 flag_N = res >> 24;
26171 DREGu32((Opcode >> 9) & 7) = res;
26182 adr = AREG((Opcode >> 0) & 7);
26185 READ_LONG_F(adr, src)
26186 res = DREGu32((Opcode >> 9) & 7);
26191 flag_N = res >> 24;
26192 DREGu32((Opcode >> 9) & 7) = res;
26205 READ_LONG_F(adr, src)
26206 res = DREGu32((Opcode >> 9) & 7);
26211 flag_N = res >> 24;
26212 DREGu32((Opcode >> 9) & 7) = res;
26225 READ_LONG_F(adr, src)
26226 res = DREGu32((Opcode >> 9) & 7);
26231 flag_N = res >> 24;
26232 DREGu32((Opcode >> 9) & 7) = res;
26243 adr = GET_SWORD + ((u32)(PC) - BasePC);
26246 READ_LONG_F(adr, src)
26247 res = DREGu32((Opcode >> 9) & 7);
26252 flag_N = res >> 24;
26253 DREGu32((Opcode >> 9) & 7) = res;
26264 adr = (u32)(PC) - BasePC;
26267 READ_LONG_F(adr, src)
26268 res = DREGu32((Opcode >> 9) & 7);
26273 flag_N = res >> 24;
26274 DREGu32((Opcode >> 9) & 7) = res;
26286 res = DREGu32((Opcode >> 9) & 7);
26291 flag_N = res >> 24;
26292 DREGu32((Opcode >> 9) & 7) = res;
26305 READ_LONG_F(adr, src)
26306 res = DREGu32((Opcode >> 9) & 7);
26311 flag_N = res >> 24;
26312 DREGu32((Opcode >> 9) & 7) = res;
26326 READ_LONG_F(adr, src)
26327 res = DREGu32((Opcode >> 9) & 7);
26332 flag_N = res >> 24;
26333 DREGu32((Opcode >> 9) & 7) = res;
26344 src = DREGu8((Opcode >> 9) & 7);
26345 adr = AREG((Opcode >> 0) & 7);
26347 READ_BYTE_F(adr, res)
26353 WRITE_BYTE_F(adr, res)
26364 src = DREGu8((Opcode >> 9) & 7);
26365 adr = AREG((Opcode >> 0) & 7);
26366 AREG((Opcode >> 0) & 7) += 1;
26368 READ_BYTE_F(adr, res)
26374 WRITE_BYTE_F(adr, res)
26385 src = DREGu8((Opcode >> 9) & 7);
26386 adr = AREG((Opcode >> 0) & 7) - 1;
26387 AREG((Opcode >> 0) & 7) = adr;
26389 READ_BYTE_F(adr, res)
26395 WRITE_BYTE_F(adr, res)
26406 src = DREGu8((Opcode >> 9) & 7);
26408 adr += AREG((Opcode >> 0) & 7);
26410 READ_BYTE_F(adr, res)
26416 WRITE_BYTE_F(adr, res)
26427 src = DREGu8((Opcode >> 9) & 7);
26428 adr = AREG((Opcode >> 0) & 7);
26431 READ_BYTE_F(adr, res)
26437 WRITE_BYTE_F(adr, res)
26448 src = DREGu8((Opcode >> 9) & 7);
26451 READ_BYTE_F(adr, res)
26457 WRITE_BYTE_F(adr, res)
26468 src = DREGu8((Opcode >> 9) & 7);
26471 READ_BYTE_F(adr, res)
26477 WRITE_BYTE_F(adr, res)
26488 src = DREGu8((Opcode >> 9) & 7);
26492 READ_BYTE_F(adr, res)
26498 WRITE_BYTE_F(adr, res)
26509 src = DREGu8((Opcode >> 9) & 7);
26513 READ_BYTE_F(adr, res)
26519 WRITE_BYTE_F(adr, res)
26530 src = DREGu16((Opcode >> 9) & 7);
26531 adr = AREG((Opcode >> 0) & 7);
26533 READ_WORD_F(adr, res)
26539 WRITE_WORD_F(adr, res)
26550 src = DREGu16((Opcode >> 9) & 7);
26551 adr = AREG((Opcode >> 0) & 7);
26552 AREG((Opcode >> 0) & 7) += 2;
26554 READ_WORD_F(adr, res)
26560 WRITE_WORD_F(adr, res)
26571 src = DREGu16((Opcode >> 9) & 7);
26572 adr = AREG((Opcode >> 0) & 7) - 2;
26573 AREG((Opcode >> 0) & 7) = adr;
26575 READ_WORD_F(adr, res)
26581 WRITE_WORD_F(adr, res)
26592 src = DREGu16((Opcode >> 9) & 7);
26594 adr += AREG((Opcode >> 0) & 7);
26596 READ_WORD_F(adr, res)
26602 WRITE_WORD_F(adr, res)
26613 src = DREGu16((Opcode >> 9) & 7);
26614 adr = AREG((Opcode >> 0) & 7);
26617 READ_WORD_F(adr, res)
26623 WRITE_WORD_F(adr, res)
26634 src = DREGu16((Opcode >> 9) & 7);
26637 READ_WORD_F(adr, res)
26643 WRITE_WORD_F(adr, res)
26654 src = DREGu16((Opcode >> 9) & 7);
26657 READ_WORD_F(adr, res)
26663 WRITE_WORD_F(adr, res)
26674 src = DREGu16((Opcode >> 9) & 7);
26678 READ_WORD_F(adr, res)
26684 WRITE_WORD_F(adr, res)
26695 src = DREGu16((Opcode >> 9) & 7);
26699 READ_WORD_F(adr, res)
26705 WRITE_WORD_F(adr, res)
26716 src = DREGu32((Opcode >> 9) & 7);
26717 adr = AREG((Opcode >> 0) & 7);
26719 READ_LONG_F(adr, res)
26724 flag_N = res >> 24;
26725 WRITE_LONG_F(adr, res)
26736 src = DREGu32((Opcode >> 9) & 7);
26737 adr = AREG((Opcode >> 0) & 7);
26738 AREG((Opcode >> 0) & 7) += 4;
26740 READ_LONG_F(adr, res)
26745 flag_N = res >> 24;
26746 WRITE_LONG_F(adr, res)
26757 src = DREGu32((Opcode >> 9) & 7);
26758 adr = AREG((Opcode >> 0) & 7) - 4;
26759 AREG((Opcode >> 0) & 7) = adr;
26761 READ_LONG_F(adr, res)
26766 flag_N = res >> 24;
26767 WRITE_LONG_F(adr, res)
26778 src = DREGu32((Opcode >> 9) & 7);
26780 adr += AREG((Opcode >> 0) & 7);
26782 READ_LONG_F(adr, res)
26787 flag_N = res >> 24;
26788 WRITE_LONG_F(adr, res)
26799 src = DREGu32((Opcode >> 9) & 7);
26800 adr = AREG((Opcode >> 0) & 7);
26803 READ_LONG_F(adr, res)
26808 flag_N = res >> 24;
26809 WRITE_LONG_F(adr, res)
26820 src = DREGu32((Opcode >> 9) & 7);
26823 READ_LONG_F(adr, res)
26828 flag_N = res >> 24;
26829 WRITE_LONG_F(adr, res)
26840 src = DREGu32((Opcode >> 9) & 7);
26843 READ_LONG_F(adr, res)
26848 flag_N = res >> 24;
26849 WRITE_LONG_F(adr, res)
26860 src = DREGu32((Opcode >> 9) & 7);
26864 READ_LONG_F(adr, res)
26869 flag_N = res >> 24;
26870 WRITE_LONG_F(adr, res)
26881 src = DREGu32((Opcode >> 9) & 7);
26885 READ_LONG_F(adr, res)
26890 flag_N = res >> 24;
26891 WRITE_LONG_F(adr, res)
26902 src = DREGu8((Opcode >> 0) & 7);
26903 dst = DREGu8((Opcode >> 9) & 7);
26904 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26905 if (res > 9) res -= 6;
26906 res += (dst & 0xF0) - (src & 0xF0);
26910 flag_X = flag_C = M68K_SR_C;
26912 else flag_X = flag_C = 0;
26913 flag_NotZ |= res & 0xFF;
26915 DREGu8((Opcode >> 9) & 7) = res;
26925 adr = AREG((Opcode >> 0) & 7) - 1;
26926 AREG((Opcode >> 0) & 7) = adr;
26928 READ_BYTE_F(adr, src)
26929 adr = AREG((Opcode >> 9) & 7) - 1;
26930 AREG((Opcode >> 9) & 7) = adr;
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)
26958 adr = AREG((Opcode >> 9) & 7) - 1;
26959 AREG((Opcode >> 9) & 7) = adr;
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 adr = AREG((Opcode >> 0) & 7) - 1;
26984 AREG((Opcode >> 0) & 7) = adr;
26986 READ_BYTE_F(adr, src)
26989 READ_BYTE_F(adr, dst)
26990 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26991 if (res > 9) res -= 6;
26992 res += (dst & 0xF0) - (src & 0xF0);
26996 flag_X = flag_C = M68K_SR_C;
26998 else flag_X = flag_C = 0;
26999 flag_NotZ |= res & 0xFF;
27001 WRITE_BYTE_F(adr, res)
27015 READ_BYTE_F(adr, src)
27018 READ_BYTE_F(adr, dst)
27019 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
27020 if (res > 9) res -= 6;
27021 res += (dst & 0xF0) - (src & 0xF0);
27025 flag_X = flag_C = M68K_SR_C;
27027 else flag_X = flag_C = 0;
27028 flag_NotZ |= res & 0xFF;
27030 WRITE_BYTE_F(adr, res)
27041 src = DREGu16((Opcode >> 0) & 7);
27044 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27045 #ifdef USE_CYCLONE_TIMING_DIV
27051 dst = DREGu32((Opcode >> 9) & 7);
27058 if (q & 0xFFFF0000)
27060 flag_V = M68K_SR_V;
27061 #ifdef USE_CYCLONE_TIMING_DIV
27070 flag_V = flag_C = 0;
27071 res = q | (r << 16);
27072 DREGu32((Opcode >> 9) & 7) = res;
27074 #ifdef USE_CYCLONE_TIMING_DIV
27087 adr = AREG((Opcode >> 0) & 7);
27089 READ_WORD_F(adr, src)
27092 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27093 #ifdef USE_CYCLONE_TIMING_DIV
27099 dst = DREGu32((Opcode >> 9) & 7);
27106 if (q & 0xFFFF0000)
27108 flag_V = M68K_SR_V;
27109 #ifdef USE_CYCLONE_TIMING_DIV
27118 flag_V = flag_C = 0;
27119 res = q | (r << 16);
27120 DREGu32((Opcode >> 9) & 7) = res;
27122 #ifdef USE_CYCLONE_TIMING_DIV
27135 adr = AREG((Opcode >> 0) & 7);
27136 AREG((Opcode >> 0) & 7) += 2;
27138 READ_WORD_F(adr, src)
27141 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27142 #ifdef USE_CYCLONE_TIMING_DIV
27148 dst = DREGu32((Opcode >> 9) & 7);
27155 if (q & 0xFFFF0000)
27157 flag_V = M68K_SR_V;
27158 #ifdef USE_CYCLONE_TIMING_DIV
27167 flag_V = flag_C = 0;
27168 res = q | (r << 16);
27169 DREGu32((Opcode >> 9) & 7) = res;
27171 #ifdef USE_CYCLONE_TIMING_DIV
27184 adr = AREG((Opcode >> 0) & 7) - 2;
27185 AREG((Opcode >> 0) & 7) = adr;
27187 READ_WORD_F(adr, src)
27190 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27191 #ifdef USE_CYCLONE_TIMING_DIV
27197 dst = DREGu32((Opcode >> 9) & 7);
27204 if (q & 0xFFFF0000)
27206 flag_V = M68K_SR_V;
27207 #ifdef USE_CYCLONE_TIMING_DIV
27216 flag_V = flag_C = 0;
27217 res = q | (r << 16);
27218 DREGu32((Opcode >> 9) & 7) = res;
27220 #ifdef USE_CYCLONE_TIMING_DIV
27234 adr += AREG((Opcode >> 0) & 7);
27236 READ_WORD_F(adr, src)
27239 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27240 #ifdef USE_CYCLONE_TIMING_DIV
27246 dst = DREGu32((Opcode >> 9) & 7);
27253 if (q & 0xFFFF0000)
27255 flag_V = M68K_SR_V;
27256 #ifdef USE_CYCLONE_TIMING_DIV
27265 flag_V = flag_C = 0;
27266 res = q | (r << 16);
27267 DREGu32((Opcode >> 9) & 7) = res;
27269 #ifdef USE_CYCLONE_TIMING_DIV
27282 adr = AREG((Opcode >> 0) & 7);
27285 READ_WORD_F(adr, src)
27288 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27289 #ifdef USE_CYCLONE_TIMING_DIV
27295 dst = DREGu32((Opcode >> 9) & 7);
27302 if (q & 0xFFFF0000)
27304 flag_V = M68K_SR_V;
27305 #ifdef USE_CYCLONE_TIMING_DIV
27314 flag_V = flag_C = 0;
27315 res = q | (r << 16);
27316 DREGu32((Opcode >> 9) & 7) = res;
27318 #ifdef USE_CYCLONE_TIMING_DIV
27333 READ_WORD_F(adr, src)
27336 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27337 #ifdef USE_CYCLONE_TIMING_DIV
27343 dst = DREGu32((Opcode >> 9) & 7);
27350 if (q & 0xFFFF0000)
27352 flag_V = M68K_SR_V;
27353 #ifdef USE_CYCLONE_TIMING_DIV
27362 flag_V = flag_C = 0;
27363 res = q | (r << 16);
27364 DREGu32((Opcode >> 9) & 7) = res;
27366 #ifdef USE_CYCLONE_TIMING_DIV
27381 READ_WORD_F(adr, src)
27384 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27385 #ifdef USE_CYCLONE_TIMING_DIV
27391 dst = DREGu32((Opcode >> 9) & 7);
27398 if (q & 0xFFFF0000)
27400 flag_V = M68K_SR_V;
27401 #ifdef USE_CYCLONE_TIMING_DIV
27410 flag_V = flag_C = 0;
27411 res = q | (r << 16);
27412 DREGu32((Opcode >> 9) & 7) = res;
27414 #ifdef USE_CYCLONE_TIMING_DIV
27427 adr = GET_SWORD + ((u32)(PC) - BasePC);
27430 READ_WORD_F(adr, src)
27433 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27434 #ifdef USE_CYCLONE_TIMING_DIV
27440 dst = DREGu32((Opcode >> 9) & 7);
27447 if (q & 0xFFFF0000)
27449 flag_V = M68K_SR_V;
27450 #ifdef USE_CYCLONE_TIMING_DIV
27459 flag_V = flag_C = 0;
27460 res = q | (r << 16);
27461 DREGu32((Opcode >> 9) & 7) = res;
27463 #ifdef USE_CYCLONE_TIMING_DIV
27476 adr = (u32)(PC) - BasePC;
27479 READ_WORD_F(adr, src)
27482 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27483 #ifdef USE_CYCLONE_TIMING_DIV
27489 dst = DREGu32((Opcode >> 9) & 7);
27496 if (q & 0xFFFF0000)
27498 flag_V = M68K_SR_V;
27499 #ifdef USE_CYCLONE_TIMING_DIV
27508 flag_V = flag_C = 0;
27509 res = q | (r << 16);
27510 DREGu32((Opcode >> 9) & 7) = res;
27512 #ifdef USE_CYCLONE_TIMING_DIV
27528 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27529 #ifdef USE_CYCLONE_TIMING_DIV
27535 dst = DREGu32((Opcode >> 9) & 7);
27542 if (q & 0xFFFF0000)
27544 flag_V = M68K_SR_V;
27545 #ifdef USE_CYCLONE_TIMING_DIV
27554 flag_V = flag_C = 0;
27555 res = q | (r << 16);
27556 DREGu32((Opcode >> 9) & 7) = res;
27558 #ifdef USE_CYCLONE_TIMING_DIV
27574 READ_WORD_F(adr, src)
27577 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27578 #ifdef USE_CYCLONE_TIMING_DIV
27584 dst = DREGu32((Opcode >> 9) & 7);
27591 if (q & 0xFFFF0000)
27593 flag_V = M68K_SR_V;
27594 #ifdef USE_CYCLONE_TIMING_DIV
27603 flag_V = flag_C = 0;
27604 res = q | (r << 16);
27605 DREGu32((Opcode >> 9) & 7) = res;
27607 #ifdef USE_CYCLONE_TIMING_DIV
27623 READ_WORD_F(adr, src)
27626 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27627 #ifdef USE_CYCLONE_TIMING_DIV
27633 dst = DREGu32((Opcode >> 9) & 7);
27640 if (q & 0xFFFF0000)
27642 flag_V = M68K_SR_V;
27643 #ifdef USE_CYCLONE_TIMING_DIV
27652 flag_V = flag_C = 0;
27653 res = q | (r << 16);
27654 DREGu32((Opcode >> 9) & 7) = res;
27656 #ifdef USE_CYCLONE_TIMING_DIV
27669 src = (s32)DREGs16((Opcode >> 0) & 7);
27672 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27673 #ifdef USE_CYCLONE_TIMING_DIV
27678 dst = DREGu32((Opcode >> 9) & 7);
27679 if ((dst == 0x80000000) && (src == (u32)-1))
27681 flag_NotZ = flag_N = 0;
27682 flag_V = flag_C = 0;
27684 DREGu32((Opcode >> 9) & 7) = res;
27685 #ifdef USE_CYCLONE_TIMING_DIV
27693 q = (s32)dst / (s32)src;
27694 r = (s32)dst % (s32)src;
27696 if ((q > 0x7FFF) || (q < -0x8000))
27698 flag_V = M68K_SR_V;
27699 #ifdef USE_CYCLONE_TIMING_DIV
27707 flag_V = flag_C = 0;
27708 res = q | (r << 16);
27709 DREGu32((Opcode >> 9) & 7) = res;
27711 #ifdef USE_CYCLONE_TIMING_DIV
27712 end81C0: m68kcontext.io_cycle_counter -= 50;
27723 adr = AREG((Opcode >> 0) & 7);
27725 READSX_WORD_F(adr, src)
27728 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27729 #ifdef USE_CYCLONE_TIMING_DIV
27734 dst = DREGu32((Opcode >> 9) & 7);
27735 if ((dst == 0x80000000) && (src == (u32)-1))
27737 flag_NotZ = flag_N = 0;
27738 flag_V = flag_C = 0;
27740 DREGu32((Opcode >> 9) & 7) = res;
27741 #ifdef USE_CYCLONE_TIMING_DIV
27749 q = (s32)dst / (s32)src;
27750 r = (s32)dst % (s32)src;
27752 if ((q > 0x7FFF) || (q < -0x8000))
27754 flag_V = M68K_SR_V;
27755 #ifdef USE_CYCLONE_TIMING_DIV
27763 flag_V = flag_C = 0;
27764 res = q | (r << 16);
27765 DREGu32((Opcode >> 9) & 7) = res;
27767 #ifdef USE_CYCLONE_TIMING_DIV
27768 end81D0: m68kcontext.io_cycle_counter -= 50;
27779 adr = AREG((Opcode >> 0) & 7);
27780 AREG((Opcode >> 0) & 7) += 2;
27782 READSX_WORD_F(adr, src)
27785 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27786 #ifdef USE_CYCLONE_TIMING_DIV
27791 dst = DREGu32((Opcode >> 9) & 7);
27792 if ((dst == 0x80000000) && (src == (u32)-1))
27794 flag_NotZ = flag_N = 0;
27795 flag_V = flag_C = 0;
27797 DREGu32((Opcode >> 9) & 7) = res;
27798 #ifdef USE_CYCLONE_TIMING_DIV
27806 q = (s32)dst / (s32)src;
27807 r = (s32)dst % (s32)src;
27809 if ((q > 0x7FFF) || (q < -0x8000))
27811 flag_V = M68K_SR_V;
27812 #ifdef USE_CYCLONE_TIMING_DIV
27820 flag_V = flag_C = 0;
27821 res = q | (r << 16);
27822 DREGu32((Opcode >> 9) & 7) = res;
27824 #ifdef USE_CYCLONE_TIMING_DIV
27825 end81D8: m68kcontext.io_cycle_counter -= 50;
27836 adr = AREG((Opcode >> 0) & 7) - 2;
27837 AREG((Opcode >> 0) & 7) = adr;
27839 READSX_WORD_F(adr, src)
27842 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27843 #ifdef USE_CYCLONE_TIMING_DIV
27848 dst = DREGu32((Opcode >> 9) & 7);
27849 if ((dst == 0x80000000) && (src == (u32)-1))
27851 flag_NotZ = flag_N = 0;
27852 flag_V = flag_C = 0;
27854 DREGu32((Opcode >> 9) & 7) = res;
27855 #ifdef USE_CYCLONE_TIMING_DIV
27863 q = (s32)dst / (s32)src;
27864 r = (s32)dst % (s32)src;
27866 if ((q > 0x7FFF) || (q < -0x8000))
27868 flag_V = M68K_SR_V;
27869 #ifdef USE_CYCLONE_TIMING_DIV
27877 flag_V = flag_C = 0;
27878 res = q | (r << 16);
27879 DREGu32((Opcode >> 9) & 7) = res;
27881 #ifdef USE_CYCLONE_TIMING_DIV
27882 end81E0: m68kcontext.io_cycle_counter -= 50;
27894 adr += AREG((Opcode >> 0) & 7);
27896 READSX_WORD_F(adr, src)
27899 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27900 #ifdef USE_CYCLONE_TIMING_DIV
27905 dst = DREGu32((Opcode >> 9) & 7);
27906 if ((dst == 0x80000000) && (src == (u32)-1))
27908 flag_NotZ = flag_N = 0;
27909 flag_V = flag_C = 0;
27911 DREGu32((Opcode >> 9) & 7) = res;
27912 #ifdef USE_CYCLONE_TIMING_DIV
27920 q = (s32)dst / (s32)src;
27921 r = (s32)dst % (s32)src;
27923 if ((q > 0x7FFF) || (q < -0x8000))
27925 flag_V = M68K_SR_V;
27926 #ifdef USE_CYCLONE_TIMING_DIV
27934 flag_V = flag_C = 0;
27935 res = q | (r << 16);
27936 DREGu32((Opcode >> 9) & 7) = res;
27938 #ifdef USE_CYCLONE_TIMING_DIV
27939 end81E8: m68kcontext.io_cycle_counter -= 50;
27950 adr = AREG((Opcode >> 0) & 7);
27953 READSX_WORD_F(adr, src)
27956 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27957 #ifdef USE_CYCLONE_TIMING_DIV
27962 dst = DREGu32((Opcode >> 9) & 7);
27963 if ((dst == 0x80000000) && (src == (u32)-1))
27965 flag_NotZ = flag_N = 0;
27966 flag_V = flag_C = 0;
27968 DREGu32((Opcode >> 9) & 7) = res;
27969 #ifdef USE_CYCLONE_TIMING_DIV
27977 q = (s32)dst / (s32)src;
27978 r = (s32)dst % (s32)src;
27980 if ((q > 0x7FFF) || (q < -0x8000))
27982 flag_V = M68K_SR_V;
27983 #ifdef USE_CYCLONE_TIMING_DIV
27991 flag_V = flag_C = 0;
27992 res = q | (r << 16);
27993 DREGu32((Opcode >> 9) & 7) = res;
27995 #ifdef USE_CYCLONE_TIMING_DIV
27996 end81F0: m68kcontext.io_cycle_counter -= 50;
28009 READSX_WORD_F(adr, src)
28012 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28013 #ifdef USE_CYCLONE_TIMING_DIV
28018 dst = DREGu32((Opcode >> 9) & 7);
28019 if ((dst == 0x80000000) && (src == (u32)-1))
28021 flag_NotZ = flag_N = 0;
28022 flag_V = flag_C = 0;
28024 DREGu32((Opcode >> 9) & 7) = res;
28025 #ifdef USE_CYCLONE_TIMING_DIV
28033 q = (s32)dst / (s32)src;
28034 r = (s32)dst % (s32)src;
28036 if ((q > 0x7FFF) || (q < -0x8000))
28038 flag_V = M68K_SR_V;
28039 #ifdef USE_CYCLONE_TIMING_DIV
28047 flag_V = flag_C = 0;
28048 res = q | (r << 16);
28049 DREGu32((Opcode >> 9) & 7) = res;
28051 #ifdef USE_CYCLONE_TIMING_DIV
28052 end81F8: m68kcontext.io_cycle_counter -= 50;
28065 READSX_WORD_F(adr, src)
28068 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28069 #ifdef USE_CYCLONE_TIMING_DIV
28074 dst = DREGu32((Opcode >> 9) & 7);
28075 if ((dst == 0x80000000) && (src == (u32)-1))
28077 flag_NotZ = flag_N = 0;
28078 flag_V = flag_C = 0;
28080 DREGu32((Opcode >> 9) & 7) = res;
28081 #ifdef USE_CYCLONE_TIMING_DIV
28089 q = (s32)dst / (s32)src;
28090 r = (s32)dst % (s32)src;
28092 if ((q > 0x7FFF) || (q < -0x8000))
28094 flag_V = M68K_SR_V;
28095 #ifdef USE_CYCLONE_TIMING_DIV
28103 flag_V = flag_C = 0;
28104 res = q | (r << 16);
28105 DREGu32((Opcode >> 9) & 7) = res;
28107 #ifdef USE_CYCLONE_TIMING_DIV
28108 end81F9: m68kcontext.io_cycle_counter -= 50;
28119 adr = GET_SWORD + ((u32)(PC) - BasePC);
28122 READSX_WORD_F(adr, src)
28125 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28126 #ifdef USE_CYCLONE_TIMING_DIV
28131 dst = DREGu32((Opcode >> 9) & 7);
28132 if ((dst == 0x80000000) && (src == (u32)-1))
28134 flag_NotZ = flag_N = 0;
28135 flag_V = flag_C = 0;
28137 DREGu32((Opcode >> 9) & 7) = res;
28138 #ifdef USE_CYCLONE_TIMING_DIV
28146 q = (s32)dst / (s32)src;
28147 r = (s32)dst % (s32)src;
28149 if ((q > 0x7FFF) || (q < -0x8000))
28151 flag_V = M68K_SR_V;
28152 #ifdef USE_CYCLONE_TIMING_DIV
28160 flag_V = flag_C = 0;
28161 res = q | (r << 16);
28162 DREGu32((Opcode >> 9) & 7) = res;
28164 #ifdef USE_CYCLONE_TIMING_DIV
28165 end81FA: m68kcontext.io_cycle_counter -= 50;
28176 adr = (u32)(PC) - BasePC;
28179 READSX_WORD_F(adr, src)
28182 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28183 #ifdef USE_CYCLONE_TIMING_DIV
28188 dst = DREGu32((Opcode >> 9) & 7);
28189 if ((dst == 0x80000000) && (src == (u32)-1))
28191 flag_NotZ = flag_N = 0;
28192 flag_V = flag_C = 0;
28194 DREGu32((Opcode >> 9) & 7) = res;
28195 #ifdef USE_CYCLONE_TIMING_DIV
28203 q = (s32)dst / (s32)src;
28204 r = (s32)dst % (s32)src;
28206 if ((q > 0x7FFF) || (q < -0x8000))
28208 flag_V = M68K_SR_V;
28209 #ifdef USE_CYCLONE_TIMING_DIV
28217 flag_V = flag_C = 0;
28218 res = q | (r << 16);
28219 DREGu32((Opcode >> 9) & 7) = res;
28221 #ifdef USE_CYCLONE_TIMING_DIV
28222 end81FB: m68kcontext.io_cycle_counter -= 50;
28236 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28237 #ifdef USE_CYCLONE_TIMING_DIV
28242 dst = DREGu32((Opcode >> 9) & 7);
28243 if ((dst == 0x80000000) && (src == (u32)-1))
28245 flag_NotZ = flag_N = 0;
28246 flag_V = flag_C = 0;
28248 DREGu32((Opcode >> 9) & 7) = res;
28249 #ifdef USE_CYCLONE_TIMING_DIV
28257 q = (s32)dst / (s32)src;
28258 r = (s32)dst % (s32)src;
28260 if ((q > 0x7FFF) || (q < -0x8000))
28262 flag_V = M68K_SR_V;
28263 #ifdef USE_CYCLONE_TIMING_DIV
28271 flag_V = flag_C = 0;
28272 res = q | (r << 16);
28273 DREGu32((Opcode >> 9) & 7) = res;
28275 #ifdef USE_CYCLONE_TIMING_DIV
28276 end81FC: m68kcontext.io_cycle_counter -= 50;
28290 READSX_WORD_F(adr, src)
28293 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28294 #ifdef USE_CYCLONE_TIMING_DIV
28299 dst = DREGu32((Opcode >> 9) & 7);
28300 if ((dst == 0x80000000) && (src == (u32)-1))
28302 flag_NotZ = flag_N = 0;
28303 flag_V = flag_C = 0;
28305 DREGu32((Opcode >> 9) & 7) = res;
28306 #ifdef USE_CYCLONE_TIMING_DIV
28314 q = (s32)dst / (s32)src;
28315 r = (s32)dst % (s32)src;
28317 if ((q > 0x7FFF) || (q < -0x8000))
28319 flag_V = M68K_SR_V;
28320 #ifdef USE_CYCLONE_TIMING_DIV
28328 flag_V = flag_C = 0;
28329 res = q | (r << 16);
28330 DREGu32((Opcode >> 9) & 7) = res;
28332 #ifdef USE_CYCLONE_TIMING_DIV
28333 end81DF: m68kcontext.io_cycle_counter -= 50;
28347 READSX_WORD_F(adr, src)
28350 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28351 #ifdef USE_CYCLONE_TIMING_DIV
28356 dst = DREGu32((Opcode >> 9) & 7);
28357 if ((dst == 0x80000000) && (src == (u32)-1))
28359 flag_NotZ = flag_N = 0;
28360 flag_V = flag_C = 0;
28362 DREGu32((Opcode >> 9) & 7) = res;
28363 #ifdef USE_CYCLONE_TIMING_DIV
28371 q = (s32)dst / (s32)src;
28372 r = (s32)dst % (s32)src;
28374 if ((q > 0x7FFF) || (q < -0x8000))
28376 flag_V = M68K_SR_V;
28377 #ifdef USE_CYCLONE_TIMING_DIV
28385 flag_V = flag_C = 0;
28386 res = q | (r << 16);
28387 DREGu32((Opcode >> 9) & 7) = res;
28389 #ifdef USE_CYCLONE_TIMING_DIV
28390 end81E7: m68kcontext.io_cycle_counter -= 50;
28401 src = DREGu8((Opcode >> 0) & 7);
28402 dst = DREGu8((Opcode >> 9) & 7);
28404 flag_N = flag_X = flag_C = res;
28405 flag_V = (src ^ dst) & (res ^ dst);
28406 flag_NotZ = res & 0xFF;
28407 DREGu8((Opcode >> 9) & 7) = res;
28418 // can't read byte from Ax registers !
28419 m68kcontext.execinfo |= M68K_FAULTED;
28420 m68kcontext.io_cycle_counter = 0;
28422 goto famec_Exec_End;
28423 dst = DREGu8((Opcode >> 9) & 7);
28425 flag_N = flag_X = flag_C = res;
28426 flag_V = (src ^ dst) & (res ^ dst);
28427 flag_NotZ = res & 0xFF;
28428 DREGu8((Opcode >> 9) & 7) = res;
28440 adr = AREG((Opcode >> 0) & 7);
28442 READ_BYTE_F(adr, src)
28443 dst = DREGu8((Opcode >> 9) & 7);
28445 flag_N = flag_X = flag_C = res;
28446 flag_V = (src ^ dst) & (res ^ dst);
28447 flag_NotZ = res & 0xFF;
28448 DREGu8((Opcode >> 9) & 7) = res;
28459 adr = AREG((Opcode >> 0) & 7);
28460 AREG((Opcode >> 0) & 7) += 1;
28462 READ_BYTE_F(adr, src)
28463 dst = DREGu8((Opcode >> 9) & 7);
28465 flag_N = flag_X = flag_C = res;
28466 flag_V = (src ^ dst) & (res ^ dst);
28467 flag_NotZ = res & 0xFF;
28468 DREGu8((Opcode >> 9) & 7) = res;
28479 adr = AREG((Opcode >> 0) & 7) - 1;
28480 AREG((Opcode >> 0) & 7) = adr;
28482 READ_BYTE_F(adr, src)
28483 dst = DREGu8((Opcode >> 9) & 7);
28485 flag_N = flag_X = flag_C = res;
28486 flag_V = (src ^ dst) & (res ^ dst);
28487 flag_NotZ = res & 0xFF;
28488 DREGu8((Opcode >> 9) & 7) = res;
28500 adr += AREG((Opcode >> 0) & 7);
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 = AREG((Opcode >> 0) & 7);
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;
28541 READ_BYTE_F(adr, src)
28542 dst = DREGu8((Opcode >> 9) & 7);
28544 flag_N = flag_X = flag_C = res;
28545 flag_V = (src ^ dst) & (res ^ dst);
28546 flag_NotZ = res & 0xFF;
28547 DREGu8((Opcode >> 9) & 7) = res;
28560 READ_BYTE_F(adr, src)
28561 dst = DREGu8((Opcode >> 9) & 7);
28563 flag_N = flag_X = flag_C = res;
28564 flag_V = (src ^ dst) & (res ^ dst);
28565 flag_NotZ = res & 0xFF;
28566 DREGu8((Opcode >> 9) & 7) = res;
28577 adr = GET_SWORD + ((u32)(PC) - BasePC);
28580 READ_BYTE_F(adr, src)
28581 dst = DREGu8((Opcode >> 9) & 7);
28583 flag_N = flag_X = flag_C = res;
28584 flag_V = (src ^ dst) & (res ^ dst);
28585 flag_NotZ = res & 0xFF;
28586 DREGu8((Opcode >> 9) & 7) = res;
28597 adr = (u32)(PC) - BasePC;
28600 READ_BYTE_F(adr, src)
28601 dst = DREGu8((Opcode >> 9) & 7);
28603 flag_N = flag_X = flag_C = res;
28604 flag_V = (src ^ dst) & (res ^ dst);
28605 flag_NotZ = res & 0xFF;
28606 DREGu8((Opcode >> 9) & 7) = res;
28618 dst = DREGu8((Opcode >> 9) & 7);
28620 flag_N = flag_X = flag_C = res;
28621 flag_V = (src ^ dst) & (res ^ dst);
28622 flag_NotZ = res & 0xFF;
28623 DREGu8((Opcode >> 9) & 7) = res;
28636 READ_BYTE_F(adr, src)
28637 dst = DREGu8((Opcode >> 9) & 7);
28639 flag_N = flag_X = flag_C = res;
28640 flag_V = (src ^ dst) & (res ^ dst);
28641 flag_NotZ = res & 0xFF;
28642 DREGu8((Opcode >> 9) & 7) = res;
28656 READ_BYTE_F(adr, src)
28657 dst = DREGu8((Opcode >> 9) & 7);
28659 flag_N = flag_X = flag_C = res;
28660 flag_V = (src ^ dst) & (res ^ dst);
28661 flag_NotZ = res & 0xFF;
28662 DREGu8((Opcode >> 9) & 7) = res;
28673 src = DREGu16((Opcode >> 0) & 7);
28674 dst = DREGu16((Opcode >> 9) & 7);
28676 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28677 flag_N = flag_X = flag_C = res >> 8;
28678 flag_NotZ = res & 0xFFFF;
28679 DREGu16((Opcode >> 9) & 7) = res;
28689 src = AREGu16((Opcode >> 0) & 7);
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;
28705 adr = AREG((Opcode >> 0) & 7);
28707 READ_WORD_F(adr, src)
28708 dst = DREGu16((Opcode >> 9) & 7);
28710 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28711 flag_N = flag_X = flag_C = res >> 8;
28712 flag_NotZ = res & 0xFFFF;
28713 DREGu16((Opcode >> 9) & 7) = res;
28724 adr = AREG((Opcode >> 0) & 7);
28725 AREG((Opcode >> 0) & 7) += 2;
28727 READ_WORD_F(adr, src)
28728 dst = DREGu16((Opcode >> 9) & 7);
28730 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28731 flag_N = flag_X = flag_C = res >> 8;
28732 flag_NotZ = res & 0xFFFF;
28733 DREGu16((Opcode >> 9) & 7) = res;
28744 adr = AREG((Opcode >> 0) & 7) - 2;
28745 AREG((Opcode >> 0) & 7) = adr;
28747 READ_WORD_F(adr, src)
28748 dst = DREGu16((Opcode >> 9) & 7);
28750 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28751 flag_N = flag_X = flag_C = res >> 8;
28752 flag_NotZ = res & 0xFFFF;
28753 DREGu16((Opcode >> 9) & 7) = res;
28765 adr += AREG((Opcode >> 0) & 7);
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 = AREG((Opcode >> 0) & 7);
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;
28806 READ_WORD_F(adr, src)
28807 dst = DREGu16((Opcode >> 9) & 7);
28809 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28810 flag_N = flag_X = flag_C = res >> 8;
28811 flag_NotZ = res & 0xFFFF;
28812 DREGu16((Opcode >> 9) & 7) = res;
28825 READ_WORD_F(adr, src)
28826 dst = DREGu16((Opcode >> 9) & 7);
28828 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28829 flag_N = flag_X = flag_C = res >> 8;
28830 flag_NotZ = res & 0xFFFF;
28831 DREGu16((Opcode >> 9) & 7) = res;
28842 adr = GET_SWORD + ((u32)(PC) - BasePC);
28845 READ_WORD_F(adr, src)
28846 dst = DREGu16((Opcode >> 9) & 7);
28848 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28849 flag_N = flag_X = flag_C = res >> 8;
28850 flag_NotZ = res & 0xFFFF;
28851 DREGu16((Opcode >> 9) & 7) = res;
28862 adr = (u32)(PC) - BasePC;
28865 READ_WORD_F(adr, src)
28866 dst = DREGu16((Opcode >> 9) & 7);
28868 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28869 flag_N = flag_X = flag_C = res >> 8;
28870 flag_NotZ = res & 0xFFFF;
28871 DREGu16((Opcode >> 9) & 7) = res;
28883 dst = DREGu16((Opcode >> 9) & 7);
28885 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28886 flag_N = flag_X = flag_C = res >> 8;
28887 flag_NotZ = res & 0xFFFF;
28888 DREGu16((Opcode >> 9) & 7) = res;
28901 READ_WORD_F(adr, src)
28902 dst = DREGu16((Opcode >> 9) & 7);
28904 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28905 flag_N = flag_X = flag_C = res >> 8;
28906 flag_NotZ = res & 0xFFFF;
28907 DREGu16((Opcode >> 9) & 7) = res;
28921 READ_WORD_F(adr, src)
28922 dst = DREGu16((Opcode >> 9) & 7);
28924 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28925 flag_N = flag_X = flag_C = res >> 8;
28926 flag_NotZ = res & 0xFFFF;
28927 DREGu16((Opcode >> 9) & 7) = res;
28938 src = DREGu32((Opcode >> 0) & 7);
28939 dst = DREGu32((Opcode >> 9) & 7);
28942 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28943 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28944 flag_N = res >> 24;
28945 DREGu32((Opcode >> 9) & 7) = res;
28955 src = AREGu32((Opcode >> 0) & 7);
28956 dst = DREGu32((Opcode >> 9) & 7);
28959 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28960 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28961 flag_N = res >> 24;
28962 DREGu32((Opcode >> 9) & 7) = res;
28972 adr = AREG((Opcode >> 0) & 7);
28974 READ_LONG_F(adr, src)
28975 dst = DREGu32((Opcode >> 9) & 7);
28978 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28979 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28980 flag_N = res >> 24;
28981 DREGu32((Opcode >> 9) & 7) = res;
28992 adr = AREG((Opcode >> 0) & 7);
28993 AREG((Opcode >> 0) & 7) += 4;
28995 READ_LONG_F(adr, src)
28996 dst = DREGu32((Opcode >> 9) & 7);
28999 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29000 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29001 flag_N = res >> 24;
29002 DREGu32((Opcode >> 9) & 7) = res;
29013 adr = AREG((Opcode >> 0) & 7) - 4;
29014 AREG((Opcode >> 0) & 7) = adr;
29016 READ_LONG_F(adr, src)
29017 dst = DREGu32((Opcode >> 9) & 7);
29020 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29021 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29022 flag_N = res >> 24;
29023 DREGu32((Opcode >> 9) & 7) = res;
29035 adr += AREG((Opcode >> 0) & 7);
29037 READ_LONG_F(adr, src)
29038 dst = DREGu32((Opcode >> 9) & 7);
29041 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29042 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29043 flag_N = res >> 24;
29044 DREGu32((Opcode >> 9) & 7) = res;
29055 adr = AREG((Opcode >> 0) & 7);
29058 READ_LONG_F(adr, src)
29059 dst = DREGu32((Opcode >> 9) & 7);
29062 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29063 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29064 flag_N = res >> 24;
29065 DREGu32((Opcode >> 9) & 7) = res;
29078 READ_LONG_F(adr, src)
29079 dst = DREGu32((Opcode >> 9) & 7);
29082 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29083 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29084 flag_N = res >> 24;
29085 DREGu32((Opcode >> 9) & 7) = res;
29098 READ_LONG_F(adr, src)
29099 dst = DREGu32((Opcode >> 9) & 7);
29102 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29103 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29104 flag_N = res >> 24;
29105 DREGu32((Opcode >> 9) & 7) = res;
29116 adr = GET_SWORD + ((u32)(PC) - BasePC);
29119 READ_LONG_F(adr, src)
29120 dst = DREGu32((Opcode >> 9) & 7);
29123 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29124 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29125 flag_N = res >> 24;
29126 DREGu32((Opcode >> 9) & 7) = res;
29137 adr = (u32)(PC) - BasePC;
29140 READ_LONG_F(adr, src)
29141 dst = DREGu32((Opcode >> 9) & 7);
29144 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29145 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29146 flag_N = res >> 24;
29147 DREGu32((Opcode >> 9) & 7) = res;
29159 dst = DREGu32((Opcode >> 9) & 7);
29162 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29163 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29164 flag_N = res >> 24;
29165 DREGu32((Opcode >> 9) & 7) = res;
29178 READ_LONG_F(adr, src)
29179 dst = DREGu32((Opcode >> 9) & 7);
29182 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29183 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29184 flag_N = res >> 24;
29185 DREGu32((Opcode >> 9) & 7) = res;
29199 READ_LONG_F(adr, src)
29200 dst = DREGu32((Opcode >> 9) & 7);
29203 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29204 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29205 flag_N = res >> 24;
29206 DREGu32((Opcode >> 9) & 7) = res;
29217 src = DREGu8((Opcode >> 9) & 7);
29218 adr = AREG((Opcode >> 0) & 7);
29220 READ_BYTE_F(adr, dst)
29222 flag_N = flag_X = flag_C = res;
29223 flag_V = (src ^ dst) & (res ^ dst);
29224 flag_NotZ = res & 0xFF;
29225 WRITE_BYTE_F(adr, res)
29236 src = DREGu8((Opcode >> 9) & 7);
29237 adr = AREG((Opcode >> 0) & 7);
29238 AREG((Opcode >> 0) & 7) += 1;
29240 READ_BYTE_F(adr, dst)
29242 flag_N = flag_X = flag_C = res;
29243 flag_V = (src ^ dst) & (res ^ dst);
29244 flag_NotZ = res & 0xFF;
29245 WRITE_BYTE_F(adr, res)
29256 src = DREGu8((Opcode >> 9) & 7);
29257 adr = AREG((Opcode >> 0) & 7) - 1;
29258 AREG((Opcode >> 0) & 7) = adr;
29260 READ_BYTE_F(adr, dst)
29262 flag_N = flag_X = flag_C = res;
29263 flag_V = (src ^ dst) & (res ^ dst);
29264 flag_NotZ = res & 0xFF;
29265 WRITE_BYTE_F(adr, res)
29276 src = DREGu8((Opcode >> 9) & 7);
29278 adr += AREG((Opcode >> 0) & 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);
29297 adr = AREG((Opcode >> 0) & 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);
29319 READ_BYTE_F(adr, dst)
29321 flag_N = flag_X = flag_C = res;
29322 flag_V = (src ^ dst) & (res ^ dst);
29323 flag_NotZ = res & 0xFF;
29324 WRITE_BYTE_F(adr, res)
29335 src = DREGu8((Opcode >> 9) & 7);
29338 READ_BYTE_F(adr, dst)
29340 flag_N = flag_X = flag_C = res;
29341 flag_V = (src ^ dst) & (res ^ dst);
29342 flag_NotZ = res & 0xFF;
29343 WRITE_BYTE_F(adr, res)
29354 src = DREGu8((Opcode >> 9) & 7);
29358 READ_BYTE_F(adr, dst)
29360 flag_N = flag_X = flag_C = res;
29361 flag_V = (src ^ dst) & (res ^ dst);
29362 flag_NotZ = res & 0xFF;
29363 WRITE_BYTE_F(adr, res)
29374 src = DREGu8((Opcode >> 9) & 7);
29378 READ_BYTE_F(adr, dst)
29380 flag_N = flag_X = flag_C = res;
29381 flag_V = (src ^ dst) & (res ^ dst);
29382 flag_NotZ = res & 0xFF;
29383 WRITE_BYTE_F(adr, res)
29394 src = DREGu16((Opcode >> 9) & 7);
29395 adr = AREG((Opcode >> 0) & 7);
29397 READ_WORD_F(adr, dst)
29399 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29400 flag_N = flag_X = flag_C = res >> 8;
29401 flag_NotZ = res & 0xFFFF;
29402 WRITE_WORD_F(adr, res)
29413 src = DREGu16((Opcode >> 9) & 7);
29414 adr = AREG((Opcode >> 0) & 7);
29415 AREG((Opcode >> 0) & 7) += 2;
29417 READ_WORD_F(adr, dst)
29419 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29420 flag_N = flag_X = flag_C = res >> 8;
29421 flag_NotZ = res & 0xFFFF;
29422 WRITE_WORD_F(adr, res)
29433 src = DREGu16((Opcode >> 9) & 7);
29434 adr = AREG((Opcode >> 0) & 7) - 2;
29435 AREG((Opcode >> 0) & 7) = adr;
29437 READ_WORD_F(adr, dst)
29439 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29440 flag_N = flag_X = flag_C = res >> 8;
29441 flag_NotZ = res & 0xFFFF;
29442 WRITE_WORD_F(adr, res)
29453 src = DREGu16((Opcode >> 9) & 7);
29455 adr += AREG((Opcode >> 0) & 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);
29474 adr = AREG((Opcode >> 0) & 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);
29496 READ_WORD_F(adr, dst)
29498 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29499 flag_N = flag_X = flag_C = res >> 8;
29500 flag_NotZ = res & 0xFFFF;
29501 WRITE_WORD_F(adr, res)
29512 src = DREGu16((Opcode >> 9) & 7);
29515 READ_WORD_F(adr, dst)
29517 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29518 flag_N = flag_X = flag_C = res >> 8;
29519 flag_NotZ = res & 0xFFFF;
29520 WRITE_WORD_F(adr, res)
29531 src = DREGu16((Opcode >> 9) & 7);
29535 READ_WORD_F(adr, dst)
29537 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29538 flag_N = flag_X = flag_C = res >> 8;
29539 flag_NotZ = res & 0xFFFF;
29540 WRITE_WORD_F(adr, res)
29551 src = DREGu16((Opcode >> 9) & 7);
29555 READ_WORD_F(adr, dst)
29557 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29558 flag_N = flag_X = flag_C = res >> 8;
29559 flag_NotZ = res & 0xFFFF;
29560 WRITE_WORD_F(adr, res)
29571 src = DREGu32((Opcode >> 9) & 7);
29572 adr = AREG((Opcode >> 0) & 7);
29574 READ_LONG_F(adr, dst)
29577 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29578 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29579 flag_N = res >> 24;
29580 WRITE_LONG_F(adr, res)
29591 src = DREGu32((Opcode >> 9) & 7);
29592 adr = AREG((Opcode >> 0) & 7);
29593 AREG((Opcode >> 0) & 7) += 4;
29595 READ_LONG_F(adr, dst)
29598 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29599 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29600 flag_N = res >> 24;
29601 WRITE_LONG_F(adr, res)
29612 src = DREGu32((Opcode >> 9) & 7);
29613 adr = AREG((Opcode >> 0) & 7) - 4;
29614 AREG((Opcode >> 0) & 7) = adr;
29616 READ_LONG_F(adr, dst)
29619 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29620 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29621 flag_N = res >> 24;
29622 WRITE_LONG_F(adr, res)
29633 src = DREGu32((Opcode >> 9) & 7);
29635 adr += AREG((Opcode >> 0) & 7);
29637 READ_LONG_F(adr, dst)
29640 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29641 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29642 flag_N = res >> 24;
29643 WRITE_LONG_F(adr, res)
29654 src = DREGu32((Opcode >> 9) & 7);
29655 adr = AREG((Opcode >> 0) & 7);
29658 READ_LONG_F(adr, dst)
29661 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29662 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29663 flag_N = res >> 24;
29664 WRITE_LONG_F(adr, res)
29675 src = DREGu32((Opcode >> 9) & 7);
29678 READ_LONG_F(adr, dst)
29681 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29682 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29683 flag_N = res >> 24;
29684 WRITE_LONG_F(adr, res)
29695 src = DREGu32((Opcode >> 9) & 7);
29698 READ_LONG_F(adr, dst)
29701 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29702 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29703 flag_N = res >> 24;
29704 WRITE_LONG_F(adr, res)
29715 src = DREGu32((Opcode >> 9) & 7);
29719 READ_LONG_F(adr, dst)
29722 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29723 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29724 flag_N = res >> 24;
29725 WRITE_LONG_F(adr, res)
29736 src = DREGu32((Opcode >> 9) & 7);
29740 READ_LONG_F(adr, dst)
29743 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29744 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29745 flag_N = res >> 24;
29746 WRITE_LONG_F(adr, res)
29757 src = DREGu8((Opcode >> 0) & 7);
29758 dst = DREGu8((Opcode >> 9) & 7);
29759 res = dst - src - ((flag_X >> 8) & 1);
29760 flag_N = flag_X = flag_C = res;
29761 flag_V = (src ^ dst) & (res ^ dst);
29762 flag_NotZ |= res & 0xFF;
29763 DREGu8((Opcode >> 9) & 7) = res;
29773 src = DREGu16((Opcode >> 0) & 7);
29774 dst = DREGu16((Opcode >> 9) & 7);
29775 res = dst - src - ((flag_X >> 8) & 1);
29776 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29777 flag_N = flag_X = flag_C = res >> 8;
29778 flag_NotZ |= res & 0xFFFF;
29779 DREGu16((Opcode >> 9) & 7) = res;
29789 src = DREGu32((Opcode >> 0) & 7);
29790 dst = DREGu32((Opcode >> 9) & 7);
29791 res = dst - src - ((flag_X >> 8) & 1);
29793 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29794 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29795 flag_N = res >> 24;
29796 DREGu32((Opcode >> 9) & 7) = res;
29806 adr = AREG((Opcode >> 0) & 7) - 1;
29807 AREG((Opcode >> 0) & 7) = adr;
29809 READ_BYTE_F(adr, src)
29810 adr = AREG((Opcode >> 9) & 7) - 1;
29811 AREG((Opcode >> 9) & 7) = adr;
29812 READ_BYTE_F(adr, dst)
29813 res = dst - src - ((flag_X >> 8) & 1);
29814 flag_N = flag_X = flag_C = res;
29815 flag_V = (src ^ dst) & (res ^ dst);
29816 flag_NotZ |= res & 0xFF;
29817 WRITE_BYTE_F(adr, res)
29828 adr = AREG((Opcode >> 0) & 7) - 2;
29829 AREG((Opcode >> 0) & 7) = adr;
29831 READ_WORD_F(adr, src)
29832 adr = AREG((Opcode >> 9) & 7) - 2;
29833 AREG((Opcode >> 9) & 7) = adr;
29834 READ_WORD_F(adr, dst)
29835 res = dst - src - ((flag_X >> 8) & 1);
29836 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29837 flag_N = flag_X = flag_C = res >> 8;
29838 flag_NotZ |= res & 0xFFFF;
29839 WRITE_WORD_F(adr, res)
29850 adr = AREG((Opcode >> 0) & 7) - 4;
29851 AREG((Opcode >> 0) & 7) = adr;
29853 READ_LONG_F(adr, src)
29854 adr = AREG((Opcode >> 9) & 7) - 4;
29855 AREG((Opcode >> 9) & 7) = adr;
29856 READ_LONG_F(adr, dst)
29857 res = dst - src - ((flag_X >> 8) & 1);
29859 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29860 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29861 flag_N = res >> 24;
29862 WRITE_LONG_F(adr, res)
29876 READ_BYTE_F(adr, src)
29877 adr = AREG((Opcode >> 9) & 7) - 1;
29878 AREG((Opcode >> 9) & 7) = adr;
29879 READ_BYTE_F(adr, dst)
29880 res = dst - src - ((flag_X >> 8) & 1);
29881 flag_N = flag_X = flag_C = res;
29882 flag_V = (src ^ dst) & (res ^ dst);
29883 flag_NotZ |= res & 0xFF;
29884 WRITE_BYTE_F(adr, res)
29898 READ_WORD_F(adr, src)
29899 adr = AREG((Opcode >> 9) & 7) - 2;
29900 AREG((Opcode >> 9) & 7) = adr;
29901 READ_WORD_F(adr, dst)
29902 res = dst - src - ((flag_X >> 8) & 1);
29903 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29904 flag_N = flag_X = flag_C = res >> 8;
29905 flag_NotZ |= res & 0xFFFF;
29906 WRITE_WORD_F(adr, res)
29920 READ_LONG_F(adr, src)
29921 adr = AREG((Opcode >> 9) & 7) - 4;
29922 AREG((Opcode >> 9) & 7) = adr;
29923 READ_LONG_F(adr, dst)
29924 res = dst - src - ((flag_X >> 8) & 1);
29926 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29927 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29928 flag_N = res >> 24;
29929 WRITE_LONG_F(adr, res)
29940 adr = AREG((Opcode >> 0) & 7) - 1;
29941 AREG((Opcode >> 0) & 7) = adr;
29943 READ_BYTE_F(adr, src)
29946 READ_BYTE_F(adr, dst)
29947 res = dst - src - ((flag_X >> 8) & 1);
29948 flag_N = flag_X = flag_C = res;
29949 flag_V = (src ^ dst) & (res ^ dst);
29950 flag_NotZ |= res & 0xFF;
29951 WRITE_BYTE_F(adr, res)
29962 adr = AREG((Opcode >> 0) & 7) - 2;
29963 AREG((Opcode >> 0) & 7) = adr;
29965 READ_WORD_F(adr, src)
29968 READ_WORD_F(adr, dst)
29969 res = dst - src - ((flag_X >> 8) & 1);
29970 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29971 flag_N = flag_X = flag_C = res >> 8;
29972 flag_NotZ |= res & 0xFFFF;
29973 WRITE_WORD_F(adr, res)
29984 adr = AREG((Opcode >> 0) & 7) - 4;
29985 AREG((Opcode >> 0) & 7) = adr;
29987 READ_LONG_F(adr, src)
29990 READ_LONG_F(adr, dst)
29991 res = dst - src - ((flag_X >> 8) & 1);
29993 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29994 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29995 flag_N = res >> 24;
29996 WRITE_LONG_F(adr, res)
30010 READ_BYTE_F(adr, src)
30013 READ_BYTE_F(adr, dst)
30014 res = dst - src - ((flag_X >> 8) & 1);
30015 flag_N = flag_X = flag_C = res;
30016 flag_V = (src ^ dst) & (res ^ dst);
30017 flag_NotZ |= res & 0xFF;
30018 WRITE_BYTE_F(adr, res)
30032 READ_WORD_F(adr, src)
30035 READ_WORD_F(adr, dst)
30036 res = dst - src - ((flag_X >> 8) & 1);
30037 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30038 flag_N = flag_X = flag_C = res >> 8;
30039 flag_NotZ |= res & 0xFFFF;
30040 WRITE_WORD_F(adr, res)
30054 READ_LONG_F(adr, src)
30057 READ_LONG_F(adr, dst)
30058 res = dst - src - ((flag_X >> 8) & 1);
30060 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
30061 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
30062 flag_N = res >> 24;
30063 WRITE_LONG_F(adr, res)
30074 src = (s32)DREGs16((Opcode >> 0) & 7);
30075 dst = AREGu32((Opcode >> 9) & 7);
30077 AREG((Opcode >> 9) & 7) = res;
30087 src = (s32)AREGs16((Opcode >> 0) & 7);
30088 dst = AREGu32((Opcode >> 9) & 7);
30090 AREG((Opcode >> 9) & 7) = res;
30100 adr = AREG((Opcode >> 0) & 7);
30102 READSX_WORD_F(adr, src)
30103 dst = AREGu32((Opcode >> 9) & 7);
30105 AREG((Opcode >> 9) & 7) = res;
30107 #ifdef USE_CYCLONE_TIMING
30120 adr = AREG((Opcode >> 0) & 7);
30121 AREG((Opcode >> 0) & 7) += 2;
30123 READSX_WORD_F(adr, src)
30124 dst = AREGu32((Opcode >> 9) & 7);
30126 AREG((Opcode >> 9) & 7) = res;
30128 #ifdef USE_CYCLONE_TIMING
30141 adr = AREG((Opcode >> 0) & 7) - 2;
30142 AREG((Opcode >> 0) & 7) = adr;
30144 READSX_WORD_F(adr, src)
30145 dst = AREGu32((Opcode >> 9) & 7);
30147 AREG((Opcode >> 9) & 7) = res;
30149 #ifdef USE_CYCLONE_TIMING
30163 adr += AREG((Opcode >> 0) & 7);
30165 READSX_WORD_F(adr, src)
30166 dst = AREGu32((Opcode >> 9) & 7);
30168 AREG((Opcode >> 9) & 7) = res;
30170 #ifdef USE_CYCLONE_TIMING
30183 adr = AREG((Opcode >> 0) & 7);
30186 READSX_WORD_F(adr, src)
30187 dst = AREGu32((Opcode >> 9) & 7);
30189 AREG((Opcode >> 9) & 7) = res;
30191 #ifdef USE_CYCLONE_TIMING
30206 READSX_WORD_F(adr, src)
30207 dst = AREGu32((Opcode >> 9) & 7);
30209 AREG((Opcode >> 9) & 7) = res;
30211 #ifdef USE_CYCLONE_TIMING
30226 READSX_WORD_F(adr, src)
30227 dst = AREGu32((Opcode >> 9) & 7);
30229 AREG((Opcode >> 9) & 7) = res;
30231 #ifdef USE_CYCLONE_TIMING
30244 adr = GET_SWORD + ((u32)(PC) - BasePC);
30247 READSX_WORD_F(adr, src)
30248 dst = AREGu32((Opcode >> 9) & 7);
30250 AREG((Opcode >> 9) & 7) = res;
30252 #ifdef USE_CYCLONE_TIMING
30265 adr = (u32)(PC) - BasePC;
30268 READSX_WORD_F(adr, src)
30269 dst = AREGu32((Opcode >> 9) & 7);
30271 AREG((Opcode >> 9) & 7) = res;
30273 #ifdef USE_CYCLONE_TIMING
30287 dst = AREGu32((Opcode >> 9) & 7);
30289 AREG((Opcode >> 9) & 7) = res;
30302 READSX_WORD_F(adr, src)
30303 dst = AREGu32((Opcode >> 9) & 7);
30305 AREG((Opcode >> 9) & 7) = res;
30307 #ifdef USE_CYCLONE_TIMING
30323 READSX_WORD_F(adr, src)
30324 dst = AREGu32((Opcode >> 9) & 7);
30326 AREG((Opcode >> 9) & 7) = res;
30328 #ifdef USE_CYCLONE_TIMING
30341 src = (s32)DREGs32((Opcode >> 0) & 7);
30342 dst = AREGu32((Opcode >> 9) & 7);
30344 AREG((Opcode >> 9) & 7) = res;
30345 #ifdef USE_CYCLONE_TIMING
30358 src = (s32)AREGs32((Opcode >> 0) & 7);
30359 dst = AREGu32((Opcode >> 9) & 7);
30361 AREG((Opcode >> 9) & 7) = res;
30362 #ifdef USE_CYCLONE_TIMING
30375 adr = AREG((Opcode >> 0) & 7);
30377 READSX_LONG_F(adr, src)
30378 dst = AREGu32((Opcode >> 9) & 7);
30380 AREG((Opcode >> 9) & 7) = res;
30391 adr = AREG((Opcode >> 0) & 7);
30392 AREG((Opcode >> 0) & 7) += 4;
30394 READSX_LONG_F(adr, src)
30395 dst = AREGu32((Opcode >> 9) & 7);
30397 AREG((Opcode >> 9) & 7) = res;
30408 adr = AREG((Opcode >> 0) & 7) - 4;
30409 AREG((Opcode >> 0) & 7) = adr;
30411 READSX_LONG_F(adr, src)
30412 dst = AREGu32((Opcode >> 9) & 7);
30414 AREG((Opcode >> 9) & 7) = res;
30426 adr += AREG((Opcode >> 0) & 7);
30428 READSX_LONG_F(adr, src)
30429 dst = AREGu32((Opcode >> 9) & 7);
30431 AREG((Opcode >> 9) & 7) = res;
30442 adr = AREG((Opcode >> 0) & 7);
30445 READSX_LONG_F(adr, src)
30446 dst = AREGu32((Opcode >> 9) & 7);
30448 AREG((Opcode >> 9) & 7) = res;
30461 READSX_LONG_F(adr, src)
30462 dst = AREGu32((Opcode >> 9) & 7);
30464 AREG((Opcode >> 9) & 7) = res;
30477 READSX_LONG_F(adr, src)
30478 dst = AREGu32((Opcode >> 9) & 7);
30480 AREG((Opcode >> 9) & 7) = res;
30491 adr = GET_SWORD + ((u32)(PC) - BasePC);
30494 READSX_LONG_F(adr, src)
30495 dst = AREGu32((Opcode >> 9) & 7);
30497 AREG((Opcode >> 9) & 7) = res;
30508 adr = (u32)(PC) - BasePC;
30511 READSX_LONG_F(adr, src)
30512 dst = AREGu32((Opcode >> 9) & 7);
30514 AREG((Opcode >> 9) & 7) = res;
30526 dst = AREGu32((Opcode >> 9) & 7);
30528 AREG((Opcode >> 9) & 7) = res;
30529 #ifdef USE_CYCLONE_TIMING
30545 READSX_LONG_F(adr, src)
30546 dst = AREGu32((Opcode >> 9) & 7);
30548 AREG((Opcode >> 9) & 7) = res;
30562 READSX_LONG_F(adr, src)
30563 dst = AREGu32((Opcode >> 9) & 7);
30565 AREG((Opcode >> 9) & 7) = res;
30576 src = DREGu8((Opcode >> 0) & 7);
30577 dst = DREGu8((Opcode >> 9) & 7);
30579 flag_N = flag_C = res;
30580 flag_V = (src ^ dst) & (res ^ dst);
30581 flag_NotZ = res & 0xFF;
30592 // can't read byte from Ax registers !
30593 m68kcontext.execinfo |= M68K_FAULTED;
30594 m68kcontext.io_cycle_counter = 0;
30596 goto famec_Exec_End;
30597 dst = DREGu8((Opcode >> 9) & 7);
30599 flag_N = flag_C = res;
30600 flag_V = (src ^ dst) & (res ^ dst);
30601 flag_NotZ = res & 0xFF;
30613 adr = AREG((Opcode >> 0) & 7);
30615 READ_BYTE_F(adr, src)
30616 dst = DREGu8((Opcode >> 9) & 7);
30618 flag_N = flag_C = res;
30619 flag_V = (src ^ dst) & (res ^ dst);
30620 flag_NotZ = res & 0xFF;
30631 adr = AREG((Opcode >> 0) & 7);
30632 AREG((Opcode >> 0) & 7) += 1;
30634 READ_BYTE_F(adr, src)
30635 dst = DREGu8((Opcode >> 9) & 7);
30637 flag_N = flag_C = res;
30638 flag_V = (src ^ dst) & (res ^ dst);
30639 flag_NotZ = res & 0xFF;
30650 adr = AREG((Opcode >> 0) & 7) - 1;
30651 AREG((Opcode >> 0) & 7) = adr;
30653 READ_BYTE_F(adr, src)
30654 dst = DREGu8((Opcode >> 9) & 7);
30656 flag_N = flag_C = res;
30657 flag_V = (src ^ dst) & (res ^ dst);
30658 flag_NotZ = res & 0xFF;
30670 adr += AREG((Opcode >> 0) & 7);
30672 READ_BYTE_F(adr, src)
30673 dst = DREGu8((Opcode >> 9) & 7);
30675 flag_N = flag_C = res;
30676 flag_V = (src ^ dst) & (res ^ dst);
30677 flag_NotZ = res & 0xFF;
30688 adr = AREG((Opcode >> 0) & 7);
30691 READ_BYTE_F(adr, src)
30692 dst = DREGu8((Opcode >> 9) & 7);
30694 flag_N = flag_C = res;
30695 flag_V = (src ^ dst) & (res ^ dst);
30696 flag_NotZ = res & 0xFF;
30709 READ_BYTE_F(adr, src)
30710 dst = DREGu8((Opcode >> 9) & 7);
30712 flag_N = flag_C = res;
30713 flag_V = (src ^ dst) & (res ^ dst);
30714 flag_NotZ = res & 0xFF;
30727 READ_BYTE_F(adr, src)
30728 dst = DREGu8((Opcode >> 9) & 7);
30730 flag_N = flag_C = res;
30731 flag_V = (src ^ dst) & (res ^ dst);
30732 flag_NotZ = res & 0xFF;
30743 adr = GET_SWORD + ((u32)(PC) - BasePC);
30746 READ_BYTE_F(adr, src)
30747 dst = DREGu8((Opcode >> 9) & 7);
30749 flag_N = flag_C = res;
30750 flag_V = (src ^ dst) & (res ^ dst);
30751 flag_NotZ = res & 0xFF;
30762 adr = (u32)(PC) - BasePC;
30765 READ_BYTE_F(adr, src)
30766 dst = DREGu8((Opcode >> 9) & 7);
30768 flag_N = flag_C = res;
30769 flag_V = (src ^ dst) & (res ^ dst);
30770 flag_NotZ = res & 0xFF;
30782 dst = DREGu8((Opcode >> 9) & 7);
30784 flag_N = flag_C = res;
30785 flag_V = (src ^ dst) & (res ^ dst);
30786 flag_NotZ = res & 0xFF;
30799 READ_BYTE_F(adr, src)
30800 dst = DREGu8((Opcode >> 9) & 7);
30802 flag_N = flag_C = res;
30803 flag_V = (src ^ dst) & (res ^ dst);
30804 flag_NotZ = res & 0xFF;
30818 READ_BYTE_F(adr, src)
30819 dst = DREGu8((Opcode >> 9) & 7);
30821 flag_N = flag_C = res;
30822 flag_V = (src ^ dst) & (res ^ dst);
30823 flag_NotZ = res & 0xFF;
30834 src = DREGu16((Opcode >> 0) & 7);
30835 dst = DREGu16((Opcode >> 9) & 7);
30837 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30838 flag_N = flag_C = res >> 8;
30839 flag_NotZ = res & 0xFFFF;
30849 src = AREGu16((Opcode >> 0) & 7);
30850 dst = DREGu16((Opcode >> 9) & 7);
30852 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30853 flag_N = flag_C = res >> 8;
30854 flag_NotZ = res & 0xFFFF;
30864 adr = AREG((Opcode >> 0) & 7);
30866 READ_WORD_F(adr, src)
30867 dst = DREGu16((Opcode >> 9) & 7);
30869 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30870 flag_N = flag_C = res >> 8;
30871 flag_NotZ = res & 0xFFFF;
30882 adr = AREG((Opcode >> 0) & 7);
30883 AREG((Opcode >> 0) & 7) += 2;
30885 READ_WORD_F(adr, src)
30886 dst = DREGu16((Opcode >> 9) & 7);
30888 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30889 flag_N = flag_C = res >> 8;
30890 flag_NotZ = res & 0xFFFF;
30901 adr = AREG((Opcode >> 0) & 7) - 2;
30902 AREG((Opcode >> 0) & 7) = adr;
30904 READ_WORD_F(adr, src)
30905 dst = DREGu16((Opcode >> 9) & 7);
30907 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30908 flag_N = flag_C = res >> 8;
30909 flag_NotZ = res & 0xFFFF;
30921 adr += AREG((Opcode >> 0) & 7);
30923 READ_WORD_F(adr, src)
30924 dst = DREGu16((Opcode >> 9) & 7);
30926 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30927 flag_N = flag_C = res >> 8;
30928 flag_NotZ = res & 0xFFFF;
30939 adr = AREG((Opcode >> 0) & 7);
30942 READ_WORD_F(adr, src)
30943 dst = DREGu16((Opcode >> 9) & 7);
30945 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30946 flag_N = flag_C = res >> 8;
30947 flag_NotZ = res & 0xFFFF;
30960 READ_WORD_F(adr, src)
30961 dst = DREGu16((Opcode >> 9) & 7);
30963 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30964 flag_N = flag_C = res >> 8;
30965 flag_NotZ = res & 0xFFFF;
30978 READ_WORD_F(adr, src)
30979 dst = DREGu16((Opcode >> 9) & 7);
30981 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30982 flag_N = flag_C = res >> 8;
30983 flag_NotZ = res & 0xFFFF;
30994 adr = GET_SWORD + ((u32)(PC) - BasePC);
30997 READ_WORD_F(adr, src)
30998 dst = DREGu16((Opcode >> 9) & 7);
31000 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31001 flag_N = flag_C = res >> 8;
31002 flag_NotZ = res & 0xFFFF;
31013 adr = (u32)(PC) - BasePC;
31016 READ_WORD_F(adr, src)
31017 dst = DREGu16((Opcode >> 9) & 7);
31019 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31020 flag_N = flag_C = res >> 8;
31021 flag_NotZ = res & 0xFFFF;
31033 dst = DREGu16((Opcode >> 9) & 7);
31035 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31036 flag_N = flag_C = res >> 8;
31037 flag_NotZ = res & 0xFFFF;
31050 READ_WORD_F(adr, src)
31051 dst = DREGu16((Opcode >> 9) & 7);
31053 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31054 flag_N = flag_C = res >> 8;
31055 flag_NotZ = res & 0xFFFF;
31069 READ_WORD_F(adr, src)
31070 dst = DREGu16((Opcode >> 9) & 7);
31072 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31073 flag_N = flag_C = res >> 8;
31074 flag_NotZ = res & 0xFFFF;
31085 src = DREGu32((Opcode >> 0) & 7);
31086 dst = DREGu32((Opcode >> 9) & 7);
31089 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31090 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31091 flag_N = res >> 24;
31101 src = AREGu32((Opcode >> 0) & 7);
31102 dst = DREGu32((Opcode >> 9) & 7);
31105 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31106 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31107 flag_N = res >> 24;
31117 adr = AREG((Opcode >> 0) & 7);
31119 READ_LONG_F(adr, src)
31120 dst = DREGu32((Opcode >> 9) & 7);
31123 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31124 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31125 flag_N = res >> 24;
31136 adr = AREG((Opcode >> 0) & 7);
31137 AREG((Opcode >> 0) & 7) += 4;
31139 READ_LONG_F(adr, src)
31140 dst = DREGu32((Opcode >> 9) & 7);
31143 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31144 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31145 flag_N = res >> 24;
31156 adr = AREG((Opcode >> 0) & 7) - 4;
31157 AREG((Opcode >> 0) & 7) = adr;
31159 READ_LONG_F(adr, src)
31160 dst = DREGu32((Opcode >> 9) & 7);
31163 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31164 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31165 flag_N = res >> 24;
31177 adr += AREG((Opcode >> 0) & 7);
31179 READ_LONG_F(adr, src)
31180 dst = DREGu32((Opcode >> 9) & 7);
31183 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31184 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31185 flag_N = res >> 24;
31196 adr = AREG((Opcode >> 0) & 7);
31199 READ_LONG_F(adr, src)
31200 dst = DREGu32((Opcode >> 9) & 7);
31203 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31204 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31205 flag_N = res >> 24;
31218 READ_LONG_F(adr, src)
31219 dst = DREGu32((Opcode >> 9) & 7);
31222 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31223 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31224 flag_N = res >> 24;
31237 READ_LONG_F(adr, src)
31238 dst = DREGu32((Opcode >> 9) & 7);
31241 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31242 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31243 flag_N = res >> 24;
31254 adr = GET_SWORD + ((u32)(PC) - BasePC);
31257 READ_LONG_F(adr, src)
31258 dst = DREGu32((Opcode >> 9) & 7);
31261 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31262 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31263 flag_N = res >> 24;
31274 adr = (u32)(PC) - BasePC;
31277 READ_LONG_F(adr, src)
31278 dst = DREGu32((Opcode >> 9) & 7);
31281 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31282 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31283 flag_N = res >> 24;
31295 dst = DREGu32((Opcode >> 9) & 7);
31298 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31299 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31300 flag_N = res >> 24;
31313 READ_LONG_F(adr, src)
31314 dst = DREGu32((Opcode >> 9) & 7);
31317 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31318 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31319 flag_N = res >> 24;
31333 READ_LONG_F(adr, src)
31334 dst = DREGu32((Opcode >> 9) & 7);
31337 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31338 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31339 flag_N = res >> 24;
31350 adr = AREG((Opcode >> 0) & 7);
31351 AREG((Opcode >> 0) & 7) += 1;
31353 READ_BYTE_F(adr, src)
31354 adr = AREG((Opcode >> 9) & 7);
31355 AREG((Opcode >> 9) & 7) += 1;
31356 READ_BYTE_F(adr, dst)
31358 flag_N = flag_C = res;
31359 flag_V = (src ^ dst) & (res ^ dst);
31360 flag_NotZ = res & 0xFF;
31371 adr = AREG((Opcode >> 0) & 7);
31372 AREG((Opcode >> 0) & 7) += 2;
31374 READ_WORD_F(adr, src)
31375 adr = AREG((Opcode >> 9) & 7);
31376 AREG((Opcode >> 9) & 7) += 2;
31377 READ_WORD_F(adr, dst)
31379 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31380 flag_N = flag_C = res >> 8;
31381 flag_NotZ = res & 0xFFFF;
31392 adr = AREG((Opcode >> 0) & 7);
31393 AREG((Opcode >> 0) & 7) += 4;
31395 READ_LONG_F(adr, src)
31396 adr = AREG((Opcode >> 9) & 7);
31397 AREG((Opcode >> 9) & 7) += 4;
31398 READ_LONG_F(adr, dst)
31401 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31402 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31403 flag_N = res >> 24;
31417 READ_BYTE_F(adr, src)
31418 adr = AREG((Opcode >> 9) & 7);
31419 AREG((Opcode >> 9) & 7) += 1;
31420 READ_BYTE_F(adr, dst)
31422 flag_N = flag_C = res;
31423 flag_V = (src ^ dst) & (res ^ dst);
31424 flag_NotZ = res & 0xFF;
31438 READ_WORD_F(adr, src)
31439 adr = AREG((Opcode >> 9) & 7);
31440 AREG((Opcode >> 9) & 7) += 2;
31441 READ_WORD_F(adr, dst)
31443 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31444 flag_N = flag_C = res >> 8;
31445 flag_NotZ = res & 0xFFFF;
31459 READ_LONG_F(adr, src)
31460 adr = AREG((Opcode >> 9) & 7);
31461 AREG((Opcode >> 9) & 7) += 4;
31462 READ_LONG_F(adr, dst)
31465 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31466 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31467 flag_N = res >> 24;
31478 adr = AREG((Opcode >> 0) & 7);
31479 AREG((Opcode >> 0) & 7) += 1;
31481 READ_BYTE_F(adr, src)
31484 READ_BYTE_F(adr, dst)
31486 flag_N = flag_C = res;
31487 flag_V = (src ^ dst) & (res ^ dst);
31488 flag_NotZ = res & 0xFF;
31499 adr = AREG((Opcode >> 0) & 7);
31500 AREG((Opcode >> 0) & 7) += 2;
31502 READ_WORD_F(adr, src)
31505 READ_WORD_F(adr, dst)
31507 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31508 flag_N = flag_C = res >> 8;
31509 flag_NotZ = res & 0xFFFF;
31520 adr = AREG((Opcode >> 0) & 7);
31521 AREG((Opcode >> 0) & 7) += 4;
31523 READ_LONG_F(adr, src)
31526 READ_LONG_F(adr, dst)
31529 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31530 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31531 flag_N = res >> 24;
31545 READ_BYTE_F(adr, src)
31548 READ_BYTE_F(adr, dst)
31550 flag_N = flag_C = res;
31551 flag_V = (src ^ dst) & (res ^ dst);
31552 flag_NotZ = res & 0xFF;
31566 READ_WORD_F(adr, src)
31569 READ_WORD_F(adr, dst)
31571 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31572 flag_N = flag_C = res >> 8;
31573 flag_NotZ = res & 0xFFFF;
31587 READ_LONG_F(adr, src)
31590 READ_LONG_F(adr, dst)
31593 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31594 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31595 flag_N = res >> 24;
31606 src = DREGu8((Opcode >> 9) & 7);
31607 res = DREGu8((Opcode >> 0) & 7);
31613 DREGu8((Opcode >> 0) & 7) = res;
31623 src = DREGu8((Opcode >> 9) & 7);
31624 adr = AREG((Opcode >> 0) & 7);
31626 READ_BYTE_F(adr, res)
31632 WRITE_BYTE_F(adr, res)
31643 src = DREGu8((Opcode >> 9) & 7);
31644 adr = AREG((Opcode >> 0) & 7);
31645 AREG((Opcode >> 0) & 7) += 1;
31647 READ_BYTE_F(adr, res)
31653 WRITE_BYTE_F(adr, res)
31664 src = DREGu8((Opcode >> 9) & 7);
31665 adr = AREG((Opcode >> 0) & 7) - 1;
31666 AREG((Opcode >> 0) & 7) = adr;
31668 READ_BYTE_F(adr, res)
31674 WRITE_BYTE_F(adr, res)
31685 src = DREGu8((Opcode >> 9) & 7);
31687 adr += AREG((Opcode >> 0) & 7);
31689 READ_BYTE_F(adr, res)
31695 WRITE_BYTE_F(adr, res)
31706 src = DREGu8((Opcode >> 9) & 7);
31707 adr = AREG((Opcode >> 0) & 7);
31710 READ_BYTE_F(adr, res)
31716 WRITE_BYTE_F(adr, res)
31727 src = DREGu8((Opcode >> 9) & 7);
31730 READ_BYTE_F(adr, res)
31736 WRITE_BYTE_F(adr, res)
31747 src = DREGu8((Opcode >> 9) & 7);
31750 READ_BYTE_F(adr, res)
31756 WRITE_BYTE_F(adr, res)
31767 src = DREGu8((Opcode >> 9) & 7);
31771 READ_BYTE_F(adr, res)
31777 WRITE_BYTE_F(adr, res)
31788 src = DREGu8((Opcode >> 9) & 7);
31792 READ_BYTE_F(adr, res)
31798 WRITE_BYTE_F(adr, res)
31809 src = DREGu16((Opcode >> 9) & 7);
31810 res = DREGu16((Opcode >> 0) & 7);
31816 DREGu16((Opcode >> 0) & 7) = res;
31826 src = DREGu16((Opcode >> 9) & 7);
31827 adr = AREG((Opcode >> 0) & 7);
31829 READ_WORD_F(adr, res)
31835 WRITE_WORD_F(adr, res)
31846 src = DREGu16((Opcode >> 9) & 7);
31847 adr = AREG((Opcode >> 0) & 7);
31848 AREG((Opcode >> 0) & 7) += 2;
31850 READ_WORD_F(adr, res)
31856 WRITE_WORD_F(adr, res)
31867 src = DREGu16((Opcode >> 9) & 7);
31868 adr = AREG((Opcode >> 0) & 7) - 2;
31869 AREG((Opcode >> 0) & 7) = adr;
31871 READ_WORD_F(adr, res)
31877 WRITE_WORD_F(adr, res)
31888 src = DREGu16((Opcode >> 9) & 7);
31890 adr += AREG((Opcode >> 0) & 7);
31892 READ_WORD_F(adr, res)
31898 WRITE_WORD_F(adr, res)
31909 src = DREGu16((Opcode >> 9) & 7);
31910 adr = AREG((Opcode >> 0) & 7);
31913 READ_WORD_F(adr, res)
31919 WRITE_WORD_F(adr, res)
31930 src = DREGu16((Opcode >> 9) & 7);
31933 READ_WORD_F(adr, res)
31939 WRITE_WORD_F(adr, res)
31950 src = DREGu16((Opcode >> 9) & 7);
31953 READ_WORD_F(adr, res)
31959 WRITE_WORD_F(adr, res)
31970 src = DREGu16((Opcode >> 9) & 7);
31974 READ_WORD_F(adr, res)
31980 WRITE_WORD_F(adr, res)
31991 src = DREGu16((Opcode >> 9) & 7);
31995 READ_WORD_F(adr, res)
32001 WRITE_WORD_F(adr, res)
32012 src = DREGu32((Opcode >> 9) & 7);
32013 res = DREGu32((Opcode >> 0) & 7);
32018 flag_N = res >> 24;
32019 DREGu32((Opcode >> 0) & 7) = res;
32029 src = DREGu32((Opcode >> 9) & 7);
32030 adr = AREG((Opcode >> 0) & 7);
32032 READ_LONG_F(adr, res)
32037 flag_N = res >> 24;
32038 WRITE_LONG_F(adr, res)
32049 src = DREGu32((Opcode >> 9) & 7);
32050 adr = AREG((Opcode >> 0) & 7);
32051 AREG((Opcode >> 0) & 7) += 4;
32053 READ_LONG_F(adr, res)
32058 flag_N = res >> 24;
32059 WRITE_LONG_F(adr, res)
32070 src = DREGu32((Opcode >> 9) & 7);
32071 adr = AREG((Opcode >> 0) & 7) - 4;
32072 AREG((Opcode >> 0) & 7) = adr;
32074 READ_LONG_F(adr, res)
32079 flag_N = res >> 24;
32080 WRITE_LONG_F(adr, res)
32091 src = DREGu32((Opcode >> 9) & 7);
32093 adr += AREG((Opcode >> 0) & 7);
32095 READ_LONG_F(adr, res)
32100 flag_N = res >> 24;
32101 WRITE_LONG_F(adr, res)
32112 src = DREGu32((Opcode >> 9) & 7);
32113 adr = AREG((Opcode >> 0) & 7);
32116 READ_LONG_F(adr, res)
32121 flag_N = res >> 24;
32122 WRITE_LONG_F(adr, res)
32133 src = DREGu32((Opcode >> 9) & 7);
32136 READ_LONG_F(adr, res)
32141 flag_N = res >> 24;
32142 WRITE_LONG_F(adr, res)
32153 src = DREGu32((Opcode >> 9) & 7);
32156 READ_LONG_F(adr, res)
32161 flag_N = res >> 24;
32162 WRITE_LONG_F(adr, res)
32173 src = DREGu32((Opcode >> 9) & 7);
32177 READ_LONG_F(adr, res)
32182 flag_N = res >> 24;
32183 WRITE_LONG_F(adr, res)
32194 src = DREGu32((Opcode >> 9) & 7);
32198 READ_LONG_F(adr, res)
32203 flag_N = res >> 24;
32204 WRITE_LONG_F(adr, res)
32215 src = (s32)DREGs16((Opcode >> 0) & 7);
32216 dst = AREGu32((Opcode >> 9) & 7);
32219 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32220 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32221 flag_N = res >> 24;
32231 src = (s32)AREGs16((Opcode >> 0) & 7);
32232 dst = AREGu32((Opcode >> 9) & 7);
32235 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32236 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32237 flag_N = res >> 24;
32247 adr = AREG((Opcode >> 0) & 7);
32249 READSX_WORD_F(adr, src)
32250 dst = AREGu32((Opcode >> 9) & 7);
32253 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32254 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32255 flag_N = res >> 24;
32266 adr = AREG((Opcode >> 0) & 7);
32267 AREG((Opcode >> 0) & 7) += 2;
32269 READSX_WORD_F(adr, src)
32270 dst = AREGu32((Opcode >> 9) & 7);
32273 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32274 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32275 flag_N = res >> 24;
32286 adr = AREG((Opcode >> 0) & 7) - 2;
32287 AREG((Opcode >> 0) & 7) = adr;
32289 READSX_WORD_F(adr, src)
32290 dst = AREGu32((Opcode >> 9) & 7);
32293 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32294 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32295 flag_N = res >> 24;
32307 adr += AREG((Opcode >> 0) & 7);
32309 READSX_WORD_F(adr, src)
32310 dst = AREGu32((Opcode >> 9) & 7);
32313 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32314 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32315 flag_N = res >> 24;
32326 adr = AREG((Opcode >> 0) & 7);
32329 READSX_WORD_F(adr, src)
32330 dst = AREGu32((Opcode >> 9) & 7);
32333 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32334 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32335 flag_N = res >> 24;
32348 READSX_WORD_F(adr, src)
32349 dst = AREGu32((Opcode >> 9) & 7);
32352 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32353 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32354 flag_N = res >> 24;
32367 READSX_WORD_F(adr, src)
32368 dst = AREGu32((Opcode >> 9) & 7);
32371 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32372 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32373 flag_N = res >> 24;
32384 adr = GET_SWORD + ((u32)(PC) - BasePC);
32387 READSX_WORD_F(adr, src)
32388 dst = AREGu32((Opcode >> 9) & 7);
32391 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32392 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32393 flag_N = res >> 24;
32404 adr = (u32)(PC) - BasePC;
32407 READSX_WORD_F(adr, src)
32408 dst = AREGu32((Opcode >> 9) & 7);
32411 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32412 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32413 flag_N = res >> 24;
32425 dst = AREGu32((Opcode >> 9) & 7);
32428 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32429 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32430 flag_N = res >> 24;
32443 READSX_WORD_F(adr, src)
32444 dst = AREGu32((Opcode >> 9) & 7);
32447 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32448 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32449 flag_N = res >> 24;
32463 READSX_WORD_F(adr, src)
32464 dst = AREGu32((Opcode >> 9) & 7);
32467 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32468 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32469 flag_N = res >> 24;
32480 src = (s32)DREGs32((Opcode >> 0) & 7);
32481 dst = AREGu32((Opcode >> 9) & 7);
32484 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32485 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32486 flag_N = res >> 24;
32496 src = (s32)AREGs32((Opcode >> 0) & 7);
32497 dst = AREGu32((Opcode >> 9) & 7);
32500 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32501 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32502 flag_N = res >> 24;
32512 adr = AREG((Opcode >> 0) & 7);
32514 READSX_LONG_F(adr, src)
32515 dst = AREGu32((Opcode >> 9) & 7);
32518 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32519 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32520 flag_N = res >> 24;
32531 adr = AREG((Opcode >> 0) & 7);
32532 AREG((Opcode >> 0) & 7) += 4;
32534 READSX_LONG_F(adr, src)
32535 dst = AREGu32((Opcode >> 9) & 7);
32538 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32539 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32540 flag_N = res >> 24;
32551 adr = AREG((Opcode >> 0) & 7) - 4;
32552 AREG((Opcode >> 0) & 7) = adr;
32554 READSX_LONG_F(adr, src)
32555 dst = AREGu32((Opcode >> 9) & 7);
32558 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32559 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32560 flag_N = res >> 24;
32572 adr += AREG((Opcode >> 0) & 7);
32574 READSX_LONG_F(adr, src)
32575 dst = AREGu32((Opcode >> 9) & 7);
32578 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32579 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32580 flag_N = res >> 24;
32591 adr = AREG((Opcode >> 0) & 7);
32594 READSX_LONG_F(adr, src)
32595 dst = AREGu32((Opcode >> 9) & 7);
32598 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32599 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32600 flag_N = res >> 24;
32613 READSX_LONG_F(adr, src)
32614 dst = AREGu32((Opcode >> 9) & 7);
32617 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32618 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32619 flag_N = res >> 24;
32632 READSX_LONG_F(adr, src)
32633 dst = AREGu32((Opcode >> 9) & 7);
32636 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32637 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32638 flag_N = res >> 24;
32649 adr = GET_SWORD + ((u32)(PC) - BasePC);
32652 READSX_LONG_F(adr, src)
32653 dst = AREGu32((Opcode >> 9) & 7);
32656 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32657 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32658 flag_N = res >> 24;
32669 adr = (u32)(PC) - BasePC;
32672 READSX_LONG_F(adr, src)
32673 dst = AREGu32((Opcode >> 9) & 7);
32676 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32677 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32678 flag_N = res >> 24;
32690 dst = AREGu32((Opcode >> 9) & 7);
32693 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32694 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32695 flag_N = res >> 24;
32708 READSX_LONG_F(adr, src)
32709 dst = AREGu32((Opcode >> 9) & 7);
32712 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32713 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32714 flag_N = res >> 24;
32728 READSX_LONG_F(adr, src)
32729 dst = AREGu32((Opcode >> 9) & 7);
32732 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32733 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32734 flag_N = res >> 24;
32745 src = DREGu8((Opcode >> 0) & 7);
32746 res = DREGu8((Opcode >> 9) & 7);
32752 DREGu8((Opcode >> 9) & 7) = res;
32762 adr = AREG((Opcode >> 0) & 7);
32764 READ_BYTE_F(adr, src)
32765 res = DREGu8((Opcode >> 9) & 7);
32771 DREGu8((Opcode >> 9) & 7) = res;
32782 adr = AREG((Opcode >> 0) & 7);
32783 AREG((Opcode >> 0) & 7) += 1;
32785 READ_BYTE_F(adr, src)
32786 res = DREGu8((Opcode >> 9) & 7);
32792 DREGu8((Opcode >> 9) & 7) = res;
32803 adr = AREG((Opcode >> 0) & 7) - 1;
32804 AREG((Opcode >> 0) & 7) = adr;
32806 READ_BYTE_F(adr, src)
32807 res = DREGu8((Opcode >> 9) & 7);
32813 DREGu8((Opcode >> 9) & 7) = res;
32825 adr += AREG((Opcode >> 0) & 7);
32827 READ_BYTE_F(adr, src)
32828 res = DREGu8((Opcode >> 9) & 7);
32834 DREGu8((Opcode >> 9) & 7) = res;
32845 adr = AREG((Opcode >> 0) & 7);
32848 READ_BYTE_F(adr, src)
32849 res = DREGu8((Opcode >> 9) & 7);
32855 DREGu8((Opcode >> 9) & 7) = res;
32868 READ_BYTE_F(adr, src)
32869 res = DREGu8((Opcode >> 9) & 7);
32875 DREGu8((Opcode >> 9) & 7) = res;
32888 READ_BYTE_F(adr, src)
32889 res = DREGu8((Opcode >> 9) & 7);
32895 DREGu8((Opcode >> 9) & 7) = res;
32906 adr = GET_SWORD + ((u32)(PC) - BasePC);
32909 READ_BYTE_F(adr, src)
32910 res = DREGu8((Opcode >> 9) & 7);
32916 DREGu8((Opcode >> 9) & 7) = res;
32927 adr = (u32)(PC) - BasePC;
32930 READ_BYTE_F(adr, src)
32931 res = DREGu8((Opcode >> 9) & 7);
32937 DREGu8((Opcode >> 9) & 7) = res;
32949 res = DREGu8((Opcode >> 9) & 7);
32955 DREGu8((Opcode >> 9) & 7) = res;
32968 READ_BYTE_F(adr, src)
32969 res = DREGu8((Opcode >> 9) & 7);
32975 DREGu8((Opcode >> 9) & 7) = res;
32989 READ_BYTE_F(adr, src)
32990 res = DREGu8((Opcode >> 9) & 7);
32996 DREGu8((Opcode >> 9) & 7) = res;
33007 src = DREGu16((Opcode >> 0) & 7);
33008 res = DREGu16((Opcode >> 9) & 7);
33014 DREGu16((Opcode >> 9) & 7) = res;
33024 adr = AREG((Opcode >> 0) & 7);
33026 READ_WORD_F(adr, src)
33027 res = DREGu16((Opcode >> 9) & 7);
33033 DREGu16((Opcode >> 9) & 7) = res;
33044 adr = AREG((Opcode >> 0) & 7);
33045 AREG((Opcode >> 0) & 7) += 2;
33047 READ_WORD_F(adr, src)
33048 res = DREGu16((Opcode >> 9) & 7);
33054 DREGu16((Opcode >> 9) & 7) = res;
33065 adr = AREG((Opcode >> 0) & 7) - 2;
33066 AREG((Opcode >> 0) & 7) = adr;
33068 READ_WORD_F(adr, src)
33069 res = DREGu16((Opcode >> 9) & 7);
33075 DREGu16((Opcode >> 9) & 7) = res;
33087 adr += AREG((Opcode >> 0) & 7);
33089 READ_WORD_F(adr, src)
33090 res = DREGu16((Opcode >> 9) & 7);
33096 DREGu16((Opcode >> 9) & 7) = res;
33107 adr = AREG((Opcode >> 0) & 7);
33110 READ_WORD_F(adr, src)
33111 res = DREGu16((Opcode >> 9) & 7);
33117 DREGu16((Opcode >> 9) & 7) = res;
33130 READ_WORD_F(adr, src)
33131 res = DREGu16((Opcode >> 9) & 7);
33137 DREGu16((Opcode >> 9) & 7) = res;
33150 READ_WORD_F(adr, src)
33151 res = DREGu16((Opcode >> 9) & 7);
33157 DREGu16((Opcode >> 9) & 7) = res;
33168 adr = GET_SWORD + ((u32)(PC) - BasePC);
33171 READ_WORD_F(adr, src)
33172 res = DREGu16((Opcode >> 9) & 7);
33178 DREGu16((Opcode >> 9) & 7) = res;
33189 adr = (u32)(PC) - BasePC;
33192 READ_WORD_F(adr, src)
33193 res = DREGu16((Opcode >> 9) & 7);
33199 DREGu16((Opcode >> 9) & 7) = res;
33211 res = DREGu16((Opcode >> 9) & 7);
33217 DREGu16((Opcode >> 9) & 7) = res;
33230 READ_WORD_F(adr, src)
33231 res = DREGu16((Opcode >> 9) & 7);
33237 DREGu16((Opcode >> 9) & 7) = res;
33251 READ_WORD_F(adr, src)
33252 res = DREGu16((Opcode >> 9) & 7);
33258 DREGu16((Opcode >> 9) & 7) = res;
33269 src = DREGu32((Opcode >> 0) & 7);
33270 res = DREGu32((Opcode >> 9) & 7);
33275 flag_N = res >> 24;
33276 DREGu32((Opcode >> 9) & 7) = res;
33286 adr = AREG((Opcode >> 0) & 7);
33288 READ_LONG_F(adr, src)
33289 res = DREGu32((Opcode >> 9) & 7);
33294 flag_N = res >> 24;
33295 DREGu32((Opcode >> 9) & 7) = res;
33306 adr = AREG((Opcode >> 0) & 7);
33307 AREG((Opcode >> 0) & 7) += 4;
33309 READ_LONG_F(adr, src)
33310 res = DREGu32((Opcode >> 9) & 7);
33315 flag_N = res >> 24;
33316 DREGu32((Opcode >> 9) & 7) = res;
33327 adr = AREG((Opcode >> 0) & 7) - 4;
33328 AREG((Opcode >> 0) & 7) = adr;
33330 READ_LONG_F(adr, src)
33331 res = DREGu32((Opcode >> 9) & 7);
33336 flag_N = res >> 24;
33337 DREGu32((Opcode >> 9) & 7) = res;
33349 adr += AREG((Opcode >> 0) & 7);
33351 READ_LONG_F(adr, src)
33352 res = DREGu32((Opcode >> 9) & 7);
33357 flag_N = res >> 24;
33358 DREGu32((Opcode >> 9) & 7) = res;
33369 adr = AREG((Opcode >> 0) & 7);
33372 READ_LONG_F(adr, src)
33373 res = DREGu32((Opcode >> 9) & 7);
33378 flag_N = res >> 24;
33379 DREGu32((Opcode >> 9) & 7) = res;
33392 READ_LONG_F(adr, src)
33393 res = DREGu32((Opcode >> 9) & 7);
33398 flag_N = res >> 24;
33399 DREGu32((Opcode >> 9) & 7) = res;
33412 READ_LONG_F(adr, src)
33413 res = DREGu32((Opcode >> 9) & 7);
33418 flag_N = res >> 24;
33419 DREGu32((Opcode >> 9) & 7) = res;
33430 adr = GET_SWORD + ((u32)(PC) - BasePC);
33433 READ_LONG_F(adr, src)
33434 res = DREGu32((Opcode >> 9) & 7);
33439 flag_N = res >> 24;
33440 DREGu32((Opcode >> 9) & 7) = res;
33451 adr = (u32)(PC) - BasePC;
33454 READ_LONG_F(adr, src)
33455 res = DREGu32((Opcode >> 9) & 7);
33460 flag_N = res >> 24;
33461 DREGu32((Opcode >> 9) & 7) = res;
33473 res = DREGu32((Opcode >> 9) & 7);
33478 flag_N = res >> 24;
33479 DREGu32((Opcode >> 9) & 7) = res;
33492 READ_LONG_F(adr, src)
33493 res = DREGu32((Opcode >> 9) & 7);
33498 flag_N = res >> 24;
33499 DREGu32((Opcode >> 9) & 7) = res;
33513 READ_LONG_F(adr, src)
33514 res = DREGu32((Opcode >> 9) & 7);
33519 flag_N = res >> 24;
33520 DREGu32((Opcode >> 9) & 7) = res;
33531 src = DREGu8((Opcode >> 9) & 7);
33532 adr = AREG((Opcode >> 0) & 7);
33534 READ_BYTE_F(adr, res)
33540 WRITE_BYTE_F(adr, res)
33551 src = DREGu8((Opcode >> 9) & 7);
33552 adr = AREG((Opcode >> 0) & 7);
33553 AREG((Opcode >> 0) & 7) += 1;
33555 READ_BYTE_F(adr, res)
33561 WRITE_BYTE_F(adr, res)
33572 src = DREGu8((Opcode >> 9) & 7);
33573 adr = AREG((Opcode >> 0) & 7) - 1;
33574 AREG((Opcode >> 0) & 7) = adr;
33576 READ_BYTE_F(adr, res)
33582 WRITE_BYTE_F(adr, res)
33593 src = DREGu8((Opcode >> 9) & 7);
33595 adr += AREG((Opcode >> 0) & 7);
33597 READ_BYTE_F(adr, res)
33603 WRITE_BYTE_F(adr, res)
33614 src = DREGu8((Opcode >> 9) & 7);
33615 adr = AREG((Opcode >> 0) & 7);
33618 READ_BYTE_F(adr, res)
33624 WRITE_BYTE_F(adr, res)
33635 src = DREGu8((Opcode >> 9) & 7);
33638 READ_BYTE_F(adr, res)
33644 WRITE_BYTE_F(adr, res)
33655 src = DREGu8((Opcode >> 9) & 7);
33658 READ_BYTE_F(adr, res)
33664 WRITE_BYTE_F(adr, res)
33675 src = DREGu8((Opcode >> 9) & 7);
33679 READ_BYTE_F(adr, res)
33685 WRITE_BYTE_F(adr, res)
33696 src = DREGu8((Opcode >> 9) & 7);
33700 READ_BYTE_F(adr, res)
33706 WRITE_BYTE_F(adr, res)
33717 src = DREGu16((Opcode >> 9) & 7);
33718 adr = AREG((Opcode >> 0) & 7);
33720 READ_WORD_F(adr, res)
33726 WRITE_WORD_F(adr, res)
33737 src = DREGu16((Opcode >> 9) & 7);
33738 adr = AREG((Opcode >> 0) & 7);
33739 AREG((Opcode >> 0) & 7) += 2;
33741 READ_WORD_F(adr, res)
33747 WRITE_WORD_F(adr, res)
33758 src = DREGu16((Opcode >> 9) & 7);
33759 adr = AREG((Opcode >> 0) & 7) - 2;
33760 AREG((Opcode >> 0) & 7) = adr;
33762 READ_WORD_F(adr, res)
33768 WRITE_WORD_F(adr, res)
33779 src = DREGu16((Opcode >> 9) & 7);
33781 adr += AREG((Opcode >> 0) & 7);
33783 READ_WORD_F(adr, res)
33789 WRITE_WORD_F(adr, res)
33800 src = DREGu16((Opcode >> 9) & 7);
33801 adr = AREG((Opcode >> 0) & 7);
33804 READ_WORD_F(adr, res)
33810 WRITE_WORD_F(adr, res)
33821 src = DREGu16((Opcode >> 9) & 7);
33824 READ_WORD_F(adr, res)
33830 WRITE_WORD_F(adr, res)
33841 src = DREGu16((Opcode >> 9) & 7);
33844 READ_WORD_F(adr, res)
33850 WRITE_WORD_F(adr, res)
33861 src = DREGu16((Opcode >> 9) & 7);
33865 READ_WORD_F(adr, res)
33871 WRITE_WORD_F(adr, res)
33882 src = DREGu16((Opcode >> 9) & 7);
33886 READ_WORD_F(adr, res)
33892 WRITE_WORD_F(adr, res)
33903 src = DREGu32((Opcode >> 9) & 7);
33904 adr = AREG((Opcode >> 0) & 7);
33906 READ_LONG_F(adr, res)
33911 flag_N = res >> 24;
33912 WRITE_LONG_F(adr, res)
33923 src = DREGu32((Opcode >> 9) & 7);
33924 adr = AREG((Opcode >> 0) & 7);
33925 AREG((Opcode >> 0) & 7) += 4;
33927 READ_LONG_F(adr, res)
33932 flag_N = res >> 24;
33933 WRITE_LONG_F(adr, res)
33944 src = DREGu32((Opcode >> 9) & 7);
33945 adr = AREG((Opcode >> 0) & 7) - 4;
33946 AREG((Opcode >> 0) & 7) = adr;
33948 READ_LONG_F(adr, res)
33953 flag_N = res >> 24;
33954 WRITE_LONG_F(adr, res)
33965 src = DREGu32((Opcode >> 9) & 7);
33967 adr += AREG((Opcode >> 0) & 7);
33969 READ_LONG_F(adr, res)
33974 flag_N = res >> 24;
33975 WRITE_LONG_F(adr, res)
33986 src = DREGu32((Opcode >> 9) & 7);
33987 adr = AREG((Opcode >> 0) & 7);
33990 READ_LONG_F(adr, res)
33995 flag_N = res >> 24;
33996 WRITE_LONG_F(adr, res)
34007 src = DREGu32((Opcode >> 9) & 7);
34010 READ_LONG_F(adr, res)
34015 flag_N = res >> 24;
34016 WRITE_LONG_F(adr, res)
34027 src = DREGu32((Opcode >> 9) & 7);
34030 READ_LONG_F(adr, res)
34035 flag_N = res >> 24;
34036 WRITE_LONG_F(adr, res)
34047 src = DREGu32((Opcode >> 9) & 7);
34051 READ_LONG_F(adr, res)
34056 flag_N = res >> 24;
34057 WRITE_LONG_F(adr, res)
34068 src = DREGu32((Opcode >> 9) & 7);
34072 READ_LONG_F(adr, res)
34077 flag_N = res >> 24;
34078 WRITE_LONG_F(adr, res)
34089 src = DREGu8((Opcode >> 0) & 7);
34090 dst = DREGu8((Opcode >> 9) & 7);
34091 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34092 if (res > 9) res += 6;
34093 res += (dst & 0xF0) + (src & 0xF0);
34097 flag_X = flag_C = M68K_SR_C;
34099 else flag_X = flag_C = 0;
34100 flag_NotZ |= res & 0xFF;
34102 DREGu8((Opcode >> 9) & 7) = res;
34112 adr = AREG((Opcode >> 0) & 7) - 1;
34113 AREG((Opcode >> 0) & 7) = adr;
34115 READ_BYTE_F(adr, src)
34116 adr = AREG((Opcode >> 9) & 7) - 1;
34117 AREG((Opcode >> 9) & 7) = adr;
34118 READ_BYTE_F(adr, dst)
34119 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34120 if (res > 9) res += 6;
34121 res += (dst & 0xF0) + (src & 0xF0);
34125 flag_X = flag_C = M68K_SR_C;
34127 else flag_X = flag_C = 0;
34128 flag_NotZ |= res & 0xFF;
34130 WRITE_BYTE_F(adr, res)
34144 READ_BYTE_F(adr, src)
34145 adr = AREG((Opcode >> 9) & 7) - 1;
34146 AREG((Opcode >> 9) & 7) = adr;
34147 READ_BYTE_F(adr, dst)
34148 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34149 if (res > 9) res += 6;
34150 res += (dst & 0xF0) + (src & 0xF0);
34154 flag_X = flag_C = M68K_SR_C;
34156 else flag_X = flag_C = 0;
34157 flag_NotZ |= res & 0xFF;
34159 WRITE_BYTE_F(adr, res)
34170 adr = AREG((Opcode >> 0) & 7) - 1;
34171 AREG((Opcode >> 0) & 7) = adr;
34173 READ_BYTE_F(adr, src)
34176 READ_BYTE_F(adr, dst)
34177 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34178 if (res > 9) res += 6;
34179 res += (dst & 0xF0) + (src & 0xF0);
34183 flag_X = flag_C = M68K_SR_C;
34185 else flag_X = flag_C = 0;
34186 flag_NotZ |= res & 0xFF;
34188 WRITE_BYTE_F(adr, res)
34202 READ_BYTE_F(adr, src)
34205 READ_BYTE_F(adr, dst)
34206 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34207 if (res > 9) res += 6;
34208 res += (dst & 0xF0) + (src & 0xF0);
34212 flag_X = flag_C = M68K_SR_C;
34214 else flag_X = flag_C = 0;
34215 flag_NotZ |= res & 0xFF;
34217 WRITE_BYTE_F(adr, res)
34228 src = DREGu16((Opcode >> 0) & 7);
34229 res = DREGu16((Opcode >> 9) & 7);
34231 flag_N = res >> 24;
34233 flag_V = flag_C = 0;
34234 DREGu32((Opcode >> 9) & 7) = res;
34235 #ifdef USE_CYCLONE_TIMING
34248 adr = AREG((Opcode >> 0) & 7);
34250 READ_WORD_F(adr, src)
34251 res = DREGu16((Opcode >> 9) & 7);
34253 flag_N = res >> 24;
34255 flag_V = flag_C = 0;
34256 DREGu32((Opcode >> 9) & 7) = res;
34258 #ifdef USE_CYCLONE_TIMING
34271 adr = AREG((Opcode >> 0) & 7);
34272 AREG((Opcode >> 0) & 7) += 2;
34274 READ_WORD_F(adr, src)
34275 res = DREGu16((Opcode >> 9) & 7);
34277 flag_N = res >> 24;
34279 flag_V = flag_C = 0;
34280 DREGu32((Opcode >> 9) & 7) = res;
34282 #ifdef USE_CYCLONE_TIMING
34295 adr = AREG((Opcode >> 0) & 7) - 2;
34296 AREG((Opcode >> 0) & 7) = adr;
34298 READ_WORD_F(adr, src)
34299 res = DREGu16((Opcode >> 9) & 7);
34301 flag_N = res >> 24;
34303 flag_V = flag_C = 0;
34304 DREGu32((Opcode >> 9) & 7) = res;
34306 #ifdef USE_CYCLONE_TIMING
34320 adr += AREG((Opcode >> 0) & 7);
34322 READ_WORD_F(adr, src)
34323 res = DREGu16((Opcode >> 9) & 7);
34325 flag_N = res >> 24;
34327 flag_V = flag_C = 0;
34328 DREGu32((Opcode >> 9) & 7) = res;
34330 #ifdef USE_CYCLONE_TIMING
34343 adr = AREG((Opcode >> 0) & 7);
34346 READ_WORD_F(adr, src)
34347 res = DREGu16((Opcode >> 9) & 7);
34349 flag_N = res >> 24;
34351 flag_V = flag_C = 0;
34352 DREGu32((Opcode >> 9) & 7) = res;
34354 #ifdef USE_CYCLONE_TIMING
34369 READ_WORD_F(adr, src)
34370 res = DREGu16((Opcode >> 9) & 7);
34372 flag_N = res >> 24;
34374 flag_V = flag_C = 0;
34375 DREGu32((Opcode >> 9) & 7) = res;
34377 #ifdef USE_CYCLONE_TIMING
34392 READ_WORD_F(adr, src)
34393 res = DREGu16((Opcode >> 9) & 7);
34395 flag_N = res >> 24;
34397 flag_V = flag_C = 0;
34398 DREGu32((Opcode >> 9) & 7) = res;
34400 #ifdef USE_CYCLONE_TIMING
34413 adr = GET_SWORD + ((u32)(PC) - BasePC);
34416 READ_WORD_F(adr, src)
34417 res = DREGu16((Opcode >> 9) & 7);
34419 flag_N = res >> 24;
34421 flag_V = flag_C = 0;
34422 DREGu32((Opcode >> 9) & 7) = res;
34424 #ifdef USE_CYCLONE_TIMING
34437 adr = (u32)(PC) - BasePC;
34440 READ_WORD_F(adr, src)
34441 res = DREGu16((Opcode >> 9) & 7);
34443 flag_N = res >> 24;
34445 flag_V = flag_C = 0;
34446 DREGu32((Opcode >> 9) & 7) = res;
34448 #ifdef USE_CYCLONE_TIMING
34462 res = DREGu16((Opcode >> 9) & 7);
34464 flag_N = res >> 24;
34466 flag_V = flag_C = 0;
34467 DREGu32((Opcode >> 9) & 7) = res;
34468 #ifdef USE_CYCLONE_TIMING
34484 READ_WORD_F(adr, src)
34485 res = DREGu16((Opcode >> 9) & 7);
34487 flag_N = res >> 24;
34489 flag_V = flag_C = 0;
34490 DREGu32((Opcode >> 9) & 7) = res;
34492 #ifdef USE_CYCLONE_TIMING
34508 READ_WORD_F(adr, src)
34509 res = DREGu16((Opcode >> 9) & 7);
34511 flag_N = res >> 24;
34513 flag_V = flag_C = 0;
34514 DREGu32((Opcode >> 9) & 7) = res;
34516 #ifdef USE_CYCLONE_TIMING
34529 src = (s32)DREGs16((Opcode >> 0) & 7);
34530 res = (s32)DREGs16((Opcode >> 9) & 7);
34531 res = ((s32)res) * ((s32)src);
34532 flag_N = res >> 24;
34534 flag_V = flag_C = 0;
34535 DREGu32((Opcode >> 9) & 7) = res;
34536 #ifdef USE_CYCLONE_TIMING
34549 adr = AREG((Opcode >> 0) & 7);
34551 READSX_WORD_F(adr, src)
34552 res = (s32)DREGs16((Opcode >> 9) & 7);
34553 res = ((s32)res) * ((s32)src);
34554 flag_N = res >> 24;
34556 flag_V = flag_C = 0;
34557 DREGu32((Opcode >> 9) & 7) = res;
34559 #ifdef USE_CYCLONE_TIMING
34572 adr = AREG((Opcode >> 0) & 7);
34573 AREG((Opcode >> 0) & 7) += 2;
34575 READSX_WORD_F(adr, src)
34576 res = (s32)DREGs16((Opcode >> 9) & 7);
34577 res = ((s32)res) * ((s32)src);
34578 flag_N = res >> 24;
34580 flag_V = flag_C = 0;
34581 DREGu32((Opcode >> 9) & 7) = res;
34583 #ifdef USE_CYCLONE_TIMING
34596 adr = AREG((Opcode >> 0) & 7) - 2;
34597 AREG((Opcode >> 0) & 7) = adr;
34599 READSX_WORD_F(adr, src)
34600 res = (s32)DREGs16((Opcode >> 9) & 7);
34601 res = ((s32)res) * ((s32)src);
34602 flag_N = res >> 24;
34604 flag_V = flag_C = 0;
34605 DREGu32((Opcode >> 9) & 7) = res;
34607 #ifdef USE_CYCLONE_TIMING
34621 adr += AREG((Opcode >> 0) & 7);
34623 READSX_WORD_F(adr, src)
34624 res = (s32)DREGs16((Opcode >> 9) & 7);
34625 res = ((s32)res) * ((s32)src);
34626 flag_N = res >> 24;
34628 flag_V = flag_C = 0;
34629 DREGu32((Opcode >> 9) & 7) = res;
34631 #ifdef USE_CYCLONE_TIMING
34644 adr = AREG((Opcode >> 0) & 7);
34647 READSX_WORD_F(adr, src)
34648 res = (s32)DREGs16((Opcode >> 9) & 7);
34649 res = ((s32)res) * ((s32)src);
34650 flag_N = res >> 24;
34652 flag_V = flag_C = 0;
34653 DREGu32((Opcode >> 9) & 7) = res;
34655 #ifdef USE_CYCLONE_TIMING
34670 READSX_WORD_F(adr, src)
34671 res = (s32)DREGs16((Opcode >> 9) & 7);
34672 res = ((s32)res) * ((s32)src);
34673 flag_N = res >> 24;
34675 flag_V = flag_C = 0;
34676 DREGu32((Opcode >> 9) & 7) = res;
34678 #ifdef USE_CYCLONE_TIMING
34693 READSX_WORD_F(adr, src)
34694 res = (s32)DREGs16((Opcode >> 9) & 7);
34695 res = ((s32)res) * ((s32)src);
34696 flag_N = res >> 24;
34698 flag_V = flag_C = 0;
34699 DREGu32((Opcode >> 9) & 7) = res;
34701 #ifdef USE_CYCLONE_TIMING
34714 adr = GET_SWORD + ((u32)(PC) - BasePC);
34717 READSX_WORD_F(adr, src)
34718 res = (s32)DREGs16((Opcode >> 9) & 7);
34719 res = ((s32)res) * ((s32)src);
34720 flag_N = res >> 24;
34722 flag_V = flag_C = 0;
34723 DREGu32((Opcode >> 9) & 7) = res;
34725 #ifdef USE_CYCLONE_TIMING
34738 adr = (u32)(PC) - BasePC;
34741 READSX_WORD_F(adr, src)
34742 res = (s32)DREGs16((Opcode >> 9) & 7);
34743 res = ((s32)res) * ((s32)src);
34744 flag_N = res >> 24;
34746 flag_V = flag_C = 0;
34747 DREGu32((Opcode >> 9) & 7) = res;
34749 #ifdef USE_CYCLONE_TIMING
34763 res = (s32)DREGs16((Opcode >> 9) & 7);
34764 res = ((s32)res) * ((s32)src);
34765 flag_N = res >> 24;
34767 flag_V = flag_C = 0;
34768 DREGu32((Opcode >> 9) & 7) = res;
34769 #ifdef USE_CYCLONE_TIMING
34785 READSX_WORD_F(adr, src)
34786 res = (s32)DREGs16((Opcode >> 9) & 7);
34787 res = ((s32)res) * ((s32)src);
34788 flag_N = res >> 24;
34790 flag_V = flag_C = 0;
34791 DREGu32((Opcode >> 9) & 7) = res;
34793 #ifdef USE_CYCLONE_TIMING
34809 READSX_WORD_F(adr, src)
34810 res = (s32)DREGs16((Opcode >> 9) & 7);
34811 res = ((s32)res) * ((s32)src);
34812 flag_N = res >> 24;
34814 flag_V = flag_C = 0;
34815 DREGu32((Opcode >> 9) & 7) = res;
34817 #ifdef USE_CYCLONE_TIMING
34830 res = DREGu32((Opcode >> 0) & 7);
34831 src = DREGu32((Opcode >> 9) & 7);
34832 DREGu32((Opcode >> 9) & 7) = res;
34834 DREGu32((Opcode >> 0) & 7) = res;
34844 res = AREGu32((Opcode >> 0) & 7);
34845 src = AREGu32((Opcode >> 9) & 7);
34846 AREG((Opcode >> 9) & 7) = res;
34848 AREG((Opcode >> 0) & 7) = res;
34858 res = AREGu32((Opcode >> 0) & 7);
34859 src = DREGu32((Opcode >> 9) & 7);
34860 DREGu32((Opcode >> 9) & 7) = res;
34862 AREG((Opcode >> 0) & 7) = res;
34872 src = DREGu8((Opcode >> 0) & 7);
34873 dst = DREGu8((Opcode >> 9) & 7);
34875 flag_N = flag_X = flag_C = res;
34876 flag_V = (src ^ res) & (dst ^ res);
34877 flag_NotZ = res & 0xFF;
34878 DREGu8((Opcode >> 9) & 7) = res;
34889 // can't read byte from Ax registers !
34890 m68kcontext.execinfo |= M68K_FAULTED;
34891 m68kcontext.io_cycle_counter = 0;
34893 goto famec_Exec_End;
34894 dst = DREGu8((Opcode >> 9) & 7);
34896 flag_N = flag_X = flag_C = res;
34897 flag_V = (src ^ res) & (dst ^ res);
34898 flag_NotZ = res & 0xFF;
34899 DREGu8((Opcode >> 9) & 7) = res;
34911 adr = AREG((Opcode >> 0) & 7);
34913 READ_BYTE_F(adr, src)
34914 dst = DREGu8((Opcode >> 9) & 7);
34916 flag_N = flag_X = flag_C = res;
34917 flag_V = (src ^ res) & (dst ^ res);
34918 flag_NotZ = res & 0xFF;
34919 DREGu8((Opcode >> 9) & 7) = res;
34930 adr = AREG((Opcode >> 0) & 7);
34931 AREG((Opcode >> 0) & 7) += 1;
34933 READ_BYTE_F(adr, src)
34934 dst = DREGu8((Opcode >> 9) & 7);
34936 flag_N = flag_X = flag_C = res;
34937 flag_V = (src ^ res) & (dst ^ res);
34938 flag_NotZ = res & 0xFF;
34939 DREGu8((Opcode >> 9) & 7) = res;
34950 adr = AREG((Opcode >> 0) & 7) - 1;
34951 AREG((Opcode >> 0) & 7) = adr;
34953 READ_BYTE_F(adr, src)
34954 dst = DREGu8((Opcode >> 9) & 7);
34956 flag_N = flag_X = flag_C = res;
34957 flag_V = (src ^ res) & (dst ^ res);
34958 flag_NotZ = res & 0xFF;
34959 DREGu8((Opcode >> 9) & 7) = res;
34971 adr += AREG((Opcode >> 0) & 7);
34973 READ_BYTE_F(adr, src)
34974 dst = DREGu8((Opcode >> 9) & 7);
34976 flag_N = flag_X = flag_C = res;
34977 flag_V = (src ^ res) & (dst ^ res);
34978 flag_NotZ = res & 0xFF;
34979 DREGu8((Opcode >> 9) & 7) = res;
34990 adr = AREG((Opcode >> 0) & 7);
34993 READ_BYTE_F(adr, src)
34994 dst = DREGu8((Opcode >> 9) & 7);
34996 flag_N = flag_X = flag_C = res;
34997 flag_V = (src ^ res) & (dst ^ res);
34998 flag_NotZ = res & 0xFF;
34999 DREGu8((Opcode >> 9) & 7) = res;
35012 READ_BYTE_F(adr, src)
35013 dst = DREGu8((Opcode >> 9) & 7);
35015 flag_N = flag_X = flag_C = res;
35016 flag_V = (src ^ res) & (dst ^ res);
35017 flag_NotZ = res & 0xFF;
35018 DREGu8((Opcode >> 9) & 7) = res;
35031 READ_BYTE_F(adr, src)
35032 dst = DREGu8((Opcode >> 9) & 7);
35034 flag_N = flag_X = flag_C = res;
35035 flag_V = (src ^ res) & (dst ^ res);
35036 flag_NotZ = res & 0xFF;
35037 DREGu8((Opcode >> 9) & 7) = res;
35048 adr = GET_SWORD + ((u32)(PC) - BasePC);
35051 READ_BYTE_F(adr, src)
35052 dst = DREGu8((Opcode >> 9) & 7);
35054 flag_N = flag_X = flag_C = res;
35055 flag_V = (src ^ res) & (dst ^ res);
35056 flag_NotZ = res & 0xFF;
35057 DREGu8((Opcode >> 9) & 7) = res;
35068 adr = (u32)(PC) - BasePC;
35071 READ_BYTE_F(adr, src)
35072 dst = DREGu8((Opcode >> 9) & 7);
35074 flag_N = flag_X = flag_C = res;
35075 flag_V = (src ^ res) & (dst ^ res);
35076 flag_NotZ = res & 0xFF;
35077 DREGu8((Opcode >> 9) & 7) = res;
35089 dst = DREGu8((Opcode >> 9) & 7);
35091 flag_N = flag_X = flag_C = res;
35092 flag_V = (src ^ res) & (dst ^ res);
35093 flag_NotZ = res & 0xFF;
35094 DREGu8((Opcode >> 9) & 7) = res;
35107 READ_BYTE_F(adr, src)
35108 dst = DREGu8((Opcode >> 9) & 7);
35110 flag_N = flag_X = flag_C = res;
35111 flag_V = (src ^ res) & (dst ^ res);
35112 flag_NotZ = res & 0xFF;
35113 DREGu8((Opcode >> 9) & 7) = res;
35127 READ_BYTE_F(adr, src)
35128 dst = DREGu8((Opcode >> 9) & 7);
35130 flag_N = flag_X = flag_C = res;
35131 flag_V = (src ^ res) & (dst ^ res);
35132 flag_NotZ = res & 0xFF;
35133 DREGu8((Opcode >> 9) & 7) = res;
35144 src = DREGu16((Opcode >> 0) & 7);
35145 dst = DREGu16((Opcode >> 9) & 7);
35147 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35148 flag_N = flag_X = flag_C = res >> 8;
35149 flag_NotZ = res & 0xFFFF;
35150 DREGu16((Opcode >> 9) & 7) = res;
35160 src = AREGu16((Opcode >> 0) & 7);
35161 dst = DREGu16((Opcode >> 9) & 7);
35163 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35164 flag_N = flag_X = flag_C = res >> 8;
35165 flag_NotZ = res & 0xFFFF;
35166 DREGu16((Opcode >> 9) & 7) = res;
35176 adr = AREG((Opcode >> 0) & 7);
35178 READ_WORD_F(adr, src)
35179 dst = DREGu16((Opcode >> 9) & 7);
35181 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35182 flag_N = flag_X = flag_C = res >> 8;
35183 flag_NotZ = res & 0xFFFF;
35184 DREGu16((Opcode >> 9) & 7) = res;
35195 adr = AREG((Opcode >> 0) & 7);
35196 AREG((Opcode >> 0) & 7) += 2;
35198 READ_WORD_F(adr, src)
35199 dst = DREGu16((Opcode >> 9) & 7);
35201 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35202 flag_N = flag_X = flag_C = res >> 8;
35203 flag_NotZ = res & 0xFFFF;
35204 DREGu16((Opcode >> 9) & 7) = res;
35215 adr = AREG((Opcode >> 0) & 7) - 2;
35216 AREG((Opcode >> 0) & 7) = adr;
35218 READ_WORD_F(adr, src)
35219 dst = DREGu16((Opcode >> 9) & 7);
35221 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35222 flag_N = flag_X = flag_C = res >> 8;
35223 flag_NotZ = res & 0xFFFF;
35224 DREGu16((Opcode >> 9) & 7) = res;
35236 adr += AREG((Opcode >> 0) & 7);
35238 READ_WORD_F(adr, src)
35239 dst = DREGu16((Opcode >> 9) & 7);
35241 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35242 flag_N = flag_X = flag_C = res >> 8;
35243 flag_NotZ = res & 0xFFFF;
35244 DREGu16((Opcode >> 9) & 7) = res;
35255 adr = AREG((Opcode >> 0) & 7);
35258 READ_WORD_F(adr, src)
35259 dst = DREGu16((Opcode >> 9) & 7);
35261 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35262 flag_N = flag_X = flag_C = res >> 8;
35263 flag_NotZ = res & 0xFFFF;
35264 DREGu16((Opcode >> 9) & 7) = res;
35277 READ_WORD_F(adr, src)
35278 dst = DREGu16((Opcode >> 9) & 7);
35280 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35281 flag_N = flag_X = flag_C = res >> 8;
35282 flag_NotZ = res & 0xFFFF;
35283 DREGu16((Opcode >> 9) & 7) = res;
35296 READ_WORD_F(adr, src)
35297 dst = DREGu16((Opcode >> 9) & 7);
35299 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35300 flag_N = flag_X = flag_C = res >> 8;
35301 flag_NotZ = res & 0xFFFF;
35302 DREGu16((Opcode >> 9) & 7) = res;
35313 adr = GET_SWORD + ((u32)(PC) - BasePC);
35316 READ_WORD_F(adr, src)
35317 dst = DREGu16((Opcode >> 9) & 7);
35319 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35320 flag_N = flag_X = flag_C = res >> 8;
35321 flag_NotZ = res & 0xFFFF;
35322 DREGu16((Opcode >> 9) & 7) = res;
35333 adr = (u32)(PC) - BasePC;
35336 READ_WORD_F(adr, src)
35337 dst = DREGu16((Opcode >> 9) & 7);
35339 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35340 flag_N = flag_X = flag_C = res >> 8;
35341 flag_NotZ = res & 0xFFFF;
35342 DREGu16((Opcode >> 9) & 7) = res;
35354 dst = DREGu16((Opcode >> 9) & 7);
35356 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35357 flag_N = flag_X = flag_C = res >> 8;
35358 flag_NotZ = res & 0xFFFF;
35359 DREGu16((Opcode >> 9) & 7) = res;
35372 READ_WORD_F(adr, src)
35373 dst = DREGu16((Opcode >> 9) & 7);
35375 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35376 flag_N = flag_X = flag_C = res >> 8;
35377 flag_NotZ = res & 0xFFFF;
35378 DREGu16((Opcode >> 9) & 7) = res;
35392 READ_WORD_F(adr, src)
35393 dst = DREGu16((Opcode >> 9) & 7);
35395 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35396 flag_N = flag_X = flag_C = res >> 8;
35397 flag_NotZ = res & 0xFFFF;
35398 DREGu16((Opcode >> 9) & 7) = res;
35409 src = DREGu32((Opcode >> 0) & 7);
35410 dst = DREGu32((Opcode >> 9) & 7);
35413 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35414 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35415 flag_N = res >> 24;
35416 DREGu32((Opcode >> 9) & 7) = res;
35426 src = AREGu32((Opcode >> 0) & 7);
35427 dst = DREGu32((Opcode >> 9) & 7);
35430 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35431 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35432 flag_N = res >> 24;
35433 DREGu32((Opcode >> 9) & 7) = res;
35443 adr = AREG((Opcode >> 0) & 7);
35445 READ_LONG_F(adr, src)
35446 dst = DREGu32((Opcode >> 9) & 7);
35449 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35450 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35451 flag_N = res >> 24;
35452 DREGu32((Opcode >> 9) & 7) = res;
35463 adr = AREG((Opcode >> 0) & 7);
35464 AREG((Opcode >> 0) & 7) += 4;
35466 READ_LONG_F(adr, src)
35467 dst = DREGu32((Opcode >> 9) & 7);
35470 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35471 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35472 flag_N = res >> 24;
35473 DREGu32((Opcode >> 9) & 7) = res;
35484 adr = AREG((Opcode >> 0) & 7) - 4;
35485 AREG((Opcode >> 0) & 7) = adr;
35487 READ_LONG_F(adr, src)
35488 dst = DREGu32((Opcode >> 9) & 7);
35491 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35492 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35493 flag_N = res >> 24;
35494 DREGu32((Opcode >> 9) & 7) = res;
35506 adr += AREG((Opcode >> 0) & 7);
35508 READ_LONG_F(adr, src)
35509 dst = DREGu32((Opcode >> 9) & 7);
35512 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35513 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35514 flag_N = res >> 24;
35515 DREGu32((Opcode >> 9) & 7) = res;
35526 adr = AREG((Opcode >> 0) & 7);
35529 READ_LONG_F(adr, src)
35530 dst = DREGu32((Opcode >> 9) & 7);
35533 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35534 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35535 flag_N = res >> 24;
35536 DREGu32((Opcode >> 9) & 7) = res;
35549 READ_LONG_F(adr, src)
35550 dst = DREGu32((Opcode >> 9) & 7);
35553 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35554 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35555 flag_N = res >> 24;
35556 DREGu32((Opcode >> 9) & 7) = res;
35569 READ_LONG_F(adr, src)
35570 dst = DREGu32((Opcode >> 9) & 7);
35573 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35574 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35575 flag_N = res >> 24;
35576 DREGu32((Opcode >> 9) & 7) = res;
35587 adr = GET_SWORD + ((u32)(PC) - BasePC);
35590 READ_LONG_F(adr, src)
35591 dst = DREGu32((Opcode >> 9) & 7);
35594 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35595 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35596 flag_N = res >> 24;
35597 DREGu32((Opcode >> 9) & 7) = res;
35608 adr = (u32)(PC) - BasePC;
35611 READ_LONG_F(adr, src)
35612 dst = DREGu32((Opcode >> 9) & 7);
35615 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35616 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35617 flag_N = res >> 24;
35618 DREGu32((Opcode >> 9) & 7) = res;
35630 dst = DREGu32((Opcode >> 9) & 7);
35633 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35634 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35635 flag_N = res >> 24;
35636 DREGu32((Opcode >> 9) & 7) = res;
35649 READ_LONG_F(adr, src)
35650 dst = DREGu32((Opcode >> 9) & 7);
35653 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35654 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35655 flag_N = res >> 24;
35656 DREGu32((Opcode >> 9) & 7) = res;
35670 READ_LONG_F(adr, src)
35671 dst = DREGu32((Opcode >> 9) & 7);
35674 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35675 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35676 flag_N = res >> 24;
35677 DREGu32((Opcode >> 9) & 7) = res;
35688 src = DREGu8((Opcode >> 9) & 7);
35689 adr = AREG((Opcode >> 0) & 7);
35691 READ_BYTE_F(adr, dst)
35693 flag_N = flag_X = flag_C = res;
35694 flag_V = (src ^ res) & (dst ^ res);
35695 flag_NotZ = res & 0xFF;
35696 WRITE_BYTE_F(adr, res)
35707 src = DREGu8((Opcode >> 9) & 7);
35708 adr = AREG((Opcode >> 0) & 7);
35709 AREG((Opcode >> 0) & 7) += 1;
35711 READ_BYTE_F(adr, dst)
35713 flag_N = flag_X = flag_C = res;
35714 flag_V = (src ^ res) & (dst ^ res);
35715 flag_NotZ = res & 0xFF;
35716 WRITE_BYTE_F(adr, res)
35727 src = DREGu8((Opcode >> 9) & 7);
35728 adr = AREG((Opcode >> 0) & 7) - 1;
35729 AREG((Opcode >> 0) & 7) = adr;
35731 READ_BYTE_F(adr, dst)
35733 flag_N = flag_X = flag_C = res;
35734 flag_V = (src ^ res) & (dst ^ res);
35735 flag_NotZ = res & 0xFF;
35736 WRITE_BYTE_F(adr, res)
35747 src = DREGu8((Opcode >> 9) & 7);
35749 adr += AREG((Opcode >> 0) & 7);
35751 READ_BYTE_F(adr, dst)
35753 flag_N = flag_X = flag_C = res;
35754 flag_V = (src ^ res) & (dst ^ res);
35755 flag_NotZ = res & 0xFF;
35756 WRITE_BYTE_F(adr, res)
35767 src = DREGu8((Opcode >> 9) & 7);
35768 adr = AREG((Opcode >> 0) & 7);
35771 READ_BYTE_F(adr, dst)
35773 flag_N = flag_X = flag_C = res;
35774 flag_V = (src ^ res) & (dst ^ res);
35775 flag_NotZ = res & 0xFF;
35776 WRITE_BYTE_F(adr, res)
35787 src = DREGu8((Opcode >> 9) & 7);
35790 READ_BYTE_F(adr, dst)
35792 flag_N = flag_X = flag_C = res;
35793 flag_V = (src ^ res) & (dst ^ res);
35794 flag_NotZ = res & 0xFF;
35795 WRITE_BYTE_F(adr, res)
35806 src = DREGu8((Opcode >> 9) & 7);
35809 READ_BYTE_F(adr, dst)
35811 flag_N = flag_X = flag_C = res;
35812 flag_V = (src ^ res) & (dst ^ res);
35813 flag_NotZ = res & 0xFF;
35814 WRITE_BYTE_F(adr, res)
35825 src = DREGu8((Opcode >> 9) & 7);
35829 READ_BYTE_F(adr, dst)
35831 flag_N = flag_X = flag_C = res;
35832 flag_V = (src ^ res) & (dst ^ res);
35833 flag_NotZ = res & 0xFF;
35834 WRITE_BYTE_F(adr, res)
35845 src = DREGu8((Opcode >> 9) & 7);
35849 READ_BYTE_F(adr, dst)
35851 flag_N = flag_X = flag_C = res;
35852 flag_V = (src ^ res) & (dst ^ res);
35853 flag_NotZ = res & 0xFF;
35854 WRITE_BYTE_F(adr, res)
35865 src = DREGu16((Opcode >> 9) & 7);
35866 adr = AREG((Opcode >> 0) & 7);
35868 READ_WORD_F(adr, dst)
35870 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35871 flag_N = flag_X = flag_C = res >> 8;
35872 flag_NotZ = res & 0xFFFF;
35873 WRITE_WORD_F(adr, res)
35884 src = DREGu16((Opcode >> 9) & 7);
35885 adr = AREG((Opcode >> 0) & 7);
35886 AREG((Opcode >> 0) & 7) += 2;
35888 READ_WORD_F(adr, dst)
35890 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35891 flag_N = flag_X = flag_C = res >> 8;
35892 flag_NotZ = res & 0xFFFF;
35893 WRITE_WORD_F(adr, res)
35904 src = DREGu16((Opcode >> 9) & 7);
35905 adr = AREG((Opcode >> 0) & 7) - 2;
35906 AREG((Opcode >> 0) & 7) = adr;
35908 READ_WORD_F(adr, dst)
35910 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35911 flag_N = flag_X = flag_C = res >> 8;
35912 flag_NotZ = res & 0xFFFF;
35913 WRITE_WORD_F(adr, res)
35924 src = DREGu16((Opcode >> 9) & 7);
35926 adr += AREG((Opcode >> 0) & 7);
35928 READ_WORD_F(adr, dst)
35930 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35931 flag_N = flag_X = flag_C = res >> 8;
35932 flag_NotZ = res & 0xFFFF;
35933 WRITE_WORD_F(adr, res)
35944 src = DREGu16((Opcode >> 9) & 7);
35945 adr = AREG((Opcode >> 0) & 7);
35948 READ_WORD_F(adr, dst)
35950 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35951 flag_N = flag_X = flag_C = res >> 8;
35952 flag_NotZ = res & 0xFFFF;
35953 WRITE_WORD_F(adr, res)
35964 src = DREGu16((Opcode >> 9) & 7);
35967 READ_WORD_F(adr, dst)
35969 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35970 flag_N = flag_X = flag_C = res >> 8;
35971 flag_NotZ = res & 0xFFFF;
35972 WRITE_WORD_F(adr, res)
35983 src = DREGu16((Opcode >> 9) & 7);
35986 READ_WORD_F(adr, dst)
35988 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35989 flag_N = flag_X = flag_C = res >> 8;
35990 flag_NotZ = res & 0xFFFF;
35991 WRITE_WORD_F(adr, res)
36002 src = DREGu16((Opcode >> 9) & 7);
36006 READ_WORD_F(adr, dst)
36008 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36009 flag_N = flag_X = flag_C = res >> 8;
36010 flag_NotZ = res & 0xFFFF;
36011 WRITE_WORD_F(adr, res)
36022 src = DREGu16((Opcode >> 9) & 7);
36026 READ_WORD_F(adr, dst)
36028 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36029 flag_N = flag_X = flag_C = res >> 8;
36030 flag_NotZ = res & 0xFFFF;
36031 WRITE_WORD_F(adr, res)
36042 src = DREGu32((Opcode >> 9) & 7);
36043 adr = AREG((Opcode >> 0) & 7);
36045 READ_LONG_F(adr, dst)
36048 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36049 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36050 flag_N = res >> 24;
36051 WRITE_LONG_F(adr, res)
36062 src = DREGu32((Opcode >> 9) & 7);
36063 adr = AREG((Opcode >> 0) & 7);
36064 AREG((Opcode >> 0) & 7) += 4;
36066 READ_LONG_F(adr, dst)
36069 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36070 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36071 flag_N = res >> 24;
36072 WRITE_LONG_F(adr, res)
36083 src = DREGu32((Opcode >> 9) & 7);
36084 adr = AREG((Opcode >> 0) & 7) - 4;
36085 AREG((Opcode >> 0) & 7) = adr;
36087 READ_LONG_F(adr, dst)
36090 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36091 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36092 flag_N = res >> 24;
36093 WRITE_LONG_F(adr, res)
36104 src = DREGu32((Opcode >> 9) & 7);
36106 adr += AREG((Opcode >> 0) & 7);
36108 READ_LONG_F(adr, dst)
36111 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36112 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36113 flag_N = res >> 24;
36114 WRITE_LONG_F(adr, res)
36125 src = DREGu32((Opcode >> 9) & 7);
36126 adr = AREG((Opcode >> 0) & 7);
36129 READ_LONG_F(adr, dst)
36132 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36133 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36134 flag_N = res >> 24;
36135 WRITE_LONG_F(adr, res)
36146 src = DREGu32((Opcode >> 9) & 7);
36149 READ_LONG_F(adr, dst)
36152 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36153 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36154 flag_N = res >> 24;
36155 WRITE_LONG_F(adr, res)
36166 src = DREGu32((Opcode >> 9) & 7);
36169 READ_LONG_F(adr, dst)
36172 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36173 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36174 flag_N = res >> 24;
36175 WRITE_LONG_F(adr, res)
36186 src = DREGu32((Opcode >> 9) & 7);
36190 READ_LONG_F(adr, dst)
36193 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36194 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36195 flag_N = res >> 24;
36196 WRITE_LONG_F(adr, res)
36207 src = DREGu32((Opcode >> 9) & 7);
36211 READ_LONG_F(adr, dst)
36214 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36215 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36216 flag_N = res >> 24;
36217 WRITE_LONG_F(adr, res)
36228 src = DREGu8((Opcode >> 0) & 7);
36229 dst = DREGu8((Opcode >> 9) & 7);
36230 res = dst + src + ((flag_X >> 8) & 1);
36231 flag_N = flag_X = flag_C = res;
36232 flag_V = (src ^ res) & (dst ^ res);
36233 flag_NotZ |= res & 0xFF;
36234 DREGu8((Opcode >> 9) & 7) = res;
36244 src = DREGu16((Opcode >> 0) & 7);
36245 dst = DREGu16((Opcode >> 9) & 7);
36246 res = dst + src + ((flag_X >> 8) & 1);
36247 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36248 flag_N = flag_X = flag_C = res >> 8;
36249 flag_NotZ |= res & 0xFFFF;
36250 DREGu16((Opcode >> 9) & 7) = res;
36260 src = DREGu32((Opcode >> 0) & 7);
36261 dst = DREGu32((Opcode >> 9) & 7);
36262 res = dst + src + ((flag_X >> 8) & 1);
36264 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36265 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36266 flag_N = res >> 24;
36267 DREGu32((Opcode >> 9) & 7) = res;
36277 adr = AREG((Opcode >> 0) & 7) - 1;
36278 AREG((Opcode >> 0) & 7) = adr;
36280 READ_BYTE_F(adr, src)
36281 adr = AREG((Opcode >> 9) & 7) - 1;
36282 AREG((Opcode >> 9) & 7) = adr;
36283 READ_BYTE_F(adr, dst)
36284 res = dst + src + ((flag_X >> 8) & 1);
36285 flag_N = flag_X = flag_C = res;
36286 flag_V = (src ^ res) & (dst ^ res);
36287 flag_NotZ |= res & 0xFF;
36288 WRITE_BYTE_F(adr, res)
36299 adr = AREG((Opcode >> 0) & 7) - 2;
36300 AREG((Opcode >> 0) & 7) = adr;
36302 READ_WORD_F(adr, src)
36303 adr = AREG((Opcode >> 9) & 7) - 2;
36304 AREG((Opcode >> 9) & 7) = adr;
36305 READ_WORD_F(adr, dst)
36306 res = dst + src + ((flag_X >> 8) & 1);
36307 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36308 flag_N = flag_X = flag_C = res >> 8;
36309 flag_NotZ |= res & 0xFFFF;
36310 WRITE_WORD_F(adr, res)
36321 adr = AREG((Opcode >> 0) & 7) - 4;
36322 AREG((Opcode >> 0) & 7) = adr;
36324 READ_LONG_F(adr, src)
36325 adr = AREG((Opcode >> 9) & 7) - 4;
36326 AREG((Opcode >> 9) & 7) = adr;
36327 READ_LONG_F(adr, dst)
36328 res = dst + src + ((flag_X >> 8) & 1);
36330 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36331 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36332 flag_N = res >> 24;
36333 WRITE_LONG_F(adr, res)
36347 READ_BYTE_F(adr, src)
36348 adr = AREG((Opcode >> 9) & 7) - 1;
36349 AREG((Opcode >> 9) & 7) = adr;
36350 READ_BYTE_F(adr, dst)
36351 res = dst + src + ((flag_X >> 8) & 1);
36352 flag_N = flag_X = flag_C = res;
36353 flag_V = (src ^ res) & (dst ^ res);
36354 flag_NotZ |= res & 0xFF;
36355 WRITE_BYTE_F(adr, res)
36369 READ_WORD_F(adr, src)
36370 adr = AREG((Opcode >> 9) & 7) - 2;
36371 AREG((Opcode >> 9) & 7) = adr;
36372 READ_WORD_F(adr, dst)
36373 res = dst + src + ((flag_X >> 8) & 1);
36374 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36375 flag_N = flag_X = flag_C = res >> 8;
36376 flag_NotZ |= res & 0xFFFF;
36377 WRITE_WORD_F(adr, res)
36391 READ_LONG_F(adr, src)
36392 adr = AREG((Opcode >> 9) & 7) - 4;
36393 AREG((Opcode >> 9) & 7) = adr;
36394 READ_LONG_F(adr, dst)
36395 res = dst + src + ((flag_X >> 8) & 1);
36397 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36398 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36399 flag_N = res >> 24;
36400 WRITE_LONG_F(adr, res)
36411 adr = AREG((Opcode >> 0) & 7) - 1;
36412 AREG((Opcode >> 0) & 7) = adr;
36414 READ_BYTE_F(adr, src)
36417 READ_BYTE_F(adr, dst)
36418 res = dst + src + ((flag_X >> 8) & 1);
36419 flag_N = flag_X = flag_C = res;
36420 flag_V = (src ^ res) & (dst ^ res);
36421 flag_NotZ |= res & 0xFF;
36422 WRITE_BYTE_F(adr, res)
36433 adr = AREG((Opcode >> 0) & 7) - 2;
36434 AREG((Opcode >> 0) & 7) = adr;
36436 READ_WORD_F(adr, src)
36439 READ_WORD_F(adr, dst)
36440 res = dst + src + ((flag_X >> 8) & 1);
36441 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36442 flag_N = flag_X = flag_C = res >> 8;
36443 flag_NotZ |= res & 0xFFFF;
36444 WRITE_WORD_F(adr, res)
36455 adr = AREG((Opcode >> 0) & 7) - 4;
36456 AREG((Opcode >> 0) & 7) = adr;
36458 READ_LONG_F(adr, src)
36461 READ_LONG_F(adr, dst)
36462 res = dst + src + ((flag_X >> 8) & 1);
36464 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36465 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36466 flag_N = res >> 24;
36467 WRITE_LONG_F(adr, res)
36481 READ_BYTE_F(adr, src)
36484 READ_BYTE_F(adr, dst)
36485 res = dst + src + ((flag_X >> 8) & 1);
36486 flag_N = flag_X = flag_C = res;
36487 flag_V = (src ^ res) & (dst ^ res);
36488 flag_NotZ |= res & 0xFF;
36489 WRITE_BYTE_F(adr, res)
36503 READ_WORD_F(adr, src)
36506 READ_WORD_F(adr, dst)
36507 res = dst + src + ((flag_X >> 8) & 1);
36508 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36509 flag_N = flag_X = flag_C = res >> 8;
36510 flag_NotZ |= res & 0xFFFF;
36511 WRITE_WORD_F(adr, res)
36525 READ_LONG_F(adr, src)
36528 READ_LONG_F(adr, dst)
36529 res = dst + src + ((flag_X >> 8) & 1);
36531 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36532 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36533 flag_N = res >> 24;
36534 WRITE_LONG_F(adr, res)
36545 src = (s32)DREGs16((Opcode >> 0) & 7);
36546 dst = AREGu32((Opcode >> 9) & 7);
36548 AREG((Opcode >> 9) & 7) = res;
36558 src = (s32)AREGs16((Opcode >> 0) & 7);
36559 dst = AREGu32((Opcode >> 9) & 7);
36561 AREG((Opcode >> 9) & 7) = res;
36571 adr = AREG((Opcode >> 0) & 7);
36573 READSX_WORD_F(adr, src)
36574 dst = AREGu32((Opcode >> 9) & 7);
36576 AREG((Opcode >> 9) & 7) = res;
36578 #ifdef USE_CYCLONE_TIMING
36591 adr = AREG((Opcode >> 0) & 7);
36592 AREG((Opcode >> 0) & 7) += 2;
36594 READSX_WORD_F(adr, src)
36595 dst = AREGu32((Opcode >> 9) & 7);
36597 AREG((Opcode >> 9) & 7) = res;
36599 #ifdef USE_CYCLONE_TIMING
36612 adr = AREG((Opcode >> 0) & 7) - 2;
36613 AREG((Opcode >> 0) & 7) = adr;
36615 READSX_WORD_F(adr, src)
36616 dst = AREGu32((Opcode >> 9) & 7);
36618 AREG((Opcode >> 9) & 7) = res;
36620 #ifdef USE_CYCLONE_TIMING
36634 adr += AREG((Opcode >> 0) & 7);
36636 READSX_WORD_F(adr, src)
36637 dst = AREGu32((Opcode >> 9) & 7);
36639 AREG((Opcode >> 9) & 7) = res;
36641 #ifdef USE_CYCLONE_TIMING
36654 adr = AREG((Opcode >> 0) & 7);
36657 READSX_WORD_F(adr, src)
36658 dst = AREGu32((Opcode >> 9) & 7);
36660 AREG((Opcode >> 9) & 7) = res;
36662 #ifdef USE_CYCLONE_TIMING
36677 READSX_WORD_F(adr, src)
36678 dst = AREGu32((Opcode >> 9) & 7);
36680 AREG((Opcode >> 9) & 7) = res;
36682 #ifdef USE_CYCLONE_TIMING
36697 READSX_WORD_F(adr, src)
36698 dst = AREGu32((Opcode >> 9) & 7);
36700 AREG((Opcode >> 9) & 7) = res;
36702 #ifdef USE_CYCLONE_TIMING
36715 adr = GET_SWORD + ((u32)(PC) - BasePC);
36718 READSX_WORD_F(adr, src)
36719 dst = AREGu32((Opcode >> 9) & 7);
36721 AREG((Opcode >> 9) & 7) = res;
36723 #ifdef USE_CYCLONE_TIMING
36736 adr = (u32)(PC) - BasePC;
36739 READSX_WORD_F(adr, src)
36740 dst = AREGu32((Opcode >> 9) & 7);
36742 AREG((Opcode >> 9) & 7) = res;
36744 #ifdef USE_CYCLONE_TIMING
36758 dst = AREGu32((Opcode >> 9) & 7);
36760 AREG((Opcode >> 9) & 7) = res;
36773 READSX_WORD_F(adr, src)
36774 dst = AREGu32((Opcode >> 9) & 7);
36776 AREG((Opcode >> 9) & 7) = res;
36778 #ifdef USE_CYCLONE_TIMING
36794 READSX_WORD_F(adr, src)
36795 dst = AREGu32((Opcode >> 9) & 7);
36797 AREG((Opcode >> 9) & 7) = res;
36799 #ifdef USE_CYCLONE_TIMING
36812 src = (s32)DREGs32((Opcode >> 0) & 7);
36813 dst = AREGu32((Opcode >> 9) & 7);
36815 AREG((Opcode >> 9) & 7) = res;
36816 #ifdef USE_CYCLONE_TIMING
36829 src = (s32)AREGs32((Opcode >> 0) & 7);
36830 dst = AREGu32((Opcode >> 9) & 7);
36832 AREG((Opcode >> 9) & 7) = res;
36833 #ifdef USE_CYCLONE_TIMING
36846 adr = AREG((Opcode >> 0) & 7);
36848 READSX_LONG_F(adr, src)
36849 dst = AREGu32((Opcode >> 9) & 7);
36851 AREG((Opcode >> 9) & 7) = res;
36862 adr = AREG((Opcode >> 0) & 7);
36863 AREG((Opcode >> 0) & 7) += 4;
36865 READSX_LONG_F(adr, src)
36866 dst = AREGu32((Opcode >> 9) & 7);
36868 AREG((Opcode >> 9) & 7) = res;
36879 adr = AREG((Opcode >> 0) & 7) - 4;
36880 AREG((Opcode >> 0) & 7) = adr;
36882 READSX_LONG_F(adr, src)
36883 dst = AREGu32((Opcode >> 9) & 7);
36885 AREG((Opcode >> 9) & 7) = res;
36897 adr += AREG((Opcode >> 0) & 7);
36899 READSX_LONG_F(adr, src)
36900 dst = AREGu32((Opcode >> 9) & 7);
36902 AREG((Opcode >> 9) & 7) = res;
36913 adr = AREG((Opcode >> 0) & 7);
36916 READSX_LONG_F(adr, src)
36917 dst = AREGu32((Opcode >> 9) & 7);
36919 AREG((Opcode >> 9) & 7) = res;
36932 READSX_LONG_F(adr, src)
36933 dst = AREGu32((Opcode >> 9) & 7);
36935 AREG((Opcode >> 9) & 7) = res;
36948 READSX_LONG_F(adr, src)
36949 dst = AREGu32((Opcode >> 9) & 7);
36951 AREG((Opcode >> 9) & 7) = res;
36962 adr = GET_SWORD + ((u32)(PC) - BasePC);
36965 READSX_LONG_F(adr, src)
36966 dst = AREGu32((Opcode >> 9) & 7);
36968 AREG((Opcode >> 9) & 7) = res;
36979 adr = (u32)(PC) - BasePC;
36982 READSX_LONG_F(adr, src)
36983 dst = AREGu32((Opcode >> 9) & 7);
36985 AREG((Opcode >> 9) & 7) = res;
36997 dst = AREGu32((Opcode >> 9) & 7);
36999 AREG((Opcode >> 9) & 7) = res;
37000 #ifdef USE_CYCLONE_TIMING
37016 READSX_LONG_F(adr, src)
37017 dst = AREGu32((Opcode >> 9) & 7);
37019 AREG((Opcode >> 9) & 7) = res;
37033 READSX_LONG_F(adr, src)
37034 dst = AREGu32((Opcode >> 9) & 7);
37036 AREG((Opcode >> 9) & 7) = res;
37049 sft = (((Opcode >> 9) - 1) & 7) + 1;
37050 m68kcontext.io_cycle_counter -= sft * 2;
37051 src = (s32)DREGs8((Opcode >> 0) & 7);
37053 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37054 res = ((s32)src) >> sft;
37057 DREGu8((Opcode >> 0) & 7) = res;
37069 sft = (((Opcode >> 9) - 1) & 7) + 1;
37070 m68kcontext.io_cycle_counter -= sft * 2;
37071 src = (s32)DREGs16((Opcode >> 0) & 7);
37073 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37074 res = ((s32)src) >> sft;
37077 DREGu16((Opcode >> 0) & 7) = res;
37089 sft = (((Opcode >> 9) - 1) & 7) + 1;
37090 m68kcontext.io_cycle_counter -= sft * 2;
37091 src = (s32)DREGs32((Opcode >> 0) & 7);
37093 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37094 res = ((s32)src) >> sft;
37095 flag_N = res >> 24;
37097 DREGu32((Opcode >> 0) & 7) = res;
37109 sft = (((Opcode >> 9) - 1) & 7) + 1;
37110 m68kcontext.io_cycle_counter -= sft * 2;
37111 src = DREGu8((Opcode >> 0) & 7);
37112 flag_N = flag_V = 0;
37113 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37116 DREGu8((Opcode >> 0) & 7) = res;
37128 sft = (((Opcode >> 9) - 1) & 7) + 1;
37129 m68kcontext.io_cycle_counter -= sft * 2;
37130 src = DREGu16((Opcode >> 0) & 7);
37131 flag_N = flag_V = 0;
37132 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37135 DREGu16((Opcode >> 0) & 7) = res;
37147 sft = (((Opcode >> 9) - 1) & 7) + 1;
37148 m68kcontext.io_cycle_counter -= sft * 2;
37149 src = DREGu32((Opcode >> 0) & 7);
37150 flag_N = flag_V = 0;
37151 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37154 DREGu32((Opcode >> 0) & 7) = res;
37166 sft = (((Opcode >> 9) - 1) & 7) + 1;
37167 m68kcontext.io_cycle_counter -= sft * 2;
37168 src = DREGu8((Opcode >> 0) & 7);
37169 src |= (flag_X & M68K_SR_X) << 0;
37170 res = (src >> sft) | (src << (9 - sft));
37171 flag_X = flag_C = res >> 0;
37174 flag_NotZ = res & 0x000000FF;
37175 DREGu8((Opcode >> 0) & 7) = res;
37187 sft = (((Opcode >> 9) - 1) & 7) + 1;
37188 m68kcontext.io_cycle_counter -= sft * 2;
37189 src = DREGu16((Opcode >> 0) & 7);
37190 src |= (flag_X & M68K_SR_X) << 8;
37191 res = (src >> sft) | (src << (17 - sft));
37192 flag_X = flag_C = res >> 8;
37195 flag_NotZ = res & 0x0000FFFF;
37196 DREGu16((Opcode >> 0) & 7) = res;
37208 sft = (((Opcode >> 9) - 1) & 7) + 1;
37209 m68kcontext.io_cycle_counter -= sft * 2;
37210 src = DREGu32((Opcode >> 0) & 7);
37211 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37212 if (sft == 1) res = (src >> 1) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1)));
37213 else res = (src >> sft) | (src << (33 - sft)) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + sft)));
37216 flag_N = res >> 24;
37218 DREGu32((Opcode >> 0) & 7) = res;
37230 sft = (((Opcode >> 9) - 1) & 7) + 1;
37231 m68kcontext.io_cycle_counter -= sft * 2;
37232 src = DREGu8((Opcode >> 0) & 7);
37234 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37235 res = (src >> sft) | (src << (8 - sft));
37237 flag_NotZ = res & 0x000000FF;
37238 DREGu8((Opcode >> 0) & 7) = res;
37250 sft = (((Opcode >> 9) - 1) & 7) + 1;
37251 m68kcontext.io_cycle_counter -= sft * 2;
37252 src = DREGu16((Opcode >> 0) & 7);
37254 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37255 res = (src >> sft) | (src << (16 - sft));
37257 flag_NotZ = res & 0x0000FFFF;
37258 DREGu16((Opcode >> 0) & 7) = res;
37270 sft = (((Opcode >> 9) - 1) & 7) + 1;
37271 m68kcontext.io_cycle_counter -= sft * 2;
37272 src = DREGu32((Opcode >> 0) & 7);
37274 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37275 res = (src >> sft) | (src << (32 - sft));
37276 flag_N = res >> 24;
37278 DREGu32((Opcode >> 0) & 7) = res;
37290 sft = (((Opcode >> 9) - 1) & 7) + 1;
37291 m68kcontext.io_cycle_counter -= sft * 2;
37292 src = DREGu8((Opcode >> 0) & 7);
37295 flag_X = flag_C = src << (0 + sft);
37298 flag_NotZ = res & 0x000000FF;
37299 DREGu8((Opcode >> 0) & 7) = res;
37301 if ((sft > 7) && (src)) flag_V = M68K_SR_V;
37304 u32 msk = (((s32)0x80000000) >> (sft + 24)) & 0x000000FF;
37306 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37311 if (src) flag_V = M68K_SR_V;
37313 flag_X = flag_C = src << M68K_SR_C_SFT;
37315 DREGu8((Opcode >> 0) & 7) = res;
37329 sft = (((Opcode >> 9) - 1) & 7) + 1;
37330 m68kcontext.io_cycle_counter -= sft * 2;
37331 src = DREGu16((Opcode >> 0) & 7);
37332 flag_X = flag_C = src >> (8 - sft);
37335 flag_NotZ = res & 0x0000FFFF;
37336 DREGu16((Opcode >> 0) & 7) = res;
37339 u32 msk = (((s32)0x80000000) >> (sft + 16)) & 0x0000FFFF;
37341 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37354 sft = (((Opcode >> 9) - 1) & 7) + 1;
37355 m68kcontext.io_cycle_counter -= sft * 2;
37356 src = DREGu32((Opcode >> 0) & 7);
37357 flag_X = flag_C = src >> (24 - sft);
37359 flag_N = res >> 24;
37360 flag_NotZ = res & 0xFFFFFFFF;
37361 DREGu32((Opcode >> 0) & 7) = res;
37364 u32 msk = (((s32)0x80000000) >> (sft + 0)) & 0xFFFFFFFF;
37366 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37379 sft = (((Opcode >> 9) - 1) & 7) + 1;
37380 m68kcontext.io_cycle_counter -= sft * 2;
37381 src = DREGu8((Opcode >> 0) & 7);
37383 flag_X = flag_C = src << (0 + sft);
37386 flag_NotZ = res & 0x000000FF;
37387 DREGu8((Opcode >> 0) & 7) = res;
37399 sft = (((Opcode >> 9) - 1) & 7) + 1;
37400 m68kcontext.io_cycle_counter -= sft * 2;
37401 src = DREGu16((Opcode >> 0) & 7);
37403 flag_X = flag_C = src >> (8 - sft);
37406 flag_NotZ = res & 0x0000FFFF;
37407 DREGu16((Opcode >> 0) & 7) = res;
37419 sft = (((Opcode >> 9) - 1) & 7) + 1;
37420 m68kcontext.io_cycle_counter -= sft * 2;
37421 src = DREGu32((Opcode >> 0) & 7);
37423 flag_X = flag_C = src >> (24 - sft);
37425 flag_N = res >> 24;
37426 flag_NotZ = res & 0xFFFFFFFF;
37427 DREGu32((Opcode >> 0) & 7) = res;
37439 sft = (((Opcode >> 9) - 1) & 7) + 1;
37440 m68kcontext.io_cycle_counter -= sft * 2;
37441 src = DREGu8((Opcode >> 0) & 7);
37442 src |= (flag_X & M68K_SR_X) << 0;
37443 res = (src << sft) | (src >> (9 - sft));
37444 flag_X = flag_C = res >> 0;
37447 flag_NotZ = res & 0x000000FF;
37448 DREGu8((Opcode >> 0) & 7) = res;
37460 sft = (((Opcode >> 9) - 1) & 7) + 1;
37461 m68kcontext.io_cycle_counter -= sft * 2;
37462 src = DREGu16((Opcode >> 0) & 7);
37463 src |= (flag_X & M68K_SR_X) << 8;
37464 res = (src << sft) | (src >> (17 - sft));
37465 flag_X = flag_C = res >> 8;
37468 flag_NotZ = res & 0x0000FFFF;
37469 DREGu16((Opcode >> 0) & 7) = res;
37481 sft = (((Opcode >> 9) - 1) & 7) + 1;
37482 m68kcontext.io_cycle_counter -= sft * 2;
37483 src = DREGu32((Opcode >> 0) & 7);
37484 flag_C = src >> ((32 - M68K_SR_C_SFT) - sft);
37485 if (sft == 1) res = (src << 1) | ((flag_X & M68K_SR_X) >> ((M68K_SR_X_SFT + 1) - 1));
37486 else res = (src << sft) | (src >> (33 - sft)) | ((flag_X & M68K_SR_X) >> ((M68K_SR_X_SFT + 1) - sft));
37489 flag_N = res >> 24;
37491 DREGu32((Opcode >> 0) & 7) = res;
37503 sft = (((Opcode >> 9) - 1) & 7) + 1;
37504 m68kcontext.io_cycle_counter -= sft * 2;
37505 src = DREGu8((Opcode >> 0) & 7);
37507 flag_C = src << (0 + sft);
37508 res = (src << sft) | (src >> (8 - sft));
37510 flag_NotZ = res & 0x000000FF;
37511 DREGu8((Opcode >> 0) & 7) = res;
37523 sft = (((Opcode >> 9) - 1) & 7) + 1;
37524 m68kcontext.io_cycle_counter -= sft * 2;
37525 src = DREGu16((Opcode >> 0) & 7);
37527 flag_C = src >> (8 - sft);
37528 res = (src << sft) | (src >> (16 - sft));
37530 flag_NotZ = res & 0x0000FFFF;
37531 DREGu16((Opcode >> 0) & 7) = res;
37543 sft = (((Opcode >> 9) - 1) & 7) + 1;
37544 m68kcontext.io_cycle_counter -= sft * 2;
37545 src = DREGu32((Opcode >> 0) & 7);
37547 flag_C = src >> (24 - sft);
37548 res = (src << sft) | (src >> (32 - sft));
37549 flag_N = res >> 24;
37551 DREGu32((Opcode >> 0) & 7) = res;
37563 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37564 src = (s32)DREGs8((Opcode >> 0) & 7);
37567 m68kcontext.io_cycle_counter -= sft * 2;
37571 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37572 res = ((s32)src) >> sft;
37575 DREGu8((Opcode >> 0) & 7) = res;
37579 if (src & (1 << 7))
37581 flag_N = M68K_SR_N;
37584 flag_C = M68K_SR_C;
37585 flag_X = M68K_SR_X;
37587 DREGu8((Opcode >> 0) & 7) = res;
37597 DREGu8((Opcode >> 0) & 7) = res;
37616 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37617 src = (s32)DREGs16((Opcode >> 0) & 7);
37620 m68kcontext.io_cycle_counter -= sft * 2;
37624 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37625 res = ((s32)src) >> sft;
37628 DREGu16((Opcode >> 0) & 7) = res;
37632 if (src & (1 << 15))
37634 flag_N = M68K_SR_N;
37637 flag_C = M68K_SR_C;
37638 flag_X = M68K_SR_X;
37640 DREGu16((Opcode >> 0) & 7) = res;
37650 DREGu16((Opcode >> 0) & 7) = res;
37664 #ifdef USE_CYCLONE_TIMING
37674 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37675 src = (s32)DREGs32((Opcode >> 0) & 7);
37678 m68kcontext.io_cycle_counter -= sft * 2;
37682 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37683 res = ((s32)src) >> sft;
37684 flag_N = res >> 24;
37686 DREGu32((Opcode >> 0) & 7) = res;
37690 if (src & (1 << 31))
37692 flag_N = M68K_SR_N;
37695 flag_C = M68K_SR_C;
37696 flag_X = M68K_SR_X;
37698 DREGu32((Opcode >> 0) & 7) = res;
37708 DREGu32((Opcode >> 0) & 7) = res;
37714 flag_N = src >> 24;
37728 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37729 src = DREGu8((Opcode >> 0) & 7);
37732 m68kcontext.io_cycle_counter -= sft * 2;
37735 flag_N = flag_V = 0;
37736 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37739 DREGu8((Opcode >> 0) & 7) = res;
37743 flag_X = flag_C = 0;
37748 DREGu8((Opcode >> 0) & 7) = res;
37767 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37768 src = DREGu16((Opcode >> 0) & 7);
37771 m68kcontext.io_cycle_counter -= sft * 2;
37774 flag_N = flag_V = 0;
37775 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37778 DREGu16((Opcode >> 0) & 7) = res;
37782 flag_X = flag_C = 0;
37787 DREGu16((Opcode >> 0) & 7) = res;
37801 #ifdef USE_CYCLONE_TIMING
37811 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37812 src = DREGu32((Opcode >> 0) & 7);
37815 m68kcontext.io_cycle_counter -= sft * 2;
37818 flag_N = flag_V = 0;
37819 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37822 DREGu32((Opcode >> 0) & 7) = res;
37826 if (sft == 32) flag_C = src >> (31 - M68K_SR_C_SFT);
37833 DREGu32((Opcode >> 0) & 7) = res;
37839 flag_N = src >> 24;
37853 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37854 src = DREGu8((Opcode >> 0) & 7);
37857 m68kcontext.io_cycle_counter -= sft * 2;
37860 src |= (flag_X & M68K_SR_X) << 0;
37861 res = (src >> sft) | (src << (9 - sft));
37862 flag_X = flag_C = res >> 0;
37865 flag_NotZ = res & 0x000000FF;
37866 DREGu8((Opcode >> 0) & 7) = res;
37885 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37886 src = DREGu16((Opcode >> 0) & 7);
37889 m68kcontext.io_cycle_counter -= sft * 2;
37892 src |= (flag_X & M68K_SR_X) << 8;
37893 res = (src >> sft) | (src << (17 - sft));
37894 flag_X = flag_C = res >> 8;
37897 flag_NotZ = res & 0x0000FFFF;
37898 DREGu16((Opcode >> 0) & 7) = res;
37912 #ifdef USE_CYCLONE_TIMING
37922 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37923 src = DREGu32((Opcode >> 0) & 7);
37926 m68kcontext.io_cycle_counter -= sft * 2;
37931 if (sft == 1) res = (src >> 1) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1)));
37932 else res = (src >> sft) | (src << (33 - sft)) | (((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1))) >> (sft - 1));
37933 flag_X = (src >> (32 - sft)) << M68K_SR_X_SFT;
37938 flag_N = res >> 24;
37940 DREGu32((Opcode >> 0) & 7) = res;
37946 flag_N = src >> 24;
37960 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37961 src = DREGu8((Opcode >> 0) & 7);
37964 m68kcontext.io_cycle_counter -= sft * 2;
37967 flag_C = src << (M68K_SR_C_SFT - ((sft - 1) & 7));
37968 res = (src >> sft) | (src << (8 - sft));
37971 flag_NotZ = res & 0x000000FF;
37972 DREGu8((Opcode >> 0) & 7) = res;
37991 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37992 src = DREGu16((Opcode >> 0) & 7);
37995 m68kcontext.io_cycle_counter -= sft * 2;
37998 flag_C = (src >> ((sft - 1) & 15)) << M68K_SR_C_SFT;
37999 res = (src >> sft) | (src << (16 - sft));
38002 flag_NotZ = res & 0x0000FFFF;
38003 DREGu16((Opcode >> 0) & 7) = res;
38017 #ifdef USE_CYCLONE_TIMING
38027 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38028 src = DREGu32((Opcode >> 0) & 7);
38031 m68kcontext.io_cycle_counter -= sft * 2;
38034 flag_C = (src >> ((sft - 1) & 31)) << M68K_SR_C_SFT;
38035 res = (src >> sft) | (src << (32 - sft));
38037 flag_N = res >> 24;
38039 DREGu32((Opcode >> 0) & 7) = res;
38045 flag_N = src >> 24;
38059 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38060 src = DREGu8((Opcode >> 0) & 7);
38063 m68kcontext.io_cycle_counter -= sft * 2;
38066 flag_X = flag_C = (src << sft) >> 0;
38067 res = (src << sft) & 0x000000FF;
38070 DREGu8((Opcode >> 0) & 7) = res;
38073 u32 msk = (((s32)0x80000000) >> (sft + 24)) & 0x000000FF;
38075 if ((src) && (src != msk)) flag_V = M68K_SR_V;
38080 if (sft == 256) flag_C = src << M68K_SR_C_SFT;
38083 if (src) flag_V = M68K_SR_V;
38086 DREGu8((Opcode >> 0) & 7) = res;
38107 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38108 src = DREGu16((Opcode >> 0) & 7);
38111 m68kcontext.io_cycle_counter -= sft * 2;
38114 flag_X = flag_C = (src << sft) >> 8;
38115 res = (src << sft) & 0x0000FFFF;
38118 DREGu16((Opcode >> 0) & 7) = res;
38121 u32 msk = (((s32)0x80000000) >> (sft + 16)) & 0x0000FFFF;
38123 if ((src) && (src != msk)) flag_V = M68K_SR_V;
38128 if (sft == 65536) flag_C = src << M68K_SR_C_SFT;
38131 if (src) flag_V = M68K_SR_V;
38134 DREGu16((Opcode >> 0) & 7) = res;
38150 #ifdef USE_CYCLONE_TIMING
38160 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38161 src = DREGu32((Opcode >> 0) & 7);
38164 m68kcontext.io_cycle_counter -= sft * 2;
38167 flag_X = flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38169 flag_N = res >> 24;
38171 DREGu32((Opcode >> 0) & 7) = res;
38174 u32 msk = (((s32)0x80000000) >> (sft + 0)) & 0xFFFFFFFF;
38176 if ((src) && (src != msk)) flag_V = M68K_SR_V;
38181 if (sft == 0) flag_C = src << M68K_SR_C_SFT;
38184 if (src) flag_V = M68K_SR_V;
38187 DREGu32((Opcode >> 0) & 7) = res;
38195 flag_N = src >> 24;
38209 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38210 src = DREGu8((Opcode >> 0) & 7);
38213 m68kcontext.io_cycle_counter -= sft * 2;
38216 flag_X = flag_C = (src << sft) >> 0;
38217 res = (src << sft) & 0x000000FF;
38221 DREGu8((Opcode >> 0) & 7) = res;
38225 flag_X = flag_C = 0;
38230 DREGu8((Opcode >> 0) & 7) = res;
38249 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38250 src = DREGu16((Opcode >> 0) & 7);
38253 m68kcontext.io_cycle_counter -= sft * 2;
38256 flag_X = flag_C = (src << sft) >> 8;
38257 res = (src << sft) & 0x0000FFFF;
38261 DREGu16((Opcode >> 0) & 7) = res;
38265 flag_X = flag_C = 0;
38270 DREGu16((Opcode >> 0) & 7) = res;
38284 #ifdef USE_CYCLONE_TIMING
38294 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38295 src = DREGu32((Opcode >> 0) & 7);
38298 m68kcontext.io_cycle_counter -= sft * 2;
38301 flag_X = flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38304 flag_N = res >> 24;
38306 DREGu32((Opcode >> 0) & 7) = res;
38310 if (sft == 32) flag_C = src << M68K_SR_C_SFT;
38317 DREGu32((Opcode >> 0) & 7) = res;
38323 flag_N = src >> 24;
38337 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38338 src = DREGu8((Opcode >> 0) & 7);
38341 m68kcontext.io_cycle_counter -= sft * 2;
38344 src |= (flag_X & M68K_SR_X) << 0;
38345 res = (src << sft) | (src >> (9 - sft));
38346 flag_X = flag_C = res >> 0;
38349 flag_NotZ = res & 0x000000FF;
38350 DREGu8((Opcode >> 0) & 7) = res;
38369 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38370 src = DREGu16((Opcode >> 0) & 7);
38373 m68kcontext.io_cycle_counter -= sft * 2;
38376 src |= (flag_X & M68K_SR_X) << 8;
38377 res = (src << sft) | (src >> (17 - sft));
38378 flag_X = flag_C = res >> 8;
38381 flag_NotZ = res & 0x0000FFFF;
38382 DREGu16((Opcode >> 0) & 7) = res;
38396 #ifdef USE_CYCLONE_TIMING
38406 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38407 src = DREGu32((Opcode >> 0) & 7);
38410 m68kcontext.io_cycle_counter -= sft * 2;
38415 if (sft == 1) res = (src << 1) | ((flag_X >> ((M68K_SR_X_SFT + 1) - 1)) & 1);
38416 else res = (src << sft) | (src >> (33 - sft)) | (((flag_X >> ((M68K_SR_X_SFT + 1) - 1)) & 1) << (sft - 1));
38417 flag_X = (src >> (32 - sft)) << M68K_SR_X_SFT;
38422 flag_N = res >> 24;
38424 DREGu32((Opcode >> 0) & 7) = res;
38430 flag_N = src >> 24;
38444 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38445 src = DREGu8((Opcode >> 0) & 7);
38448 m68kcontext.io_cycle_counter -= sft * 2;
38451 flag_C = (src << sft) >> 0;
38452 res = ((src << sft) | (src >> (8 - sft))) & 0x000000FF;
38456 DREGu8((Opcode >> 0) & 7) = res;
38461 flag_C = src << M68K_SR_C_SFT;
38482 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38483 src = DREGu16((Opcode >> 0) & 7);
38486 m68kcontext.io_cycle_counter -= sft * 2;
38489 flag_C = (src << sft) >> 8;
38490 res = ((src << sft) | (src >> (16 - sft))) & 0x0000FFFF;
38494 DREGu16((Opcode >> 0) & 7) = res;
38499 flag_C = src << M68K_SR_C_SFT;
38515 #ifdef USE_CYCLONE_TIMING
38525 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38526 src = DREGu32((Opcode >> 0) & 7);
38529 m68kcontext.io_cycle_counter -= sft * 2;
38532 flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38533 res = (src << sft) | (src >> (32 - sft));
38535 flag_N = res >> 24;
38537 DREGu32((Opcode >> 0) & 7) = res;
38542 flag_C = src << M68K_SR_C_SFT;
38543 flag_N = src >> 24;
38550 flag_N = src >> 24;
38562 adr = AREG((Opcode >> 0) & 7);
38564 READ_WORD_F(adr, src)
38566 flag_X = flag_C = src << M68K_SR_C_SFT;
38567 res = (src >> 1) | (src & (1 << 15));
38570 WRITE_WORD_F(adr, res)
38581 adr = AREG((Opcode >> 0) & 7);
38582 AREG((Opcode >> 0) & 7) += 2;
38584 READ_WORD_F(adr, src)
38586 flag_X = flag_C = src << M68K_SR_C_SFT;
38587 res = (src >> 1) | (src & (1 << 15));
38590 WRITE_WORD_F(adr, res)
38601 adr = AREG((Opcode >> 0) & 7) - 2;
38602 AREG((Opcode >> 0) & 7) = adr;
38604 READ_WORD_F(adr, src)
38606 flag_X = flag_C = src << M68K_SR_C_SFT;
38607 res = (src >> 1) | (src & (1 << 15));
38610 WRITE_WORD_F(adr, res)
38622 adr += AREG((Opcode >> 0) & 7);
38624 READ_WORD_F(adr, src)
38626 flag_X = flag_C = src << M68K_SR_C_SFT;
38627 res = (src >> 1) | (src & (1 << 15));
38630 WRITE_WORD_F(adr, res)
38641 adr = AREG((Opcode >> 0) & 7);
38644 READ_WORD_F(adr, src)
38646 flag_X = flag_C = src << M68K_SR_C_SFT;
38647 res = (src >> 1) | (src & (1 << 15));
38650 WRITE_WORD_F(adr, res)
38663 READ_WORD_F(adr, src)
38665 flag_X = flag_C = src << M68K_SR_C_SFT;
38666 res = (src >> 1) | (src & (1 << 15));
38669 WRITE_WORD_F(adr, res)
38682 READ_WORD_F(adr, src)
38684 flag_X = flag_C = src << M68K_SR_C_SFT;
38685 res = (src >> 1) | (src & (1 << 15));
38688 WRITE_WORD_F(adr, res)
38702 READ_WORD_F(adr, src)
38704 flag_X = flag_C = src << M68K_SR_C_SFT;
38705 res = (src >> 1) | (src & (1 << 15));
38708 WRITE_WORD_F(adr, res)
38722 READ_WORD_F(adr, src)
38724 flag_X = flag_C = src << M68K_SR_C_SFT;
38725 res = (src >> 1) | (src & (1 << 15));
38728 WRITE_WORD_F(adr, res)
38739 adr = AREG((Opcode >> 0) & 7);
38741 READ_WORD_F(adr, src)
38742 flag_N = flag_V = 0;
38743 flag_X = flag_C = src << M68K_SR_C_SFT;
38746 WRITE_WORD_F(adr, res)
38757 adr = AREG((Opcode >> 0) & 7);
38758 AREG((Opcode >> 0) & 7) += 2;
38760 READ_WORD_F(adr, src)
38761 flag_N = flag_V = 0;
38762 flag_X = flag_C = src << M68K_SR_C_SFT;
38765 WRITE_WORD_F(adr, res)
38776 adr = AREG((Opcode >> 0) & 7) - 2;
38777 AREG((Opcode >> 0) & 7) = adr;
38779 READ_WORD_F(adr, src)
38780 flag_N = flag_V = 0;
38781 flag_X = flag_C = src << M68K_SR_C_SFT;
38784 WRITE_WORD_F(adr, res)
38796 adr += AREG((Opcode >> 0) & 7);
38798 READ_WORD_F(adr, src)
38799 flag_N = flag_V = 0;
38800 flag_X = flag_C = src << M68K_SR_C_SFT;
38803 WRITE_WORD_F(adr, res)
38814 adr = AREG((Opcode >> 0) & 7);
38817 READ_WORD_F(adr, src)
38818 flag_N = flag_V = 0;
38819 flag_X = flag_C = src << M68K_SR_C_SFT;
38822 WRITE_WORD_F(adr, res)
38835 READ_WORD_F(adr, src)
38836 flag_N = flag_V = 0;
38837 flag_X = flag_C = src << M68K_SR_C_SFT;
38840 WRITE_WORD_F(adr, res)
38853 READ_WORD_F(adr, src)
38854 flag_N = flag_V = 0;
38855 flag_X = flag_C = src << M68K_SR_C_SFT;
38858 WRITE_WORD_F(adr, res)
38872 READ_WORD_F(adr, src)
38873 flag_N = flag_V = 0;
38874 flag_X = flag_C = src << M68K_SR_C_SFT;
38877 WRITE_WORD_F(adr, res)
38891 READ_WORD_F(adr, src)
38892 flag_N = flag_V = 0;
38893 flag_X = flag_C = src << M68K_SR_C_SFT;
38896 WRITE_WORD_F(adr, res)
38907 adr = AREG((Opcode >> 0) & 7);
38909 READ_WORD_F(adr, src)
38911 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38912 flag_C = flag_X = src << M68K_SR_C_SFT;
38915 WRITE_WORD_F(adr, res)
38926 adr = AREG((Opcode >> 0) & 7);
38927 AREG((Opcode >> 0) & 7) += 2;
38929 READ_WORD_F(adr, src)
38931 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38932 flag_C = flag_X = src << M68K_SR_C_SFT;
38935 WRITE_WORD_F(adr, res)
38946 adr = AREG((Opcode >> 0) & 7) - 2;
38947 AREG((Opcode >> 0) & 7) = adr;
38949 READ_WORD_F(adr, src)
38951 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38952 flag_C = flag_X = src << M68K_SR_C_SFT;
38955 WRITE_WORD_F(adr, res)
38967 adr += AREG((Opcode >> 0) & 7);
38969 READ_WORD_F(adr, src)
38971 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38972 flag_C = flag_X = src << M68K_SR_C_SFT;
38975 WRITE_WORD_F(adr, res)
38986 adr = AREG((Opcode >> 0) & 7);
38989 READ_WORD_F(adr, src)
38991 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38992 flag_C = flag_X = src << M68K_SR_C_SFT;
38995 WRITE_WORD_F(adr, res)
39008 READ_WORD_F(adr, src)
39010 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39011 flag_C = flag_X = src << M68K_SR_C_SFT;
39014 WRITE_WORD_F(adr, res)
39027 READ_WORD_F(adr, src)
39029 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39030 flag_C = flag_X = src << M68K_SR_C_SFT;
39033 WRITE_WORD_F(adr, res)
39047 READ_WORD_F(adr, src)
39049 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39050 flag_C = flag_X = src << M68K_SR_C_SFT;
39053 WRITE_WORD_F(adr, res)
39067 READ_WORD_F(adr, src)
39069 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
39070 flag_C = flag_X = src << M68K_SR_C_SFT;
39073 WRITE_WORD_F(adr, res)
39084 adr = AREG((Opcode >> 0) & 7);
39086 READ_WORD_F(adr, src)
39088 flag_C = src << M68K_SR_C_SFT;
39089 res = (src >> 1) | (src << 15);
39091 flag_NotZ = res & 0x0000FFFF;
39092 WRITE_WORD_F(adr, res)
39103 adr = AREG((Opcode >> 0) & 7);
39104 AREG((Opcode >> 0) & 7) += 2;
39106 READ_WORD_F(adr, src)
39108 flag_C = src << M68K_SR_C_SFT;
39109 res = (src >> 1) | (src << 15);
39111 flag_NotZ = res & 0x0000FFFF;
39112 WRITE_WORD_F(adr, res)
39123 adr = AREG((Opcode >> 0) & 7) - 2;
39124 AREG((Opcode >> 0) & 7) = adr;
39126 READ_WORD_F(adr, src)
39128 flag_C = src << M68K_SR_C_SFT;
39129 res = (src >> 1) | (src << 15);
39131 flag_NotZ = res & 0x0000FFFF;
39132 WRITE_WORD_F(adr, res)
39144 adr += AREG((Opcode >> 0) & 7);
39146 READ_WORD_F(adr, src)
39148 flag_C = src << M68K_SR_C_SFT;
39149 res = (src >> 1) | (src << 15);
39151 flag_NotZ = res & 0x0000FFFF;
39152 WRITE_WORD_F(adr, res)
39163 adr = AREG((Opcode >> 0) & 7);
39166 READ_WORD_F(adr, src)
39168 flag_C = src << M68K_SR_C_SFT;
39169 res = (src >> 1) | (src << 15);
39171 flag_NotZ = res & 0x0000FFFF;
39172 WRITE_WORD_F(adr, res)
39185 READ_WORD_F(adr, src)
39187 flag_C = src << M68K_SR_C_SFT;
39188 res = (src >> 1) | (src << 15);
39190 flag_NotZ = res & 0x0000FFFF;
39191 WRITE_WORD_F(adr, res)
39204 READ_WORD_F(adr, src)
39206 flag_C = src << M68K_SR_C_SFT;
39207 res = (src >> 1) | (src << 15);
39209 flag_NotZ = res & 0x0000FFFF;
39210 WRITE_WORD_F(adr, res)
39224 READ_WORD_F(adr, src)
39226 flag_C = src << M68K_SR_C_SFT;
39227 res = (src >> 1) | (src << 15);
39229 flag_NotZ = res & 0x0000FFFF;
39230 WRITE_WORD_F(adr, res)
39244 READ_WORD_F(adr, src)
39246 flag_C = src << M68K_SR_C_SFT;
39247 res = (src >> 1) | (src << 15);
39249 flag_NotZ = res & 0x0000FFFF;
39250 WRITE_WORD_F(adr, res)
39261 adr = AREG((Opcode >> 0) & 7);
39263 READ_WORD_F(adr, src)
39264 flag_X = flag_C = src >> 7;
39266 flag_V = (src ^ res) >> 8;
39268 flag_NotZ = res & 0x0000FFFF;
39269 WRITE_WORD_F(adr, res)
39280 adr = AREG((Opcode >> 0) & 7);
39281 AREG((Opcode >> 0) & 7) += 2;
39283 READ_WORD_F(adr, src)
39284 flag_X = flag_C = src >> 7;
39286 flag_V = (src ^ res) >> 8;
39288 flag_NotZ = res & 0x0000FFFF;
39289 WRITE_WORD_F(adr, res)
39300 adr = AREG((Opcode >> 0) & 7) - 2;
39301 AREG((Opcode >> 0) & 7) = adr;
39303 READ_WORD_F(adr, src)
39304 flag_X = flag_C = src >> 7;
39306 flag_V = (src ^ res) >> 8;
39308 flag_NotZ = res & 0x0000FFFF;
39309 WRITE_WORD_F(adr, res)
39321 adr += AREG((Opcode >> 0) & 7);
39323 READ_WORD_F(adr, src)
39324 flag_X = flag_C = src >> 7;
39326 flag_V = (src ^ res) >> 8;
39328 flag_NotZ = res & 0x0000FFFF;
39329 WRITE_WORD_F(adr, res)
39340 adr = AREG((Opcode >> 0) & 7);
39343 READ_WORD_F(adr, src)
39344 flag_X = flag_C = src >> 7;
39346 flag_V = (src ^ res) >> 8;
39348 flag_NotZ = res & 0x0000FFFF;
39349 WRITE_WORD_F(adr, res)
39362 READ_WORD_F(adr, src)
39363 flag_X = flag_C = src >> 7;
39365 flag_V = (src ^ res) >> 8;
39367 flag_NotZ = res & 0x0000FFFF;
39368 WRITE_WORD_F(adr, res)
39381 READ_WORD_F(adr, src)
39382 flag_X = flag_C = src >> 7;
39384 flag_V = (src ^ res) >> 8;
39386 flag_NotZ = res & 0x0000FFFF;
39387 WRITE_WORD_F(adr, res)
39401 READ_WORD_F(adr, src)
39402 flag_X = flag_C = src >> 7;
39404 flag_V = (src ^ res) >> 8;
39406 flag_NotZ = res & 0x0000FFFF;
39407 WRITE_WORD_F(adr, res)
39421 READ_WORD_F(adr, src)
39422 flag_X = flag_C = src >> 7;
39424 flag_V = (src ^ res) >> 8;
39426 flag_NotZ = res & 0x0000FFFF;
39427 WRITE_WORD_F(adr, res)
39438 adr = AREG((Opcode >> 0) & 7);
39440 READ_WORD_F(adr, src)
39442 flag_X = flag_C = src >> 7;
39445 flag_NotZ = res & 0x0000FFFF;
39446 WRITE_WORD_F(adr, res)
39457 adr = AREG((Opcode >> 0) & 7);
39458 AREG((Opcode >> 0) & 7) += 2;
39460 READ_WORD_F(adr, src)
39462 flag_X = flag_C = src >> 7;
39465 flag_NotZ = res & 0x0000FFFF;
39466 WRITE_WORD_F(adr, res)
39477 adr = AREG((Opcode >> 0) & 7) - 2;
39478 AREG((Opcode >> 0) & 7) = adr;
39480 READ_WORD_F(adr, src)
39482 flag_X = flag_C = src >> 7;
39485 flag_NotZ = res & 0x0000FFFF;
39486 WRITE_WORD_F(adr, res)
39498 adr += AREG((Opcode >> 0) & 7);
39500 READ_WORD_F(adr, src)
39502 flag_X = flag_C = src >> 7;
39505 flag_NotZ = res & 0x0000FFFF;
39506 WRITE_WORD_F(adr, res)
39517 adr = AREG((Opcode >> 0) & 7);
39520 READ_WORD_F(adr, src)
39522 flag_X = flag_C = src >> 7;
39525 flag_NotZ = res & 0x0000FFFF;
39526 WRITE_WORD_F(adr, res)
39539 READ_WORD_F(adr, src)
39541 flag_X = flag_C = src >> 7;
39544 flag_NotZ = res & 0x0000FFFF;
39545 WRITE_WORD_F(adr, res)
39558 READ_WORD_F(adr, src)
39560 flag_X = flag_C = src >> 7;
39563 flag_NotZ = res & 0x0000FFFF;
39564 WRITE_WORD_F(adr, res)
39578 READ_WORD_F(adr, src)
39580 flag_X = flag_C = src >> 7;
39583 flag_NotZ = res & 0x0000FFFF;
39584 WRITE_WORD_F(adr, res)
39598 READ_WORD_F(adr, src)
39600 flag_X = flag_C = src >> 7;
39603 flag_NotZ = res & 0x0000FFFF;
39604 WRITE_WORD_F(adr, res)
39615 adr = AREG((Opcode >> 0) & 7);
39617 READ_WORD_F(adr, src)
39619 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39620 flag_X = flag_C = src >> 7;
39622 flag_NotZ = res & 0x0000FFFF;
39623 WRITE_WORD_F(adr, res)
39634 adr = AREG((Opcode >> 0) & 7);
39635 AREG((Opcode >> 0) & 7) += 2;
39637 READ_WORD_F(adr, src)
39639 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39640 flag_X = flag_C = src >> 7;
39642 flag_NotZ = res & 0x0000FFFF;
39643 WRITE_WORD_F(adr, res)
39654 adr = AREG((Opcode >> 0) & 7) - 2;
39655 AREG((Opcode >> 0) & 7) = adr;
39657 READ_WORD_F(adr, src)
39659 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39660 flag_X = flag_C = src >> 7;
39662 flag_NotZ = res & 0x0000FFFF;
39663 WRITE_WORD_F(adr, res)
39675 adr += AREG((Opcode >> 0) & 7);
39677 READ_WORD_F(adr, src)
39679 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39680 flag_X = flag_C = src >> 7;
39682 flag_NotZ = res & 0x0000FFFF;
39683 WRITE_WORD_F(adr, res)
39694 adr = AREG((Opcode >> 0) & 7);
39697 READ_WORD_F(adr, src)
39699 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39700 flag_X = flag_C = src >> 7;
39702 flag_NotZ = res & 0x0000FFFF;
39703 WRITE_WORD_F(adr, res)
39716 READ_WORD_F(adr, src)
39718 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39719 flag_X = flag_C = src >> 7;
39721 flag_NotZ = res & 0x0000FFFF;
39722 WRITE_WORD_F(adr, res)
39735 READ_WORD_F(adr, src)
39737 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39738 flag_X = flag_C = src >> 7;
39740 flag_NotZ = res & 0x0000FFFF;
39741 WRITE_WORD_F(adr, res)
39755 READ_WORD_F(adr, src)
39757 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39758 flag_X = flag_C = src >> 7;
39760 flag_NotZ = res & 0x0000FFFF;
39761 WRITE_WORD_F(adr, res)
39775 READ_WORD_F(adr, src)
39777 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39778 flag_X = flag_C = src >> 7;
39780 flag_NotZ = res & 0x0000FFFF;
39781 WRITE_WORD_F(adr, res)
39792 adr = AREG((Opcode >> 0) & 7);
39794 READ_WORD_F(adr, src)
39797 res = (src << 1) | (src >> 15);
39799 flag_NotZ = res & 0x0000FFFF;
39800 WRITE_WORD_F(adr, res)
39811 adr = AREG((Opcode >> 0) & 7);
39812 AREG((Opcode >> 0) & 7) += 2;
39814 READ_WORD_F(adr, src)
39817 res = (src << 1) | (src >> 15);
39819 flag_NotZ = res & 0x0000FFFF;
39820 WRITE_WORD_F(adr, res)
39831 adr = AREG((Opcode >> 0) & 7) - 2;
39832 AREG((Opcode >> 0) & 7) = adr;
39834 READ_WORD_F(adr, src)
39837 res = (src << 1) | (src >> 15);
39839 flag_NotZ = res & 0x0000FFFF;
39840 WRITE_WORD_F(adr, res)
39852 adr += AREG((Opcode >> 0) & 7);
39854 READ_WORD_F(adr, src)
39857 res = (src << 1) | (src >> 15);
39859 flag_NotZ = res & 0x0000FFFF;
39860 WRITE_WORD_F(adr, res)
39871 adr = AREG((Opcode >> 0) & 7);
39874 READ_WORD_F(adr, src)
39877 res = (src << 1) | (src >> 15);
39879 flag_NotZ = res & 0x0000FFFF;
39880 WRITE_WORD_F(adr, res)
39893 READ_WORD_F(adr, src)
39896 res = (src << 1) | (src >> 15);
39898 flag_NotZ = res & 0x0000FFFF;
39899 WRITE_WORD_F(adr, res)
39912 READ_WORD_F(adr, src)
39915 res = (src << 1) | (src >> 15);
39917 flag_NotZ = res & 0x0000FFFF;
39918 WRITE_WORD_F(adr, res)
39932 READ_WORD_F(adr, src)
39935 res = (src << 1) | (src >> 15);
39937 flag_NotZ = res & 0x0000FFFF;
39938 WRITE_WORD_F(adr, res)
39952 READ_WORD_F(adr, src)
39955 res = (src << 1) | (src >> 15);
39957 flag_NotZ = res & 0x0000FFFF;
39958 WRITE_WORD_F(adr, res)
39963 #ifdef PICODRIVE_HACK
39965 #define UPDATE_IDLE_COUNT { \
39966 extern int idle_hit_counter; \
39967 idle_hit_counter++; \
39970 #define UPDATE_IDLE_COUNT
39974 OPCODE(0x6001_idle)
39976 #ifdef FAMEC_CHECK_BRANCHES
39977 u32 newPC = (u32)(PC) - BasePC;
39981 CHECK_BRANCH_EXCEPTION(offs)
39983 PC += ((s8)(Opcode & 0xFE)) >> 1;
39990 OPCODE(0x6601_idle)
39995 PC += ((s8)(Opcode & 0xFE)) >> 1;
40002 OPCODE(0x6701_idle)
40007 PC += ((s8)(Opcode & 0xFE)) >> 1;
40015 extern int SekIsIdleCode(unsigned short *dst, int bytes);
40016 extern int SekRegisterIdlePatch(unsigned int pc, int oldop, int newop, void *ctx);
40018 OPCODE(idle_detector_bcc8)
40020 extern int idledet_start_frame;
40021 extern char Pico[];
40022 int frame_count, cond_true, bytes, ret, newop;
40025 dest_pc = PC + (((s8)(Opcode & 0xFE)) >> 1);
40027 frame_count = *(int *)(Pico+0x22208+0x1c); // Pico.m.frame_count
40028 if (frame_count < idledet_start_frame)
40031 bytes = 0 - (s8)(Opcode & 0xFE) - 2;
40032 ret = SekIsIdleCode(dest_pc, bytes);
40033 newop = (Opcode & 0xfe) | 0x7100;
40034 if (!ret) newop |= 0x200;
40035 if ( Opcode & 0x0100) newop |= 0x400; // beq
40036 if (!(Opcode & 0x0f00)) newop |= 0xc00; // bra
40038 ret = SekRegisterIdlePatch(GET_PC - 2, Opcode, newop, &m68kcontext);
40041 case 0: PC[-1] = newop; break;
40043 case 2: JumpTable[Opcode] = (Opcode & 0x0f00) ?
40044 ((Opcode & 0x0100) ? CAST_OP(0x6701) : CAST_OP(0x6601)) :
40045 CAST_OP(0x6001); break;
40049 if ((Opcode & 0xff00) == 0x6000) cond_true = 1;
40050 else cond_true = (Opcode & 0x0100) ? !flag_NotZ : flag_NotZ; // beq?
40054 m68kcontext.io_cycle_counter -= 2;
40059 #endif // PICODRIVE_HACK