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)
18305 adr = AREG((Opcode >> 0) & 7);
18306 AREG((Opcode >> 0) & 7) += 1;
18308 READ_BYTE_F(adr, res)
18323 adr = AREG((Opcode >> 0) & 7) - 1;
18324 AREG((Opcode >> 0) & 7) = adr;
18326 READ_BYTE_F(adr, res)
18342 adr += AREG((Opcode >> 0) & 7);
18344 READ_BYTE_F(adr, res)
18359 adr = AREG((Opcode >> 0) & 7);
18362 READ_BYTE_F(adr, res)
18379 READ_BYTE_F(adr, res)
18396 READ_BYTE_F(adr, res)
18414 READ_BYTE_F(adr, res)
18432 READ_BYTE_F(adr, res)
18444 SET_PC(execute_exception(M68K_ILLEGAL_INSTRUCTION_EX, GET_PC-2, GET_SR));
18448 // ILLEGAL A000-AFFF
18451 SET_PC(execute_exception(M68K_1010_EX, GET_PC-2, GET_SR));
18455 // ILLEGAL F000-FFFF
18458 SET_PC(execute_exception(M68K_1111_EX, GET_PC-2, GET_SR));
18459 RET(0) // 4 already taken by exc. handler
18471 adr = AREG((Opcode >> 0) & 7);
18472 psrc = &DREGs32(0);
18479 READSX_WORD_F(adr, *psrc)
18483 } while (res >>= 1);
18485 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18486 #ifdef USE_CYCLONE_TIMING
18502 adr = AREG((Opcode >> 0) & 7);
18503 psrc = &DREGs32(0);
18510 READSX_WORD_F(adr, *psrc)
18514 } while (res >>= 1);
18515 AREG((Opcode >> 0) & 7) = adr;
18517 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18531 adr += AREG((Opcode >> 0) & 7);
18532 psrc = &DREGs32(0);
18539 READSX_WORD_F(adr, *psrc)
18543 } while (res >>= 1);
18545 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18546 #ifdef USE_CYCLONE_TIMING
18562 adr = AREG((Opcode >> 0) & 7);
18564 psrc = &DREGs32(0);
18571 READSX_WORD_F(adr, *psrc)
18575 } while (res >>= 1);
18577 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18578 #ifdef USE_CYCLONE_TIMING
18595 psrc = &DREGs32(0);
18602 READSX_WORD_F(adr, *psrc)
18606 } while (res >>= 1);
18608 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18609 #ifdef USE_CYCLONE_TIMING
18626 psrc = &DREGs32(0);
18633 READSX_WORD_F(adr, *psrc)
18637 } while (res >>= 1);
18639 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18640 #ifdef USE_CYCLONE_TIMING
18656 adr = GET_SWORD + ((u32)(PC) - BasePC);
18658 psrc = &DREGs32(0);
18665 READSX_WORD_F(adr, *psrc)
18669 } while (res >>= 1);
18671 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18672 #ifdef USE_CYCLONE_TIMING
18688 adr = (u32)(PC) - BasePC;
18690 psrc = &DREGs32(0);
18697 READSX_WORD_F(adr, *psrc)
18701 } while (res >>= 1);
18703 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18704 #ifdef USE_CYCLONE_TIMING
18721 psrc = &DREGs32(0);
18728 READSX_WORD_F(adr, *psrc)
18732 } while (res >>= 1);
18735 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18748 adr = AREG((Opcode >> 0) & 7);
18749 psrc = &DREGu32(0);
18756 READ_LONG_F(adr, *psrc)
18760 } while (res >>= 1);
18762 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18763 #ifdef USE_CYCLONE_TIMING
18779 adr = AREG((Opcode >> 0) & 7);
18780 psrc = &DREGu32(0);
18787 READ_LONG_F(adr, *psrc)
18791 } while (res >>= 1);
18792 AREG((Opcode >> 0) & 7) = adr;
18794 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18808 adr += AREG((Opcode >> 0) & 7);
18809 psrc = &DREGu32(0);
18816 READ_LONG_F(adr, *psrc)
18820 } while (res >>= 1);
18822 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18823 #ifdef USE_CYCLONE_TIMING
18839 adr = AREG((Opcode >> 0) & 7);
18841 psrc = &DREGu32(0);
18848 READ_LONG_F(adr, *psrc)
18852 } while (res >>= 1);
18854 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18855 #ifdef USE_CYCLONE_TIMING
18872 psrc = &DREGu32(0);
18879 READ_LONG_F(adr, *psrc)
18883 } while (res >>= 1);
18885 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18886 #ifdef USE_CYCLONE_TIMING
18903 psrc = &DREGu32(0);
18910 READ_LONG_F(adr, *psrc)
18914 } while (res >>= 1);
18916 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18917 #ifdef USE_CYCLONE_TIMING
18933 adr = GET_SWORD + ((u32)(PC) - BasePC);
18935 psrc = &DREGu32(0);
18942 READ_LONG_F(adr, *psrc)
18946 } while (res >>= 1);
18948 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18949 #ifdef USE_CYCLONE_TIMING
18965 adr = (u32)(PC) - BasePC;
18967 psrc = &DREGu32(0);
18974 READ_LONG_F(adr, *psrc)
18978 } while (res >>= 1);
18980 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
18981 #ifdef USE_CYCLONE_TIMING
18998 psrc = &DREGu32(0);
19005 READ_LONG_F(adr, *psrc)
19009 } while (res >>= 1);
19012 m68kcontext.io_cycle_counter -= (adr - dst) * 2;
19019 SET_PC(execute_exception(M68K_TRAP_BASE_EX + (Opcode & 0xF), GET_PC, GET_SR));
19029 res = AREGu32((Opcode >> 0) & 7);
19033 AREG((Opcode >> 0) & 7) = res;
19048 WRITE_LONG_DEC_F(AREG(7), AREG(7))
19061 src = AREGu32((Opcode >> 0) & 7);
19064 READ_LONG_F(src, res)
19065 AREG((Opcode >> 0) & 7) = res;
19077 READ_LONG_F(AREG(7), AREG(7))
19090 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19093 res = AREGu32((Opcode >> 0) & 7);
19106 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19110 AREG((Opcode >> 0) & 7) = res;
19122 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19126 if (m68kcontext.reset_handler) m68kcontext.reset_handler();
19127 // CPU->Reset_CallBack();
19146 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19150 res &= M68K_SR_MASK;
19158 m68kcontext.execinfo |= FM68K_HALTED;
19159 m68kcontext.io_cycle_counter = 0;
19171 SET_PC(execute_exception(M68K_PRIVILEGE_VIOLATION_EX, GET_PC-2, GET_SR));
19186 m68kcontext.execinfo &= ~(FM68K_EMULATE_GROUP_0|FM68K_EMULATE_TRACE|FM68K_DO_TRACE);
19187 CHECK_INT_TO_JUMP(20)
19200 CHECK_BRANCH_EXCEPTION(res)
19209 SET_PC(execute_exception(M68K_TRAPV_EX, GET_PC, GET_SR));
19224 CHECK_BRANCH_EXCEPTION(res)
19235 adr = AREG((Opcode >> 0) & 7);
19239 oldPC = (u32)(PC) - BasePC;
19244 CHECK_BRANCH_EXCEPTION(adr)
19256 adr += AREG((Opcode >> 0) & 7);
19260 oldPC = (u32)(PC) - BasePC;
19265 CHECK_BRANCH_EXCEPTION(adr)
19276 adr = AREG((Opcode >> 0) & 7);
19281 oldPC = (u32)(PC) - BasePC;
19286 CHECK_BRANCH_EXCEPTION(adr)
19301 oldPC = (u32)(PC) - BasePC;
19306 CHECK_BRANCH_EXCEPTION(adr)
19321 oldPC = (u32)(PC) - BasePC;
19326 CHECK_BRANCH_EXCEPTION(adr)
19337 adr = GET_SWORD + ((u32)(PC) - BasePC);
19342 oldPC = (u32)(PC) - BasePC;
19347 CHECK_BRANCH_EXCEPTION(adr)
19358 adr = (u32)(PC) - BasePC;
19363 oldPC = (u32)(PC) - BasePC;
19368 CHECK_BRANCH_EXCEPTION(adr)
19379 adr = AREG((Opcode >> 0) & 7);
19381 CHECK_BRANCH_EXCEPTION(adr)
19392 adr += AREG((Opcode >> 0) & 7);
19394 CHECK_BRANCH_EXCEPTION(adr)
19404 adr = AREG((Opcode >> 0) & 7);
19407 CHECK_BRANCH_EXCEPTION(adr)
19419 CHECK_BRANCH_EXCEPTION(adr)
19431 CHECK_BRANCH_EXCEPTION(adr)
19441 adr = GET_SWORD + ((u32)(PC) - BasePC);
19444 CHECK_BRANCH_EXCEPTION(adr)
19454 adr = (u32)(PC) - BasePC;
19457 CHECK_BRANCH_EXCEPTION(adr)
19467 src = DREGu16((Opcode >> 0) & 7);
19468 res = DREGu16((Opcode >> 9) & 7);
19469 if (((s32)res < 0) || (res > src))
19472 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19483 adr = AREG((Opcode >> 0) & 7);
19485 READ_WORD_F(adr, src)
19486 res = DREGu16((Opcode >> 9) & 7);
19487 if (((s32)res < 0) || (res > src))
19490 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19502 adr = AREG((Opcode >> 0) & 7);
19503 AREG((Opcode >> 0) & 7) += 2;
19505 READ_WORD_F(adr, src)
19506 res = DREGu16((Opcode >> 9) & 7);
19507 if (((s32)res < 0) || (res > src))
19510 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19522 adr = AREG((Opcode >> 0) & 7) - 2;
19523 AREG((Opcode >> 0) & 7) = adr;
19525 READ_WORD_F(adr, src)
19526 res = DREGu16((Opcode >> 9) & 7);
19527 if (((s32)res < 0) || (res > src))
19530 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19543 adr += AREG((Opcode >> 0) & 7);
19545 READ_WORD_F(adr, src)
19546 res = DREGu16((Opcode >> 9) & 7);
19547 if (((s32)res < 0) || (res > src))
19550 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19562 adr = AREG((Opcode >> 0) & 7);
19565 READ_WORD_F(adr, src)
19566 res = DREGu16((Opcode >> 9) & 7);
19567 if (((s32)res < 0) || (res > src))
19570 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19584 READ_WORD_F(adr, src)
19585 res = DREGu16((Opcode >> 9) & 7);
19586 if (((s32)res < 0) || (res > src))
19589 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19603 READ_WORD_F(adr, src)
19604 res = DREGu16((Opcode >> 9) & 7);
19605 if (((s32)res < 0) || (res > src))
19608 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19620 adr = GET_SWORD + ((u32)(PC) - BasePC);
19623 READ_WORD_F(adr, src)
19624 res = DREGu16((Opcode >> 9) & 7);
19625 if (((s32)res < 0) || (res > src))
19628 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19640 adr = (u32)(PC) - BasePC;
19643 READ_WORD_F(adr, src)
19644 res = DREGu16((Opcode >> 9) & 7);
19645 if (((s32)res < 0) || (res > src))
19648 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19661 res = DREGu16((Opcode >> 9) & 7);
19662 if (((s32)res < 0) || (res > src))
19665 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19680 READ_WORD_F(adr, src)
19681 res = DREGu16((Opcode >> 9) & 7);
19682 if (((s32)res < 0) || (res > src))
19685 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19700 READ_WORD_F(adr, src)
19701 res = DREGu16((Opcode >> 9) & 7);
19702 if (((s32)res < 0) || (res > src))
19705 SET_PC(execute_exception(M68K_CHK_EX, GET_PC, GET_SR));
19717 adr = AREG((Opcode >> 0) & 7);
19719 AREG((Opcode >> 9) & 7) = res;
19730 adr += AREG((Opcode >> 0) & 7);
19732 AREG((Opcode >> 9) & 7) = res;
19742 adr = AREG((Opcode >> 0) & 7);
19745 AREG((Opcode >> 9) & 7) = res;
19757 AREG((Opcode >> 9) & 7) = res;
19769 AREG((Opcode >> 9) & 7) = res;
19779 adr = GET_SWORD + ((u32)(PC) - BasePC);
19782 AREG((Opcode >> 9) & 7) = res;
19792 adr = (u32)(PC) - BasePC;
19795 AREG((Opcode >> 9) & 7) = res;
19806 DREGu8((Opcode >> 0) & 7) = res;
19817 DREGu8((Opcode >> 0) & 7) = res;
19827 if (flag_NotZ && (!(flag_C & 0x100)))
19830 DREGu8((Opcode >> 0) & 7) = res;
19834 DREGu8((Opcode >> 0) & 7) = res;
19844 if ((!flag_NotZ) || (flag_C & 0x100))
19847 DREGu8((Opcode >> 0) & 7) = res;
19851 DREGu8((Opcode >> 0) & 7) = res;
19861 if (!(flag_C & 0x100))
19864 DREGu8((Opcode >> 0) & 7) = res;
19868 DREGu8((Opcode >> 0) & 7) = res;
19878 if (flag_C & 0x100)
19881 DREGu8((Opcode >> 0) & 7) = res;
19885 DREGu8((Opcode >> 0) & 7) = res;
19898 DREGu8((Opcode >> 0) & 7) = res;
19902 DREGu8((Opcode >> 0) & 7) = res;
19915 DREGu8((Opcode >> 0) & 7) = res;
19919 DREGu8((Opcode >> 0) & 7) = res;
19929 if (!(flag_V & 0x80))
19932 DREGu8((Opcode >> 0) & 7) = res;
19936 DREGu8((Opcode >> 0) & 7) = res;
19949 DREGu8((Opcode >> 0) & 7) = res;
19953 DREGu8((Opcode >> 0) & 7) = res;
19963 if (!(flag_N & 0x80))
19966 DREGu8((Opcode >> 0) & 7) = res;
19970 DREGu8((Opcode >> 0) & 7) = res;
19983 DREGu8((Opcode >> 0) & 7) = res;
19987 DREGu8((Opcode >> 0) & 7) = res;
19997 if (!((flag_N ^ flag_V) & 0x80))
20000 DREGu8((Opcode >> 0) & 7) = res;
20004 DREGu8((Opcode >> 0) & 7) = res;
20014 if ((flag_N ^ flag_V) & 0x80)
20017 DREGu8((Opcode >> 0) & 7) = res;
20021 DREGu8((Opcode >> 0) & 7) = res;
20031 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20034 DREGu8((Opcode >> 0) & 7) = res;
20038 DREGu8((Opcode >> 0) & 7) = res;
20048 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20051 DREGu8((Opcode >> 0) & 7) = res;
20055 DREGu8((Opcode >> 0) & 7) = res;
20065 adr = AREG((Opcode >> 0) & 7);
20068 WRITE_BYTE_F(adr, res)
20079 adr = AREG((Opcode >> 0) & 7);
20082 WRITE_BYTE_F(adr, res)
20093 adr = AREG((Opcode >> 0) & 7);
20094 if (flag_NotZ && (!(flag_C & 0x100)))
20098 WRITE_BYTE_F(adr, res)
20104 WRITE_BYTE_F(adr, res)
20115 adr = AREG((Opcode >> 0) & 7);
20116 if ((!flag_NotZ) || (flag_C & 0x100))
20120 WRITE_BYTE_F(adr, res)
20126 WRITE_BYTE_F(adr, res)
20137 adr = AREG((Opcode >> 0) & 7);
20138 if (!(flag_C & 0x100))
20142 WRITE_BYTE_F(adr, res)
20148 WRITE_BYTE_F(adr, res)
20159 adr = AREG((Opcode >> 0) & 7);
20160 if (flag_C & 0x100)
20164 WRITE_BYTE_F(adr, res)
20170 WRITE_BYTE_F(adr, res)
20181 adr = AREG((Opcode >> 0) & 7);
20186 WRITE_BYTE_F(adr, res)
20192 WRITE_BYTE_F(adr, res)
20203 adr = AREG((Opcode >> 0) & 7);
20208 WRITE_BYTE_F(adr, res)
20214 WRITE_BYTE_F(adr, res)
20225 adr = AREG((Opcode >> 0) & 7);
20226 if (!(flag_V & 0x80))
20230 WRITE_BYTE_F(adr, res)
20236 WRITE_BYTE_F(adr, res)
20247 adr = AREG((Opcode >> 0) & 7);
20252 WRITE_BYTE_F(adr, res)
20258 WRITE_BYTE_F(adr, res)
20269 adr = AREG((Opcode >> 0) & 7);
20270 if (!(flag_N & 0x80))
20274 WRITE_BYTE_F(adr, res)
20280 WRITE_BYTE_F(adr, res)
20291 adr = AREG((Opcode >> 0) & 7);
20296 WRITE_BYTE_F(adr, res)
20302 WRITE_BYTE_F(adr, res)
20313 adr = AREG((Opcode >> 0) & 7);
20314 if (!((flag_N ^ flag_V) & 0x80))
20318 WRITE_BYTE_F(adr, res)
20324 WRITE_BYTE_F(adr, res)
20335 adr = AREG((Opcode >> 0) & 7);
20336 if ((flag_N ^ flag_V) & 0x80)
20340 WRITE_BYTE_F(adr, res)
20346 WRITE_BYTE_F(adr, res)
20357 adr = AREG((Opcode >> 0) & 7);
20358 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20362 WRITE_BYTE_F(adr, res)
20368 WRITE_BYTE_F(adr, res)
20379 adr = AREG((Opcode >> 0) & 7);
20380 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20384 WRITE_BYTE_F(adr, res)
20390 WRITE_BYTE_F(adr, res)
20401 adr = AREG((Opcode >> 0) & 7);
20402 AREG((Opcode >> 0) & 7) += 1;
20405 WRITE_BYTE_F(adr, res)
20416 adr = AREG((Opcode >> 0) & 7);
20417 AREG((Opcode >> 0) & 7) += 1;
20420 WRITE_BYTE_F(adr, res)
20431 adr = AREG((Opcode >> 0) & 7);
20432 AREG((Opcode >> 0) & 7) += 1;
20433 if (flag_NotZ && (!(flag_C & 0x100)))
20437 WRITE_BYTE_F(adr, res)
20443 WRITE_BYTE_F(adr, res)
20454 adr = AREG((Opcode >> 0) & 7);
20455 AREG((Opcode >> 0) & 7) += 1;
20456 if ((!flag_NotZ) || (flag_C & 0x100))
20460 WRITE_BYTE_F(adr, res)
20466 WRITE_BYTE_F(adr, res)
20477 adr = AREG((Opcode >> 0) & 7);
20478 AREG((Opcode >> 0) & 7) += 1;
20479 if (!(flag_C & 0x100))
20483 WRITE_BYTE_F(adr, res)
20489 WRITE_BYTE_F(adr, res)
20500 adr = AREG((Opcode >> 0) & 7);
20501 AREG((Opcode >> 0) & 7) += 1;
20502 if (flag_C & 0x100)
20506 WRITE_BYTE_F(adr, res)
20512 WRITE_BYTE_F(adr, res)
20523 adr = AREG((Opcode >> 0) & 7);
20524 AREG((Opcode >> 0) & 7) += 1;
20529 WRITE_BYTE_F(adr, res)
20535 WRITE_BYTE_F(adr, res)
20546 adr = AREG((Opcode >> 0) & 7);
20547 AREG((Opcode >> 0) & 7) += 1;
20552 WRITE_BYTE_F(adr, res)
20558 WRITE_BYTE_F(adr, res)
20569 adr = AREG((Opcode >> 0) & 7);
20570 AREG((Opcode >> 0) & 7) += 1;
20571 if (!(flag_V & 0x80))
20575 WRITE_BYTE_F(adr, res)
20581 WRITE_BYTE_F(adr, res)
20592 adr = AREG((Opcode >> 0) & 7);
20593 AREG((Opcode >> 0) & 7) += 1;
20598 WRITE_BYTE_F(adr, res)
20604 WRITE_BYTE_F(adr, res)
20615 adr = AREG((Opcode >> 0) & 7);
20616 AREG((Opcode >> 0) & 7) += 1;
20617 if (!(flag_N & 0x80))
20621 WRITE_BYTE_F(adr, res)
20627 WRITE_BYTE_F(adr, res)
20638 adr = AREG((Opcode >> 0) & 7);
20639 AREG((Opcode >> 0) & 7) += 1;
20644 WRITE_BYTE_F(adr, res)
20650 WRITE_BYTE_F(adr, res)
20661 adr = AREG((Opcode >> 0) & 7);
20662 AREG((Opcode >> 0) & 7) += 1;
20663 if (!((flag_N ^ flag_V) & 0x80))
20667 WRITE_BYTE_F(adr, res)
20673 WRITE_BYTE_F(adr, res)
20684 adr = AREG((Opcode >> 0) & 7);
20685 AREG((Opcode >> 0) & 7) += 1;
20686 if ((flag_N ^ flag_V) & 0x80)
20690 WRITE_BYTE_F(adr, res)
20696 WRITE_BYTE_F(adr, res)
20707 adr = AREG((Opcode >> 0) & 7);
20708 AREG((Opcode >> 0) & 7) += 1;
20709 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
20713 WRITE_BYTE_F(adr, res)
20719 WRITE_BYTE_F(adr, res)
20730 adr = AREG((Opcode >> 0) & 7);
20731 AREG((Opcode >> 0) & 7) += 1;
20732 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
20736 WRITE_BYTE_F(adr, res)
20742 WRITE_BYTE_F(adr, res)
20753 adr = AREG((Opcode >> 0) & 7) - 1;
20754 AREG((Opcode >> 0) & 7) = adr;
20757 WRITE_BYTE_F(adr, res)
20768 adr = AREG((Opcode >> 0) & 7) - 1;
20769 AREG((Opcode >> 0) & 7) = adr;
20772 WRITE_BYTE_F(adr, res)
20783 adr = AREG((Opcode >> 0) & 7) - 1;
20784 AREG((Opcode >> 0) & 7) = adr;
20785 if (flag_NotZ && (!(flag_C & 0x100)))
20789 WRITE_BYTE_F(adr, res)
20795 WRITE_BYTE_F(adr, res)
20806 adr = AREG((Opcode >> 0) & 7) - 1;
20807 AREG((Opcode >> 0) & 7) = adr;
20808 if ((!flag_NotZ) || (flag_C & 0x100))
20812 WRITE_BYTE_F(adr, res)
20818 WRITE_BYTE_F(adr, res)
20829 adr = AREG((Opcode >> 0) & 7) - 1;
20830 AREG((Opcode >> 0) & 7) = adr;
20831 if (!(flag_C & 0x100))
20835 WRITE_BYTE_F(adr, res)
20841 WRITE_BYTE_F(adr, res)
20852 adr = AREG((Opcode >> 0) & 7) - 1;
20853 AREG((Opcode >> 0) & 7) = adr;
20854 if (flag_C & 0x100)
20858 WRITE_BYTE_F(adr, res)
20864 WRITE_BYTE_F(adr, res)
20875 adr = AREG((Opcode >> 0) & 7) - 1;
20876 AREG((Opcode >> 0) & 7) = adr;
20881 WRITE_BYTE_F(adr, res)
20887 WRITE_BYTE_F(adr, res)
20898 adr = AREG((Opcode >> 0) & 7) - 1;
20899 AREG((Opcode >> 0) & 7) = adr;
20904 WRITE_BYTE_F(adr, res)
20910 WRITE_BYTE_F(adr, res)
20921 adr = AREG((Opcode >> 0) & 7) - 1;
20922 AREG((Opcode >> 0) & 7) = adr;
20923 if (!(flag_V & 0x80))
20927 WRITE_BYTE_F(adr, res)
20933 WRITE_BYTE_F(adr, res)
20944 adr = AREG((Opcode >> 0) & 7) - 1;
20945 AREG((Opcode >> 0) & 7) = adr;
20950 WRITE_BYTE_F(adr, res)
20956 WRITE_BYTE_F(adr, res)
20967 adr = AREG((Opcode >> 0) & 7) - 1;
20968 AREG((Opcode >> 0) & 7) = adr;
20969 if (!(flag_N & 0x80))
20973 WRITE_BYTE_F(adr, res)
20979 WRITE_BYTE_F(adr, res)
20990 adr = AREG((Opcode >> 0) & 7) - 1;
20991 AREG((Opcode >> 0) & 7) = adr;
20996 WRITE_BYTE_F(adr, res)
21002 WRITE_BYTE_F(adr, res)
21013 adr = AREG((Opcode >> 0) & 7) - 1;
21014 AREG((Opcode >> 0) & 7) = adr;
21015 if (!((flag_N ^ flag_V) & 0x80))
21019 WRITE_BYTE_F(adr, res)
21025 WRITE_BYTE_F(adr, res)
21036 adr = AREG((Opcode >> 0) & 7) - 1;
21037 AREG((Opcode >> 0) & 7) = adr;
21038 if ((flag_N ^ flag_V) & 0x80)
21042 WRITE_BYTE_F(adr, res)
21048 WRITE_BYTE_F(adr, res)
21059 adr = AREG((Opcode >> 0) & 7) - 1;
21060 AREG((Opcode >> 0) & 7) = adr;
21061 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21065 WRITE_BYTE_F(adr, res)
21071 WRITE_BYTE_F(adr, res)
21082 adr = AREG((Opcode >> 0) & 7) - 1;
21083 AREG((Opcode >> 0) & 7) = adr;
21084 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21088 WRITE_BYTE_F(adr, res)
21094 WRITE_BYTE_F(adr, res)
21106 adr += AREG((Opcode >> 0) & 7);
21109 WRITE_BYTE_F(adr, res)
21121 adr += AREG((Opcode >> 0) & 7);
21124 WRITE_BYTE_F(adr, res)
21136 adr += AREG((Opcode >> 0) & 7);
21137 if (flag_NotZ && (!(flag_C & 0x100)))
21141 WRITE_BYTE_F(adr, res)
21147 WRITE_BYTE_F(adr, res)
21159 adr += AREG((Opcode >> 0) & 7);
21160 if ((!flag_NotZ) || (flag_C & 0x100))
21164 WRITE_BYTE_F(adr, res)
21170 WRITE_BYTE_F(adr, res)
21182 adr += AREG((Opcode >> 0) & 7);
21183 if (!(flag_C & 0x100))
21187 WRITE_BYTE_F(adr, res)
21193 WRITE_BYTE_F(adr, res)
21205 adr += AREG((Opcode >> 0) & 7);
21206 if (flag_C & 0x100)
21210 WRITE_BYTE_F(adr, res)
21216 WRITE_BYTE_F(adr, res)
21228 adr += AREG((Opcode >> 0) & 7);
21233 WRITE_BYTE_F(adr, res)
21239 WRITE_BYTE_F(adr, res)
21251 adr += AREG((Opcode >> 0) & 7);
21256 WRITE_BYTE_F(adr, res)
21262 WRITE_BYTE_F(adr, res)
21274 adr += AREG((Opcode >> 0) & 7);
21275 if (!(flag_V & 0x80))
21279 WRITE_BYTE_F(adr, res)
21285 WRITE_BYTE_F(adr, res)
21297 adr += AREG((Opcode >> 0) & 7);
21302 WRITE_BYTE_F(adr, res)
21308 WRITE_BYTE_F(adr, res)
21320 adr += AREG((Opcode >> 0) & 7);
21321 if (!(flag_N & 0x80))
21325 WRITE_BYTE_F(adr, res)
21331 WRITE_BYTE_F(adr, res)
21343 adr += AREG((Opcode >> 0) & 7);
21348 WRITE_BYTE_F(adr, res)
21354 WRITE_BYTE_F(adr, res)
21366 adr += AREG((Opcode >> 0) & 7);
21367 if (!((flag_N ^ flag_V) & 0x80))
21371 WRITE_BYTE_F(adr, res)
21377 WRITE_BYTE_F(adr, res)
21389 adr += AREG((Opcode >> 0) & 7);
21390 if ((flag_N ^ flag_V) & 0x80)
21394 WRITE_BYTE_F(adr, res)
21400 WRITE_BYTE_F(adr, res)
21412 adr += AREG((Opcode >> 0) & 7);
21413 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21417 WRITE_BYTE_F(adr, res)
21423 WRITE_BYTE_F(adr, res)
21435 adr += AREG((Opcode >> 0) & 7);
21436 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21440 WRITE_BYTE_F(adr, res)
21446 WRITE_BYTE_F(adr, res)
21457 adr = AREG((Opcode >> 0) & 7);
21461 WRITE_BYTE_F(adr, res)
21472 adr = AREG((Opcode >> 0) & 7);
21476 WRITE_BYTE_F(adr, res)
21487 adr = AREG((Opcode >> 0) & 7);
21489 if (flag_NotZ && (!(flag_C & 0x100)))
21493 WRITE_BYTE_F(adr, res)
21499 WRITE_BYTE_F(adr, res)
21510 adr = AREG((Opcode >> 0) & 7);
21512 if ((!flag_NotZ) || (flag_C & 0x100))
21516 WRITE_BYTE_F(adr, res)
21522 WRITE_BYTE_F(adr, res)
21533 adr = AREG((Opcode >> 0) & 7);
21535 if (!(flag_C & 0x100))
21539 WRITE_BYTE_F(adr, res)
21545 WRITE_BYTE_F(adr, res)
21556 adr = AREG((Opcode >> 0) & 7);
21558 if (flag_C & 0x100)
21562 WRITE_BYTE_F(adr, res)
21568 WRITE_BYTE_F(adr, res)
21579 adr = AREG((Opcode >> 0) & 7);
21585 WRITE_BYTE_F(adr, res)
21591 WRITE_BYTE_F(adr, res)
21602 adr = AREG((Opcode >> 0) & 7);
21608 WRITE_BYTE_F(adr, res)
21614 WRITE_BYTE_F(adr, res)
21625 adr = AREG((Opcode >> 0) & 7);
21627 if (!(flag_V & 0x80))
21631 WRITE_BYTE_F(adr, res)
21637 WRITE_BYTE_F(adr, res)
21648 adr = AREG((Opcode >> 0) & 7);
21654 WRITE_BYTE_F(adr, res)
21660 WRITE_BYTE_F(adr, res)
21671 adr = AREG((Opcode >> 0) & 7);
21673 if (!(flag_N & 0x80))
21677 WRITE_BYTE_F(adr, res)
21683 WRITE_BYTE_F(adr, res)
21694 adr = AREG((Opcode >> 0) & 7);
21700 WRITE_BYTE_F(adr, res)
21706 WRITE_BYTE_F(adr, res)
21717 adr = AREG((Opcode >> 0) & 7);
21719 if (!((flag_N ^ flag_V) & 0x80))
21723 WRITE_BYTE_F(adr, res)
21729 WRITE_BYTE_F(adr, res)
21740 adr = AREG((Opcode >> 0) & 7);
21742 if ((flag_N ^ flag_V) & 0x80)
21746 WRITE_BYTE_F(adr, res)
21752 WRITE_BYTE_F(adr, res)
21763 adr = AREG((Opcode >> 0) & 7);
21765 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
21769 WRITE_BYTE_F(adr, res)
21775 WRITE_BYTE_F(adr, res)
21786 adr = AREG((Opcode >> 0) & 7);
21788 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
21792 WRITE_BYTE_F(adr, res)
21798 WRITE_BYTE_F(adr, res)
21812 WRITE_BYTE_F(adr, res)
21826 WRITE_BYTE_F(adr, res)
21838 if (flag_NotZ && (!(flag_C & 0x100)))
21842 WRITE_BYTE_F(adr, res)
21848 WRITE_BYTE_F(adr, res)
21860 if ((!flag_NotZ) || (flag_C & 0x100))
21864 WRITE_BYTE_F(adr, res)
21870 WRITE_BYTE_F(adr, res)
21882 if (!(flag_C & 0x100))
21886 WRITE_BYTE_F(adr, res)
21892 WRITE_BYTE_F(adr, res)
21904 if (flag_C & 0x100)
21908 WRITE_BYTE_F(adr, res)
21914 WRITE_BYTE_F(adr, res)
21930 WRITE_BYTE_F(adr, res)
21936 WRITE_BYTE_F(adr, res)
21952 WRITE_BYTE_F(adr, res)
21958 WRITE_BYTE_F(adr, res)
21970 if (!(flag_V & 0x80))
21974 WRITE_BYTE_F(adr, res)
21980 WRITE_BYTE_F(adr, res)
21996 WRITE_BYTE_F(adr, res)
22002 WRITE_BYTE_F(adr, res)
22014 if (!(flag_N & 0x80))
22018 WRITE_BYTE_F(adr, res)
22024 WRITE_BYTE_F(adr, res)
22040 WRITE_BYTE_F(adr, res)
22046 WRITE_BYTE_F(adr, res)
22058 if (!((flag_N ^ flag_V) & 0x80))
22062 WRITE_BYTE_F(adr, res)
22068 WRITE_BYTE_F(adr, res)
22080 if ((flag_N ^ flag_V) & 0x80)
22084 WRITE_BYTE_F(adr, res)
22090 WRITE_BYTE_F(adr, res)
22102 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22106 WRITE_BYTE_F(adr, res)
22112 WRITE_BYTE_F(adr, res)
22124 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22128 WRITE_BYTE_F(adr, res)
22134 WRITE_BYTE_F(adr, res)
22148 WRITE_BYTE_F(adr, res)
22162 WRITE_BYTE_F(adr, res)
22174 if (flag_NotZ && (!(flag_C & 0x100)))
22178 WRITE_BYTE_F(adr, res)
22184 WRITE_BYTE_F(adr, res)
22196 if ((!flag_NotZ) || (flag_C & 0x100))
22200 WRITE_BYTE_F(adr, res)
22206 WRITE_BYTE_F(adr, res)
22218 if (!(flag_C & 0x100))
22222 WRITE_BYTE_F(adr, res)
22228 WRITE_BYTE_F(adr, res)
22240 if (flag_C & 0x100)
22244 WRITE_BYTE_F(adr, res)
22250 WRITE_BYTE_F(adr, res)
22266 WRITE_BYTE_F(adr, res)
22272 WRITE_BYTE_F(adr, res)
22288 WRITE_BYTE_F(adr, res)
22294 WRITE_BYTE_F(adr, res)
22306 if (!(flag_V & 0x80))
22310 WRITE_BYTE_F(adr, res)
22316 WRITE_BYTE_F(adr, res)
22332 WRITE_BYTE_F(adr, res)
22338 WRITE_BYTE_F(adr, res)
22350 if (!(flag_N & 0x80))
22354 WRITE_BYTE_F(adr, res)
22360 WRITE_BYTE_F(adr, res)
22376 WRITE_BYTE_F(adr, res)
22382 WRITE_BYTE_F(adr, res)
22394 if (!((flag_N ^ flag_V) & 0x80))
22398 WRITE_BYTE_F(adr, res)
22404 WRITE_BYTE_F(adr, res)
22416 if ((flag_N ^ flag_V) & 0x80)
22420 WRITE_BYTE_F(adr, res)
22426 WRITE_BYTE_F(adr, res)
22438 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22442 WRITE_BYTE_F(adr, res)
22448 WRITE_BYTE_F(adr, res)
22460 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22464 WRITE_BYTE_F(adr, res)
22470 WRITE_BYTE_F(adr, res)
22485 WRITE_BYTE_F(adr, res)
22500 WRITE_BYTE_F(adr, res)
22513 if (flag_NotZ && (!(flag_C & 0x100)))
22517 WRITE_BYTE_F(adr, res)
22523 WRITE_BYTE_F(adr, res)
22536 if ((!flag_NotZ) || (flag_C & 0x100))
22540 WRITE_BYTE_F(adr, res)
22546 WRITE_BYTE_F(adr, res)
22559 if (!(flag_C & 0x100))
22563 WRITE_BYTE_F(adr, res)
22569 WRITE_BYTE_F(adr, res)
22582 if (flag_C & 0x100)
22586 WRITE_BYTE_F(adr, res)
22592 WRITE_BYTE_F(adr, res)
22609 WRITE_BYTE_F(adr, res)
22615 WRITE_BYTE_F(adr, res)
22632 WRITE_BYTE_F(adr, res)
22638 WRITE_BYTE_F(adr, res)
22651 if (!(flag_V & 0x80))
22655 WRITE_BYTE_F(adr, res)
22661 WRITE_BYTE_F(adr, res)
22678 WRITE_BYTE_F(adr, res)
22684 WRITE_BYTE_F(adr, res)
22697 if (!(flag_N & 0x80))
22701 WRITE_BYTE_F(adr, res)
22707 WRITE_BYTE_F(adr, res)
22724 WRITE_BYTE_F(adr, res)
22730 WRITE_BYTE_F(adr, res)
22743 if (!((flag_N ^ flag_V) & 0x80))
22747 WRITE_BYTE_F(adr, res)
22753 WRITE_BYTE_F(adr, res)
22766 if ((flag_N ^ flag_V) & 0x80)
22770 WRITE_BYTE_F(adr, res)
22776 WRITE_BYTE_F(adr, res)
22789 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
22793 WRITE_BYTE_F(adr, res)
22799 WRITE_BYTE_F(adr, res)
22812 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
22816 WRITE_BYTE_F(adr, res)
22822 WRITE_BYTE_F(adr, res)
22837 WRITE_BYTE_F(adr, res)
22852 WRITE_BYTE_F(adr, res)
22865 if (flag_NotZ && (!(flag_C & 0x100)))
22869 WRITE_BYTE_F(adr, res)
22875 WRITE_BYTE_F(adr, res)
22888 if ((!flag_NotZ) || (flag_C & 0x100))
22892 WRITE_BYTE_F(adr, res)
22898 WRITE_BYTE_F(adr, res)
22911 if (!(flag_C & 0x100))
22915 WRITE_BYTE_F(adr, res)
22921 WRITE_BYTE_F(adr, res)
22934 if (flag_C & 0x100)
22938 WRITE_BYTE_F(adr, res)
22944 WRITE_BYTE_F(adr, res)
22961 WRITE_BYTE_F(adr, res)
22967 WRITE_BYTE_F(adr, res)
22984 WRITE_BYTE_F(adr, res)
22990 WRITE_BYTE_F(adr, res)
23003 if (!(flag_V & 0x80))
23007 WRITE_BYTE_F(adr, res)
23013 WRITE_BYTE_F(adr, res)
23030 WRITE_BYTE_F(adr, res)
23036 WRITE_BYTE_F(adr, res)
23049 if (!(flag_N & 0x80))
23053 WRITE_BYTE_F(adr, res)
23059 WRITE_BYTE_F(adr, res)
23076 WRITE_BYTE_F(adr, res)
23082 WRITE_BYTE_F(adr, res)
23095 if (!((flag_N ^ flag_V) & 0x80))
23099 WRITE_BYTE_F(adr, res)
23105 WRITE_BYTE_F(adr, res)
23118 if ((flag_N ^ flag_V) & 0x80)
23122 WRITE_BYTE_F(adr, res)
23128 WRITE_BYTE_F(adr, res)
23141 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
23145 WRITE_BYTE_F(adr, res)
23151 WRITE_BYTE_F(adr, res)
23164 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
23168 WRITE_BYTE_F(adr, res)
23174 WRITE_BYTE_F(adr, res)
23195 res = DREGu16((Opcode >> 0) & 7);
23197 DREGu16((Opcode >> 0) & 7) = res;
23198 if ((s32)res != -1)
23202 newPC = (u32)(PC) - BasePC;
23203 newPC += GET_SWORD;
23205 CHECK_BRANCH_EXCEPTION(newPC)
23218 if ((!flag_NotZ) || (flag_C & 0x100))
23220 res = DREGu16((Opcode >> 0) & 7);
23222 DREGu16((Opcode >> 0) & 7) = res;
23223 if ((s32)res != -1)
23227 newPC = (u32)(PC) - BasePC;
23228 newPC += GET_SWORD;
23230 CHECK_BRANCH_EXCEPTION(newPC)
23249 if (flag_NotZ && (!(flag_C & 0x100)))
23251 res = DREGu16((Opcode >> 0) & 7);
23253 DREGu16((Opcode >> 0) & 7) = res;
23254 if ((s32)res != -1)
23258 newPC = (u32)(PC) - BasePC;
23259 newPC += GET_SWORD;
23261 CHECK_BRANCH_EXCEPTION(newPC)
23280 if (flag_C & 0x100)
23282 res = DREGu16((Opcode >> 0) & 7);
23284 DREGu16((Opcode >> 0) & 7) = res;
23285 if ((s32)res != -1)
23289 newPC = (u32)(PC) - BasePC;
23290 newPC += GET_SWORD;
23292 CHECK_BRANCH_EXCEPTION(newPC)
23311 if (!(flag_C & 0x100))
23313 res = DREGu16((Opcode >> 0) & 7);
23315 DREGu16((Opcode >> 0) & 7) = res;
23316 if ((s32)res != -1)
23320 newPC = (u32)(PC) - BasePC;
23321 newPC += GET_SWORD;
23323 CHECK_BRANCH_EXCEPTION(newPC)
23344 res = DREGu16((Opcode >> 0) & 7);
23346 DREGu16((Opcode >> 0) & 7) = res;
23347 if ((s32)res != -1)
23351 newPC = (u32)(PC) - BasePC;
23352 newPC += GET_SWORD;
23354 CHECK_BRANCH_EXCEPTION(newPC)
23375 res = DREGu16((Opcode >> 0) & 7);
23377 DREGu16((Opcode >> 0) & 7) = res;
23378 if ((s32)res != -1)
23382 newPC = (u32)(PC) - BasePC;
23383 newPC += GET_SWORD;
23385 CHECK_BRANCH_EXCEPTION(newPC)
23406 res = DREGu16((Opcode >> 0) & 7);
23408 DREGu16((Opcode >> 0) & 7) = res;
23409 if ((s32)res != -1)
23413 newPC = (u32)(PC) - BasePC;
23414 newPC += GET_SWORD;
23416 CHECK_BRANCH_EXCEPTION(newPC)
23435 if (!(flag_V & 0x80))
23437 res = DREGu16((Opcode >> 0) & 7);
23439 DREGu16((Opcode >> 0) & 7) = res;
23440 if ((s32)res != -1)
23444 newPC = (u32)(PC) - BasePC;
23445 newPC += GET_SWORD;
23447 CHECK_BRANCH_EXCEPTION(newPC)
23468 res = DREGu16((Opcode >> 0) & 7);
23470 DREGu16((Opcode >> 0) & 7) = res;
23471 if ((s32)res != -1)
23475 newPC = (u32)(PC) - BasePC;
23476 newPC += GET_SWORD;
23478 CHECK_BRANCH_EXCEPTION(newPC)
23497 if (!(flag_N & 0x80))
23499 res = DREGu16((Opcode >> 0) & 7);
23501 DREGu16((Opcode >> 0) & 7) = res;
23502 if ((s32)res != -1)
23506 newPC = (u32)(PC) - BasePC;
23507 newPC += GET_SWORD;
23509 CHECK_BRANCH_EXCEPTION(newPC)
23528 if ((flag_N ^ flag_V) & 0x80)
23530 res = DREGu16((Opcode >> 0) & 7);
23532 DREGu16((Opcode >> 0) & 7) = res;
23533 if ((s32)res != -1)
23537 newPC = (u32)(PC) - BasePC;
23538 newPC += GET_SWORD;
23540 CHECK_BRANCH_EXCEPTION(newPC)
23559 if (!((flag_N ^ flag_V) & 0x80))
23561 res = DREGu16((Opcode >> 0) & 7);
23563 DREGu16((Opcode >> 0) & 7) = res;
23564 if ((s32)res != -1)
23568 newPC = (u32)(PC) - BasePC;
23569 newPC += GET_SWORD;
23571 CHECK_BRANCH_EXCEPTION(newPC)
23590 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
23592 res = DREGu16((Opcode >> 0) & 7);
23594 DREGu16((Opcode >> 0) & 7) = res;
23595 if ((s32)res != -1)
23599 newPC = (u32)(PC) - BasePC;
23600 newPC += GET_SWORD;
23602 CHECK_BRANCH_EXCEPTION(newPC)
23621 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
23623 res = DREGu16((Opcode >> 0) & 7);
23625 DREGu16((Opcode >> 0) & 7) = res;
23626 if ((s32)res != -1)
23630 newPC = (u32)(PC) - BasePC;
23631 newPC += GET_SWORD;
23633 CHECK_BRANCH_EXCEPTION(newPC)
23652 src = (((Opcode >> 9) - 1) & 7) + 1;
23653 dst = DREGu8((Opcode >> 0) & 7);
23655 flag_N = flag_X = flag_C = res;
23656 flag_V = (src ^ res) & (dst ^ res);
23657 flag_NotZ = res & 0xFF;
23658 DREGu8((Opcode >> 0) & 7) = res;
23668 src = (((Opcode >> 9) - 1) & 7) + 1;
23669 adr = AREG((Opcode >> 0) & 7);
23671 READ_BYTE_F(adr, dst)
23673 flag_N = flag_X = flag_C = res;
23674 flag_V = (src ^ res) & (dst ^ res);
23675 flag_NotZ = res & 0xFF;
23676 WRITE_BYTE_F(adr, res)
23687 src = (((Opcode >> 9) - 1) & 7) + 1;
23688 adr = AREG((Opcode >> 0) & 7);
23689 AREG((Opcode >> 0) & 7) += 1;
23691 READ_BYTE_F(adr, dst)
23693 flag_N = flag_X = flag_C = res;
23694 flag_V = (src ^ res) & (dst ^ res);
23695 flag_NotZ = res & 0xFF;
23696 WRITE_BYTE_F(adr, res)
23707 src = (((Opcode >> 9) - 1) & 7) + 1;
23708 adr = AREG((Opcode >> 0) & 7) - 1;
23709 AREG((Opcode >> 0) & 7) = adr;
23711 READ_BYTE_F(adr, dst)
23713 flag_N = flag_X = flag_C = res;
23714 flag_V = (src ^ res) & (dst ^ res);
23715 flag_NotZ = res & 0xFF;
23716 WRITE_BYTE_F(adr, res)
23727 src = (((Opcode >> 9) - 1) & 7) + 1;
23729 adr += AREG((Opcode >> 0) & 7);
23731 READ_BYTE_F(adr, dst)
23733 flag_N = flag_X = flag_C = res;
23734 flag_V = (src ^ res) & (dst ^ res);
23735 flag_NotZ = res & 0xFF;
23736 WRITE_BYTE_F(adr, res)
23747 src = (((Opcode >> 9) - 1) & 7) + 1;
23748 adr = AREG((Opcode >> 0) & 7);
23751 READ_BYTE_F(adr, dst)
23753 flag_N = flag_X = flag_C = res;
23754 flag_V = (src ^ res) & (dst ^ res);
23755 flag_NotZ = res & 0xFF;
23756 WRITE_BYTE_F(adr, res)
23767 src = (((Opcode >> 9) - 1) & 7) + 1;
23770 READ_BYTE_F(adr, dst)
23772 flag_N = flag_X = flag_C = res;
23773 flag_V = (src ^ res) & (dst ^ res);
23774 flag_NotZ = res & 0xFF;
23775 WRITE_BYTE_F(adr, res)
23786 src = (((Opcode >> 9) - 1) & 7) + 1;
23789 READ_BYTE_F(adr, dst)
23791 flag_N = flag_X = flag_C = res;
23792 flag_V = (src ^ res) & (dst ^ res);
23793 flag_NotZ = res & 0xFF;
23794 WRITE_BYTE_F(adr, res)
23805 src = (((Opcode >> 9) - 1) & 7) + 1;
23809 READ_BYTE_F(adr, dst)
23811 flag_N = flag_X = flag_C = res;
23812 flag_V = (src ^ res) & (dst ^ res);
23813 flag_NotZ = res & 0xFF;
23814 WRITE_BYTE_F(adr, res)
23825 src = (((Opcode >> 9) - 1) & 7) + 1;
23829 READ_BYTE_F(adr, dst)
23831 flag_N = flag_X = flag_C = res;
23832 flag_V = (src ^ res) & (dst ^ res);
23833 flag_NotZ = res & 0xFF;
23834 WRITE_BYTE_F(adr, res)
23845 src = (((Opcode >> 9) - 1) & 7) + 1;
23846 dst = DREGu16((Opcode >> 0) & 7);
23848 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
23849 flag_N = flag_X = flag_C = res >> 8;
23850 flag_NotZ = res & 0xFFFF;
23851 DREGu16((Opcode >> 0) & 7) = res;
23861 src = (((Opcode >> 9) - 1) & 7) + 1;
23862 dst = AREGu32((Opcode >> 0) & 7);
23864 AREG((Opcode >> 0) & 7) = res;
23865 #ifdef USE_CYCLONE_TIMING
23878 src = (((Opcode >> 9) - 1) & 7) + 1;
23879 adr = AREG((Opcode >> 0) & 7);
23881 READ_WORD_F(adr, dst)
23883 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
23884 flag_N = flag_X = flag_C = res >> 8;
23885 flag_NotZ = res & 0xFFFF;
23886 WRITE_WORD_F(adr, res)
23897 src = (((Opcode >> 9) - 1) & 7) + 1;
23898 adr = AREG((Opcode >> 0) & 7);
23899 AREG((Opcode >> 0) & 7) += 2;
23901 READ_WORD_F(adr, dst)
23903 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
23904 flag_N = flag_X = flag_C = res >> 8;
23905 flag_NotZ = res & 0xFFFF;
23906 WRITE_WORD_F(adr, res)
23917 src = (((Opcode >> 9) - 1) & 7) + 1;
23918 adr = AREG((Opcode >> 0) & 7) - 2;
23919 AREG((Opcode >> 0) & 7) = adr;
23921 READ_WORD_F(adr, dst)
23923 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
23924 flag_N = flag_X = flag_C = res >> 8;
23925 flag_NotZ = res & 0xFFFF;
23926 WRITE_WORD_F(adr, res)
23937 src = (((Opcode >> 9) - 1) & 7) + 1;
23939 adr += AREG((Opcode >> 0) & 7);
23941 READ_WORD_F(adr, dst)
23943 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
23944 flag_N = flag_X = flag_C = res >> 8;
23945 flag_NotZ = res & 0xFFFF;
23946 WRITE_WORD_F(adr, res)
23957 src = (((Opcode >> 9) - 1) & 7) + 1;
23958 adr = AREG((Opcode >> 0) & 7);
23961 READ_WORD_F(adr, dst)
23963 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
23964 flag_N = flag_X = flag_C = res >> 8;
23965 flag_NotZ = res & 0xFFFF;
23966 WRITE_WORD_F(adr, res)
23977 src = (((Opcode >> 9) - 1) & 7) + 1;
23980 READ_WORD_F(adr, dst)
23982 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
23983 flag_N = flag_X = flag_C = res >> 8;
23984 flag_NotZ = res & 0xFFFF;
23985 WRITE_WORD_F(adr, res)
23996 src = (((Opcode >> 9) - 1) & 7) + 1;
23999 READ_WORD_F(adr, dst)
24001 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24002 flag_N = flag_X = flag_C = res >> 8;
24003 flag_NotZ = res & 0xFFFF;
24004 WRITE_WORD_F(adr, res)
24015 src = (((Opcode >> 9) - 1) & 7) + 1;
24019 READ_WORD_F(adr, dst)
24021 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24022 flag_N = flag_X = flag_C = res >> 8;
24023 flag_NotZ = res & 0xFFFF;
24024 WRITE_WORD_F(adr, res)
24035 src = (((Opcode >> 9) - 1) & 7) + 1;
24039 READ_WORD_F(adr, dst)
24041 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
24042 flag_N = flag_X = flag_C = res >> 8;
24043 flag_NotZ = res & 0xFFFF;
24044 WRITE_WORD_F(adr, res)
24055 src = (((Opcode >> 9) - 1) & 7) + 1;
24056 dst = DREGu32((Opcode >> 0) & 7);
24059 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24060 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24061 flag_N = res >> 24;
24062 DREGu32((Opcode >> 0) & 7) = res;
24072 src = (((Opcode >> 9) - 1) & 7) + 1;
24073 dst = AREGu32((Opcode >> 0) & 7);
24075 AREG((Opcode >> 0) & 7) = res;
24085 src = (((Opcode >> 9) - 1) & 7) + 1;
24086 adr = AREG((Opcode >> 0) & 7);
24088 READ_LONG_F(adr, dst)
24091 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24092 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24093 flag_N = res >> 24;
24094 WRITE_LONG_F(adr, res)
24105 src = (((Opcode >> 9) - 1) & 7) + 1;
24106 adr = AREG((Opcode >> 0) & 7);
24107 AREG((Opcode >> 0) & 7) += 4;
24109 READ_LONG_F(adr, dst)
24112 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24113 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24114 flag_N = res >> 24;
24115 WRITE_LONG_F(adr, res)
24126 src = (((Opcode >> 9) - 1) & 7) + 1;
24127 adr = AREG((Opcode >> 0) & 7) - 4;
24128 AREG((Opcode >> 0) & 7) = adr;
24130 READ_LONG_F(adr, dst)
24133 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24134 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24135 flag_N = res >> 24;
24136 WRITE_LONG_F(adr, res)
24147 src = (((Opcode >> 9) - 1) & 7) + 1;
24149 adr += AREG((Opcode >> 0) & 7);
24151 READ_LONG_F(adr, dst)
24154 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24155 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24156 flag_N = res >> 24;
24157 WRITE_LONG_F(adr, res)
24168 src = (((Opcode >> 9) - 1) & 7) + 1;
24169 adr = AREG((Opcode >> 0) & 7);
24172 READ_LONG_F(adr, dst)
24175 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24176 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24177 flag_N = res >> 24;
24178 WRITE_LONG_F(adr, res)
24189 src = (((Opcode >> 9) - 1) & 7) + 1;
24192 READ_LONG_F(adr, dst)
24195 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24196 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24197 flag_N = res >> 24;
24198 WRITE_LONG_F(adr, res)
24209 src = (((Opcode >> 9) - 1) & 7) + 1;
24212 READ_LONG_F(adr, dst)
24215 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24216 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24217 flag_N = res >> 24;
24218 WRITE_LONG_F(adr, res)
24229 src = (((Opcode >> 9) - 1) & 7) + 1;
24233 READ_LONG_F(adr, dst)
24236 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24237 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24238 flag_N = res >> 24;
24239 WRITE_LONG_F(adr, res)
24250 src = (((Opcode >> 9) - 1) & 7) + 1;
24254 READ_LONG_F(adr, dst)
24257 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
24258 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
24259 flag_N = res >> 24;
24260 WRITE_LONG_F(adr, res)
24271 src = (((Opcode >> 9) - 1) & 7) + 1;
24272 dst = DREGu8((Opcode >> 0) & 7);
24274 flag_N = flag_X = flag_C = res;
24275 flag_V = (src ^ dst) & (res ^ dst);
24276 flag_NotZ = res & 0xFF;
24277 DREGu8((Opcode >> 0) & 7) = res;
24287 src = (((Opcode >> 9) - 1) & 7) + 1;
24288 adr = AREG((Opcode >> 0) & 7);
24290 READ_BYTE_F(adr, dst)
24292 flag_N = flag_X = flag_C = res;
24293 flag_V = (src ^ dst) & (res ^ dst);
24294 flag_NotZ = res & 0xFF;
24295 WRITE_BYTE_F(adr, res)
24306 src = (((Opcode >> 9) - 1) & 7) + 1;
24307 adr = AREG((Opcode >> 0) & 7);
24308 AREG((Opcode >> 0) & 7) += 1;
24310 READ_BYTE_F(adr, dst)
24312 flag_N = flag_X = flag_C = res;
24313 flag_V = (src ^ dst) & (res ^ dst);
24314 flag_NotZ = res & 0xFF;
24315 WRITE_BYTE_F(adr, res)
24326 src = (((Opcode >> 9) - 1) & 7) + 1;
24327 adr = AREG((Opcode >> 0) & 7) - 1;
24328 AREG((Opcode >> 0) & 7) = adr;
24330 READ_BYTE_F(adr, dst)
24332 flag_N = flag_X = flag_C = res;
24333 flag_V = (src ^ dst) & (res ^ dst);
24334 flag_NotZ = res & 0xFF;
24335 WRITE_BYTE_F(adr, res)
24346 src = (((Opcode >> 9) - 1) & 7) + 1;
24348 adr += AREG((Opcode >> 0) & 7);
24350 READ_BYTE_F(adr, dst)
24352 flag_N = flag_X = flag_C = res;
24353 flag_V = (src ^ dst) & (res ^ dst);
24354 flag_NotZ = res & 0xFF;
24355 WRITE_BYTE_F(adr, res)
24366 src = (((Opcode >> 9) - 1) & 7) + 1;
24367 adr = AREG((Opcode >> 0) & 7);
24370 READ_BYTE_F(adr, dst)
24372 flag_N = flag_X = flag_C = res;
24373 flag_V = (src ^ dst) & (res ^ dst);
24374 flag_NotZ = res & 0xFF;
24375 WRITE_BYTE_F(adr, res)
24386 src = (((Opcode >> 9) - 1) & 7) + 1;
24389 READ_BYTE_F(adr, dst)
24391 flag_N = flag_X = flag_C = res;
24392 flag_V = (src ^ dst) & (res ^ dst);
24393 flag_NotZ = res & 0xFF;
24394 WRITE_BYTE_F(adr, res)
24405 src = (((Opcode >> 9) - 1) & 7) + 1;
24408 READ_BYTE_F(adr, dst)
24410 flag_N = flag_X = flag_C = res;
24411 flag_V = (src ^ dst) & (res ^ dst);
24412 flag_NotZ = res & 0xFF;
24413 WRITE_BYTE_F(adr, res)
24424 src = (((Opcode >> 9) - 1) & 7) + 1;
24428 READ_BYTE_F(adr, dst)
24430 flag_N = flag_X = flag_C = res;
24431 flag_V = (src ^ dst) & (res ^ dst);
24432 flag_NotZ = res & 0xFF;
24433 WRITE_BYTE_F(adr, res)
24444 src = (((Opcode >> 9) - 1) & 7) + 1;
24448 READ_BYTE_F(adr, dst)
24450 flag_N = flag_X = flag_C = res;
24451 flag_V = (src ^ dst) & (res ^ dst);
24452 flag_NotZ = res & 0xFF;
24453 WRITE_BYTE_F(adr, res)
24464 src = (((Opcode >> 9) - 1) & 7) + 1;
24465 dst = DREGu16((Opcode >> 0) & 7);
24467 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24468 flag_N = flag_X = flag_C = res >> 8;
24469 flag_NotZ = res & 0xFFFF;
24470 DREGu16((Opcode >> 0) & 7) = res;
24480 src = (((Opcode >> 9) - 1) & 7) + 1;
24481 dst = AREGu32((Opcode >> 0) & 7);
24483 AREG((Opcode >> 0) & 7) = res;
24493 src = (((Opcode >> 9) - 1) & 7) + 1;
24494 adr = AREG((Opcode >> 0) & 7);
24496 READ_WORD_F(adr, dst)
24498 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24499 flag_N = flag_X = flag_C = res >> 8;
24500 flag_NotZ = res & 0xFFFF;
24501 WRITE_WORD_F(adr, res)
24512 src = (((Opcode >> 9) - 1) & 7) + 1;
24513 adr = AREG((Opcode >> 0) & 7);
24514 AREG((Opcode >> 0) & 7) += 2;
24516 READ_WORD_F(adr, dst)
24518 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24519 flag_N = flag_X = flag_C = res >> 8;
24520 flag_NotZ = res & 0xFFFF;
24521 WRITE_WORD_F(adr, res)
24532 src = (((Opcode >> 9) - 1) & 7) + 1;
24533 adr = AREG((Opcode >> 0) & 7) - 2;
24534 AREG((Opcode >> 0) & 7) = adr;
24536 READ_WORD_F(adr, dst)
24538 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24539 flag_N = flag_X = flag_C = res >> 8;
24540 flag_NotZ = res & 0xFFFF;
24541 WRITE_WORD_F(adr, res)
24552 src = (((Opcode >> 9) - 1) & 7) + 1;
24554 adr += AREG((Opcode >> 0) & 7);
24556 READ_WORD_F(adr, dst)
24558 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24559 flag_N = flag_X = flag_C = res >> 8;
24560 flag_NotZ = res & 0xFFFF;
24561 WRITE_WORD_F(adr, res)
24572 src = (((Opcode >> 9) - 1) & 7) + 1;
24573 adr = AREG((Opcode >> 0) & 7);
24576 READ_WORD_F(adr, dst)
24578 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24579 flag_N = flag_X = flag_C = res >> 8;
24580 flag_NotZ = res & 0xFFFF;
24581 WRITE_WORD_F(adr, res)
24592 src = (((Opcode >> 9) - 1) & 7) + 1;
24595 READ_WORD_F(adr, dst)
24597 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24598 flag_N = flag_X = flag_C = res >> 8;
24599 flag_NotZ = res & 0xFFFF;
24600 WRITE_WORD_F(adr, res)
24611 src = (((Opcode >> 9) - 1) & 7) + 1;
24614 READ_WORD_F(adr, dst)
24616 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24617 flag_N = flag_X = flag_C = res >> 8;
24618 flag_NotZ = res & 0xFFFF;
24619 WRITE_WORD_F(adr, res)
24630 src = (((Opcode >> 9) - 1) & 7) + 1;
24634 READ_WORD_F(adr, dst)
24636 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24637 flag_N = flag_X = flag_C = res >> 8;
24638 flag_NotZ = res & 0xFFFF;
24639 WRITE_WORD_F(adr, res)
24650 src = (((Opcode >> 9) - 1) & 7) + 1;
24654 READ_WORD_F(adr, dst)
24656 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
24657 flag_N = flag_X = flag_C = res >> 8;
24658 flag_NotZ = res & 0xFFFF;
24659 WRITE_WORD_F(adr, res)
24670 src = (((Opcode >> 9) - 1) & 7) + 1;
24671 dst = DREGu32((Opcode >> 0) & 7);
24674 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24675 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24676 flag_N = res >> 24;
24677 DREGu32((Opcode >> 0) & 7) = res;
24687 src = (((Opcode >> 9) - 1) & 7) + 1;
24688 dst = AREGu32((Opcode >> 0) & 7);
24690 AREG((Opcode >> 0) & 7) = res;
24700 src = (((Opcode >> 9) - 1) & 7) + 1;
24701 adr = AREG((Opcode >> 0) & 7);
24703 READ_LONG_F(adr, dst)
24706 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24707 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24708 flag_N = res >> 24;
24709 WRITE_LONG_F(adr, res)
24720 src = (((Opcode >> 9) - 1) & 7) + 1;
24721 adr = AREG((Opcode >> 0) & 7);
24722 AREG((Opcode >> 0) & 7) += 4;
24724 READ_LONG_F(adr, dst)
24727 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24728 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24729 flag_N = res >> 24;
24730 WRITE_LONG_F(adr, res)
24741 src = (((Opcode >> 9) - 1) & 7) + 1;
24742 adr = AREG((Opcode >> 0) & 7) - 4;
24743 AREG((Opcode >> 0) & 7) = adr;
24745 READ_LONG_F(adr, dst)
24748 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24749 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24750 flag_N = res >> 24;
24751 WRITE_LONG_F(adr, res)
24762 src = (((Opcode >> 9) - 1) & 7) + 1;
24764 adr += AREG((Opcode >> 0) & 7);
24766 READ_LONG_F(adr, dst)
24769 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24770 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24771 flag_N = res >> 24;
24772 WRITE_LONG_F(adr, res)
24783 src = (((Opcode >> 9) - 1) & 7) + 1;
24784 adr = AREG((Opcode >> 0) & 7);
24787 READ_LONG_F(adr, dst)
24790 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24791 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24792 flag_N = res >> 24;
24793 WRITE_LONG_F(adr, res)
24804 src = (((Opcode >> 9) - 1) & 7) + 1;
24807 READ_LONG_F(adr, dst)
24810 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24811 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24812 flag_N = res >> 24;
24813 WRITE_LONG_F(adr, res)
24824 src = (((Opcode >> 9) - 1) & 7) + 1;
24827 READ_LONG_F(adr, dst)
24830 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24831 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24832 flag_N = res >> 24;
24833 WRITE_LONG_F(adr, res)
24844 src = (((Opcode >> 9) - 1) & 7) + 1;
24848 READ_LONG_F(adr, dst)
24851 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24852 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24853 flag_N = res >> 24;
24854 WRITE_LONG_F(adr, res)
24865 src = (((Opcode >> 9) - 1) & 7) + 1;
24869 READ_LONG_F(adr, dst)
24872 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
24873 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
24874 flag_N = res >> 24;
24875 WRITE_LONG_F(adr, res)
24886 if (flag_NotZ && (!(flag_C & 0x100)))
24888 PC += ((s8)(Opcode & 0xFE)) >> 1;
24889 m68kcontext.io_cycle_counter -= 2;
24900 if ((!flag_NotZ) || (flag_C & 0x100))
24902 PC += ((s8)(Opcode & 0xFE)) >> 1;
24903 m68kcontext.io_cycle_counter -= 2;
24914 if (!(flag_C & 0x100))
24916 PC += ((s8)(Opcode & 0xFE)) >> 1;
24917 m68kcontext.io_cycle_counter -= 2;
24928 if (flag_C & 0x100)
24930 PC += ((s8)(Opcode & 0xFE)) >> 1;
24931 m68kcontext.io_cycle_counter -= 2;
24944 PC += ((s8)(Opcode & 0xFE)) >> 1;
24945 m68kcontext.io_cycle_counter -= 2;
24958 PC += ((s8)(Opcode & 0xFE)) >> 1;
24959 m68kcontext.io_cycle_counter -= 2;
24970 if (!(flag_V & 0x80))
24972 PC += ((s8)(Opcode & 0xFE)) >> 1;
24973 m68kcontext.io_cycle_counter -= 2;
24986 PC += ((s8)(Opcode & 0xFE)) >> 1;
24987 m68kcontext.io_cycle_counter -= 2;
24998 if (!(flag_N & 0x80))
25000 PC += ((s8)(Opcode & 0xFE)) >> 1;
25001 m68kcontext.io_cycle_counter -= 2;
25014 PC += ((s8)(Opcode & 0xFE)) >> 1;
25015 m68kcontext.io_cycle_counter -= 2;
25026 if (!((flag_N ^ flag_V) & 0x80))
25028 PC += ((s8)(Opcode & 0xFE)) >> 1;
25029 m68kcontext.io_cycle_counter -= 2;
25040 if ((flag_N ^ flag_V) & 0x80)
25042 PC += ((s8)(Opcode & 0xFE)) >> 1;
25043 m68kcontext.io_cycle_counter -= 2;
25054 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
25056 PC += ((s8)(Opcode & 0xFE)) >> 1;
25057 m68kcontext.io_cycle_counter -= 2;
25068 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
25070 PC += ((s8)(Opcode & 0xFE)) >> 1;
25071 m68kcontext.io_cycle_counter -= 2;
25082 if (flag_NotZ && (!(flag_C & 0x100)))
25086 newPC = (u32)(PC) - BasePC;
25087 newPC += GET_SWORD;
25089 CHECK_BRANCH_EXCEPTION(newPC)
25102 if ((!flag_NotZ) || (flag_C & 0x100))
25106 newPC = (u32)(PC) - BasePC;
25107 newPC += GET_SWORD;
25109 CHECK_BRANCH_EXCEPTION(newPC)
25122 if (!(flag_C & 0x100))
25126 newPC = (u32)(PC) - BasePC;
25127 newPC += GET_SWORD;
25129 CHECK_BRANCH_EXCEPTION(newPC)
25142 if (flag_C & 0x100)
25146 newPC = (u32)(PC) - BasePC;
25147 newPC += GET_SWORD;
25149 CHECK_BRANCH_EXCEPTION(newPC)
25166 newPC = (u32)(PC) - BasePC;
25167 newPC += GET_SWORD;
25169 CHECK_BRANCH_EXCEPTION(newPC)
25186 newPC = (u32)(PC) - BasePC;
25187 newPC += GET_SWORD;
25189 CHECK_BRANCH_EXCEPTION(newPC)
25202 if (!(flag_V & 0x80))
25206 newPC = (u32)(PC) - BasePC;
25207 newPC += GET_SWORD;
25209 CHECK_BRANCH_EXCEPTION(newPC)
25226 newPC = (u32)(PC) - BasePC;
25227 newPC += GET_SWORD;
25229 CHECK_BRANCH_EXCEPTION(newPC)
25242 if (!(flag_N & 0x80))
25246 newPC = (u32)(PC) - BasePC;
25247 newPC += GET_SWORD;
25249 CHECK_BRANCH_EXCEPTION(newPC)
25266 newPC = (u32)(PC) - BasePC;
25267 newPC += GET_SWORD;
25269 CHECK_BRANCH_EXCEPTION(newPC)
25282 if (!((flag_N ^ flag_V) & 0x80))
25286 newPC = (u32)(PC) - BasePC;
25287 newPC += GET_SWORD;
25289 CHECK_BRANCH_EXCEPTION(newPC)
25302 if ((flag_N ^ flag_V) & 0x80)
25306 newPC = (u32)(PC) - BasePC;
25307 newPC += GET_SWORD;
25309 CHECK_BRANCH_EXCEPTION(newPC)
25322 if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
25326 newPC = (u32)(PC) - BasePC;
25327 newPC += GET_SWORD;
25329 CHECK_BRANCH_EXCEPTION(newPC)
25342 if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
25346 newPC = (u32)(PC) - BasePC;
25347 newPC += GET_SWORD;
25349 CHECK_BRANCH_EXCEPTION(newPC)
25359 #ifdef FAMEC_CHECK_BRANCHES
25360 u32 newPC = (u32)(PC) - BasePC;
25364 CHECK_BRANCH_EXCEPTION(offs)
25366 PC += ((s8)(Opcode & 0xFE)) >> 1;
25380 newPC = (u32)(PC) - BasePC;
25381 newPC += GET_SWORD;
25383 CHECK_BRANCH_EXCEPTION(newPC)
25398 oldPC = (u32)(PC) - BasePC;
25400 #ifdef FAMEC_CHECK_BRANCHES
25404 CHECK_BRANCH_EXCEPTION(offs)
25406 PC += ((s8)(Opcode & 0xFE)) >> 1;
25422 newPC = (u32)(PC) - BasePC;
25425 newPC += GET_SWORD;
25427 CHECK_BRANCH_EXCEPTION(newPC)
25439 res = (s32)(s8)Opcode;
25440 flag_C = flag_V = 0;
25441 flag_N = flag_NotZ = res;
25442 DREGu32((Opcode >> 9) & 7) = res;
25452 src = DREGu8((Opcode >> 0) & 7);
25453 res = DREGu8((Opcode >> 9) & 7);
25459 DREGu8((Opcode >> 9) & 7) = res;
25469 adr = AREG((Opcode >> 0) & 7);
25471 READ_BYTE_F(adr, src)
25472 res = DREGu8((Opcode >> 9) & 7);
25478 DREGu8((Opcode >> 9) & 7) = res;
25489 adr = AREG((Opcode >> 0) & 7);
25490 AREG((Opcode >> 0) & 7) += 1;
25492 READ_BYTE_F(adr, src)
25493 res = DREGu8((Opcode >> 9) & 7);
25499 DREGu8((Opcode >> 9) & 7) = res;
25510 adr = AREG((Opcode >> 0) & 7) - 1;
25511 AREG((Opcode >> 0) & 7) = adr;
25513 READ_BYTE_F(adr, src)
25514 res = DREGu8((Opcode >> 9) & 7);
25520 DREGu8((Opcode >> 9) & 7) = res;
25532 adr += AREG((Opcode >> 0) & 7);
25534 READ_BYTE_F(adr, src)
25535 res = DREGu8((Opcode >> 9) & 7);
25541 DREGu8((Opcode >> 9) & 7) = res;
25552 adr = AREG((Opcode >> 0) & 7);
25555 READ_BYTE_F(adr, src)
25556 res = DREGu8((Opcode >> 9) & 7);
25562 DREGu8((Opcode >> 9) & 7) = res;
25575 READ_BYTE_F(adr, src)
25576 res = DREGu8((Opcode >> 9) & 7);
25582 DREGu8((Opcode >> 9) & 7) = res;
25595 READ_BYTE_F(adr, src)
25596 res = DREGu8((Opcode >> 9) & 7);
25602 DREGu8((Opcode >> 9) & 7) = res;
25613 adr = GET_SWORD + ((u32)(PC) - BasePC);
25616 READ_BYTE_F(adr, src)
25617 res = DREGu8((Opcode >> 9) & 7);
25623 DREGu8((Opcode >> 9) & 7) = res;
25634 adr = (u32)(PC) - BasePC;
25637 READ_BYTE_F(adr, src)
25638 res = DREGu8((Opcode >> 9) & 7);
25644 DREGu8((Opcode >> 9) & 7) = res;
25656 res = DREGu8((Opcode >> 9) & 7);
25662 DREGu8((Opcode >> 9) & 7) = res;
25675 READ_BYTE_F(adr, src)
25676 res = DREGu8((Opcode >> 9) & 7);
25682 DREGu8((Opcode >> 9) & 7) = res;
25696 READ_BYTE_F(adr, src)
25697 res = DREGu8((Opcode >> 9) & 7);
25703 DREGu8((Opcode >> 9) & 7) = res;
25714 src = DREGu16((Opcode >> 0) & 7);
25715 res = DREGu16((Opcode >> 9) & 7);
25721 DREGu16((Opcode >> 9) & 7) = res;
25731 adr = AREG((Opcode >> 0) & 7);
25733 READ_WORD_F(adr, src)
25734 res = DREGu16((Opcode >> 9) & 7);
25740 DREGu16((Opcode >> 9) & 7) = res;
25751 adr = AREG((Opcode >> 0) & 7);
25752 AREG((Opcode >> 0) & 7) += 2;
25754 READ_WORD_F(adr, src)
25755 res = DREGu16((Opcode >> 9) & 7);
25761 DREGu16((Opcode >> 9) & 7) = res;
25772 adr = AREG((Opcode >> 0) & 7) - 2;
25773 AREG((Opcode >> 0) & 7) = adr;
25775 READ_WORD_F(adr, src)
25776 res = DREGu16((Opcode >> 9) & 7);
25782 DREGu16((Opcode >> 9) & 7) = res;
25794 adr += AREG((Opcode >> 0) & 7);
25796 READ_WORD_F(adr, src)
25797 res = DREGu16((Opcode >> 9) & 7);
25803 DREGu16((Opcode >> 9) & 7) = res;
25814 adr = AREG((Opcode >> 0) & 7);
25817 READ_WORD_F(adr, src)
25818 res = DREGu16((Opcode >> 9) & 7);
25824 DREGu16((Opcode >> 9) & 7) = res;
25837 READ_WORD_F(adr, src)
25838 res = DREGu16((Opcode >> 9) & 7);
25844 DREGu16((Opcode >> 9) & 7) = res;
25857 READ_WORD_F(adr, src)
25858 res = DREGu16((Opcode >> 9) & 7);
25864 DREGu16((Opcode >> 9) & 7) = res;
25875 adr = GET_SWORD + ((u32)(PC) - BasePC);
25878 READ_WORD_F(adr, src)
25879 res = DREGu16((Opcode >> 9) & 7);
25885 DREGu16((Opcode >> 9) & 7) = res;
25896 adr = (u32)(PC) - BasePC;
25899 READ_WORD_F(adr, src)
25900 res = DREGu16((Opcode >> 9) & 7);
25906 DREGu16((Opcode >> 9) & 7) = res;
25918 res = DREGu16((Opcode >> 9) & 7);
25924 DREGu16((Opcode >> 9) & 7) = res;
25937 READ_WORD_F(adr, src)
25938 res = DREGu16((Opcode >> 9) & 7);
25944 DREGu16((Opcode >> 9) & 7) = res;
25958 READ_WORD_F(adr, src)
25959 res = DREGu16((Opcode >> 9) & 7);
25965 DREGu16((Opcode >> 9) & 7) = res;
25976 src = DREGu32((Opcode >> 0) & 7);
25977 res = DREGu32((Opcode >> 9) & 7);
25982 flag_N = res >> 24;
25983 DREGu32((Opcode >> 9) & 7) = res;
25993 adr = AREG((Opcode >> 0) & 7);
25995 READ_LONG_F(adr, src)
25996 res = DREGu32((Opcode >> 9) & 7);
26001 flag_N = res >> 24;
26002 DREGu32((Opcode >> 9) & 7) = res;
26013 adr = AREG((Opcode >> 0) & 7);
26014 AREG((Opcode >> 0) & 7) += 4;
26016 READ_LONG_F(adr, src)
26017 res = DREGu32((Opcode >> 9) & 7);
26022 flag_N = res >> 24;
26023 DREGu32((Opcode >> 9) & 7) = res;
26034 adr = AREG((Opcode >> 0) & 7) - 4;
26035 AREG((Opcode >> 0) & 7) = adr;
26037 READ_LONG_F(adr, src)
26038 res = DREGu32((Opcode >> 9) & 7);
26043 flag_N = res >> 24;
26044 DREGu32((Opcode >> 9) & 7) = res;
26056 adr += AREG((Opcode >> 0) & 7);
26058 READ_LONG_F(adr, src)
26059 res = DREGu32((Opcode >> 9) & 7);
26064 flag_N = res >> 24;
26065 DREGu32((Opcode >> 9) & 7) = res;
26076 adr = AREG((Opcode >> 0) & 7);
26079 READ_LONG_F(adr, src)
26080 res = DREGu32((Opcode >> 9) & 7);
26085 flag_N = res >> 24;
26086 DREGu32((Opcode >> 9) & 7) = res;
26099 READ_LONG_F(adr, src)
26100 res = DREGu32((Opcode >> 9) & 7);
26105 flag_N = res >> 24;
26106 DREGu32((Opcode >> 9) & 7) = res;
26119 READ_LONG_F(adr, src)
26120 res = DREGu32((Opcode >> 9) & 7);
26125 flag_N = res >> 24;
26126 DREGu32((Opcode >> 9) & 7) = res;
26137 adr = GET_SWORD + ((u32)(PC) - BasePC);
26140 READ_LONG_F(adr, src)
26141 res = DREGu32((Opcode >> 9) & 7);
26146 flag_N = res >> 24;
26147 DREGu32((Opcode >> 9) & 7) = res;
26158 adr = (u32)(PC) - BasePC;
26161 READ_LONG_F(adr, src)
26162 res = DREGu32((Opcode >> 9) & 7);
26167 flag_N = res >> 24;
26168 DREGu32((Opcode >> 9) & 7) = res;
26180 res = DREGu32((Opcode >> 9) & 7);
26185 flag_N = res >> 24;
26186 DREGu32((Opcode >> 9) & 7) = res;
26199 READ_LONG_F(adr, src)
26200 res = DREGu32((Opcode >> 9) & 7);
26205 flag_N = res >> 24;
26206 DREGu32((Opcode >> 9) & 7) = res;
26220 READ_LONG_F(adr, src)
26221 res = DREGu32((Opcode >> 9) & 7);
26226 flag_N = res >> 24;
26227 DREGu32((Opcode >> 9) & 7) = res;
26238 src = DREGu8((Opcode >> 9) & 7);
26239 adr = AREG((Opcode >> 0) & 7);
26241 READ_BYTE_F(adr, res)
26247 WRITE_BYTE_F(adr, res)
26258 src = DREGu8((Opcode >> 9) & 7);
26259 adr = AREG((Opcode >> 0) & 7);
26260 AREG((Opcode >> 0) & 7) += 1;
26262 READ_BYTE_F(adr, res)
26268 WRITE_BYTE_F(adr, res)
26279 src = DREGu8((Opcode >> 9) & 7);
26280 adr = AREG((Opcode >> 0) & 7) - 1;
26281 AREG((Opcode >> 0) & 7) = adr;
26283 READ_BYTE_F(adr, res)
26289 WRITE_BYTE_F(adr, res)
26300 src = DREGu8((Opcode >> 9) & 7);
26302 adr += AREG((Opcode >> 0) & 7);
26304 READ_BYTE_F(adr, res)
26310 WRITE_BYTE_F(adr, res)
26321 src = DREGu8((Opcode >> 9) & 7);
26322 adr = AREG((Opcode >> 0) & 7);
26325 READ_BYTE_F(adr, res)
26331 WRITE_BYTE_F(adr, res)
26342 src = DREGu8((Opcode >> 9) & 7);
26345 READ_BYTE_F(adr, res)
26351 WRITE_BYTE_F(adr, res)
26362 src = DREGu8((Opcode >> 9) & 7);
26365 READ_BYTE_F(adr, res)
26371 WRITE_BYTE_F(adr, res)
26382 src = DREGu8((Opcode >> 9) & 7);
26386 READ_BYTE_F(adr, res)
26392 WRITE_BYTE_F(adr, res)
26403 src = DREGu8((Opcode >> 9) & 7);
26407 READ_BYTE_F(adr, res)
26413 WRITE_BYTE_F(adr, res)
26424 src = DREGu16((Opcode >> 9) & 7);
26425 adr = AREG((Opcode >> 0) & 7);
26427 READ_WORD_F(adr, res)
26433 WRITE_WORD_F(adr, res)
26444 src = DREGu16((Opcode >> 9) & 7);
26445 adr = AREG((Opcode >> 0) & 7);
26446 AREG((Opcode >> 0) & 7) += 2;
26448 READ_WORD_F(adr, res)
26454 WRITE_WORD_F(adr, res)
26465 src = DREGu16((Opcode >> 9) & 7);
26466 adr = AREG((Opcode >> 0) & 7) - 2;
26467 AREG((Opcode >> 0) & 7) = adr;
26469 READ_WORD_F(adr, res)
26475 WRITE_WORD_F(adr, res)
26486 src = DREGu16((Opcode >> 9) & 7);
26488 adr += AREG((Opcode >> 0) & 7);
26490 READ_WORD_F(adr, res)
26496 WRITE_WORD_F(adr, res)
26507 src = DREGu16((Opcode >> 9) & 7);
26508 adr = AREG((Opcode >> 0) & 7);
26511 READ_WORD_F(adr, res)
26517 WRITE_WORD_F(adr, res)
26528 src = DREGu16((Opcode >> 9) & 7);
26531 READ_WORD_F(adr, res)
26537 WRITE_WORD_F(adr, res)
26548 src = DREGu16((Opcode >> 9) & 7);
26551 READ_WORD_F(adr, res)
26557 WRITE_WORD_F(adr, res)
26568 src = DREGu16((Opcode >> 9) & 7);
26572 READ_WORD_F(adr, res)
26578 WRITE_WORD_F(adr, res)
26589 src = DREGu16((Opcode >> 9) & 7);
26593 READ_WORD_F(adr, res)
26599 WRITE_WORD_F(adr, res)
26610 src = DREGu32((Opcode >> 9) & 7);
26611 adr = AREG((Opcode >> 0) & 7);
26613 READ_LONG_F(adr, res)
26618 flag_N = res >> 24;
26619 WRITE_LONG_F(adr, res)
26630 src = DREGu32((Opcode >> 9) & 7);
26631 adr = AREG((Opcode >> 0) & 7);
26632 AREG((Opcode >> 0) & 7) += 4;
26634 READ_LONG_F(adr, res)
26639 flag_N = res >> 24;
26640 WRITE_LONG_F(adr, res)
26651 src = DREGu32((Opcode >> 9) & 7);
26652 adr = AREG((Opcode >> 0) & 7) - 4;
26653 AREG((Opcode >> 0) & 7) = adr;
26655 READ_LONG_F(adr, res)
26660 flag_N = res >> 24;
26661 WRITE_LONG_F(adr, res)
26672 src = DREGu32((Opcode >> 9) & 7);
26674 adr += AREG((Opcode >> 0) & 7);
26676 READ_LONG_F(adr, res)
26681 flag_N = res >> 24;
26682 WRITE_LONG_F(adr, res)
26693 src = DREGu32((Opcode >> 9) & 7);
26694 adr = AREG((Opcode >> 0) & 7);
26697 READ_LONG_F(adr, res)
26702 flag_N = res >> 24;
26703 WRITE_LONG_F(adr, res)
26714 src = DREGu32((Opcode >> 9) & 7);
26717 READ_LONG_F(adr, res)
26722 flag_N = res >> 24;
26723 WRITE_LONG_F(adr, res)
26734 src = DREGu32((Opcode >> 9) & 7);
26737 READ_LONG_F(adr, res)
26742 flag_N = res >> 24;
26743 WRITE_LONG_F(adr, res)
26754 src = DREGu32((Opcode >> 9) & 7);
26758 READ_LONG_F(adr, res)
26763 flag_N = res >> 24;
26764 WRITE_LONG_F(adr, res)
26775 src = DREGu32((Opcode >> 9) & 7);
26779 READ_LONG_F(adr, res)
26784 flag_N = res >> 24;
26785 WRITE_LONG_F(adr, res)
26796 src = DREGu8((Opcode >> 0) & 7);
26797 dst = DREGu8((Opcode >> 9) & 7);
26798 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26799 if (res > 9) res -= 6;
26800 res += (dst & 0xF0) - (src & 0xF0);
26804 flag_X = flag_C = M68K_SR_C;
26806 else flag_X = flag_C = 0;
26807 flag_NotZ |= res & 0xFF;
26809 DREGu8((Opcode >> 9) & 7) = res;
26819 adr = AREG((Opcode >> 0) & 7) - 1;
26820 AREG((Opcode >> 0) & 7) = adr;
26822 READ_BYTE_F(adr, src)
26823 adr = AREG((Opcode >> 9) & 7) - 1;
26824 AREG((Opcode >> 9) & 7) = adr;
26825 READ_BYTE_F(adr, dst)
26826 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26827 if (res > 9) res -= 6;
26828 res += (dst & 0xF0) - (src & 0xF0);
26832 flag_X = flag_C = M68K_SR_C;
26834 else flag_X = flag_C = 0;
26835 flag_NotZ |= res & 0xFF;
26837 WRITE_BYTE_F(adr, res)
26851 READ_BYTE_F(adr, src)
26852 adr = AREG((Opcode >> 9) & 7) - 1;
26853 AREG((Opcode >> 9) & 7) = adr;
26854 READ_BYTE_F(adr, dst)
26855 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26856 if (res > 9) res -= 6;
26857 res += (dst & 0xF0) - (src & 0xF0);
26861 flag_X = flag_C = M68K_SR_C;
26863 else flag_X = flag_C = 0;
26864 flag_NotZ |= res & 0xFF;
26866 WRITE_BYTE_F(adr, res)
26877 adr = AREG((Opcode >> 0) & 7) - 1;
26878 AREG((Opcode >> 0) & 7) = adr;
26880 READ_BYTE_F(adr, src)
26883 READ_BYTE_F(adr, dst)
26884 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26885 if (res > 9) res -= 6;
26886 res += (dst & 0xF0) - (src & 0xF0);
26890 flag_X = flag_C = M68K_SR_C;
26892 else flag_X = flag_C = 0;
26893 flag_NotZ |= res & 0xFF;
26895 WRITE_BYTE_F(adr, res)
26909 READ_BYTE_F(adr, src)
26912 READ_BYTE_F(adr, dst)
26913 res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1);
26914 if (res > 9) res -= 6;
26915 res += (dst & 0xF0) - (src & 0xF0);
26919 flag_X = flag_C = M68K_SR_C;
26921 else flag_X = flag_C = 0;
26922 flag_NotZ |= res & 0xFF;
26924 WRITE_BYTE_F(adr, res)
26935 src = DREGu16((Opcode >> 0) & 7);
26938 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
26939 #ifdef USE_CYCLONE_TIMING_DIV
26945 dst = DREGu32((Opcode >> 9) & 7);
26952 if (q & 0xFFFF0000)
26954 flag_V = M68K_SR_V;
26955 #ifdef USE_CYCLONE_TIMING_DIV
26964 flag_V = flag_C = 0;
26965 res = q | (r << 16);
26966 DREGu32((Opcode >> 9) & 7) = res;
26968 #ifdef USE_CYCLONE_TIMING_DIV
26981 adr = AREG((Opcode >> 0) & 7);
26983 READ_WORD_F(adr, src)
26986 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
26987 #ifdef USE_CYCLONE_TIMING_DIV
26993 dst = DREGu32((Opcode >> 9) & 7);
27000 if (q & 0xFFFF0000)
27002 flag_V = M68K_SR_V;
27003 #ifdef USE_CYCLONE_TIMING_DIV
27012 flag_V = flag_C = 0;
27013 res = q | (r << 16);
27014 DREGu32((Opcode >> 9) & 7) = res;
27016 #ifdef USE_CYCLONE_TIMING_DIV
27029 adr = AREG((Opcode >> 0) & 7);
27030 AREG((Opcode >> 0) & 7) += 2;
27032 READ_WORD_F(adr, src)
27035 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27036 #ifdef USE_CYCLONE_TIMING_DIV
27042 dst = DREGu32((Opcode >> 9) & 7);
27049 if (q & 0xFFFF0000)
27051 flag_V = M68K_SR_V;
27052 #ifdef USE_CYCLONE_TIMING_DIV
27061 flag_V = flag_C = 0;
27062 res = q | (r << 16);
27063 DREGu32((Opcode >> 9) & 7) = res;
27065 #ifdef USE_CYCLONE_TIMING_DIV
27078 adr = AREG((Opcode >> 0) & 7) - 2;
27079 AREG((Opcode >> 0) & 7) = adr;
27081 READ_WORD_F(adr, src)
27084 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27085 #ifdef USE_CYCLONE_TIMING_DIV
27091 dst = DREGu32((Opcode >> 9) & 7);
27098 if (q & 0xFFFF0000)
27100 flag_V = M68K_SR_V;
27101 #ifdef USE_CYCLONE_TIMING_DIV
27110 flag_V = flag_C = 0;
27111 res = q | (r << 16);
27112 DREGu32((Opcode >> 9) & 7) = res;
27114 #ifdef USE_CYCLONE_TIMING_DIV
27128 adr += AREG((Opcode >> 0) & 7);
27130 READ_WORD_F(adr, src)
27133 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27134 #ifdef USE_CYCLONE_TIMING_DIV
27140 dst = DREGu32((Opcode >> 9) & 7);
27147 if (q & 0xFFFF0000)
27149 flag_V = M68K_SR_V;
27150 #ifdef USE_CYCLONE_TIMING_DIV
27159 flag_V = flag_C = 0;
27160 res = q | (r << 16);
27161 DREGu32((Opcode >> 9) & 7) = res;
27163 #ifdef USE_CYCLONE_TIMING_DIV
27176 adr = AREG((Opcode >> 0) & 7);
27179 READ_WORD_F(adr, src)
27182 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27183 #ifdef USE_CYCLONE_TIMING_DIV
27189 dst = DREGu32((Opcode >> 9) & 7);
27196 if (q & 0xFFFF0000)
27198 flag_V = M68K_SR_V;
27199 #ifdef USE_CYCLONE_TIMING_DIV
27208 flag_V = flag_C = 0;
27209 res = q | (r << 16);
27210 DREGu32((Opcode >> 9) & 7) = res;
27212 #ifdef USE_CYCLONE_TIMING_DIV
27227 READ_WORD_F(adr, src)
27230 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27231 #ifdef USE_CYCLONE_TIMING_DIV
27237 dst = DREGu32((Opcode >> 9) & 7);
27244 if (q & 0xFFFF0000)
27246 flag_V = M68K_SR_V;
27247 #ifdef USE_CYCLONE_TIMING_DIV
27256 flag_V = flag_C = 0;
27257 res = q | (r << 16);
27258 DREGu32((Opcode >> 9) & 7) = res;
27260 #ifdef USE_CYCLONE_TIMING_DIV
27275 READ_WORD_F(adr, src)
27278 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27279 #ifdef USE_CYCLONE_TIMING_DIV
27285 dst = DREGu32((Opcode >> 9) & 7);
27292 if (q & 0xFFFF0000)
27294 flag_V = M68K_SR_V;
27295 #ifdef USE_CYCLONE_TIMING_DIV
27304 flag_V = flag_C = 0;
27305 res = q | (r << 16);
27306 DREGu32((Opcode >> 9) & 7) = res;
27308 #ifdef USE_CYCLONE_TIMING_DIV
27321 adr = GET_SWORD + ((u32)(PC) - BasePC);
27324 READ_WORD_F(adr, src)
27327 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27328 #ifdef USE_CYCLONE_TIMING_DIV
27334 dst = DREGu32((Opcode >> 9) & 7);
27341 if (q & 0xFFFF0000)
27343 flag_V = M68K_SR_V;
27344 #ifdef USE_CYCLONE_TIMING_DIV
27353 flag_V = flag_C = 0;
27354 res = q | (r << 16);
27355 DREGu32((Opcode >> 9) & 7) = res;
27357 #ifdef USE_CYCLONE_TIMING_DIV
27370 adr = (u32)(PC) - BasePC;
27373 READ_WORD_F(adr, src)
27376 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27377 #ifdef USE_CYCLONE_TIMING_DIV
27383 dst = DREGu32((Opcode >> 9) & 7);
27390 if (q & 0xFFFF0000)
27392 flag_V = M68K_SR_V;
27393 #ifdef USE_CYCLONE_TIMING_DIV
27402 flag_V = flag_C = 0;
27403 res = q | (r << 16);
27404 DREGu32((Opcode >> 9) & 7) = res;
27406 #ifdef USE_CYCLONE_TIMING_DIV
27422 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27423 #ifdef USE_CYCLONE_TIMING_DIV
27429 dst = DREGu32((Opcode >> 9) & 7);
27436 if (q & 0xFFFF0000)
27438 flag_V = M68K_SR_V;
27439 #ifdef USE_CYCLONE_TIMING_DIV
27448 flag_V = flag_C = 0;
27449 res = q | (r << 16);
27450 DREGu32((Opcode >> 9) & 7) = res;
27452 #ifdef USE_CYCLONE_TIMING_DIV
27468 READ_WORD_F(adr, src)
27471 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27472 #ifdef USE_CYCLONE_TIMING_DIV
27478 dst = DREGu32((Opcode >> 9) & 7);
27485 if (q & 0xFFFF0000)
27487 flag_V = M68K_SR_V;
27488 #ifdef USE_CYCLONE_TIMING_DIV
27497 flag_V = flag_C = 0;
27498 res = q | (r << 16);
27499 DREGu32((Opcode >> 9) & 7) = res;
27501 #ifdef USE_CYCLONE_TIMING_DIV
27517 READ_WORD_F(adr, src)
27520 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27521 #ifdef USE_CYCLONE_TIMING_DIV
27527 dst = DREGu32((Opcode >> 9) & 7);
27534 if (q & 0xFFFF0000)
27536 flag_V = M68K_SR_V;
27537 #ifdef USE_CYCLONE_TIMING_DIV
27546 flag_V = flag_C = 0;
27547 res = q | (r << 16);
27548 DREGu32((Opcode >> 9) & 7) = res;
27550 #ifdef USE_CYCLONE_TIMING_DIV
27563 src = (s32)DREGs16((Opcode >> 0) & 7);
27566 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27567 #ifdef USE_CYCLONE_TIMING_DIV
27572 dst = DREGu32((Opcode >> 9) & 7);
27573 if ((dst == 0x80000000) && (src == (u32)-1))
27575 flag_NotZ = flag_N = 0;
27576 flag_V = flag_C = 0;
27578 DREGu32((Opcode >> 9) & 7) = res;
27579 #ifdef USE_CYCLONE_TIMING_DIV
27587 q = (s32)dst / (s32)src;
27588 r = (s32)dst % (s32)src;
27590 if ((q > 0x7FFF) || (q < -0x8000))
27592 flag_V = M68K_SR_V;
27593 #ifdef USE_CYCLONE_TIMING_DIV
27601 flag_V = flag_C = 0;
27602 res = q | (r << 16);
27603 DREGu32((Opcode >> 9) & 7) = res;
27605 #ifdef USE_CYCLONE_TIMING_DIV
27606 end81C0: m68kcontext.io_cycle_counter -= 50;
27617 adr = AREG((Opcode >> 0) & 7);
27619 READSX_WORD_F(adr, src)
27622 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27623 #ifdef USE_CYCLONE_TIMING_DIV
27628 dst = DREGu32((Opcode >> 9) & 7);
27629 if ((dst == 0x80000000) && (src == (u32)-1))
27631 flag_NotZ = flag_N = 0;
27632 flag_V = flag_C = 0;
27634 DREGu32((Opcode >> 9) & 7) = res;
27635 #ifdef USE_CYCLONE_TIMING_DIV
27643 q = (s32)dst / (s32)src;
27644 r = (s32)dst % (s32)src;
27646 if ((q > 0x7FFF) || (q < -0x8000))
27648 flag_V = M68K_SR_V;
27649 #ifdef USE_CYCLONE_TIMING_DIV
27657 flag_V = flag_C = 0;
27658 res = q | (r << 16);
27659 DREGu32((Opcode >> 9) & 7) = res;
27661 #ifdef USE_CYCLONE_TIMING_DIV
27662 end81D0: m68kcontext.io_cycle_counter -= 50;
27673 adr = AREG((Opcode >> 0) & 7);
27674 AREG((Opcode >> 0) & 7) += 2;
27676 READSX_WORD_F(adr, src)
27679 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27680 #ifdef USE_CYCLONE_TIMING_DIV
27685 dst = DREGu32((Opcode >> 9) & 7);
27686 if ((dst == 0x80000000) && (src == (u32)-1))
27688 flag_NotZ = flag_N = 0;
27689 flag_V = flag_C = 0;
27691 DREGu32((Opcode >> 9) & 7) = res;
27692 #ifdef USE_CYCLONE_TIMING_DIV
27700 q = (s32)dst / (s32)src;
27701 r = (s32)dst % (s32)src;
27703 if ((q > 0x7FFF) || (q < -0x8000))
27705 flag_V = M68K_SR_V;
27706 #ifdef USE_CYCLONE_TIMING_DIV
27714 flag_V = flag_C = 0;
27715 res = q | (r << 16);
27716 DREGu32((Opcode >> 9) & 7) = res;
27718 #ifdef USE_CYCLONE_TIMING_DIV
27719 end81D8: m68kcontext.io_cycle_counter -= 50;
27730 adr = AREG((Opcode >> 0) & 7) - 2;
27731 AREG((Opcode >> 0) & 7) = adr;
27733 READSX_WORD_F(adr, src)
27736 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27737 #ifdef USE_CYCLONE_TIMING_DIV
27742 dst = DREGu32((Opcode >> 9) & 7);
27743 if ((dst == 0x80000000) && (src == (u32)-1))
27745 flag_NotZ = flag_N = 0;
27746 flag_V = flag_C = 0;
27748 DREGu32((Opcode >> 9) & 7) = res;
27749 #ifdef USE_CYCLONE_TIMING_DIV
27757 q = (s32)dst / (s32)src;
27758 r = (s32)dst % (s32)src;
27760 if ((q > 0x7FFF) || (q < -0x8000))
27762 flag_V = M68K_SR_V;
27763 #ifdef USE_CYCLONE_TIMING_DIV
27771 flag_V = flag_C = 0;
27772 res = q | (r << 16);
27773 DREGu32((Opcode >> 9) & 7) = res;
27775 #ifdef USE_CYCLONE_TIMING_DIV
27776 end81E0: m68kcontext.io_cycle_counter -= 50;
27788 adr += AREG((Opcode >> 0) & 7);
27790 READSX_WORD_F(adr, src)
27793 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27794 #ifdef USE_CYCLONE_TIMING_DIV
27799 dst = DREGu32((Opcode >> 9) & 7);
27800 if ((dst == 0x80000000) && (src == (u32)-1))
27802 flag_NotZ = flag_N = 0;
27803 flag_V = flag_C = 0;
27805 DREGu32((Opcode >> 9) & 7) = res;
27806 #ifdef USE_CYCLONE_TIMING_DIV
27814 q = (s32)dst / (s32)src;
27815 r = (s32)dst % (s32)src;
27817 if ((q > 0x7FFF) || (q < -0x8000))
27819 flag_V = M68K_SR_V;
27820 #ifdef USE_CYCLONE_TIMING_DIV
27828 flag_V = flag_C = 0;
27829 res = q | (r << 16);
27830 DREGu32((Opcode >> 9) & 7) = res;
27832 #ifdef USE_CYCLONE_TIMING_DIV
27833 end81E8: m68kcontext.io_cycle_counter -= 50;
27844 adr = AREG((Opcode >> 0) & 7);
27847 READSX_WORD_F(adr, src)
27850 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27851 #ifdef USE_CYCLONE_TIMING_DIV
27856 dst = DREGu32((Opcode >> 9) & 7);
27857 if ((dst == 0x80000000) && (src == (u32)-1))
27859 flag_NotZ = flag_N = 0;
27860 flag_V = flag_C = 0;
27862 DREGu32((Opcode >> 9) & 7) = res;
27863 #ifdef USE_CYCLONE_TIMING_DIV
27871 q = (s32)dst / (s32)src;
27872 r = (s32)dst % (s32)src;
27874 if ((q > 0x7FFF) || (q < -0x8000))
27876 flag_V = M68K_SR_V;
27877 #ifdef USE_CYCLONE_TIMING_DIV
27885 flag_V = flag_C = 0;
27886 res = q | (r << 16);
27887 DREGu32((Opcode >> 9) & 7) = res;
27889 #ifdef USE_CYCLONE_TIMING_DIV
27890 end81F0: m68kcontext.io_cycle_counter -= 50;
27903 READSX_WORD_F(adr, src)
27906 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27907 #ifdef USE_CYCLONE_TIMING_DIV
27912 dst = DREGu32((Opcode >> 9) & 7);
27913 if ((dst == 0x80000000) && (src == (u32)-1))
27915 flag_NotZ = flag_N = 0;
27916 flag_V = flag_C = 0;
27918 DREGu32((Opcode >> 9) & 7) = res;
27919 #ifdef USE_CYCLONE_TIMING_DIV
27927 q = (s32)dst / (s32)src;
27928 r = (s32)dst % (s32)src;
27930 if ((q > 0x7FFF) || (q < -0x8000))
27932 flag_V = M68K_SR_V;
27933 #ifdef USE_CYCLONE_TIMING_DIV
27941 flag_V = flag_C = 0;
27942 res = q | (r << 16);
27943 DREGu32((Opcode >> 9) & 7) = res;
27945 #ifdef USE_CYCLONE_TIMING_DIV
27946 end81F8: m68kcontext.io_cycle_counter -= 50;
27959 READSX_WORD_F(adr, src)
27962 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
27963 #ifdef USE_CYCLONE_TIMING_DIV
27968 dst = DREGu32((Opcode >> 9) & 7);
27969 if ((dst == 0x80000000) && (src == (u32)-1))
27971 flag_NotZ = flag_N = 0;
27972 flag_V = flag_C = 0;
27974 DREGu32((Opcode >> 9) & 7) = res;
27975 #ifdef USE_CYCLONE_TIMING_DIV
27983 q = (s32)dst / (s32)src;
27984 r = (s32)dst % (s32)src;
27986 if ((q > 0x7FFF) || (q < -0x8000))
27988 flag_V = M68K_SR_V;
27989 #ifdef USE_CYCLONE_TIMING_DIV
27997 flag_V = flag_C = 0;
27998 res = q | (r << 16);
27999 DREGu32((Opcode >> 9) & 7) = res;
28001 #ifdef USE_CYCLONE_TIMING_DIV
28002 end81F9: m68kcontext.io_cycle_counter -= 50;
28013 adr = GET_SWORD + ((u32)(PC) - BasePC);
28016 READSX_WORD_F(adr, src)
28019 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28020 #ifdef USE_CYCLONE_TIMING_DIV
28025 dst = DREGu32((Opcode >> 9) & 7);
28026 if ((dst == 0x80000000) && (src == (u32)-1))
28028 flag_NotZ = flag_N = 0;
28029 flag_V = flag_C = 0;
28031 DREGu32((Opcode >> 9) & 7) = res;
28032 #ifdef USE_CYCLONE_TIMING_DIV
28040 q = (s32)dst / (s32)src;
28041 r = (s32)dst % (s32)src;
28043 if ((q > 0x7FFF) || (q < -0x8000))
28045 flag_V = M68K_SR_V;
28046 #ifdef USE_CYCLONE_TIMING_DIV
28054 flag_V = flag_C = 0;
28055 res = q | (r << 16);
28056 DREGu32((Opcode >> 9) & 7) = res;
28058 #ifdef USE_CYCLONE_TIMING_DIV
28059 end81FA: m68kcontext.io_cycle_counter -= 50;
28070 adr = (u32)(PC) - BasePC;
28073 READSX_WORD_F(adr, src)
28076 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28077 #ifdef USE_CYCLONE_TIMING_DIV
28082 dst = DREGu32((Opcode >> 9) & 7);
28083 if ((dst == 0x80000000) && (src == (u32)-1))
28085 flag_NotZ = flag_N = 0;
28086 flag_V = flag_C = 0;
28088 DREGu32((Opcode >> 9) & 7) = res;
28089 #ifdef USE_CYCLONE_TIMING_DIV
28097 q = (s32)dst / (s32)src;
28098 r = (s32)dst % (s32)src;
28100 if ((q > 0x7FFF) || (q < -0x8000))
28102 flag_V = M68K_SR_V;
28103 #ifdef USE_CYCLONE_TIMING_DIV
28111 flag_V = flag_C = 0;
28112 res = q | (r << 16);
28113 DREGu32((Opcode >> 9) & 7) = res;
28115 #ifdef USE_CYCLONE_TIMING_DIV
28116 end81FB: m68kcontext.io_cycle_counter -= 50;
28130 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28131 #ifdef USE_CYCLONE_TIMING_DIV
28136 dst = DREGu32((Opcode >> 9) & 7);
28137 if ((dst == 0x80000000) && (src == (u32)-1))
28139 flag_NotZ = flag_N = 0;
28140 flag_V = flag_C = 0;
28142 DREGu32((Opcode >> 9) & 7) = res;
28143 #ifdef USE_CYCLONE_TIMING_DIV
28151 q = (s32)dst / (s32)src;
28152 r = (s32)dst % (s32)src;
28154 if ((q > 0x7FFF) || (q < -0x8000))
28156 flag_V = M68K_SR_V;
28157 #ifdef USE_CYCLONE_TIMING_DIV
28165 flag_V = flag_C = 0;
28166 res = q | (r << 16);
28167 DREGu32((Opcode >> 9) & 7) = res;
28169 #ifdef USE_CYCLONE_TIMING_DIV
28170 end81FC: m68kcontext.io_cycle_counter -= 50;
28184 READSX_WORD_F(adr, src)
28187 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28188 #ifdef USE_CYCLONE_TIMING_DIV
28193 dst = DREGu32((Opcode >> 9) & 7);
28194 if ((dst == 0x80000000) && (src == (u32)-1))
28196 flag_NotZ = flag_N = 0;
28197 flag_V = flag_C = 0;
28199 DREGu32((Opcode >> 9) & 7) = res;
28200 #ifdef USE_CYCLONE_TIMING_DIV
28208 q = (s32)dst / (s32)src;
28209 r = (s32)dst % (s32)src;
28211 if ((q > 0x7FFF) || (q < -0x8000))
28213 flag_V = M68K_SR_V;
28214 #ifdef USE_CYCLONE_TIMING_DIV
28222 flag_V = flag_C = 0;
28223 res = q | (r << 16);
28224 DREGu32((Opcode >> 9) & 7) = res;
28226 #ifdef USE_CYCLONE_TIMING_DIV
28227 end81DF: m68kcontext.io_cycle_counter -= 50;
28241 READSX_WORD_F(adr, src)
28244 SET_PC(execute_exception(M68K_ZERO_DIVIDE_EX, GET_PC, GET_SR));
28245 #ifdef USE_CYCLONE_TIMING_DIV
28250 dst = DREGu32((Opcode >> 9) & 7);
28251 if ((dst == 0x80000000) && (src == (u32)-1))
28253 flag_NotZ = flag_N = 0;
28254 flag_V = flag_C = 0;
28256 DREGu32((Opcode >> 9) & 7) = res;
28257 #ifdef USE_CYCLONE_TIMING_DIV
28265 q = (s32)dst / (s32)src;
28266 r = (s32)dst % (s32)src;
28268 if ((q > 0x7FFF) || (q < -0x8000))
28270 flag_V = M68K_SR_V;
28271 #ifdef USE_CYCLONE_TIMING_DIV
28279 flag_V = flag_C = 0;
28280 res = q | (r << 16);
28281 DREGu32((Opcode >> 9) & 7) = res;
28283 #ifdef USE_CYCLONE_TIMING_DIV
28284 end81E7: m68kcontext.io_cycle_counter -= 50;
28295 src = DREGu8((Opcode >> 0) & 7);
28296 dst = DREGu8((Opcode >> 9) & 7);
28298 flag_N = flag_X = flag_C = res;
28299 flag_V = (src ^ dst) & (res ^ dst);
28300 flag_NotZ = res & 0xFF;
28301 DREGu8((Opcode >> 9) & 7) = res;
28312 // can't read byte from Ax registers !
28313 m68kcontext.execinfo |= M68K_FAULTED;
28314 m68kcontext.io_cycle_counter = 0;
28316 goto famec_Exec_End;
28317 dst = DREGu8((Opcode >> 9) & 7);
28319 flag_N = flag_X = flag_C = res;
28320 flag_V = (src ^ dst) & (res ^ dst);
28321 flag_NotZ = res & 0xFF;
28322 DREGu8((Opcode >> 9) & 7) = res;
28334 adr = AREG((Opcode >> 0) & 7);
28336 READ_BYTE_F(adr, src)
28337 dst = DREGu8((Opcode >> 9) & 7);
28339 flag_N = flag_X = flag_C = res;
28340 flag_V = (src ^ dst) & (res ^ dst);
28341 flag_NotZ = res & 0xFF;
28342 DREGu8((Opcode >> 9) & 7) = res;
28353 adr = AREG((Opcode >> 0) & 7);
28354 AREG((Opcode >> 0) & 7) += 1;
28356 READ_BYTE_F(adr, src)
28357 dst = DREGu8((Opcode >> 9) & 7);
28359 flag_N = flag_X = flag_C = res;
28360 flag_V = (src ^ dst) & (res ^ dst);
28361 flag_NotZ = res & 0xFF;
28362 DREGu8((Opcode >> 9) & 7) = res;
28373 adr = AREG((Opcode >> 0) & 7) - 1;
28374 AREG((Opcode >> 0) & 7) = adr;
28376 READ_BYTE_F(adr, src)
28377 dst = DREGu8((Opcode >> 9) & 7);
28379 flag_N = flag_X = flag_C = res;
28380 flag_V = (src ^ dst) & (res ^ dst);
28381 flag_NotZ = res & 0xFF;
28382 DREGu8((Opcode >> 9) & 7) = res;
28394 adr += AREG((Opcode >> 0) & 7);
28396 READ_BYTE_F(adr, src)
28397 dst = DREGu8((Opcode >> 9) & 7);
28399 flag_N = flag_X = flag_C = res;
28400 flag_V = (src ^ dst) & (res ^ dst);
28401 flag_NotZ = res & 0xFF;
28402 DREGu8((Opcode >> 9) & 7) = res;
28413 adr = AREG((Opcode >> 0) & 7);
28416 READ_BYTE_F(adr, src)
28417 dst = DREGu8((Opcode >> 9) & 7);
28419 flag_N = flag_X = flag_C = res;
28420 flag_V = (src ^ dst) & (res ^ dst);
28421 flag_NotZ = res & 0xFF;
28422 DREGu8((Opcode >> 9) & 7) = res;
28435 READ_BYTE_F(adr, src)
28436 dst = DREGu8((Opcode >> 9) & 7);
28438 flag_N = flag_X = flag_C = res;
28439 flag_V = (src ^ dst) & (res ^ dst);
28440 flag_NotZ = res & 0xFF;
28441 DREGu8((Opcode >> 9) & 7) = res;
28454 READ_BYTE_F(adr, src)
28455 dst = DREGu8((Opcode >> 9) & 7);
28457 flag_N = flag_X = flag_C = res;
28458 flag_V = (src ^ dst) & (res ^ dst);
28459 flag_NotZ = res & 0xFF;
28460 DREGu8((Opcode >> 9) & 7) = res;
28471 adr = GET_SWORD + ((u32)(PC) - BasePC);
28474 READ_BYTE_F(adr, src)
28475 dst = DREGu8((Opcode >> 9) & 7);
28477 flag_N = flag_X = flag_C = res;
28478 flag_V = (src ^ dst) & (res ^ dst);
28479 flag_NotZ = res & 0xFF;
28480 DREGu8((Opcode >> 9) & 7) = res;
28491 adr = (u32)(PC) - BasePC;
28494 READ_BYTE_F(adr, src)
28495 dst = DREGu8((Opcode >> 9) & 7);
28497 flag_N = flag_X = flag_C = res;
28498 flag_V = (src ^ dst) & (res ^ dst);
28499 flag_NotZ = res & 0xFF;
28500 DREGu8((Opcode >> 9) & 7) = res;
28512 dst = DREGu8((Opcode >> 9) & 7);
28514 flag_N = flag_X = flag_C = res;
28515 flag_V = (src ^ dst) & (res ^ dst);
28516 flag_NotZ = res & 0xFF;
28517 DREGu8((Opcode >> 9) & 7) = res;
28530 READ_BYTE_F(adr, src)
28531 dst = DREGu8((Opcode >> 9) & 7);
28533 flag_N = flag_X = flag_C = res;
28534 flag_V = (src ^ dst) & (res ^ dst);
28535 flag_NotZ = res & 0xFF;
28536 DREGu8((Opcode >> 9) & 7) = res;
28550 READ_BYTE_F(adr, src)
28551 dst = DREGu8((Opcode >> 9) & 7);
28553 flag_N = flag_X = flag_C = res;
28554 flag_V = (src ^ dst) & (res ^ dst);
28555 flag_NotZ = res & 0xFF;
28556 DREGu8((Opcode >> 9) & 7) = res;
28567 src = DREGu16((Opcode >> 0) & 7);
28568 dst = DREGu16((Opcode >> 9) & 7);
28570 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28571 flag_N = flag_X = flag_C = res >> 8;
28572 flag_NotZ = res & 0xFFFF;
28573 DREGu16((Opcode >> 9) & 7) = res;
28583 src = AREGu16((Opcode >> 0) & 7);
28584 dst = DREGu16((Opcode >> 9) & 7);
28586 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28587 flag_N = flag_X = flag_C = res >> 8;
28588 flag_NotZ = res & 0xFFFF;
28589 DREGu16((Opcode >> 9) & 7) = res;
28599 adr = AREG((Opcode >> 0) & 7);
28601 READ_WORD_F(adr, src)
28602 dst = DREGu16((Opcode >> 9) & 7);
28604 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28605 flag_N = flag_X = flag_C = res >> 8;
28606 flag_NotZ = res & 0xFFFF;
28607 DREGu16((Opcode >> 9) & 7) = res;
28618 adr = AREG((Opcode >> 0) & 7);
28619 AREG((Opcode >> 0) & 7) += 2;
28621 READ_WORD_F(adr, src)
28622 dst = DREGu16((Opcode >> 9) & 7);
28624 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28625 flag_N = flag_X = flag_C = res >> 8;
28626 flag_NotZ = res & 0xFFFF;
28627 DREGu16((Opcode >> 9) & 7) = res;
28638 adr = AREG((Opcode >> 0) & 7) - 2;
28639 AREG((Opcode >> 0) & 7) = adr;
28641 READ_WORD_F(adr, src)
28642 dst = DREGu16((Opcode >> 9) & 7);
28644 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28645 flag_N = flag_X = flag_C = res >> 8;
28646 flag_NotZ = res & 0xFFFF;
28647 DREGu16((Opcode >> 9) & 7) = res;
28659 adr += AREG((Opcode >> 0) & 7);
28661 READ_WORD_F(adr, src)
28662 dst = DREGu16((Opcode >> 9) & 7);
28664 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28665 flag_N = flag_X = flag_C = res >> 8;
28666 flag_NotZ = res & 0xFFFF;
28667 DREGu16((Opcode >> 9) & 7) = res;
28678 adr = AREG((Opcode >> 0) & 7);
28681 READ_WORD_F(adr, src)
28682 dst = DREGu16((Opcode >> 9) & 7);
28684 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28685 flag_N = flag_X = flag_C = res >> 8;
28686 flag_NotZ = res & 0xFFFF;
28687 DREGu16((Opcode >> 9) & 7) = res;
28700 READ_WORD_F(adr, src)
28701 dst = DREGu16((Opcode >> 9) & 7);
28703 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28704 flag_N = flag_X = flag_C = res >> 8;
28705 flag_NotZ = res & 0xFFFF;
28706 DREGu16((Opcode >> 9) & 7) = res;
28719 READ_WORD_F(adr, src)
28720 dst = DREGu16((Opcode >> 9) & 7);
28722 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28723 flag_N = flag_X = flag_C = res >> 8;
28724 flag_NotZ = res & 0xFFFF;
28725 DREGu16((Opcode >> 9) & 7) = res;
28736 adr = GET_SWORD + ((u32)(PC) - BasePC);
28739 READ_WORD_F(adr, src)
28740 dst = DREGu16((Opcode >> 9) & 7);
28742 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28743 flag_N = flag_X = flag_C = res >> 8;
28744 flag_NotZ = res & 0xFFFF;
28745 DREGu16((Opcode >> 9) & 7) = res;
28756 adr = (u32)(PC) - BasePC;
28759 READ_WORD_F(adr, src)
28760 dst = DREGu16((Opcode >> 9) & 7);
28762 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28763 flag_N = flag_X = flag_C = res >> 8;
28764 flag_NotZ = res & 0xFFFF;
28765 DREGu16((Opcode >> 9) & 7) = res;
28777 dst = DREGu16((Opcode >> 9) & 7);
28779 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28780 flag_N = flag_X = flag_C = res >> 8;
28781 flag_NotZ = res & 0xFFFF;
28782 DREGu16((Opcode >> 9) & 7) = res;
28795 READ_WORD_F(adr, src)
28796 dst = DREGu16((Opcode >> 9) & 7);
28798 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28799 flag_N = flag_X = flag_C = res >> 8;
28800 flag_NotZ = res & 0xFFFF;
28801 DREGu16((Opcode >> 9) & 7) = res;
28815 READ_WORD_F(adr, src)
28816 dst = DREGu16((Opcode >> 9) & 7);
28818 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
28819 flag_N = flag_X = flag_C = res >> 8;
28820 flag_NotZ = res & 0xFFFF;
28821 DREGu16((Opcode >> 9) & 7) = res;
28832 src = DREGu32((Opcode >> 0) & 7);
28833 dst = DREGu32((Opcode >> 9) & 7);
28836 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28837 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28838 flag_N = res >> 24;
28839 DREGu32((Opcode >> 9) & 7) = res;
28849 src = AREGu32((Opcode >> 0) & 7);
28850 dst = DREGu32((Opcode >> 9) & 7);
28853 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28854 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28855 flag_N = res >> 24;
28856 DREGu32((Opcode >> 9) & 7) = res;
28866 adr = AREG((Opcode >> 0) & 7);
28868 READ_LONG_F(adr, src)
28869 dst = DREGu32((Opcode >> 9) & 7);
28872 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28873 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28874 flag_N = res >> 24;
28875 DREGu32((Opcode >> 9) & 7) = res;
28886 adr = AREG((Opcode >> 0) & 7);
28887 AREG((Opcode >> 0) & 7) += 4;
28889 READ_LONG_F(adr, src)
28890 dst = DREGu32((Opcode >> 9) & 7);
28893 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28894 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28895 flag_N = res >> 24;
28896 DREGu32((Opcode >> 9) & 7) = res;
28907 adr = AREG((Opcode >> 0) & 7) - 4;
28908 AREG((Opcode >> 0) & 7) = adr;
28910 READ_LONG_F(adr, src)
28911 dst = DREGu32((Opcode >> 9) & 7);
28914 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28915 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28916 flag_N = res >> 24;
28917 DREGu32((Opcode >> 9) & 7) = res;
28929 adr += AREG((Opcode >> 0) & 7);
28931 READ_LONG_F(adr, src)
28932 dst = DREGu32((Opcode >> 9) & 7);
28935 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28936 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28937 flag_N = res >> 24;
28938 DREGu32((Opcode >> 9) & 7) = res;
28949 adr = AREG((Opcode >> 0) & 7);
28952 READ_LONG_F(adr, src)
28953 dst = DREGu32((Opcode >> 9) & 7);
28956 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28957 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28958 flag_N = res >> 24;
28959 DREGu32((Opcode >> 9) & 7) = res;
28972 READ_LONG_F(adr, src)
28973 dst = DREGu32((Opcode >> 9) & 7);
28976 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28977 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28978 flag_N = res >> 24;
28979 DREGu32((Opcode >> 9) & 7) = res;
28992 READ_LONG_F(adr, src)
28993 dst = DREGu32((Opcode >> 9) & 7);
28996 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
28997 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
28998 flag_N = res >> 24;
28999 DREGu32((Opcode >> 9) & 7) = res;
29010 adr = GET_SWORD + ((u32)(PC) - BasePC);
29013 READ_LONG_F(adr, src)
29014 dst = DREGu32((Opcode >> 9) & 7);
29017 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29018 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29019 flag_N = res >> 24;
29020 DREGu32((Opcode >> 9) & 7) = res;
29031 adr = (u32)(PC) - BasePC;
29034 READ_LONG_F(adr, src)
29035 dst = DREGu32((Opcode >> 9) & 7);
29038 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29039 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29040 flag_N = res >> 24;
29041 DREGu32((Opcode >> 9) & 7) = res;
29053 dst = DREGu32((Opcode >> 9) & 7);
29056 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29057 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29058 flag_N = res >> 24;
29059 DREGu32((Opcode >> 9) & 7) = res;
29072 READ_LONG_F(adr, src)
29073 dst = DREGu32((Opcode >> 9) & 7);
29076 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29077 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29078 flag_N = res >> 24;
29079 DREGu32((Opcode >> 9) & 7) = res;
29093 READ_LONG_F(adr, src)
29094 dst = DREGu32((Opcode >> 9) & 7);
29097 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29098 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29099 flag_N = res >> 24;
29100 DREGu32((Opcode >> 9) & 7) = res;
29111 src = DREGu8((Opcode >> 9) & 7);
29112 adr = AREG((Opcode >> 0) & 7);
29114 READ_BYTE_F(adr, dst)
29116 flag_N = flag_X = flag_C = res;
29117 flag_V = (src ^ dst) & (res ^ dst);
29118 flag_NotZ = res & 0xFF;
29119 WRITE_BYTE_F(adr, res)
29130 src = DREGu8((Opcode >> 9) & 7);
29131 adr = AREG((Opcode >> 0) & 7);
29132 AREG((Opcode >> 0) & 7) += 1;
29134 READ_BYTE_F(adr, dst)
29136 flag_N = flag_X = flag_C = res;
29137 flag_V = (src ^ dst) & (res ^ dst);
29138 flag_NotZ = res & 0xFF;
29139 WRITE_BYTE_F(adr, res)
29150 src = DREGu8((Opcode >> 9) & 7);
29151 adr = AREG((Opcode >> 0) & 7) - 1;
29152 AREG((Opcode >> 0) & 7) = adr;
29154 READ_BYTE_F(adr, dst)
29156 flag_N = flag_X = flag_C = res;
29157 flag_V = (src ^ dst) & (res ^ dst);
29158 flag_NotZ = res & 0xFF;
29159 WRITE_BYTE_F(adr, res)
29170 src = DREGu8((Opcode >> 9) & 7);
29172 adr += AREG((Opcode >> 0) & 7);
29174 READ_BYTE_F(adr, dst)
29176 flag_N = flag_X = flag_C = res;
29177 flag_V = (src ^ dst) & (res ^ dst);
29178 flag_NotZ = res & 0xFF;
29179 WRITE_BYTE_F(adr, res)
29190 src = DREGu8((Opcode >> 9) & 7);
29191 adr = AREG((Opcode >> 0) & 7);
29194 READ_BYTE_F(adr, dst)
29196 flag_N = flag_X = flag_C = res;
29197 flag_V = (src ^ dst) & (res ^ dst);
29198 flag_NotZ = res & 0xFF;
29199 WRITE_BYTE_F(adr, res)
29210 src = DREGu8((Opcode >> 9) & 7);
29213 READ_BYTE_F(adr, dst)
29215 flag_N = flag_X = flag_C = res;
29216 flag_V = (src ^ dst) & (res ^ dst);
29217 flag_NotZ = res & 0xFF;
29218 WRITE_BYTE_F(adr, res)
29229 src = DREGu8((Opcode >> 9) & 7);
29232 READ_BYTE_F(adr, dst)
29234 flag_N = flag_X = flag_C = res;
29235 flag_V = (src ^ dst) & (res ^ dst);
29236 flag_NotZ = res & 0xFF;
29237 WRITE_BYTE_F(adr, res)
29248 src = DREGu8((Opcode >> 9) & 7);
29252 READ_BYTE_F(adr, dst)
29254 flag_N = flag_X = flag_C = res;
29255 flag_V = (src ^ dst) & (res ^ dst);
29256 flag_NotZ = res & 0xFF;
29257 WRITE_BYTE_F(adr, res)
29268 src = DREGu8((Opcode >> 9) & 7);
29272 READ_BYTE_F(adr, dst)
29274 flag_N = flag_X = flag_C = res;
29275 flag_V = (src ^ dst) & (res ^ dst);
29276 flag_NotZ = res & 0xFF;
29277 WRITE_BYTE_F(adr, res)
29288 src = DREGu16((Opcode >> 9) & 7);
29289 adr = AREG((Opcode >> 0) & 7);
29291 READ_WORD_F(adr, dst)
29293 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29294 flag_N = flag_X = flag_C = res >> 8;
29295 flag_NotZ = res & 0xFFFF;
29296 WRITE_WORD_F(adr, res)
29307 src = DREGu16((Opcode >> 9) & 7);
29308 adr = AREG((Opcode >> 0) & 7);
29309 AREG((Opcode >> 0) & 7) += 2;
29311 READ_WORD_F(adr, dst)
29313 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29314 flag_N = flag_X = flag_C = res >> 8;
29315 flag_NotZ = res & 0xFFFF;
29316 WRITE_WORD_F(adr, res)
29327 src = DREGu16((Opcode >> 9) & 7);
29328 adr = AREG((Opcode >> 0) & 7) - 2;
29329 AREG((Opcode >> 0) & 7) = adr;
29331 READ_WORD_F(adr, dst)
29333 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29334 flag_N = flag_X = flag_C = res >> 8;
29335 flag_NotZ = res & 0xFFFF;
29336 WRITE_WORD_F(adr, res)
29347 src = DREGu16((Opcode >> 9) & 7);
29349 adr += AREG((Opcode >> 0) & 7);
29351 READ_WORD_F(adr, dst)
29353 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29354 flag_N = flag_X = flag_C = res >> 8;
29355 flag_NotZ = res & 0xFFFF;
29356 WRITE_WORD_F(adr, res)
29367 src = DREGu16((Opcode >> 9) & 7);
29368 adr = AREG((Opcode >> 0) & 7);
29371 READ_WORD_F(adr, dst)
29373 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29374 flag_N = flag_X = flag_C = res >> 8;
29375 flag_NotZ = res & 0xFFFF;
29376 WRITE_WORD_F(adr, res)
29387 src = DREGu16((Opcode >> 9) & 7);
29390 READ_WORD_F(adr, dst)
29392 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29393 flag_N = flag_X = flag_C = res >> 8;
29394 flag_NotZ = res & 0xFFFF;
29395 WRITE_WORD_F(adr, res)
29406 src = DREGu16((Opcode >> 9) & 7);
29409 READ_WORD_F(adr, dst)
29411 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29412 flag_N = flag_X = flag_C = res >> 8;
29413 flag_NotZ = res & 0xFFFF;
29414 WRITE_WORD_F(adr, res)
29425 src = DREGu16((Opcode >> 9) & 7);
29429 READ_WORD_F(adr, dst)
29431 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29432 flag_N = flag_X = flag_C = res >> 8;
29433 flag_NotZ = res & 0xFFFF;
29434 WRITE_WORD_F(adr, res)
29445 src = DREGu16((Opcode >> 9) & 7);
29449 READ_WORD_F(adr, dst)
29451 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29452 flag_N = flag_X = flag_C = res >> 8;
29453 flag_NotZ = res & 0xFFFF;
29454 WRITE_WORD_F(adr, res)
29465 src = DREGu32((Opcode >> 9) & 7);
29466 adr = AREG((Opcode >> 0) & 7);
29468 READ_LONG_F(adr, dst)
29471 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29472 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29473 flag_N = res >> 24;
29474 WRITE_LONG_F(adr, res)
29485 src = DREGu32((Opcode >> 9) & 7);
29486 adr = AREG((Opcode >> 0) & 7);
29487 AREG((Opcode >> 0) & 7) += 4;
29489 READ_LONG_F(adr, dst)
29492 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29493 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29494 flag_N = res >> 24;
29495 WRITE_LONG_F(adr, res)
29506 src = DREGu32((Opcode >> 9) & 7);
29507 adr = AREG((Opcode >> 0) & 7) - 4;
29508 AREG((Opcode >> 0) & 7) = adr;
29510 READ_LONG_F(adr, dst)
29513 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29514 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29515 flag_N = res >> 24;
29516 WRITE_LONG_F(adr, res)
29527 src = DREGu32((Opcode >> 9) & 7);
29529 adr += AREG((Opcode >> 0) & 7);
29531 READ_LONG_F(adr, dst)
29534 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29535 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29536 flag_N = res >> 24;
29537 WRITE_LONG_F(adr, res)
29548 src = DREGu32((Opcode >> 9) & 7);
29549 adr = AREG((Opcode >> 0) & 7);
29552 READ_LONG_F(adr, dst)
29555 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29556 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29557 flag_N = res >> 24;
29558 WRITE_LONG_F(adr, res)
29569 src = DREGu32((Opcode >> 9) & 7);
29572 READ_LONG_F(adr, dst)
29575 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29576 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29577 flag_N = res >> 24;
29578 WRITE_LONG_F(adr, res)
29589 src = DREGu32((Opcode >> 9) & 7);
29592 READ_LONG_F(adr, dst)
29595 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29596 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29597 flag_N = res >> 24;
29598 WRITE_LONG_F(adr, res)
29609 src = DREGu32((Opcode >> 9) & 7);
29613 READ_LONG_F(adr, dst)
29616 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29617 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29618 flag_N = res >> 24;
29619 WRITE_LONG_F(adr, res)
29630 src = DREGu32((Opcode >> 9) & 7);
29634 READ_LONG_F(adr, dst)
29637 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29638 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29639 flag_N = res >> 24;
29640 WRITE_LONG_F(adr, res)
29651 src = DREGu8((Opcode >> 0) & 7);
29652 dst = DREGu8((Opcode >> 9) & 7);
29653 res = dst - src - ((flag_X >> 8) & 1);
29654 flag_N = flag_X = flag_C = res;
29655 flag_V = (src ^ dst) & (res ^ dst);
29656 flag_NotZ |= res & 0xFF;
29657 DREGu8((Opcode >> 9) & 7) = res;
29667 src = DREGu16((Opcode >> 0) & 7);
29668 dst = DREGu16((Opcode >> 9) & 7);
29669 res = dst - src - ((flag_X >> 8) & 1);
29670 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29671 flag_N = flag_X = flag_C = res >> 8;
29672 flag_NotZ |= res & 0xFFFF;
29673 DREGu16((Opcode >> 9) & 7) = res;
29683 src = DREGu32((Opcode >> 0) & 7);
29684 dst = DREGu32((Opcode >> 9) & 7);
29685 res = dst - src - ((flag_X >> 8) & 1);
29687 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29688 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29689 flag_N = res >> 24;
29690 DREGu32((Opcode >> 9) & 7) = res;
29700 adr = AREG((Opcode >> 0) & 7) - 1;
29701 AREG((Opcode >> 0) & 7) = adr;
29703 READ_BYTE_F(adr, src)
29704 adr = AREG((Opcode >> 9) & 7) - 1;
29705 AREG((Opcode >> 9) & 7) = adr;
29706 READ_BYTE_F(adr, dst)
29707 res = dst - src - ((flag_X >> 8) & 1);
29708 flag_N = flag_X = flag_C = res;
29709 flag_V = (src ^ dst) & (res ^ dst);
29710 flag_NotZ |= res & 0xFF;
29711 WRITE_BYTE_F(adr, res)
29722 adr = AREG((Opcode >> 0) & 7) - 2;
29723 AREG((Opcode >> 0) & 7) = adr;
29725 READ_WORD_F(adr, src)
29726 adr = AREG((Opcode >> 9) & 7) - 2;
29727 AREG((Opcode >> 9) & 7) = adr;
29728 READ_WORD_F(adr, dst)
29729 res = dst - src - ((flag_X >> 8) & 1);
29730 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29731 flag_N = flag_X = flag_C = res >> 8;
29732 flag_NotZ |= res & 0xFFFF;
29733 WRITE_WORD_F(adr, res)
29744 adr = AREG((Opcode >> 0) & 7) - 4;
29745 AREG((Opcode >> 0) & 7) = adr;
29747 READ_LONG_F(adr, src)
29748 adr = AREG((Opcode >> 9) & 7) - 4;
29749 AREG((Opcode >> 9) & 7) = adr;
29750 READ_LONG_F(adr, dst)
29751 res = dst - src - ((flag_X >> 8) & 1);
29753 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29754 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29755 flag_N = res >> 24;
29756 WRITE_LONG_F(adr, res)
29770 READ_BYTE_F(adr, src)
29771 adr = AREG((Opcode >> 9) & 7) - 1;
29772 AREG((Opcode >> 9) & 7) = adr;
29773 READ_BYTE_F(adr, dst)
29774 res = dst - src - ((flag_X >> 8) & 1);
29775 flag_N = flag_X = flag_C = res;
29776 flag_V = (src ^ dst) & (res ^ dst);
29777 flag_NotZ |= res & 0xFF;
29778 WRITE_BYTE_F(adr, res)
29792 READ_WORD_F(adr, src)
29793 adr = AREG((Opcode >> 9) & 7) - 2;
29794 AREG((Opcode >> 9) & 7) = adr;
29795 READ_WORD_F(adr, dst)
29796 res = dst - src - ((flag_X >> 8) & 1);
29797 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29798 flag_N = flag_X = flag_C = res >> 8;
29799 flag_NotZ |= res & 0xFFFF;
29800 WRITE_WORD_F(adr, res)
29814 READ_LONG_F(adr, src)
29815 adr = AREG((Opcode >> 9) & 7) - 4;
29816 AREG((Opcode >> 9) & 7) = adr;
29817 READ_LONG_F(adr, dst)
29818 res = dst - src - ((flag_X >> 8) & 1);
29820 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29821 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29822 flag_N = res >> 24;
29823 WRITE_LONG_F(adr, res)
29834 adr = AREG((Opcode >> 0) & 7) - 1;
29835 AREG((Opcode >> 0) & 7) = adr;
29837 READ_BYTE_F(adr, src)
29840 READ_BYTE_F(adr, dst)
29841 res = dst - src - ((flag_X >> 8) & 1);
29842 flag_N = flag_X = flag_C = res;
29843 flag_V = (src ^ dst) & (res ^ dst);
29844 flag_NotZ |= res & 0xFF;
29845 WRITE_BYTE_F(adr, res)
29856 adr = AREG((Opcode >> 0) & 7) - 2;
29857 AREG((Opcode >> 0) & 7) = adr;
29859 READ_WORD_F(adr, src)
29862 READ_WORD_F(adr, dst)
29863 res = dst - src - ((flag_X >> 8) & 1);
29864 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29865 flag_N = flag_X = flag_C = res >> 8;
29866 flag_NotZ |= res & 0xFFFF;
29867 WRITE_WORD_F(adr, res)
29878 adr = AREG((Opcode >> 0) & 7) - 4;
29879 AREG((Opcode >> 0) & 7) = adr;
29881 READ_LONG_F(adr, src)
29884 READ_LONG_F(adr, dst)
29885 res = dst - src - ((flag_X >> 8) & 1);
29887 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29888 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29889 flag_N = res >> 24;
29890 WRITE_LONG_F(adr, res)
29904 READ_BYTE_F(adr, src)
29907 READ_BYTE_F(adr, dst)
29908 res = dst - src - ((flag_X >> 8) & 1);
29909 flag_N = flag_X = flag_C = res;
29910 flag_V = (src ^ dst) & (res ^ dst);
29911 flag_NotZ |= res & 0xFF;
29912 WRITE_BYTE_F(adr, res)
29926 READ_WORD_F(adr, src)
29929 READ_WORD_F(adr, dst)
29930 res = dst - src - ((flag_X >> 8) & 1);
29931 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
29932 flag_N = flag_X = flag_C = res >> 8;
29933 flag_NotZ |= res & 0xFFFF;
29934 WRITE_WORD_F(adr, res)
29948 READ_LONG_F(adr, src)
29951 READ_LONG_F(adr, dst)
29952 res = dst - src - ((flag_X >> 8) & 1);
29954 flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
29955 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
29956 flag_N = res >> 24;
29957 WRITE_LONG_F(adr, res)
29968 src = (s32)DREGs16((Opcode >> 0) & 7);
29969 dst = AREGu32((Opcode >> 9) & 7);
29971 AREG((Opcode >> 9) & 7) = res;
29981 src = (s32)AREGs16((Opcode >> 0) & 7);
29982 dst = AREGu32((Opcode >> 9) & 7);
29984 AREG((Opcode >> 9) & 7) = res;
29994 adr = AREG((Opcode >> 0) & 7);
29996 READSX_WORD_F(adr, src)
29997 dst = AREGu32((Opcode >> 9) & 7);
29999 AREG((Opcode >> 9) & 7) = res;
30001 #ifdef USE_CYCLONE_TIMING
30014 adr = AREG((Opcode >> 0) & 7);
30015 AREG((Opcode >> 0) & 7) += 2;
30017 READSX_WORD_F(adr, src)
30018 dst = AREGu32((Opcode >> 9) & 7);
30020 AREG((Opcode >> 9) & 7) = res;
30022 #ifdef USE_CYCLONE_TIMING
30035 adr = AREG((Opcode >> 0) & 7) - 2;
30036 AREG((Opcode >> 0) & 7) = adr;
30038 READSX_WORD_F(adr, src)
30039 dst = AREGu32((Opcode >> 9) & 7);
30041 AREG((Opcode >> 9) & 7) = res;
30043 #ifdef USE_CYCLONE_TIMING
30057 adr += AREG((Opcode >> 0) & 7);
30059 READSX_WORD_F(adr, src)
30060 dst = AREGu32((Opcode >> 9) & 7);
30062 AREG((Opcode >> 9) & 7) = res;
30064 #ifdef USE_CYCLONE_TIMING
30077 adr = AREG((Opcode >> 0) & 7);
30080 READSX_WORD_F(adr, src)
30081 dst = AREGu32((Opcode >> 9) & 7);
30083 AREG((Opcode >> 9) & 7) = res;
30085 #ifdef USE_CYCLONE_TIMING
30100 READSX_WORD_F(adr, src)
30101 dst = AREGu32((Opcode >> 9) & 7);
30103 AREG((Opcode >> 9) & 7) = res;
30105 #ifdef USE_CYCLONE_TIMING
30120 READSX_WORD_F(adr, src)
30121 dst = AREGu32((Opcode >> 9) & 7);
30123 AREG((Opcode >> 9) & 7) = res;
30125 #ifdef USE_CYCLONE_TIMING
30138 adr = GET_SWORD + ((u32)(PC) - BasePC);
30141 READSX_WORD_F(adr, src)
30142 dst = AREGu32((Opcode >> 9) & 7);
30144 AREG((Opcode >> 9) & 7) = res;
30146 #ifdef USE_CYCLONE_TIMING
30159 adr = (u32)(PC) - BasePC;
30162 READSX_WORD_F(adr, src)
30163 dst = AREGu32((Opcode >> 9) & 7);
30165 AREG((Opcode >> 9) & 7) = res;
30167 #ifdef USE_CYCLONE_TIMING
30181 dst = AREGu32((Opcode >> 9) & 7);
30183 AREG((Opcode >> 9) & 7) = res;
30196 READSX_WORD_F(adr, src)
30197 dst = AREGu32((Opcode >> 9) & 7);
30199 AREG((Opcode >> 9) & 7) = res;
30201 #ifdef USE_CYCLONE_TIMING
30217 READSX_WORD_F(adr, src)
30218 dst = AREGu32((Opcode >> 9) & 7);
30220 AREG((Opcode >> 9) & 7) = res;
30222 #ifdef USE_CYCLONE_TIMING
30235 src = (s32)DREGs32((Opcode >> 0) & 7);
30236 dst = AREGu32((Opcode >> 9) & 7);
30238 AREG((Opcode >> 9) & 7) = res;
30239 #ifdef USE_CYCLONE_TIMING
30252 src = (s32)AREGs32((Opcode >> 0) & 7);
30253 dst = AREGu32((Opcode >> 9) & 7);
30255 AREG((Opcode >> 9) & 7) = res;
30256 #ifdef USE_CYCLONE_TIMING
30269 adr = AREG((Opcode >> 0) & 7);
30271 READSX_LONG_F(adr, src)
30272 dst = AREGu32((Opcode >> 9) & 7);
30274 AREG((Opcode >> 9) & 7) = res;
30285 adr = AREG((Opcode >> 0) & 7);
30286 AREG((Opcode >> 0) & 7) += 4;
30288 READSX_LONG_F(adr, src)
30289 dst = AREGu32((Opcode >> 9) & 7);
30291 AREG((Opcode >> 9) & 7) = res;
30302 adr = AREG((Opcode >> 0) & 7) - 4;
30303 AREG((Opcode >> 0) & 7) = adr;
30305 READSX_LONG_F(adr, src)
30306 dst = AREGu32((Opcode >> 9) & 7);
30308 AREG((Opcode >> 9) & 7) = res;
30320 adr += AREG((Opcode >> 0) & 7);
30322 READSX_LONG_F(adr, src)
30323 dst = AREGu32((Opcode >> 9) & 7);
30325 AREG((Opcode >> 9) & 7) = res;
30336 adr = AREG((Opcode >> 0) & 7);
30339 READSX_LONG_F(adr, src)
30340 dst = AREGu32((Opcode >> 9) & 7);
30342 AREG((Opcode >> 9) & 7) = res;
30355 READSX_LONG_F(adr, src)
30356 dst = AREGu32((Opcode >> 9) & 7);
30358 AREG((Opcode >> 9) & 7) = res;
30371 READSX_LONG_F(adr, src)
30372 dst = AREGu32((Opcode >> 9) & 7);
30374 AREG((Opcode >> 9) & 7) = res;
30385 adr = GET_SWORD + ((u32)(PC) - BasePC);
30388 READSX_LONG_F(adr, src)
30389 dst = AREGu32((Opcode >> 9) & 7);
30391 AREG((Opcode >> 9) & 7) = res;
30402 adr = (u32)(PC) - BasePC;
30405 READSX_LONG_F(adr, src)
30406 dst = AREGu32((Opcode >> 9) & 7);
30408 AREG((Opcode >> 9) & 7) = res;
30420 dst = AREGu32((Opcode >> 9) & 7);
30422 AREG((Opcode >> 9) & 7) = res;
30423 #ifdef USE_CYCLONE_TIMING
30439 READSX_LONG_F(adr, src)
30440 dst = AREGu32((Opcode >> 9) & 7);
30442 AREG((Opcode >> 9) & 7) = res;
30456 READSX_LONG_F(adr, src)
30457 dst = AREGu32((Opcode >> 9) & 7);
30459 AREG((Opcode >> 9) & 7) = res;
30470 src = DREGu8((Opcode >> 0) & 7);
30471 dst = DREGu8((Opcode >> 9) & 7);
30473 flag_N = flag_C = res;
30474 flag_V = (src ^ dst) & (res ^ dst);
30475 flag_NotZ = res & 0xFF;
30486 // can't read byte from Ax registers !
30487 m68kcontext.execinfo |= M68K_FAULTED;
30488 m68kcontext.io_cycle_counter = 0;
30490 goto famec_Exec_End;
30491 dst = DREGu8((Opcode >> 9) & 7);
30493 flag_N = flag_C = res;
30494 flag_V = (src ^ dst) & (res ^ dst);
30495 flag_NotZ = res & 0xFF;
30507 adr = AREG((Opcode >> 0) & 7);
30509 READ_BYTE_F(adr, src)
30510 dst = DREGu8((Opcode >> 9) & 7);
30512 flag_N = flag_C = res;
30513 flag_V = (src ^ dst) & (res ^ dst);
30514 flag_NotZ = res & 0xFF;
30525 adr = AREG((Opcode >> 0) & 7);
30526 AREG((Opcode >> 0) & 7) += 1;
30528 READ_BYTE_F(adr, src)
30529 dst = DREGu8((Opcode >> 9) & 7);
30531 flag_N = flag_C = res;
30532 flag_V = (src ^ dst) & (res ^ dst);
30533 flag_NotZ = res & 0xFF;
30544 adr = AREG((Opcode >> 0) & 7) - 1;
30545 AREG((Opcode >> 0) & 7) = adr;
30547 READ_BYTE_F(adr, src)
30548 dst = DREGu8((Opcode >> 9) & 7);
30550 flag_N = flag_C = res;
30551 flag_V = (src ^ dst) & (res ^ dst);
30552 flag_NotZ = res & 0xFF;
30564 adr += AREG((Opcode >> 0) & 7);
30566 READ_BYTE_F(adr, src)
30567 dst = DREGu8((Opcode >> 9) & 7);
30569 flag_N = flag_C = res;
30570 flag_V = (src ^ dst) & (res ^ dst);
30571 flag_NotZ = res & 0xFF;
30582 adr = AREG((Opcode >> 0) & 7);
30585 READ_BYTE_F(adr, src)
30586 dst = DREGu8((Opcode >> 9) & 7);
30588 flag_N = flag_C = res;
30589 flag_V = (src ^ dst) & (res ^ dst);
30590 flag_NotZ = res & 0xFF;
30603 READ_BYTE_F(adr, src)
30604 dst = DREGu8((Opcode >> 9) & 7);
30606 flag_N = flag_C = res;
30607 flag_V = (src ^ dst) & (res ^ dst);
30608 flag_NotZ = res & 0xFF;
30621 READ_BYTE_F(adr, src)
30622 dst = DREGu8((Opcode >> 9) & 7);
30624 flag_N = flag_C = res;
30625 flag_V = (src ^ dst) & (res ^ dst);
30626 flag_NotZ = res & 0xFF;
30637 adr = GET_SWORD + ((u32)(PC) - BasePC);
30640 READ_BYTE_F(adr, src)
30641 dst = DREGu8((Opcode >> 9) & 7);
30643 flag_N = flag_C = res;
30644 flag_V = (src ^ dst) & (res ^ dst);
30645 flag_NotZ = res & 0xFF;
30656 adr = (u32)(PC) - BasePC;
30659 READ_BYTE_F(adr, src)
30660 dst = DREGu8((Opcode >> 9) & 7);
30662 flag_N = flag_C = res;
30663 flag_V = (src ^ dst) & (res ^ dst);
30664 flag_NotZ = res & 0xFF;
30676 dst = DREGu8((Opcode >> 9) & 7);
30678 flag_N = flag_C = res;
30679 flag_V = (src ^ dst) & (res ^ dst);
30680 flag_NotZ = res & 0xFF;
30693 READ_BYTE_F(adr, src)
30694 dst = DREGu8((Opcode >> 9) & 7);
30696 flag_N = flag_C = res;
30697 flag_V = (src ^ dst) & (res ^ dst);
30698 flag_NotZ = res & 0xFF;
30712 READ_BYTE_F(adr, src)
30713 dst = DREGu8((Opcode >> 9) & 7);
30715 flag_N = flag_C = res;
30716 flag_V = (src ^ dst) & (res ^ dst);
30717 flag_NotZ = res & 0xFF;
30728 src = DREGu16((Opcode >> 0) & 7);
30729 dst = DREGu16((Opcode >> 9) & 7);
30731 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30732 flag_N = flag_C = res >> 8;
30733 flag_NotZ = res & 0xFFFF;
30743 src = AREGu16((Opcode >> 0) & 7);
30744 dst = DREGu16((Opcode >> 9) & 7);
30746 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30747 flag_N = flag_C = res >> 8;
30748 flag_NotZ = res & 0xFFFF;
30758 adr = AREG((Opcode >> 0) & 7);
30760 READ_WORD_F(adr, src)
30761 dst = DREGu16((Opcode >> 9) & 7);
30763 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30764 flag_N = flag_C = res >> 8;
30765 flag_NotZ = res & 0xFFFF;
30776 adr = AREG((Opcode >> 0) & 7);
30777 AREG((Opcode >> 0) & 7) += 2;
30779 READ_WORD_F(adr, src)
30780 dst = DREGu16((Opcode >> 9) & 7);
30782 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30783 flag_N = flag_C = res >> 8;
30784 flag_NotZ = res & 0xFFFF;
30795 adr = AREG((Opcode >> 0) & 7) - 2;
30796 AREG((Opcode >> 0) & 7) = adr;
30798 READ_WORD_F(adr, src)
30799 dst = DREGu16((Opcode >> 9) & 7);
30801 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30802 flag_N = flag_C = res >> 8;
30803 flag_NotZ = res & 0xFFFF;
30815 adr += AREG((Opcode >> 0) & 7);
30817 READ_WORD_F(adr, src)
30818 dst = DREGu16((Opcode >> 9) & 7);
30820 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30821 flag_N = flag_C = res >> 8;
30822 flag_NotZ = res & 0xFFFF;
30833 adr = AREG((Opcode >> 0) & 7);
30836 READ_WORD_F(adr, src)
30837 dst = DREGu16((Opcode >> 9) & 7);
30839 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30840 flag_N = flag_C = res >> 8;
30841 flag_NotZ = res & 0xFFFF;
30854 READ_WORD_F(adr, src)
30855 dst = DREGu16((Opcode >> 9) & 7);
30857 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30858 flag_N = flag_C = res >> 8;
30859 flag_NotZ = res & 0xFFFF;
30872 READ_WORD_F(adr, src)
30873 dst = DREGu16((Opcode >> 9) & 7);
30875 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30876 flag_N = flag_C = res >> 8;
30877 flag_NotZ = res & 0xFFFF;
30888 adr = GET_SWORD + ((u32)(PC) - BasePC);
30891 READ_WORD_F(adr, src)
30892 dst = DREGu16((Opcode >> 9) & 7);
30894 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30895 flag_N = flag_C = res >> 8;
30896 flag_NotZ = res & 0xFFFF;
30907 adr = (u32)(PC) - BasePC;
30910 READ_WORD_F(adr, src)
30911 dst = DREGu16((Opcode >> 9) & 7);
30913 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30914 flag_N = flag_C = res >> 8;
30915 flag_NotZ = res & 0xFFFF;
30927 dst = DREGu16((Opcode >> 9) & 7);
30929 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30930 flag_N = flag_C = res >> 8;
30931 flag_NotZ = res & 0xFFFF;
30944 READ_WORD_F(adr, src)
30945 dst = DREGu16((Opcode >> 9) & 7);
30947 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30948 flag_N = flag_C = res >> 8;
30949 flag_NotZ = res & 0xFFFF;
30963 READ_WORD_F(adr, src)
30964 dst = DREGu16((Opcode >> 9) & 7);
30966 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
30967 flag_N = flag_C = res >> 8;
30968 flag_NotZ = res & 0xFFFF;
30979 src = DREGu32((Opcode >> 0) & 7);
30980 dst = DREGu32((Opcode >> 9) & 7);
30983 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
30984 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
30985 flag_N = res >> 24;
30995 src = AREGu32((Opcode >> 0) & 7);
30996 dst = DREGu32((Opcode >> 9) & 7);
30999 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31000 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31001 flag_N = res >> 24;
31011 adr = AREG((Opcode >> 0) & 7);
31013 READ_LONG_F(adr, src)
31014 dst = DREGu32((Opcode >> 9) & 7);
31017 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31018 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31019 flag_N = res >> 24;
31030 adr = AREG((Opcode >> 0) & 7);
31031 AREG((Opcode >> 0) & 7) += 4;
31033 READ_LONG_F(adr, src)
31034 dst = DREGu32((Opcode >> 9) & 7);
31037 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31038 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31039 flag_N = res >> 24;
31050 adr = AREG((Opcode >> 0) & 7) - 4;
31051 AREG((Opcode >> 0) & 7) = adr;
31053 READ_LONG_F(adr, src)
31054 dst = DREGu32((Opcode >> 9) & 7);
31057 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31058 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31059 flag_N = res >> 24;
31071 adr += AREG((Opcode >> 0) & 7);
31073 READ_LONG_F(adr, src)
31074 dst = DREGu32((Opcode >> 9) & 7);
31077 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31078 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31079 flag_N = res >> 24;
31090 adr = AREG((Opcode >> 0) & 7);
31093 READ_LONG_F(adr, src)
31094 dst = DREGu32((Opcode >> 9) & 7);
31097 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31098 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31099 flag_N = res >> 24;
31112 READ_LONG_F(adr, src)
31113 dst = DREGu32((Opcode >> 9) & 7);
31116 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31117 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31118 flag_N = res >> 24;
31131 READ_LONG_F(adr, src)
31132 dst = DREGu32((Opcode >> 9) & 7);
31135 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31136 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31137 flag_N = res >> 24;
31148 adr = GET_SWORD + ((u32)(PC) - BasePC);
31151 READ_LONG_F(adr, src)
31152 dst = DREGu32((Opcode >> 9) & 7);
31155 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31156 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31157 flag_N = res >> 24;
31168 adr = (u32)(PC) - BasePC;
31171 READ_LONG_F(adr, src)
31172 dst = DREGu32((Opcode >> 9) & 7);
31175 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31176 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31177 flag_N = res >> 24;
31189 dst = DREGu32((Opcode >> 9) & 7);
31192 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31193 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31194 flag_N = res >> 24;
31207 READ_LONG_F(adr, src)
31208 dst = DREGu32((Opcode >> 9) & 7);
31211 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31212 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31213 flag_N = res >> 24;
31227 READ_LONG_F(adr, src)
31228 dst = DREGu32((Opcode >> 9) & 7);
31231 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31232 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31233 flag_N = res >> 24;
31244 adr = AREG((Opcode >> 0) & 7);
31245 AREG((Opcode >> 0) & 7) += 1;
31247 READ_BYTE_F(adr, src)
31248 adr = AREG((Opcode >> 9) & 7);
31249 AREG((Opcode >> 9) & 7) += 1;
31250 READ_BYTE_F(adr, dst)
31252 flag_N = flag_C = res;
31253 flag_V = (src ^ dst) & (res ^ dst);
31254 flag_NotZ = res & 0xFF;
31265 adr = AREG((Opcode >> 0) & 7);
31266 AREG((Opcode >> 0) & 7) += 2;
31268 READ_WORD_F(adr, src)
31269 adr = AREG((Opcode >> 9) & 7);
31270 AREG((Opcode >> 9) & 7) += 2;
31271 READ_WORD_F(adr, dst)
31273 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31274 flag_N = flag_C = res >> 8;
31275 flag_NotZ = res & 0xFFFF;
31286 adr = AREG((Opcode >> 0) & 7);
31287 AREG((Opcode >> 0) & 7) += 4;
31289 READ_LONG_F(adr, src)
31290 adr = AREG((Opcode >> 9) & 7);
31291 AREG((Opcode >> 9) & 7) += 4;
31292 READ_LONG_F(adr, dst)
31295 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31296 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31297 flag_N = res >> 24;
31311 READ_BYTE_F(adr, src)
31312 adr = AREG((Opcode >> 9) & 7);
31313 AREG((Opcode >> 9) & 7) += 1;
31314 READ_BYTE_F(adr, dst)
31316 flag_N = flag_C = res;
31317 flag_V = (src ^ dst) & (res ^ dst);
31318 flag_NotZ = res & 0xFF;
31332 READ_WORD_F(adr, src)
31333 adr = AREG((Opcode >> 9) & 7);
31334 AREG((Opcode >> 9) & 7) += 2;
31335 READ_WORD_F(adr, dst)
31337 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31338 flag_N = flag_C = res >> 8;
31339 flag_NotZ = res & 0xFFFF;
31353 READ_LONG_F(adr, src)
31354 adr = AREG((Opcode >> 9) & 7);
31355 AREG((Opcode >> 9) & 7) += 4;
31356 READ_LONG_F(adr, dst)
31359 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31360 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31361 flag_N = res >> 24;
31372 adr = AREG((Opcode >> 0) & 7);
31373 AREG((Opcode >> 0) & 7) += 1;
31375 READ_BYTE_F(adr, src)
31378 READ_BYTE_F(adr, dst)
31380 flag_N = flag_C = res;
31381 flag_V = (src ^ dst) & (res ^ dst);
31382 flag_NotZ = res & 0xFF;
31393 adr = AREG((Opcode >> 0) & 7);
31394 AREG((Opcode >> 0) & 7) += 2;
31396 READ_WORD_F(adr, src)
31399 READ_WORD_F(adr, dst)
31401 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31402 flag_N = flag_C = res >> 8;
31403 flag_NotZ = res & 0xFFFF;
31414 adr = AREG((Opcode >> 0) & 7);
31415 AREG((Opcode >> 0) & 7) += 4;
31417 READ_LONG_F(adr, src)
31420 READ_LONG_F(adr, dst)
31423 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31424 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31425 flag_N = res >> 24;
31439 READ_BYTE_F(adr, src)
31442 READ_BYTE_F(adr, dst)
31444 flag_N = flag_C = res;
31445 flag_V = (src ^ dst) & (res ^ dst);
31446 flag_NotZ = res & 0xFF;
31460 READ_WORD_F(adr, src)
31463 READ_WORD_F(adr, dst)
31465 flag_V = ((src ^ dst) & (res ^ dst)) >> 8;
31466 flag_N = flag_C = res >> 8;
31467 flag_NotZ = res & 0xFFFF;
31481 READ_LONG_F(adr, src)
31484 READ_LONG_F(adr, dst)
31487 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
31488 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
31489 flag_N = res >> 24;
31500 src = DREGu8((Opcode >> 9) & 7);
31501 res = DREGu8((Opcode >> 0) & 7);
31507 DREGu8((Opcode >> 0) & 7) = res;
31517 src = DREGu8((Opcode >> 9) & 7);
31518 adr = AREG((Opcode >> 0) & 7);
31520 READ_BYTE_F(adr, res)
31526 WRITE_BYTE_F(adr, res)
31537 src = DREGu8((Opcode >> 9) & 7);
31538 adr = AREG((Opcode >> 0) & 7);
31539 AREG((Opcode >> 0) & 7) += 1;
31541 READ_BYTE_F(adr, res)
31547 WRITE_BYTE_F(adr, res)
31558 src = DREGu8((Opcode >> 9) & 7);
31559 adr = AREG((Opcode >> 0) & 7) - 1;
31560 AREG((Opcode >> 0) & 7) = adr;
31562 READ_BYTE_F(adr, res)
31568 WRITE_BYTE_F(adr, res)
31579 src = DREGu8((Opcode >> 9) & 7);
31581 adr += AREG((Opcode >> 0) & 7);
31583 READ_BYTE_F(adr, res)
31589 WRITE_BYTE_F(adr, res)
31600 src = DREGu8((Opcode >> 9) & 7);
31601 adr = AREG((Opcode >> 0) & 7);
31604 READ_BYTE_F(adr, res)
31610 WRITE_BYTE_F(adr, res)
31621 src = DREGu8((Opcode >> 9) & 7);
31624 READ_BYTE_F(adr, res)
31630 WRITE_BYTE_F(adr, res)
31641 src = DREGu8((Opcode >> 9) & 7);
31644 READ_BYTE_F(adr, res)
31650 WRITE_BYTE_F(adr, res)
31661 src = DREGu8((Opcode >> 9) & 7);
31665 READ_BYTE_F(adr, res)
31671 WRITE_BYTE_F(adr, res)
31682 src = DREGu8((Opcode >> 9) & 7);
31686 READ_BYTE_F(adr, res)
31692 WRITE_BYTE_F(adr, res)
31703 src = DREGu16((Opcode >> 9) & 7);
31704 res = DREGu16((Opcode >> 0) & 7);
31710 DREGu16((Opcode >> 0) & 7) = res;
31720 src = DREGu16((Opcode >> 9) & 7);
31721 adr = AREG((Opcode >> 0) & 7);
31723 READ_WORD_F(adr, res)
31729 WRITE_WORD_F(adr, res)
31740 src = DREGu16((Opcode >> 9) & 7);
31741 adr = AREG((Opcode >> 0) & 7);
31742 AREG((Opcode >> 0) & 7) += 2;
31744 READ_WORD_F(adr, res)
31750 WRITE_WORD_F(adr, res)
31761 src = DREGu16((Opcode >> 9) & 7);
31762 adr = AREG((Opcode >> 0) & 7) - 2;
31763 AREG((Opcode >> 0) & 7) = adr;
31765 READ_WORD_F(adr, res)
31771 WRITE_WORD_F(adr, res)
31782 src = DREGu16((Opcode >> 9) & 7);
31784 adr += AREG((Opcode >> 0) & 7);
31786 READ_WORD_F(adr, res)
31792 WRITE_WORD_F(adr, res)
31803 src = DREGu16((Opcode >> 9) & 7);
31804 adr = AREG((Opcode >> 0) & 7);
31807 READ_WORD_F(adr, res)
31813 WRITE_WORD_F(adr, res)
31824 src = DREGu16((Opcode >> 9) & 7);
31827 READ_WORD_F(adr, res)
31833 WRITE_WORD_F(adr, res)
31844 src = DREGu16((Opcode >> 9) & 7);
31847 READ_WORD_F(adr, res)
31853 WRITE_WORD_F(adr, res)
31864 src = DREGu16((Opcode >> 9) & 7);
31868 READ_WORD_F(adr, res)
31874 WRITE_WORD_F(adr, res)
31885 src = DREGu16((Opcode >> 9) & 7);
31889 READ_WORD_F(adr, res)
31895 WRITE_WORD_F(adr, res)
31906 src = DREGu32((Opcode >> 9) & 7);
31907 res = DREGu32((Opcode >> 0) & 7);
31912 flag_N = res >> 24;
31913 DREGu32((Opcode >> 0) & 7) = res;
31923 src = DREGu32((Opcode >> 9) & 7);
31924 adr = AREG((Opcode >> 0) & 7);
31926 READ_LONG_F(adr, res)
31931 flag_N = res >> 24;
31932 WRITE_LONG_F(adr, res)
31943 src = DREGu32((Opcode >> 9) & 7);
31944 adr = AREG((Opcode >> 0) & 7);
31945 AREG((Opcode >> 0) & 7) += 4;
31947 READ_LONG_F(adr, res)
31952 flag_N = res >> 24;
31953 WRITE_LONG_F(adr, res)
31964 src = DREGu32((Opcode >> 9) & 7);
31965 adr = AREG((Opcode >> 0) & 7) - 4;
31966 AREG((Opcode >> 0) & 7) = adr;
31968 READ_LONG_F(adr, res)
31973 flag_N = res >> 24;
31974 WRITE_LONG_F(adr, res)
31985 src = DREGu32((Opcode >> 9) & 7);
31987 adr += AREG((Opcode >> 0) & 7);
31989 READ_LONG_F(adr, res)
31994 flag_N = res >> 24;
31995 WRITE_LONG_F(adr, res)
32006 src = DREGu32((Opcode >> 9) & 7);
32007 adr = AREG((Opcode >> 0) & 7);
32010 READ_LONG_F(adr, res)
32015 flag_N = res >> 24;
32016 WRITE_LONG_F(adr, res)
32027 src = DREGu32((Opcode >> 9) & 7);
32030 READ_LONG_F(adr, res)
32035 flag_N = res >> 24;
32036 WRITE_LONG_F(adr, res)
32047 src = DREGu32((Opcode >> 9) & 7);
32050 READ_LONG_F(adr, res)
32055 flag_N = res >> 24;
32056 WRITE_LONG_F(adr, res)
32067 src = DREGu32((Opcode >> 9) & 7);
32071 READ_LONG_F(adr, res)
32076 flag_N = res >> 24;
32077 WRITE_LONG_F(adr, res)
32088 src = DREGu32((Opcode >> 9) & 7);
32092 READ_LONG_F(adr, res)
32097 flag_N = res >> 24;
32098 WRITE_LONG_F(adr, res)
32109 src = (s32)DREGs16((Opcode >> 0) & 7);
32110 dst = AREGu32((Opcode >> 9) & 7);
32113 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32114 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32115 flag_N = res >> 24;
32125 src = (s32)AREGs16((Opcode >> 0) & 7);
32126 dst = AREGu32((Opcode >> 9) & 7);
32129 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32130 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32131 flag_N = res >> 24;
32141 adr = AREG((Opcode >> 0) & 7);
32143 READSX_WORD_F(adr, src)
32144 dst = AREGu32((Opcode >> 9) & 7);
32147 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32148 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32149 flag_N = res >> 24;
32160 adr = AREG((Opcode >> 0) & 7);
32161 AREG((Opcode >> 0) & 7) += 2;
32163 READSX_WORD_F(adr, src)
32164 dst = AREGu32((Opcode >> 9) & 7);
32167 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32168 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32169 flag_N = res >> 24;
32180 adr = AREG((Opcode >> 0) & 7) - 2;
32181 AREG((Opcode >> 0) & 7) = adr;
32183 READSX_WORD_F(adr, src)
32184 dst = AREGu32((Opcode >> 9) & 7);
32187 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32188 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32189 flag_N = res >> 24;
32201 adr += AREG((Opcode >> 0) & 7);
32203 READSX_WORD_F(adr, src)
32204 dst = AREGu32((Opcode >> 9) & 7);
32207 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32208 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32209 flag_N = res >> 24;
32220 adr = AREG((Opcode >> 0) & 7);
32223 READSX_WORD_F(adr, src)
32224 dst = AREGu32((Opcode >> 9) & 7);
32227 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32228 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32229 flag_N = res >> 24;
32242 READSX_WORD_F(adr, src)
32243 dst = AREGu32((Opcode >> 9) & 7);
32246 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32247 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32248 flag_N = res >> 24;
32261 READSX_WORD_F(adr, src)
32262 dst = AREGu32((Opcode >> 9) & 7);
32265 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32266 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32267 flag_N = res >> 24;
32278 adr = GET_SWORD + ((u32)(PC) - BasePC);
32281 READSX_WORD_F(adr, src)
32282 dst = AREGu32((Opcode >> 9) & 7);
32285 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32286 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32287 flag_N = res >> 24;
32298 adr = (u32)(PC) - BasePC;
32301 READSX_WORD_F(adr, src)
32302 dst = AREGu32((Opcode >> 9) & 7);
32305 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32306 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32307 flag_N = res >> 24;
32319 dst = AREGu32((Opcode >> 9) & 7);
32322 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32323 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32324 flag_N = res >> 24;
32337 READSX_WORD_F(adr, src)
32338 dst = AREGu32((Opcode >> 9) & 7);
32341 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32342 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32343 flag_N = res >> 24;
32357 READSX_WORD_F(adr, src)
32358 dst = AREGu32((Opcode >> 9) & 7);
32361 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32362 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32363 flag_N = res >> 24;
32374 src = (s32)DREGs32((Opcode >> 0) & 7);
32375 dst = AREGu32((Opcode >> 9) & 7);
32378 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32379 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32380 flag_N = res >> 24;
32390 src = (s32)AREGs32((Opcode >> 0) & 7);
32391 dst = AREGu32((Opcode >> 9) & 7);
32394 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32395 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32396 flag_N = res >> 24;
32406 adr = AREG((Opcode >> 0) & 7);
32408 READSX_LONG_F(adr, src)
32409 dst = AREGu32((Opcode >> 9) & 7);
32412 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32413 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32414 flag_N = res >> 24;
32425 adr = AREG((Opcode >> 0) & 7);
32426 AREG((Opcode >> 0) & 7) += 4;
32428 READSX_LONG_F(adr, src)
32429 dst = AREGu32((Opcode >> 9) & 7);
32432 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32433 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32434 flag_N = res >> 24;
32445 adr = AREG((Opcode >> 0) & 7) - 4;
32446 AREG((Opcode >> 0) & 7) = adr;
32448 READSX_LONG_F(adr, src)
32449 dst = AREGu32((Opcode >> 9) & 7);
32452 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32453 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32454 flag_N = res >> 24;
32466 adr += AREG((Opcode >> 0) & 7);
32468 READSX_LONG_F(adr, src)
32469 dst = AREGu32((Opcode >> 9) & 7);
32472 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32473 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32474 flag_N = res >> 24;
32485 adr = AREG((Opcode >> 0) & 7);
32488 READSX_LONG_F(adr, src)
32489 dst = AREGu32((Opcode >> 9) & 7);
32492 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32493 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32494 flag_N = res >> 24;
32507 READSX_LONG_F(adr, src)
32508 dst = AREGu32((Opcode >> 9) & 7);
32511 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32512 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32513 flag_N = res >> 24;
32526 READSX_LONG_F(adr, src)
32527 dst = AREGu32((Opcode >> 9) & 7);
32530 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32531 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32532 flag_N = res >> 24;
32543 adr = GET_SWORD + ((u32)(PC) - BasePC);
32546 READSX_LONG_F(adr, src)
32547 dst = AREGu32((Opcode >> 9) & 7);
32550 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32551 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32552 flag_N = res >> 24;
32563 adr = (u32)(PC) - BasePC;
32566 READSX_LONG_F(adr, src)
32567 dst = AREGu32((Opcode >> 9) & 7);
32570 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32571 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32572 flag_N = res >> 24;
32584 dst = AREGu32((Opcode >> 9) & 7);
32587 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32588 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32589 flag_N = res >> 24;
32602 READSX_LONG_F(adr, src)
32603 dst = AREGu32((Opcode >> 9) & 7);
32606 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32607 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32608 flag_N = res >> 24;
32622 READSX_LONG_F(adr, src)
32623 dst = AREGu32((Opcode >> 9) & 7);
32626 flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23;
32627 flag_V = ((src ^ dst) & (res ^ dst)) >> 24;
32628 flag_N = res >> 24;
32639 src = DREGu8((Opcode >> 0) & 7);
32640 res = DREGu8((Opcode >> 9) & 7);
32646 DREGu8((Opcode >> 9) & 7) = res;
32656 adr = AREG((Opcode >> 0) & 7);
32658 READ_BYTE_F(adr, src)
32659 res = DREGu8((Opcode >> 9) & 7);
32665 DREGu8((Opcode >> 9) & 7) = res;
32676 adr = AREG((Opcode >> 0) & 7);
32677 AREG((Opcode >> 0) & 7) += 1;
32679 READ_BYTE_F(adr, src)
32680 res = DREGu8((Opcode >> 9) & 7);
32686 DREGu8((Opcode >> 9) & 7) = res;
32697 adr = AREG((Opcode >> 0) & 7) - 1;
32698 AREG((Opcode >> 0) & 7) = adr;
32700 READ_BYTE_F(adr, src)
32701 res = DREGu8((Opcode >> 9) & 7);
32707 DREGu8((Opcode >> 9) & 7) = res;
32719 adr += AREG((Opcode >> 0) & 7);
32721 READ_BYTE_F(adr, src)
32722 res = DREGu8((Opcode >> 9) & 7);
32728 DREGu8((Opcode >> 9) & 7) = res;
32739 adr = AREG((Opcode >> 0) & 7);
32742 READ_BYTE_F(adr, src)
32743 res = DREGu8((Opcode >> 9) & 7);
32749 DREGu8((Opcode >> 9) & 7) = res;
32762 READ_BYTE_F(adr, src)
32763 res = DREGu8((Opcode >> 9) & 7);
32769 DREGu8((Opcode >> 9) & 7) = res;
32782 READ_BYTE_F(adr, src)
32783 res = DREGu8((Opcode >> 9) & 7);
32789 DREGu8((Opcode >> 9) & 7) = res;
32800 adr = GET_SWORD + ((u32)(PC) - BasePC);
32803 READ_BYTE_F(adr, src)
32804 res = DREGu8((Opcode >> 9) & 7);
32810 DREGu8((Opcode >> 9) & 7) = res;
32821 adr = (u32)(PC) - BasePC;
32824 READ_BYTE_F(adr, src)
32825 res = DREGu8((Opcode >> 9) & 7);
32831 DREGu8((Opcode >> 9) & 7) = res;
32843 res = DREGu8((Opcode >> 9) & 7);
32849 DREGu8((Opcode >> 9) & 7) = res;
32862 READ_BYTE_F(adr, src)
32863 res = DREGu8((Opcode >> 9) & 7);
32869 DREGu8((Opcode >> 9) & 7) = res;
32883 READ_BYTE_F(adr, src)
32884 res = DREGu8((Opcode >> 9) & 7);
32890 DREGu8((Opcode >> 9) & 7) = res;
32901 src = DREGu16((Opcode >> 0) & 7);
32902 res = DREGu16((Opcode >> 9) & 7);
32908 DREGu16((Opcode >> 9) & 7) = res;
32918 adr = AREG((Opcode >> 0) & 7);
32920 READ_WORD_F(adr, src)
32921 res = DREGu16((Opcode >> 9) & 7);
32927 DREGu16((Opcode >> 9) & 7) = res;
32938 adr = AREG((Opcode >> 0) & 7);
32939 AREG((Opcode >> 0) & 7) += 2;
32941 READ_WORD_F(adr, src)
32942 res = DREGu16((Opcode >> 9) & 7);
32948 DREGu16((Opcode >> 9) & 7) = res;
32959 adr = AREG((Opcode >> 0) & 7) - 2;
32960 AREG((Opcode >> 0) & 7) = adr;
32962 READ_WORD_F(adr, src)
32963 res = DREGu16((Opcode >> 9) & 7);
32969 DREGu16((Opcode >> 9) & 7) = res;
32981 adr += AREG((Opcode >> 0) & 7);
32983 READ_WORD_F(adr, src)
32984 res = DREGu16((Opcode >> 9) & 7);
32990 DREGu16((Opcode >> 9) & 7) = res;
33001 adr = AREG((Opcode >> 0) & 7);
33004 READ_WORD_F(adr, src)
33005 res = DREGu16((Opcode >> 9) & 7);
33011 DREGu16((Opcode >> 9) & 7) = res;
33024 READ_WORD_F(adr, src)
33025 res = DREGu16((Opcode >> 9) & 7);
33031 DREGu16((Opcode >> 9) & 7) = res;
33044 READ_WORD_F(adr, src)
33045 res = DREGu16((Opcode >> 9) & 7);
33051 DREGu16((Opcode >> 9) & 7) = res;
33062 adr = GET_SWORD + ((u32)(PC) - BasePC);
33065 READ_WORD_F(adr, src)
33066 res = DREGu16((Opcode >> 9) & 7);
33072 DREGu16((Opcode >> 9) & 7) = res;
33083 adr = (u32)(PC) - BasePC;
33086 READ_WORD_F(adr, src)
33087 res = DREGu16((Opcode >> 9) & 7);
33093 DREGu16((Opcode >> 9) & 7) = res;
33105 res = DREGu16((Opcode >> 9) & 7);
33111 DREGu16((Opcode >> 9) & 7) = res;
33124 READ_WORD_F(adr, src)
33125 res = DREGu16((Opcode >> 9) & 7);
33131 DREGu16((Opcode >> 9) & 7) = res;
33145 READ_WORD_F(adr, src)
33146 res = DREGu16((Opcode >> 9) & 7);
33152 DREGu16((Opcode >> 9) & 7) = res;
33163 src = DREGu32((Opcode >> 0) & 7);
33164 res = DREGu32((Opcode >> 9) & 7);
33169 flag_N = res >> 24;
33170 DREGu32((Opcode >> 9) & 7) = res;
33180 adr = AREG((Opcode >> 0) & 7);
33182 READ_LONG_F(adr, src)
33183 res = DREGu32((Opcode >> 9) & 7);
33188 flag_N = res >> 24;
33189 DREGu32((Opcode >> 9) & 7) = res;
33200 adr = AREG((Opcode >> 0) & 7);
33201 AREG((Opcode >> 0) & 7) += 4;
33203 READ_LONG_F(adr, src)
33204 res = DREGu32((Opcode >> 9) & 7);
33209 flag_N = res >> 24;
33210 DREGu32((Opcode >> 9) & 7) = res;
33221 adr = AREG((Opcode >> 0) & 7) - 4;
33222 AREG((Opcode >> 0) & 7) = adr;
33224 READ_LONG_F(adr, src)
33225 res = DREGu32((Opcode >> 9) & 7);
33230 flag_N = res >> 24;
33231 DREGu32((Opcode >> 9) & 7) = res;
33243 adr += AREG((Opcode >> 0) & 7);
33245 READ_LONG_F(adr, src)
33246 res = DREGu32((Opcode >> 9) & 7);
33251 flag_N = res >> 24;
33252 DREGu32((Opcode >> 9) & 7) = res;
33263 adr = AREG((Opcode >> 0) & 7);
33266 READ_LONG_F(adr, src)
33267 res = DREGu32((Opcode >> 9) & 7);
33272 flag_N = res >> 24;
33273 DREGu32((Opcode >> 9) & 7) = res;
33286 READ_LONG_F(adr, src)
33287 res = DREGu32((Opcode >> 9) & 7);
33292 flag_N = res >> 24;
33293 DREGu32((Opcode >> 9) & 7) = res;
33306 READ_LONG_F(adr, src)
33307 res = DREGu32((Opcode >> 9) & 7);
33312 flag_N = res >> 24;
33313 DREGu32((Opcode >> 9) & 7) = res;
33324 adr = GET_SWORD + ((u32)(PC) - BasePC);
33327 READ_LONG_F(adr, src)
33328 res = DREGu32((Opcode >> 9) & 7);
33333 flag_N = res >> 24;
33334 DREGu32((Opcode >> 9) & 7) = res;
33345 adr = (u32)(PC) - BasePC;
33348 READ_LONG_F(adr, src)
33349 res = DREGu32((Opcode >> 9) & 7);
33354 flag_N = res >> 24;
33355 DREGu32((Opcode >> 9) & 7) = res;
33367 res = DREGu32((Opcode >> 9) & 7);
33372 flag_N = res >> 24;
33373 DREGu32((Opcode >> 9) & 7) = res;
33386 READ_LONG_F(adr, src)
33387 res = DREGu32((Opcode >> 9) & 7);
33392 flag_N = res >> 24;
33393 DREGu32((Opcode >> 9) & 7) = res;
33407 READ_LONG_F(adr, src)
33408 res = DREGu32((Opcode >> 9) & 7);
33413 flag_N = res >> 24;
33414 DREGu32((Opcode >> 9) & 7) = res;
33425 src = DREGu8((Opcode >> 9) & 7);
33426 adr = AREG((Opcode >> 0) & 7);
33428 READ_BYTE_F(adr, res)
33434 WRITE_BYTE_F(adr, res)
33445 src = DREGu8((Opcode >> 9) & 7);
33446 adr = AREG((Opcode >> 0) & 7);
33447 AREG((Opcode >> 0) & 7) += 1;
33449 READ_BYTE_F(adr, res)
33455 WRITE_BYTE_F(adr, res)
33466 src = DREGu8((Opcode >> 9) & 7);
33467 adr = AREG((Opcode >> 0) & 7) - 1;
33468 AREG((Opcode >> 0) & 7) = adr;
33470 READ_BYTE_F(adr, res)
33476 WRITE_BYTE_F(adr, res)
33487 src = DREGu8((Opcode >> 9) & 7);
33489 adr += AREG((Opcode >> 0) & 7);
33491 READ_BYTE_F(adr, res)
33497 WRITE_BYTE_F(adr, res)
33508 src = DREGu8((Opcode >> 9) & 7);
33509 adr = AREG((Opcode >> 0) & 7);
33512 READ_BYTE_F(adr, res)
33518 WRITE_BYTE_F(adr, res)
33529 src = DREGu8((Opcode >> 9) & 7);
33532 READ_BYTE_F(adr, res)
33538 WRITE_BYTE_F(adr, res)
33549 src = DREGu8((Opcode >> 9) & 7);
33552 READ_BYTE_F(adr, res)
33558 WRITE_BYTE_F(adr, res)
33569 src = DREGu8((Opcode >> 9) & 7);
33573 READ_BYTE_F(adr, res)
33579 WRITE_BYTE_F(adr, res)
33590 src = DREGu8((Opcode >> 9) & 7);
33594 READ_BYTE_F(adr, res)
33600 WRITE_BYTE_F(adr, res)
33611 src = DREGu16((Opcode >> 9) & 7);
33612 adr = AREG((Opcode >> 0) & 7);
33614 READ_WORD_F(adr, res)
33620 WRITE_WORD_F(adr, res)
33631 src = DREGu16((Opcode >> 9) & 7);
33632 adr = AREG((Opcode >> 0) & 7);
33633 AREG((Opcode >> 0) & 7) += 2;
33635 READ_WORD_F(adr, res)
33641 WRITE_WORD_F(adr, res)
33652 src = DREGu16((Opcode >> 9) & 7);
33653 adr = AREG((Opcode >> 0) & 7) - 2;
33654 AREG((Opcode >> 0) & 7) = adr;
33656 READ_WORD_F(adr, res)
33662 WRITE_WORD_F(adr, res)
33673 src = DREGu16((Opcode >> 9) & 7);
33675 adr += AREG((Opcode >> 0) & 7);
33677 READ_WORD_F(adr, res)
33683 WRITE_WORD_F(adr, res)
33694 src = DREGu16((Opcode >> 9) & 7);
33695 adr = AREG((Opcode >> 0) & 7);
33698 READ_WORD_F(adr, res)
33704 WRITE_WORD_F(adr, res)
33715 src = DREGu16((Opcode >> 9) & 7);
33718 READ_WORD_F(adr, res)
33724 WRITE_WORD_F(adr, res)
33735 src = DREGu16((Opcode >> 9) & 7);
33738 READ_WORD_F(adr, res)
33744 WRITE_WORD_F(adr, res)
33755 src = DREGu16((Opcode >> 9) & 7);
33759 READ_WORD_F(adr, res)
33765 WRITE_WORD_F(adr, res)
33776 src = DREGu16((Opcode >> 9) & 7);
33780 READ_WORD_F(adr, res)
33786 WRITE_WORD_F(adr, res)
33797 src = DREGu32((Opcode >> 9) & 7);
33798 adr = AREG((Opcode >> 0) & 7);
33800 READ_LONG_F(adr, res)
33805 flag_N = res >> 24;
33806 WRITE_LONG_F(adr, res)
33817 src = DREGu32((Opcode >> 9) & 7);
33818 adr = AREG((Opcode >> 0) & 7);
33819 AREG((Opcode >> 0) & 7) += 4;
33821 READ_LONG_F(adr, res)
33826 flag_N = res >> 24;
33827 WRITE_LONG_F(adr, res)
33838 src = DREGu32((Opcode >> 9) & 7);
33839 adr = AREG((Opcode >> 0) & 7) - 4;
33840 AREG((Opcode >> 0) & 7) = adr;
33842 READ_LONG_F(adr, res)
33847 flag_N = res >> 24;
33848 WRITE_LONG_F(adr, res)
33859 src = DREGu32((Opcode >> 9) & 7);
33861 adr += AREG((Opcode >> 0) & 7);
33863 READ_LONG_F(adr, res)
33868 flag_N = res >> 24;
33869 WRITE_LONG_F(adr, res)
33880 src = DREGu32((Opcode >> 9) & 7);
33881 adr = AREG((Opcode >> 0) & 7);
33884 READ_LONG_F(adr, res)
33889 flag_N = res >> 24;
33890 WRITE_LONG_F(adr, res)
33901 src = DREGu32((Opcode >> 9) & 7);
33904 READ_LONG_F(adr, res)
33909 flag_N = res >> 24;
33910 WRITE_LONG_F(adr, res)
33921 src = DREGu32((Opcode >> 9) & 7);
33924 READ_LONG_F(adr, res)
33929 flag_N = res >> 24;
33930 WRITE_LONG_F(adr, res)
33941 src = DREGu32((Opcode >> 9) & 7);
33945 READ_LONG_F(adr, res)
33950 flag_N = res >> 24;
33951 WRITE_LONG_F(adr, res)
33962 src = DREGu32((Opcode >> 9) & 7);
33966 READ_LONG_F(adr, res)
33971 flag_N = res >> 24;
33972 WRITE_LONG_F(adr, res)
33983 src = DREGu8((Opcode >> 0) & 7);
33984 dst = DREGu8((Opcode >> 9) & 7);
33985 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
33986 if (res > 9) res += 6;
33987 res += (dst & 0xF0) + (src & 0xF0);
33991 flag_X = flag_C = M68K_SR_C;
33993 else flag_X = flag_C = 0;
33994 flag_NotZ |= res & 0xFF;
33996 DREGu8((Opcode >> 9) & 7) = res;
34006 adr = AREG((Opcode >> 0) & 7) - 1;
34007 AREG((Opcode >> 0) & 7) = adr;
34009 READ_BYTE_F(adr, src)
34010 adr = AREG((Opcode >> 9) & 7) - 1;
34011 AREG((Opcode >> 9) & 7) = adr;
34012 READ_BYTE_F(adr, dst)
34013 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34014 if (res > 9) res += 6;
34015 res += (dst & 0xF0) + (src & 0xF0);
34019 flag_X = flag_C = M68K_SR_C;
34021 else flag_X = flag_C = 0;
34022 flag_NotZ |= res & 0xFF;
34024 WRITE_BYTE_F(adr, res)
34038 READ_BYTE_F(adr, src)
34039 adr = AREG((Opcode >> 9) & 7) - 1;
34040 AREG((Opcode >> 9) & 7) = adr;
34041 READ_BYTE_F(adr, dst)
34042 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34043 if (res > 9) res += 6;
34044 res += (dst & 0xF0) + (src & 0xF0);
34048 flag_X = flag_C = M68K_SR_C;
34050 else flag_X = flag_C = 0;
34051 flag_NotZ |= res & 0xFF;
34053 WRITE_BYTE_F(adr, res)
34064 adr = AREG((Opcode >> 0) & 7) - 1;
34065 AREG((Opcode >> 0) & 7) = adr;
34067 READ_BYTE_F(adr, src)
34070 READ_BYTE_F(adr, dst)
34071 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34072 if (res > 9) res += 6;
34073 res += (dst & 0xF0) + (src & 0xF0);
34077 flag_X = flag_C = M68K_SR_C;
34079 else flag_X = flag_C = 0;
34080 flag_NotZ |= res & 0xFF;
34082 WRITE_BYTE_F(adr, res)
34096 READ_BYTE_F(adr, src)
34099 READ_BYTE_F(adr, dst)
34100 res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1);
34101 if (res > 9) res += 6;
34102 res += (dst & 0xF0) + (src & 0xF0);
34106 flag_X = flag_C = M68K_SR_C;
34108 else flag_X = flag_C = 0;
34109 flag_NotZ |= res & 0xFF;
34111 WRITE_BYTE_F(adr, res)
34122 src = DREGu16((Opcode >> 0) & 7);
34123 res = DREGu16((Opcode >> 9) & 7);
34125 flag_N = res >> 24;
34127 flag_V = flag_C = 0;
34128 DREGu32((Opcode >> 9) & 7) = res;
34129 #ifdef USE_CYCLONE_TIMING
34142 adr = AREG((Opcode >> 0) & 7);
34144 READ_WORD_F(adr, src)
34145 res = DREGu16((Opcode >> 9) & 7);
34147 flag_N = res >> 24;
34149 flag_V = flag_C = 0;
34150 DREGu32((Opcode >> 9) & 7) = res;
34152 #ifdef USE_CYCLONE_TIMING
34165 adr = AREG((Opcode >> 0) & 7);
34166 AREG((Opcode >> 0) & 7) += 2;
34168 READ_WORD_F(adr, src)
34169 res = DREGu16((Opcode >> 9) & 7);
34171 flag_N = res >> 24;
34173 flag_V = flag_C = 0;
34174 DREGu32((Opcode >> 9) & 7) = res;
34176 #ifdef USE_CYCLONE_TIMING
34189 adr = AREG((Opcode >> 0) & 7) - 2;
34190 AREG((Opcode >> 0) & 7) = adr;
34192 READ_WORD_F(adr, src)
34193 res = DREGu16((Opcode >> 9) & 7);
34195 flag_N = res >> 24;
34197 flag_V = flag_C = 0;
34198 DREGu32((Opcode >> 9) & 7) = res;
34200 #ifdef USE_CYCLONE_TIMING
34214 adr += AREG((Opcode >> 0) & 7);
34216 READ_WORD_F(adr, src)
34217 res = DREGu16((Opcode >> 9) & 7);
34219 flag_N = res >> 24;
34221 flag_V = flag_C = 0;
34222 DREGu32((Opcode >> 9) & 7) = res;
34224 #ifdef USE_CYCLONE_TIMING
34237 adr = AREG((Opcode >> 0) & 7);
34240 READ_WORD_F(adr, src)
34241 res = DREGu16((Opcode >> 9) & 7);
34243 flag_N = res >> 24;
34245 flag_V = flag_C = 0;
34246 DREGu32((Opcode >> 9) & 7) = res;
34248 #ifdef USE_CYCLONE_TIMING
34263 READ_WORD_F(adr, src)
34264 res = DREGu16((Opcode >> 9) & 7);
34266 flag_N = res >> 24;
34268 flag_V = flag_C = 0;
34269 DREGu32((Opcode >> 9) & 7) = res;
34271 #ifdef USE_CYCLONE_TIMING
34286 READ_WORD_F(adr, src)
34287 res = DREGu16((Opcode >> 9) & 7);
34289 flag_N = res >> 24;
34291 flag_V = flag_C = 0;
34292 DREGu32((Opcode >> 9) & 7) = res;
34294 #ifdef USE_CYCLONE_TIMING
34307 adr = GET_SWORD + ((u32)(PC) - BasePC);
34310 READ_WORD_F(adr, src)
34311 res = DREGu16((Opcode >> 9) & 7);
34313 flag_N = res >> 24;
34315 flag_V = flag_C = 0;
34316 DREGu32((Opcode >> 9) & 7) = res;
34318 #ifdef USE_CYCLONE_TIMING
34331 adr = (u32)(PC) - BasePC;
34334 READ_WORD_F(adr, src)
34335 res = DREGu16((Opcode >> 9) & 7);
34337 flag_N = res >> 24;
34339 flag_V = flag_C = 0;
34340 DREGu32((Opcode >> 9) & 7) = res;
34342 #ifdef USE_CYCLONE_TIMING
34356 res = DREGu16((Opcode >> 9) & 7);
34358 flag_N = res >> 24;
34360 flag_V = flag_C = 0;
34361 DREGu32((Opcode >> 9) & 7) = res;
34362 #ifdef USE_CYCLONE_TIMING
34378 READ_WORD_F(adr, src)
34379 res = DREGu16((Opcode >> 9) & 7);
34381 flag_N = res >> 24;
34383 flag_V = flag_C = 0;
34384 DREGu32((Opcode >> 9) & 7) = res;
34386 #ifdef USE_CYCLONE_TIMING
34402 READ_WORD_F(adr, src)
34403 res = DREGu16((Opcode >> 9) & 7);
34405 flag_N = res >> 24;
34407 flag_V = flag_C = 0;
34408 DREGu32((Opcode >> 9) & 7) = res;
34410 #ifdef USE_CYCLONE_TIMING
34423 src = (s32)DREGs16((Opcode >> 0) & 7);
34424 res = (s32)DREGs16((Opcode >> 9) & 7);
34425 res = ((s32)res) * ((s32)src);
34426 flag_N = res >> 24;
34428 flag_V = flag_C = 0;
34429 DREGu32((Opcode >> 9) & 7) = res;
34430 #ifdef USE_CYCLONE_TIMING
34443 adr = AREG((Opcode >> 0) & 7);
34445 READSX_WORD_F(adr, src)
34446 res = (s32)DREGs16((Opcode >> 9) & 7);
34447 res = ((s32)res) * ((s32)src);
34448 flag_N = res >> 24;
34450 flag_V = flag_C = 0;
34451 DREGu32((Opcode >> 9) & 7) = res;
34453 #ifdef USE_CYCLONE_TIMING
34466 adr = AREG((Opcode >> 0) & 7);
34467 AREG((Opcode >> 0) & 7) += 2;
34469 READSX_WORD_F(adr, src)
34470 res = (s32)DREGs16((Opcode >> 9) & 7);
34471 res = ((s32)res) * ((s32)src);
34472 flag_N = res >> 24;
34474 flag_V = flag_C = 0;
34475 DREGu32((Opcode >> 9) & 7) = res;
34477 #ifdef USE_CYCLONE_TIMING
34490 adr = AREG((Opcode >> 0) & 7) - 2;
34491 AREG((Opcode >> 0) & 7) = adr;
34493 READSX_WORD_F(adr, src)
34494 res = (s32)DREGs16((Opcode >> 9) & 7);
34495 res = ((s32)res) * ((s32)src);
34496 flag_N = res >> 24;
34498 flag_V = flag_C = 0;
34499 DREGu32((Opcode >> 9) & 7) = res;
34501 #ifdef USE_CYCLONE_TIMING
34515 adr += AREG((Opcode >> 0) & 7);
34517 READSX_WORD_F(adr, src)
34518 res = (s32)DREGs16((Opcode >> 9) & 7);
34519 res = ((s32)res) * ((s32)src);
34520 flag_N = res >> 24;
34522 flag_V = flag_C = 0;
34523 DREGu32((Opcode >> 9) & 7) = res;
34525 #ifdef USE_CYCLONE_TIMING
34538 adr = AREG((Opcode >> 0) & 7);
34541 READSX_WORD_F(adr, src)
34542 res = (s32)DREGs16((Opcode >> 9) & 7);
34543 res = ((s32)res) * ((s32)src);
34544 flag_N = res >> 24;
34546 flag_V = flag_C = 0;
34547 DREGu32((Opcode >> 9) & 7) = res;
34549 #ifdef USE_CYCLONE_TIMING
34564 READSX_WORD_F(adr, src)
34565 res = (s32)DREGs16((Opcode >> 9) & 7);
34566 res = ((s32)res) * ((s32)src);
34567 flag_N = res >> 24;
34569 flag_V = flag_C = 0;
34570 DREGu32((Opcode >> 9) & 7) = res;
34572 #ifdef USE_CYCLONE_TIMING
34587 READSX_WORD_F(adr, src)
34588 res = (s32)DREGs16((Opcode >> 9) & 7);
34589 res = ((s32)res) * ((s32)src);
34590 flag_N = res >> 24;
34592 flag_V = flag_C = 0;
34593 DREGu32((Opcode >> 9) & 7) = res;
34595 #ifdef USE_CYCLONE_TIMING
34608 adr = GET_SWORD + ((u32)(PC) - BasePC);
34611 READSX_WORD_F(adr, src)
34612 res = (s32)DREGs16((Opcode >> 9) & 7);
34613 res = ((s32)res) * ((s32)src);
34614 flag_N = res >> 24;
34616 flag_V = flag_C = 0;
34617 DREGu32((Opcode >> 9) & 7) = res;
34619 #ifdef USE_CYCLONE_TIMING
34632 adr = (u32)(PC) - BasePC;
34635 READSX_WORD_F(adr, src)
34636 res = (s32)DREGs16((Opcode >> 9) & 7);
34637 res = ((s32)res) * ((s32)src);
34638 flag_N = res >> 24;
34640 flag_V = flag_C = 0;
34641 DREGu32((Opcode >> 9) & 7) = res;
34643 #ifdef USE_CYCLONE_TIMING
34657 res = (s32)DREGs16((Opcode >> 9) & 7);
34658 res = ((s32)res) * ((s32)src);
34659 flag_N = res >> 24;
34661 flag_V = flag_C = 0;
34662 DREGu32((Opcode >> 9) & 7) = res;
34663 #ifdef USE_CYCLONE_TIMING
34679 READSX_WORD_F(adr, src)
34680 res = (s32)DREGs16((Opcode >> 9) & 7);
34681 res = ((s32)res) * ((s32)src);
34682 flag_N = res >> 24;
34684 flag_V = flag_C = 0;
34685 DREGu32((Opcode >> 9) & 7) = res;
34687 #ifdef USE_CYCLONE_TIMING
34703 READSX_WORD_F(adr, src)
34704 res = (s32)DREGs16((Opcode >> 9) & 7);
34705 res = ((s32)res) * ((s32)src);
34706 flag_N = res >> 24;
34708 flag_V = flag_C = 0;
34709 DREGu32((Opcode >> 9) & 7) = res;
34711 #ifdef USE_CYCLONE_TIMING
34724 res = DREGu32((Opcode >> 0) & 7);
34725 src = DREGu32((Opcode >> 9) & 7);
34726 DREGu32((Opcode >> 9) & 7) = res;
34728 DREGu32((Opcode >> 0) & 7) = res;
34738 res = AREGu32((Opcode >> 0) & 7);
34739 src = AREGu32((Opcode >> 9) & 7);
34740 AREG((Opcode >> 9) & 7) = res;
34742 AREG((Opcode >> 0) & 7) = res;
34752 res = AREGu32((Opcode >> 0) & 7);
34753 src = DREGu32((Opcode >> 9) & 7);
34754 DREGu32((Opcode >> 9) & 7) = res;
34756 AREG((Opcode >> 0) & 7) = res;
34766 src = DREGu8((Opcode >> 0) & 7);
34767 dst = DREGu8((Opcode >> 9) & 7);
34769 flag_N = flag_X = flag_C = res;
34770 flag_V = (src ^ res) & (dst ^ res);
34771 flag_NotZ = res & 0xFF;
34772 DREGu8((Opcode >> 9) & 7) = res;
34783 // can't read byte from Ax registers !
34784 m68kcontext.execinfo |= M68K_FAULTED;
34785 m68kcontext.io_cycle_counter = 0;
34787 goto famec_Exec_End;
34788 dst = DREGu8((Opcode >> 9) & 7);
34790 flag_N = flag_X = flag_C = res;
34791 flag_V = (src ^ res) & (dst ^ res);
34792 flag_NotZ = res & 0xFF;
34793 DREGu8((Opcode >> 9) & 7) = res;
34805 adr = AREG((Opcode >> 0) & 7);
34807 READ_BYTE_F(adr, src)
34808 dst = DREGu8((Opcode >> 9) & 7);
34810 flag_N = flag_X = flag_C = res;
34811 flag_V = (src ^ res) & (dst ^ res);
34812 flag_NotZ = res & 0xFF;
34813 DREGu8((Opcode >> 9) & 7) = res;
34824 adr = AREG((Opcode >> 0) & 7);
34825 AREG((Opcode >> 0) & 7) += 1;
34827 READ_BYTE_F(adr, src)
34828 dst = DREGu8((Opcode >> 9) & 7);
34830 flag_N = flag_X = flag_C = res;
34831 flag_V = (src ^ res) & (dst ^ res);
34832 flag_NotZ = res & 0xFF;
34833 DREGu8((Opcode >> 9) & 7) = res;
34844 adr = AREG((Opcode >> 0) & 7) - 1;
34845 AREG((Opcode >> 0) & 7) = adr;
34847 READ_BYTE_F(adr, src)
34848 dst = DREGu8((Opcode >> 9) & 7);
34850 flag_N = flag_X = flag_C = res;
34851 flag_V = (src ^ res) & (dst ^ res);
34852 flag_NotZ = res & 0xFF;
34853 DREGu8((Opcode >> 9) & 7) = res;
34865 adr += AREG((Opcode >> 0) & 7);
34867 READ_BYTE_F(adr, src)
34868 dst = DREGu8((Opcode >> 9) & 7);
34870 flag_N = flag_X = flag_C = res;
34871 flag_V = (src ^ res) & (dst ^ res);
34872 flag_NotZ = res & 0xFF;
34873 DREGu8((Opcode >> 9) & 7) = res;
34884 adr = AREG((Opcode >> 0) & 7);
34887 READ_BYTE_F(adr, src)
34888 dst = DREGu8((Opcode >> 9) & 7);
34890 flag_N = flag_X = flag_C = res;
34891 flag_V = (src ^ res) & (dst ^ res);
34892 flag_NotZ = res & 0xFF;
34893 DREGu8((Opcode >> 9) & 7) = res;
34906 READ_BYTE_F(adr, src)
34907 dst = DREGu8((Opcode >> 9) & 7);
34909 flag_N = flag_X = flag_C = res;
34910 flag_V = (src ^ res) & (dst ^ res);
34911 flag_NotZ = res & 0xFF;
34912 DREGu8((Opcode >> 9) & 7) = res;
34925 READ_BYTE_F(adr, src)
34926 dst = DREGu8((Opcode >> 9) & 7);
34928 flag_N = flag_X = flag_C = res;
34929 flag_V = (src ^ res) & (dst ^ res);
34930 flag_NotZ = res & 0xFF;
34931 DREGu8((Opcode >> 9) & 7) = res;
34942 adr = GET_SWORD + ((u32)(PC) - BasePC);
34945 READ_BYTE_F(adr, src)
34946 dst = DREGu8((Opcode >> 9) & 7);
34948 flag_N = flag_X = flag_C = res;
34949 flag_V = (src ^ res) & (dst ^ res);
34950 flag_NotZ = res & 0xFF;
34951 DREGu8((Opcode >> 9) & 7) = res;
34962 adr = (u32)(PC) - BasePC;
34965 READ_BYTE_F(adr, src)
34966 dst = DREGu8((Opcode >> 9) & 7);
34968 flag_N = flag_X = flag_C = res;
34969 flag_V = (src ^ res) & (dst ^ res);
34970 flag_NotZ = res & 0xFF;
34971 DREGu8((Opcode >> 9) & 7) = res;
34983 dst = DREGu8((Opcode >> 9) & 7);
34985 flag_N = flag_X = flag_C = res;
34986 flag_V = (src ^ res) & (dst ^ res);
34987 flag_NotZ = res & 0xFF;
34988 DREGu8((Opcode >> 9) & 7) = res;
35001 READ_BYTE_F(adr, src)
35002 dst = DREGu8((Opcode >> 9) & 7);
35004 flag_N = flag_X = flag_C = res;
35005 flag_V = (src ^ res) & (dst ^ res);
35006 flag_NotZ = res & 0xFF;
35007 DREGu8((Opcode >> 9) & 7) = res;
35021 READ_BYTE_F(adr, src)
35022 dst = DREGu8((Opcode >> 9) & 7);
35024 flag_N = flag_X = flag_C = res;
35025 flag_V = (src ^ res) & (dst ^ res);
35026 flag_NotZ = res & 0xFF;
35027 DREGu8((Opcode >> 9) & 7) = res;
35038 src = DREGu16((Opcode >> 0) & 7);
35039 dst = DREGu16((Opcode >> 9) & 7);
35041 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35042 flag_N = flag_X = flag_C = res >> 8;
35043 flag_NotZ = res & 0xFFFF;
35044 DREGu16((Opcode >> 9) & 7) = res;
35054 src = AREGu16((Opcode >> 0) & 7);
35055 dst = DREGu16((Opcode >> 9) & 7);
35057 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35058 flag_N = flag_X = flag_C = res >> 8;
35059 flag_NotZ = res & 0xFFFF;
35060 DREGu16((Opcode >> 9) & 7) = res;
35070 adr = AREG((Opcode >> 0) & 7);
35072 READ_WORD_F(adr, src)
35073 dst = DREGu16((Opcode >> 9) & 7);
35075 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35076 flag_N = flag_X = flag_C = res >> 8;
35077 flag_NotZ = res & 0xFFFF;
35078 DREGu16((Opcode >> 9) & 7) = res;
35089 adr = AREG((Opcode >> 0) & 7);
35090 AREG((Opcode >> 0) & 7) += 2;
35092 READ_WORD_F(adr, src)
35093 dst = DREGu16((Opcode >> 9) & 7);
35095 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35096 flag_N = flag_X = flag_C = res >> 8;
35097 flag_NotZ = res & 0xFFFF;
35098 DREGu16((Opcode >> 9) & 7) = res;
35109 adr = AREG((Opcode >> 0) & 7) - 2;
35110 AREG((Opcode >> 0) & 7) = adr;
35112 READ_WORD_F(adr, src)
35113 dst = DREGu16((Opcode >> 9) & 7);
35115 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35116 flag_N = flag_X = flag_C = res >> 8;
35117 flag_NotZ = res & 0xFFFF;
35118 DREGu16((Opcode >> 9) & 7) = res;
35130 adr += AREG((Opcode >> 0) & 7);
35132 READ_WORD_F(adr, src)
35133 dst = DREGu16((Opcode >> 9) & 7);
35135 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35136 flag_N = flag_X = flag_C = res >> 8;
35137 flag_NotZ = res & 0xFFFF;
35138 DREGu16((Opcode >> 9) & 7) = res;
35149 adr = AREG((Opcode >> 0) & 7);
35152 READ_WORD_F(adr, src)
35153 dst = DREGu16((Opcode >> 9) & 7);
35155 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35156 flag_N = flag_X = flag_C = res >> 8;
35157 flag_NotZ = res & 0xFFFF;
35158 DREGu16((Opcode >> 9) & 7) = res;
35171 READ_WORD_F(adr, src)
35172 dst = DREGu16((Opcode >> 9) & 7);
35174 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35175 flag_N = flag_X = flag_C = res >> 8;
35176 flag_NotZ = res & 0xFFFF;
35177 DREGu16((Opcode >> 9) & 7) = res;
35190 READ_WORD_F(adr, src)
35191 dst = DREGu16((Opcode >> 9) & 7);
35193 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35194 flag_N = flag_X = flag_C = res >> 8;
35195 flag_NotZ = res & 0xFFFF;
35196 DREGu16((Opcode >> 9) & 7) = res;
35207 adr = GET_SWORD + ((u32)(PC) - BasePC);
35210 READ_WORD_F(adr, src)
35211 dst = DREGu16((Opcode >> 9) & 7);
35213 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35214 flag_N = flag_X = flag_C = res >> 8;
35215 flag_NotZ = res & 0xFFFF;
35216 DREGu16((Opcode >> 9) & 7) = res;
35227 adr = (u32)(PC) - BasePC;
35230 READ_WORD_F(adr, src)
35231 dst = DREGu16((Opcode >> 9) & 7);
35233 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35234 flag_N = flag_X = flag_C = res >> 8;
35235 flag_NotZ = res & 0xFFFF;
35236 DREGu16((Opcode >> 9) & 7) = res;
35248 dst = DREGu16((Opcode >> 9) & 7);
35250 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35251 flag_N = flag_X = flag_C = res >> 8;
35252 flag_NotZ = res & 0xFFFF;
35253 DREGu16((Opcode >> 9) & 7) = res;
35266 READ_WORD_F(adr, src)
35267 dst = DREGu16((Opcode >> 9) & 7);
35269 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35270 flag_N = flag_X = flag_C = res >> 8;
35271 flag_NotZ = res & 0xFFFF;
35272 DREGu16((Opcode >> 9) & 7) = res;
35286 READ_WORD_F(adr, src)
35287 dst = DREGu16((Opcode >> 9) & 7);
35289 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35290 flag_N = flag_X = flag_C = res >> 8;
35291 flag_NotZ = res & 0xFFFF;
35292 DREGu16((Opcode >> 9) & 7) = res;
35303 src = DREGu32((Opcode >> 0) & 7);
35304 dst = DREGu32((Opcode >> 9) & 7);
35307 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35308 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35309 flag_N = res >> 24;
35310 DREGu32((Opcode >> 9) & 7) = res;
35320 src = AREGu32((Opcode >> 0) & 7);
35321 dst = DREGu32((Opcode >> 9) & 7);
35324 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35325 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35326 flag_N = res >> 24;
35327 DREGu32((Opcode >> 9) & 7) = res;
35337 adr = AREG((Opcode >> 0) & 7);
35339 READ_LONG_F(adr, src)
35340 dst = DREGu32((Opcode >> 9) & 7);
35343 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35344 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35345 flag_N = res >> 24;
35346 DREGu32((Opcode >> 9) & 7) = res;
35357 adr = AREG((Opcode >> 0) & 7);
35358 AREG((Opcode >> 0) & 7) += 4;
35360 READ_LONG_F(adr, src)
35361 dst = DREGu32((Opcode >> 9) & 7);
35364 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35365 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35366 flag_N = res >> 24;
35367 DREGu32((Opcode >> 9) & 7) = res;
35378 adr = AREG((Opcode >> 0) & 7) - 4;
35379 AREG((Opcode >> 0) & 7) = adr;
35381 READ_LONG_F(adr, src)
35382 dst = DREGu32((Opcode >> 9) & 7);
35385 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35386 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35387 flag_N = res >> 24;
35388 DREGu32((Opcode >> 9) & 7) = res;
35400 adr += AREG((Opcode >> 0) & 7);
35402 READ_LONG_F(adr, src)
35403 dst = DREGu32((Opcode >> 9) & 7);
35406 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35407 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35408 flag_N = res >> 24;
35409 DREGu32((Opcode >> 9) & 7) = res;
35420 adr = AREG((Opcode >> 0) & 7);
35423 READ_LONG_F(adr, src)
35424 dst = DREGu32((Opcode >> 9) & 7);
35427 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35428 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35429 flag_N = res >> 24;
35430 DREGu32((Opcode >> 9) & 7) = res;
35443 READ_LONG_F(adr, src)
35444 dst = DREGu32((Opcode >> 9) & 7);
35447 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35448 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35449 flag_N = res >> 24;
35450 DREGu32((Opcode >> 9) & 7) = res;
35463 READ_LONG_F(adr, src)
35464 dst = DREGu32((Opcode >> 9) & 7);
35467 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35468 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35469 flag_N = res >> 24;
35470 DREGu32((Opcode >> 9) & 7) = res;
35481 adr = GET_SWORD + ((u32)(PC) - BasePC);
35484 READ_LONG_F(adr, src)
35485 dst = DREGu32((Opcode >> 9) & 7);
35488 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35489 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35490 flag_N = res >> 24;
35491 DREGu32((Opcode >> 9) & 7) = res;
35502 adr = (u32)(PC) - BasePC;
35505 READ_LONG_F(adr, src)
35506 dst = DREGu32((Opcode >> 9) & 7);
35509 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35510 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35511 flag_N = res >> 24;
35512 DREGu32((Opcode >> 9) & 7) = res;
35524 dst = DREGu32((Opcode >> 9) & 7);
35527 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35528 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35529 flag_N = res >> 24;
35530 DREGu32((Opcode >> 9) & 7) = res;
35543 READ_LONG_F(adr, src)
35544 dst = DREGu32((Opcode >> 9) & 7);
35547 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35548 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35549 flag_N = res >> 24;
35550 DREGu32((Opcode >> 9) & 7) = res;
35564 READ_LONG_F(adr, src)
35565 dst = DREGu32((Opcode >> 9) & 7);
35568 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35569 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35570 flag_N = res >> 24;
35571 DREGu32((Opcode >> 9) & 7) = res;
35582 src = DREGu8((Opcode >> 9) & 7);
35583 adr = AREG((Opcode >> 0) & 7);
35585 READ_BYTE_F(adr, dst)
35587 flag_N = flag_X = flag_C = res;
35588 flag_V = (src ^ res) & (dst ^ res);
35589 flag_NotZ = res & 0xFF;
35590 WRITE_BYTE_F(adr, res)
35601 src = DREGu8((Opcode >> 9) & 7);
35602 adr = AREG((Opcode >> 0) & 7);
35603 AREG((Opcode >> 0) & 7) += 1;
35605 READ_BYTE_F(adr, dst)
35607 flag_N = flag_X = flag_C = res;
35608 flag_V = (src ^ res) & (dst ^ res);
35609 flag_NotZ = res & 0xFF;
35610 WRITE_BYTE_F(adr, res)
35621 src = DREGu8((Opcode >> 9) & 7);
35622 adr = AREG((Opcode >> 0) & 7) - 1;
35623 AREG((Opcode >> 0) & 7) = adr;
35625 READ_BYTE_F(adr, dst)
35627 flag_N = flag_X = flag_C = res;
35628 flag_V = (src ^ res) & (dst ^ res);
35629 flag_NotZ = res & 0xFF;
35630 WRITE_BYTE_F(adr, res)
35641 src = DREGu8((Opcode >> 9) & 7);
35643 adr += AREG((Opcode >> 0) & 7);
35645 READ_BYTE_F(adr, dst)
35647 flag_N = flag_X = flag_C = res;
35648 flag_V = (src ^ res) & (dst ^ res);
35649 flag_NotZ = res & 0xFF;
35650 WRITE_BYTE_F(adr, res)
35661 src = DREGu8((Opcode >> 9) & 7);
35662 adr = AREG((Opcode >> 0) & 7);
35665 READ_BYTE_F(adr, dst)
35667 flag_N = flag_X = flag_C = res;
35668 flag_V = (src ^ res) & (dst ^ res);
35669 flag_NotZ = res & 0xFF;
35670 WRITE_BYTE_F(adr, res)
35681 src = DREGu8((Opcode >> 9) & 7);
35684 READ_BYTE_F(adr, dst)
35686 flag_N = flag_X = flag_C = res;
35687 flag_V = (src ^ res) & (dst ^ res);
35688 flag_NotZ = res & 0xFF;
35689 WRITE_BYTE_F(adr, res)
35700 src = DREGu8((Opcode >> 9) & 7);
35703 READ_BYTE_F(adr, dst)
35705 flag_N = flag_X = flag_C = res;
35706 flag_V = (src ^ res) & (dst ^ res);
35707 flag_NotZ = res & 0xFF;
35708 WRITE_BYTE_F(adr, res)
35719 src = DREGu8((Opcode >> 9) & 7);
35723 READ_BYTE_F(adr, dst)
35725 flag_N = flag_X = flag_C = res;
35726 flag_V = (src ^ res) & (dst ^ res);
35727 flag_NotZ = res & 0xFF;
35728 WRITE_BYTE_F(adr, res)
35739 src = DREGu8((Opcode >> 9) & 7);
35743 READ_BYTE_F(adr, dst)
35745 flag_N = flag_X = flag_C = res;
35746 flag_V = (src ^ res) & (dst ^ res);
35747 flag_NotZ = res & 0xFF;
35748 WRITE_BYTE_F(adr, res)
35759 src = DREGu16((Opcode >> 9) & 7);
35760 adr = AREG((Opcode >> 0) & 7);
35762 READ_WORD_F(adr, dst)
35764 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35765 flag_N = flag_X = flag_C = res >> 8;
35766 flag_NotZ = res & 0xFFFF;
35767 WRITE_WORD_F(adr, res)
35778 src = DREGu16((Opcode >> 9) & 7);
35779 adr = AREG((Opcode >> 0) & 7);
35780 AREG((Opcode >> 0) & 7) += 2;
35782 READ_WORD_F(adr, dst)
35784 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35785 flag_N = flag_X = flag_C = res >> 8;
35786 flag_NotZ = res & 0xFFFF;
35787 WRITE_WORD_F(adr, res)
35798 src = DREGu16((Opcode >> 9) & 7);
35799 adr = AREG((Opcode >> 0) & 7) - 2;
35800 AREG((Opcode >> 0) & 7) = adr;
35802 READ_WORD_F(adr, dst)
35804 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35805 flag_N = flag_X = flag_C = res >> 8;
35806 flag_NotZ = res & 0xFFFF;
35807 WRITE_WORD_F(adr, res)
35818 src = DREGu16((Opcode >> 9) & 7);
35820 adr += AREG((Opcode >> 0) & 7);
35822 READ_WORD_F(adr, dst)
35824 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35825 flag_N = flag_X = flag_C = res >> 8;
35826 flag_NotZ = res & 0xFFFF;
35827 WRITE_WORD_F(adr, res)
35838 src = DREGu16((Opcode >> 9) & 7);
35839 adr = AREG((Opcode >> 0) & 7);
35842 READ_WORD_F(adr, dst)
35844 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35845 flag_N = flag_X = flag_C = res >> 8;
35846 flag_NotZ = res & 0xFFFF;
35847 WRITE_WORD_F(adr, res)
35858 src = DREGu16((Opcode >> 9) & 7);
35861 READ_WORD_F(adr, dst)
35863 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35864 flag_N = flag_X = flag_C = res >> 8;
35865 flag_NotZ = res & 0xFFFF;
35866 WRITE_WORD_F(adr, res)
35877 src = DREGu16((Opcode >> 9) & 7);
35880 READ_WORD_F(adr, dst)
35882 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35883 flag_N = flag_X = flag_C = res >> 8;
35884 flag_NotZ = res & 0xFFFF;
35885 WRITE_WORD_F(adr, res)
35896 src = DREGu16((Opcode >> 9) & 7);
35900 READ_WORD_F(adr, dst)
35902 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35903 flag_N = flag_X = flag_C = res >> 8;
35904 flag_NotZ = res & 0xFFFF;
35905 WRITE_WORD_F(adr, res)
35916 src = DREGu16((Opcode >> 9) & 7);
35920 READ_WORD_F(adr, dst)
35922 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
35923 flag_N = flag_X = flag_C = res >> 8;
35924 flag_NotZ = res & 0xFFFF;
35925 WRITE_WORD_F(adr, res)
35936 src = DREGu32((Opcode >> 9) & 7);
35937 adr = AREG((Opcode >> 0) & 7);
35939 READ_LONG_F(adr, dst)
35942 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35943 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35944 flag_N = res >> 24;
35945 WRITE_LONG_F(adr, res)
35956 src = DREGu32((Opcode >> 9) & 7);
35957 adr = AREG((Opcode >> 0) & 7);
35958 AREG((Opcode >> 0) & 7) += 4;
35960 READ_LONG_F(adr, dst)
35963 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35964 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35965 flag_N = res >> 24;
35966 WRITE_LONG_F(adr, res)
35977 src = DREGu32((Opcode >> 9) & 7);
35978 adr = AREG((Opcode >> 0) & 7) - 4;
35979 AREG((Opcode >> 0) & 7) = adr;
35981 READ_LONG_F(adr, dst)
35984 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
35985 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
35986 flag_N = res >> 24;
35987 WRITE_LONG_F(adr, res)
35998 src = DREGu32((Opcode >> 9) & 7);
36000 adr += AREG((Opcode >> 0) & 7);
36002 READ_LONG_F(adr, dst)
36005 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36006 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36007 flag_N = res >> 24;
36008 WRITE_LONG_F(adr, res)
36019 src = DREGu32((Opcode >> 9) & 7);
36020 adr = AREG((Opcode >> 0) & 7);
36023 READ_LONG_F(adr, dst)
36026 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36027 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36028 flag_N = res >> 24;
36029 WRITE_LONG_F(adr, res)
36040 src = DREGu32((Opcode >> 9) & 7);
36043 READ_LONG_F(adr, dst)
36046 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36047 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36048 flag_N = res >> 24;
36049 WRITE_LONG_F(adr, res)
36060 src = DREGu32((Opcode >> 9) & 7);
36063 READ_LONG_F(adr, dst)
36066 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36067 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36068 flag_N = res >> 24;
36069 WRITE_LONG_F(adr, res)
36080 src = DREGu32((Opcode >> 9) & 7);
36084 READ_LONG_F(adr, dst)
36087 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36088 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36089 flag_N = res >> 24;
36090 WRITE_LONG_F(adr, res)
36101 src = DREGu32((Opcode >> 9) & 7);
36105 READ_LONG_F(adr, dst)
36108 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36109 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36110 flag_N = res >> 24;
36111 WRITE_LONG_F(adr, res)
36122 src = DREGu8((Opcode >> 0) & 7);
36123 dst = DREGu8((Opcode >> 9) & 7);
36124 res = dst + src + ((flag_X >> 8) & 1);
36125 flag_N = flag_X = flag_C = res;
36126 flag_V = (src ^ res) & (dst ^ res);
36127 flag_NotZ |= res & 0xFF;
36128 DREGu8((Opcode >> 9) & 7) = res;
36138 src = DREGu16((Opcode >> 0) & 7);
36139 dst = DREGu16((Opcode >> 9) & 7);
36140 res = dst + src + ((flag_X >> 8) & 1);
36141 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36142 flag_N = flag_X = flag_C = res >> 8;
36143 flag_NotZ |= res & 0xFFFF;
36144 DREGu16((Opcode >> 9) & 7) = res;
36154 src = DREGu32((Opcode >> 0) & 7);
36155 dst = DREGu32((Opcode >> 9) & 7);
36156 res = dst + src + ((flag_X >> 8) & 1);
36158 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36159 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36160 flag_N = res >> 24;
36161 DREGu32((Opcode >> 9) & 7) = res;
36171 adr = AREG((Opcode >> 0) & 7) - 1;
36172 AREG((Opcode >> 0) & 7) = adr;
36174 READ_BYTE_F(adr, src)
36175 adr = AREG((Opcode >> 9) & 7) - 1;
36176 AREG((Opcode >> 9) & 7) = adr;
36177 READ_BYTE_F(adr, dst)
36178 res = dst + src + ((flag_X >> 8) & 1);
36179 flag_N = flag_X = flag_C = res;
36180 flag_V = (src ^ res) & (dst ^ res);
36181 flag_NotZ |= res & 0xFF;
36182 WRITE_BYTE_F(adr, res)
36193 adr = AREG((Opcode >> 0) & 7) - 2;
36194 AREG((Opcode >> 0) & 7) = adr;
36196 READ_WORD_F(adr, src)
36197 adr = AREG((Opcode >> 9) & 7) - 2;
36198 AREG((Opcode >> 9) & 7) = adr;
36199 READ_WORD_F(adr, dst)
36200 res = dst + src + ((flag_X >> 8) & 1);
36201 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36202 flag_N = flag_X = flag_C = res >> 8;
36203 flag_NotZ |= res & 0xFFFF;
36204 WRITE_WORD_F(adr, res)
36215 adr = AREG((Opcode >> 0) & 7) - 4;
36216 AREG((Opcode >> 0) & 7) = adr;
36218 READ_LONG_F(adr, src)
36219 adr = AREG((Opcode >> 9) & 7) - 4;
36220 AREG((Opcode >> 9) & 7) = adr;
36221 READ_LONG_F(adr, dst)
36222 res = dst + src + ((flag_X >> 8) & 1);
36224 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36225 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36226 flag_N = res >> 24;
36227 WRITE_LONG_F(adr, res)
36241 READ_BYTE_F(adr, src)
36242 adr = AREG((Opcode >> 9) & 7) - 1;
36243 AREG((Opcode >> 9) & 7) = adr;
36244 READ_BYTE_F(adr, dst)
36245 res = dst + src + ((flag_X >> 8) & 1);
36246 flag_N = flag_X = flag_C = res;
36247 flag_V = (src ^ res) & (dst ^ res);
36248 flag_NotZ |= res & 0xFF;
36249 WRITE_BYTE_F(adr, res)
36263 READ_WORD_F(adr, src)
36264 adr = AREG((Opcode >> 9) & 7) - 2;
36265 AREG((Opcode >> 9) & 7) = adr;
36266 READ_WORD_F(adr, dst)
36267 res = dst + src + ((flag_X >> 8) & 1);
36268 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36269 flag_N = flag_X = flag_C = res >> 8;
36270 flag_NotZ |= res & 0xFFFF;
36271 WRITE_WORD_F(adr, res)
36285 READ_LONG_F(adr, src)
36286 adr = AREG((Opcode >> 9) & 7) - 4;
36287 AREG((Opcode >> 9) & 7) = adr;
36288 READ_LONG_F(adr, dst)
36289 res = dst + src + ((flag_X >> 8) & 1);
36291 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36292 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36293 flag_N = res >> 24;
36294 WRITE_LONG_F(adr, res)
36305 adr = AREG((Opcode >> 0) & 7) - 1;
36306 AREG((Opcode >> 0) & 7) = adr;
36308 READ_BYTE_F(adr, src)
36311 READ_BYTE_F(adr, dst)
36312 res = dst + src + ((flag_X >> 8) & 1);
36313 flag_N = flag_X = flag_C = res;
36314 flag_V = (src ^ res) & (dst ^ res);
36315 flag_NotZ |= res & 0xFF;
36316 WRITE_BYTE_F(adr, res)
36327 adr = AREG((Opcode >> 0) & 7) - 2;
36328 AREG((Opcode >> 0) & 7) = adr;
36330 READ_WORD_F(adr, src)
36333 READ_WORD_F(adr, dst)
36334 res = dst + src + ((flag_X >> 8) & 1);
36335 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36336 flag_N = flag_X = flag_C = res >> 8;
36337 flag_NotZ |= res & 0xFFFF;
36338 WRITE_WORD_F(adr, res)
36349 adr = AREG((Opcode >> 0) & 7) - 4;
36350 AREG((Opcode >> 0) & 7) = adr;
36352 READ_LONG_F(adr, src)
36355 READ_LONG_F(adr, dst)
36356 res = dst + src + ((flag_X >> 8) & 1);
36358 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36359 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36360 flag_N = res >> 24;
36361 WRITE_LONG_F(adr, res)
36375 READ_BYTE_F(adr, src)
36378 READ_BYTE_F(adr, dst)
36379 res = dst + src + ((flag_X >> 8) & 1);
36380 flag_N = flag_X = flag_C = res;
36381 flag_V = (src ^ res) & (dst ^ res);
36382 flag_NotZ |= res & 0xFF;
36383 WRITE_BYTE_F(adr, res)
36397 READ_WORD_F(adr, src)
36400 READ_WORD_F(adr, dst)
36401 res = dst + src + ((flag_X >> 8) & 1);
36402 flag_V = ((src ^ res) & (dst ^ res)) >> 8;
36403 flag_N = flag_X = flag_C = res >> 8;
36404 flag_NotZ |= res & 0xFFFF;
36405 WRITE_WORD_F(adr, res)
36419 READ_LONG_F(adr, src)
36422 READ_LONG_F(adr, dst)
36423 res = dst + src + ((flag_X >> 8) & 1);
36425 flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23;
36426 flag_V = ((src ^ res) & (dst ^ res)) >> 24;
36427 flag_N = res >> 24;
36428 WRITE_LONG_F(adr, res)
36439 src = (s32)DREGs16((Opcode >> 0) & 7);
36440 dst = AREGu32((Opcode >> 9) & 7);
36442 AREG((Opcode >> 9) & 7) = res;
36452 src = (s32)AREGs16((Opcode >> 0) & 7);
36453 dst = AREGu32((Opcode >> 9) & 7);
36455 AREG((Opcode >> 9) & 7) = res;
36465 adr = AREG((Opcode >> 0) & 7);
36467 READSX_WORD_F(adr, src)
36468 dst = AREGu32((Opcode >> 9) & 7);
36470 AREG((Opcode >> 9) & 7) = res;
36472 #ifdef USE_CYCLONE_TIMING
36485 adr = AREG((Opcode >> 0) & 7);
36486 AREG((Opcode >> 0) & 7) += 2;
36488 READSX_WORD_F(adr, src)
36489 dst = AREGu32((Opcode >> 9) & 7);
36491 AREG((Opcode >> 9) & 7) = res;
36493 #ifdef USE_CYCLONE_TIMING
36506 adr = AREG((Opcode >> 0) & 7) - 2;
36507 AREG((Opcode >> 0) & 7) = adr;
36509 READSX_WORD_F(adr, src)
36510 dst = AREGu32((Opcode >> 9) & 7);
36512 AREG((Opcode >> 9) & 7) = res;
36514 #ifdef USE_CYCLONE_TIMING
36528 adr += AREG((Opcode >> 0) & 7);
36530 READSX_WORD_F(adr, src)
36531 dst = AREGu32((Opcode >> 9) & 7);
36533 AREG((Opcode >> 9) & 7) = res;
36535 #ifdef USE_CYCLONE_TIMING
36548 adr = AREG((Opcode >> 0) & 7);
36551 READSX_WORD_F(adr, src)
36552 dst = AREGu32((Opcode >> 9) & 7);
36554 AREG((Opcode >> 9) & 7) = res;
36556 #ifdef USE_CYCLONE_TIMING
36571 READSX_WORD_F(adr, src)
36572 dst = AREGu32((Opcode >> 9) & 7);
36574 AREG((Opcode >> 9) & 7) = res;
36576 #ifdef USE_CYCLONE_TIMING
36591 READSX_WORD_F(adr, src)
36592 dst = AREGu32((Opcode >> 9) & 7);
36594 AREG((Opcode >> 9) & 7) = res;
36596 #ifdef USE_CYCLONE_TIMING
36609 adr = GET_SWORD + ((u32)(PC) - BasePC);
36612 READSX_WORD_F(adr, src)
36613 dst = AREGu32((Opcode >> 9) & 7);
36615 AREG((Opcode >> 9) & 7) = res;
36617 #ifdef USE_CYCLONE_TIMING
36630 adr = (u32)(PC) - BasePC;
36633 READSX_WORD_F(adr, src)
36634 dst = AREGu32((Opcode >> 9) & 7);
36636 AREG((Opcode >> 9) & 7) = res;
36638 #ifdef USE_CYCLONE_TIMING
36652 dst = AREGu32((Opcode >> 9) & 7);
36654 AREG((Opcode >> 9) & 7) = res;
36667 READSX_WORD_F(adr, src)
36668 dst = AREGu32((Opcode >> 9) & 7);
36670 AREG((Opcode >> 9) & 7) = res;
36672 #ifdef USE_CYCLONE_TIMING
36688 READSX_WORD_F(adr, src)
36689 dst = AREGu32((Opcode >> 9) & 7);
36691 AREG((Opcode >> 9) & 7) = res;
36693 #ifdef USE_CYCLONE_TIMING
36706 src = (s32)DREGs32((Opcode >> 0) & 7);
36707 dst = AREGu32((Opcode >> 9) & 7);
36709 AREG((Opcode >> 9) & 7) = res;
36710 #ifdef USE_CYCLONE_TIMING
36723 src = (s32)AREGs32((Opcode >> 0) & 7);
36724 dst = AREGu32((Opcode >> 9) & 7);
36726 AREG((Opcode >> 9) & 7) = res;
36727 #ifdef USE_CYCLONE_TIMING
36740 adr = AREG((Opcode >> 0) & 7);
36742 READSX_LONG_F(adr, src)
36743 dst = AREGu32((Opcode >> 9) & 7);
36745 AREG((Opcode >> 9) & 7) = res;
36756 adr = AREG((Opcode >> 0) & 7);
36757 AREG((Opcode >> 0) & 7) += 4;
36759 READSX_LONG_F(adr, src)
36760 dst = AREGu32((Opcode >> 9) & 7);
36762 AREG((Opcode >> 9) & 7) = res;
36773 adr = AREG((Opcode >> 0) & 7) - 4;
36774 AREG((Opcode >> 0) & 7) = adr;
36776 READSX_LONG_F(adr, src)
36777 dst = AREGu32((Opcode >> 9) & 7);
36779 AREG((Opcode >> 9) & 7) = res;
36791 adr += AREG((Opcode >> 0) & 7);
36793 READSX_LONG_F(adr, src)
36794 dst = AREGu32((Opcode >> 9) & 7);
36796 AREG((Opcode >> 9) & 7) = res;
36807 adr = AREG((Opcode >> 0) & 7);
36810 READSX_LONG_F(adr, src)
36811 dst = AREGu32((Opcode >> 9) & 7);
36813 AREG((Opcode >> 9) & 7) = res;
36826 READSX_LONG_F(adr, src)
36827 dst = AREGu32((Opcode >> 9) & 7);
36829 AREG((Opcode >> 9) & 7) = res;
36842 READSX_LONG_F(adr, src)
36843 dst = AREGu32((Opcode >> 9) & 7);
36845 AREG((Opcode >> 9) & 7) = res;
36856 adr = GET_SWORD + ((u32)(PC) - BasePC);
36859 READSX_LONG_F(adr, src)
36860 dst = AREGu32((Opcode >> 9) & 7);
36862 AREG((Opcode >> 9) & 7) = res;
36873 adr = (u32)(PC) - BasePC;
36876 READSX_LONG_F(adr, src)
36877 dst = AREGu32((Opcode >> 9) & 7);
36879 AREG((Opcode >> 9) & 7) = res;
36891 dst = AREGu32((Opcode >> 9) & 7);
36893 AREG((Opcode >> 9) & 7) = res;
36894 #ifdef USE_CYCLONE_TIMING
36910 READSX_LONG_F(adr, src)
36911 dst = AREGu32((Opcode >> 9) & 7);
36913 AREG((Opcode >> 9) & 7) = res;
36927 READSX_LONG_F(adr, src)
36928 dst = AREGu32((Opcode >> 9) & 7);
36930 AREG((Opcode >> 9) & 7) = res;
36943 sft = (((Opcode >> 9) - 1) & 7) + 1;
36944 m68kcontext.io_cycle_counter -= sft * 2;
36945 src = (s32)DREGs8((Opcode >> 0) & 7);
36947 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
36948 res = ((s32)src) >> sft;
36951 DREGu8((Opcode >> 0) & 7) = res;
36963 sft = (((Opcode >> 9) - 1) & 7) + 1;
36964 m68kcontext.io_cycle_counter -= sft * 2;
36965 src = (s32)DREGs16((Opcode >> 0) & 7);
36967 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
36968 res = ((s32)src) >> sft;
36971 DREGu16((Opcode >> 0) & 7) = res;
36983 sft = (((Opcode >> 9) - 1) & 7) + 1;
36984 m68kcontext.io_cycle_counter -= sft * 2;
36985 src = (s32)DREGs32((Opcode >> 0) & 7);
36987 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
36988 res = ((s32)src) >> sft;
36989 flag_N = res >> 24;
36991 DREGu32((Opcode >> 0) & 7) = res;
37003 sft = (((Opcode >> 9) - 1) & 7) + 1;
37004 m68kcontext.io_cycle_counter -= sft * 2;
37005 src = DREGu8((Opcode >> 0) & 7);
37006 flag_N = flag_V = 0;
37007 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37010 DREGu8((Opcode >> 0) & 7) = res;
37022 sft = (((Opcode >> 9) - 1) & 7) + 1;
37023 m68kcontext.io_cycle_counter -= sft * 2;
37024 src = DREGu16((Opcode >> 0) & 7);
37025 flag_N = flag_V = 0;
37026 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37029 DREGu16((Opcode >> 0) & 7) = res;
37041 sft = (((Opcode >> 9) - 1) & 7) + 1;
37042 m68kcontext.io_cycle_counter -= sft * 2;
37043 src = DREGu32((Opcode >> 0) & 7);
37044 flag_N = flag_V = 0;
37045 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37048 DREGu32((Opcode >> 0) & 7) = res;
37060 sft = (((Opcode >> 9) - 1) & 7) + 1;
37061 m68kcontext.io_cycle_counter -= sft * 2;
37062 src = DREGu8((Opcode >> 0) & 7);
37063 src |= (flag_X & M68K_SR_X) << 0;
37064 res = (src >> sft) | (src << (9 - sft));
37065 flag_X = flag_C = res >> 0;
37068 flag_NotZ = res & 0x000000FF;
37069 DREGu8((Opcode >> 0) & 7) = res;
37081 sft = (((Opcode >> 9) - 1) & 7) + 1;
37082 m68kcontext.io_cycle_counter -= sft * 2;
37083 src = DREGu16((Opcode >> 0) & 7);
37084 src |= (flag_X & M68K_SR_X) << 8;
37085 res = (src >> sft) | (src << (17 - sft));
37086 flag_X = flag_C = res >> 8;
37089 flag_NotZ = res & 0x0000FFFF;
37090 DREGu16((Opcode >> 0) & 7) = res;
37102 sft = (((Opcode >> 9) - 1) & 7) + 1;
37103 m68kcontext.io_cycle_counter -= sft * 2;
37104 src = DREGu32((Opcode >> 0) & 7);
37105 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37106 if (sft == 1) res = (src >> 1) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1)));
37107 else res = (src >> sft) | (src << (33 - sft)) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + sft)));
37110 flag_N = res >> 24;
37112 DREGu32((Opcode >> 0) & 7) = res;
37124 sft = (((Opcode >> 9) - 1) & 7) + 1;
37125 m68kcontext.io_cycle_counter -= sft * 2;
37126 src = DREGu8((Opcode >> 0) & 7);
37128 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37129 res = (src >> sft) | (src << (8 - sft));
37131 flag_NotZ = res & 0x000000FF;
37132 DREGu8((Opcode >> 0) & 7) = res;
37144 sft = (((Opcode >> 9) - 1) & 7) + 1;
37145 m68kcontext.io_cycle_counter -= sft * 2;
37146 src = DREGu16((Opcode >> 0) & 7);
37148 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37149 res = (src >> sft) | (src << (16 - sft));
37151 flag_NotZ = res & 0x0000FFFF;
37152 DREGu16((Opcode >> 0) & 7) = res;
37164 sft = (((Opcode >> 9) - 1) & 7) + 1;
37165 m68kcontext.io_cycle_counter -= sft * 2;
37166 src = DREGu32((Opcode >> 0) & 7);
37168 flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37169 res = (src >> sft) | (src << (32 - sft));
37170 flag_N = res >> 24;
37172 DREGu32((Opcode >> 0) & 7) = res;
37184 sft = (((Opcode >> 9) - 1) & 7) + 1;
37185 m68kcontext.io_cycle_counter -= sft * 2;
37186 src = DREGu8((Opcode >> 0) & 7);
37189 flag_X = flag_C = src << (0 + sft);
37192 flag_NotZ = res & 0x000000FF;
37193 DREGu8((Opcode >> 0) & 7) = res;
37195 if ((sft > 7) && (src)) flag_V = M68K_SR_V;
37198 u32 msk = (((s32)0x80000000) >> (sft + 24)) & 0x000000FF;
37200 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37205 if (src) flag_V = M68K_SR_V;
37207 flag_X = flag_C = src << M68K_SR_C_SFT;
37209 DREGu8((Opcode >> 0) & 7) = res;
37223 sft = (((Opcode >> 9) - 1) & 7) + 1;
37224 m68kcontext.io_cycle_counter -= sft * 2;
37225 src = DREGu16((Opcode >> 0) & 7);
37226 flag_X = flag_C = src >> (8 - sft);
37229 flag_NotZ = res & 0x0000FFFF;
37230 DREGu16((Opcode >> 0) & 7) = res;
37233 u32 msk = (((s32)0x80000000) >> (sft + 16)) & 0x0000FFFF;
37235 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37248 sft = (((Opcode >> 9) - 1) & 7) + 1;
37249 m68kcontext.io_cycle_counter -= sft * 2;
37250 src = DREGu32((Opcode >> 0) & 7);
37251 flag_X = flag_C = src >> (24 - sft);
37253 flag_N = res >> 24;
37254 flag_NotZ = res & 0xFFFFFFFF;
37255 DREGu32((Opcode >> 0) & 7) = res;
37258 u32 msk = (((s32)0x80000000) >> (sft + 0)) & 0xFFFFFFFF;
37260 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37273 sft = (((Opcode >> 9) - 1) & 7) + 1;
37274 m68kcontext.io_cycle_counter -= sft * 2;
37275 src = DREGu8((Opcode >> 0) & 7);
37277 flag_X = flag_C = src << (0 + sft);
37280 flag_NotZ = res & 0x000000FF;
37281 DREGu8((Opcode >> 0) & 7) = res;
37293 sft = (((Opcode >> 9) - 1) & 7) + 1;
37294 m68kcontext.io_cycle_counter -= sft * 2;
37295 src = DREGu16((Opcode >> 0) & 7);
37297 flag_X = flag_C = src >> (8 - sft);
37300 flag_NotZ = res & 0x0000FFFF;
37301 DREGu16((Opcode >> 0) & 7) = res;
37313 sft = (((Opcode >> 9) - 1) & 7) + 1;
37314 m68kcontext.io_cycle_counter -= sft * 2;
37315 src = DREGu32((Opcode >> 0) & 7);
37317 flag_X = flag_C = src >> (24 - sft);
37319 flag_N = res >> 24;
37320 flag_NotZ = res & 0xFFFFFFFF;
37321 DREGu32((Opcode >> 0) & 7) = res;
37333 sft = (((Opcode >> 9) - 1) & 7) + 1;
37334 m68kcontext.io_cycle_counter -= sft * 2;
37335 src = DREGu8((Opcode >> 0) & 7);
37336 src |= (flag_X & M68K_SR_X) << 0;
37337 res = (src << sft) | (src >> (9 - sft));
37338 flag_X = flag_C = res >> 0;
37341 flag_NotZ = res & 0x000000FF;
37342 DREGu8((Opcode >> 0) & 7) = res;
37354 sft = (((Opcode >> 9) - 1) & 7) + 1;
37355 m68kcontext.io_cycle_counter -= sft * 2;
37356 src = DREGu16((Opcode >> 0) & 7);
37357 src |= (flag_X & M68K_SR_X) << 8;
37358 res = (src << sft) | (src >> (17 - sft));
37359 flag_X = flag_C = res >> 8;
37362 flag_NotZ = res & 0x0000FFFF;
37363 DREGu16((Opcode >> 0) & 7) = res;
37375 sft = (((Opcode >> 9) - 1) & 7) + 1;
37376 m68kcontext.io_cycle_counter -= sft * 2;
37377 src = DREGu32((Opcode >> 0) & 7);
37378 flag_C = src >> ((32 - M68K_SR_C_SFT) - sft);
37379 if (sft == 1) res = (src << 1) | ((flag_X & M68K_SR_X) >> ((M68K_SR_X_SFT + 1) - 1));
37380 else res = (src << sft) | (src >> (33 - sft)) | ((flag_X & M68K_SR_X) >> ((M68K_SR_X_SFT + 1) - sft));
37383 flag_N = res >> 24;
37385 DREGu32((Opcode >> 0) & 7) = res;
37397 sft = (((Opcode >> 9) - 1) & 7) + 1;
37398 m68kcontext.io_cycle_counter -= sft * 2;
37399 src = DREGu8((Opcode >> 0) & 7);
37401 flag_C = src << (0 + sft);
37402 res = (src << sft) | (src >> (8 - sft));
37404 flag_NotZ = res & 0x000000FF;
37405 DREGu8((Opcode >> 0) & 7) = res;
37417 sft = (((Opcode >> 9) - 1) & 7) + 1;
37418 m68kcontext.io_cycle_counter -= sft * 2;
37419 src = DREGu16((Opcode >> 0) & 7);
37421 flag_C = src >> (8 - sft);
37422 res = (src << sft) | (src >> (16 - sft));
37424 flag_NotZ = res & 0x0000FFFF;
37425 DREGu16((Opcode >> 0) & 7) = res;
37437 sft = (((Opcode >> 9) - 1) & 7) + 1;
37438 m68kcontext.io_cycle_counter -= sft * 2;
37439 src = DREGu32((Opcode >> 0) & 7);
37441 flag_C = src >> (24 - sft);
37442 res = (src << sft) | (src >> (32 - sft));
37443 flag_N = res >> 24;
37445 DREGu32((Opcode >> 0) & 7) = res;
37457 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37458 src = (s32)DREGs8((Opcode >> 0) & 7);
37461 m68kcontext.io_cycle_counter -= sft * 2;
37465 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37466 res = ((s32)src) >> sft;
37469 DREGu8((Opcode >> 0) & 7) = res;
37473 if (src & (1 << 7))
37475 flag_N = M68K_SR_N;
37478 flag_C = M68K_SR_C;
37479 flag_X = M68K_SR_X;
37481 DREGu8((Opcode >> 0) & 7) = res;
37491 DREGu8((Opcode >> 0) & 7) = res;
37510 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37511 src = (s32)DREGs16((Opcode >> 0) & 7);
37514 m68kcontext.io_cycle_counter -= sft * 2;
37518 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37519 res = ((s32)src) >> sft;
37522 DREGu16((Opcode >> 0) & 7) = res;
37526 if (src & (1 << 15))
37528 flag_N = M68K_SR_N;
37531 flag_C = M68K_SR_C;
37532 flag_X = M68K_SR_X;
37534 DREGu16((Opcode >> 0) & 7) = res;
37544 DREGu16((Opcode >> 0) & 7) = res;
37558 #ifdef USE_CYCLONE_TIMING
37568 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37569 src = (s32)DREGs32((Opcode >> 0) & 7);
37572 m68kcontext.io_cycle_counter -= sft * 2;
37576 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37577 res = ((s32)src) >> sft;
37578 flag_N = res >> 24;
37580 DREGu32((Opcode >> 0) & 7) = res;
37584 if (src & (1 << 31))
37586 flag_N = M68K_SR_N;
37589 flag_C = M68K_SR_C;
37590 flag_X = M68K_SR_X;
37592 DREGu32((Opcode >> 0) & 7) = res;
37602 DREGu32((Opcode >> 0) & 7) = res;
37608 flag_N = src >> 24;
37622 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37623 src = DREGu8((Opcode >> 0) & 7);
37626 m68kcontext.io_cycle_counter -= sft * 2;
37629 flag_N = flag_V = 0;
37630 flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft);
37633 DREGu8((Opcode >> 0) & 7) = res;
37637 flag_X = flag_C = 0;
37642 DREGu8((Opcode >> 0) & 7) = res;
37661 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37662 src = DREGu16((Opcode >> 0) & 7);
37665 m68kcontext.io_cycle_counter -= sft * 2;
37668 flag_N = flag_V = 0;
37669 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37672 DREGu16((Opcode >> 0) & 7) = res;
37676 flag_X = flag_C = 0;
37681 DREGu16((Opcode >> 0) & 7) = res;
37695 #ifdef USE_CYCLONE_TIMING
37705 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37706 src = DREGu32((Opcode >> 0) & 7);
37709 m68kcontext.io_cycle_counter -= sft * 2;
37712 flag_N = flag_V = 0;
37713 flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT;
37716 DREGu32((Opcode >> 0) & 7) = res;
37720 if (sft == 32) flag_C = src >> (31 - M68K_SR_C_SFT);
37727 DREGu32((Opcode >> 0) & 7) = res;
37733 flag_N = src >> 24;
37747 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37748 src = DREGu8((Opcode >> 0) & 7);
37751 m68kcontext.io_cycle_counter -= sft * 2;
37754 src |= (flag_X & M68K_SR_X) << 0;
37755 res = (src >> sft) | (src << (9 - sft));
37756 flag_X = flag_C = res >> 0;
37759 flag_NotZ = res & 0x000000FF;
37760 DREGu8((Opcode >> 0) & 7) = res;
37779 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37780 src = DREGu16((Opcode >> 0) & 7);
37783 m68kcontext.io_cycle_counter -= sft * 2;
37786 src |= (flag_X & M68K_SR_X) << 8;
37787 res = (src >> sft) | (src << (17 - sft));
37788 flag_X = flag_C = res >> 8;
37791 flag_NotZ = res & 0x0000FFFF;
37792 DREGu16((Opcode >> 0) & 7) = res;
37806 #ifdef USE_CYCLONE_TIMING
37816 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37817 src = DREGu32((Opcode >> 0) & 7);
37820 m68kcontext.io_cycle_counter -= sft * 2;
37825 if (sft == 1) res = (src >> 1) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1)));
37826 else res = (src >> sft) | (src << (33 - sft)) | (((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1))) >> (sft - 1));
37827 flag_X = (src >> (32 - sft)) << M68K_SR_X_SFT;
37832 flag_N = res >> 24;
37834 DREGu32((Opcode >> 0) & 7) = res;
37840 flag_N = src >> 24;
37854 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37855 src = DREGu8((Opcode >> 0) & 7);
37858 m68kcontext.io_cycle_counter -= sft * 2;
37861 flag_C = src << (M68K_SR_C_SFT - ((sft - 1) & 7));
37862 res = (src >> sft) | (src << (8 - sft));
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 flag_C = (src >> ((sft - 1) & 15)) << M68K_SR_C_SFT;
37893 res = (src >> sft) | (src << (16 - sft));
37896 flag_NotZ = res & 0x0000FFFF;
37897 DREGu16((Opcode >> 0) & 7) = res;
37911 #ifdef USE_CYCLONE_TIMING
37921 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37922 src = DREGu32((Opcode >> 0) & 7);
37925 m68kcontext.io_cycle_counter -= sft * 2;
37928 flag_C = (src >> ((sft - 1) & 31)) << M68K_SR_C_SFT;
37929 res = (src >> sft) | (src << (32 - sft));
37931 flag_N = res >> 24;
37933 DREGu32((Opcode >> 0) & 7) = res;
37939 flag_N = src >> 24;
37953 sft = DREG((Opcode >> 9) & 7) & 0x3F;
37954 src = DREGu8((Opcode >> 0) & 7);
37957 m68kcontext.io_cycle_counter -= sft * 2;
37960 flag_X = flag_C = (src << sft) >> 0;
37961 res = (src << sft) & 0x000000FF;
37964 DREGu8((Opcode >> 0) & 7) = res;
37967 u32 msk = (((s32)0x80000000) >> (sft + 24)) & 0x000000FF;
37969 if ((src) && (src != msk)) flag_V = M68K_SR_V;
37974 if (sft == 256) flag_C = src << M68K_SR_C_SFT;
37977 if (src) flag_V = M68K_SR_V;
37980 DREGu8((Opcode >> 0) & 7) = res;
38001 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38002 src = DREGu16((Opcode >> 0) & 7);
38005 m68kcontext.io_cycle_counter -= sft * 2;
38008 flag_X = flag_C = (src << sft) >> 8;
38009 res = (src << sft) & 0x0000FFFF;
38012 DREGu16((Opcode >> 0) & 7) = res;
38015 u32 msk = (((s32)0x80000000) >> (sft + 16)) & 0x0000FFFF;
38017 if ((src) && (src != msk)) flag_V = M68K_SR_V;
38022 if (sft == 65536) flag_C = src << M68K_SR_C_SFT;
38025 if (src) flag_V = M68K_SR_V;
38028 DREGu16((Opcode >> 0) & 7) = res;
38044 #ifdef USE_CYCLONE_TIMING
38054 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38055 src = DREGu32((Opcode >> 0) & 7);
38058 m68kcontext.io_cycle_counter -= sft * 2;
38061 flag_X = flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38063 flag_N = res >> 24;
38065 DREGu32((Opcode >> 0) & 7) = res;
38068 u32 msk = (((s32)0x80000000) >> (sft + 0)) & 0xFFFFFFFF;
38070 if ((src) && (src != msk)) flag_V = M68K_SR_V;
38075 if (sft == 0) flag_C = src << M68K_SR_C_SFT;
38078 if (src) flag_V = M68K_SR_V;
38081 DREGu32((Opcode >> 0) & 7) = res;
38089 flag_N = src >> 24;
38103 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38104 src = DREGu8((Opcode >> 0) & 7);
38107 m68kcontext.io_cycle_counter -= sft * 2;
38110 flag_X = flag_C = (src << sft) >> 0;
38111 res = (src << sft) & 0x000000FF;
38115 DREGu8((Opcode >> 0) & 7) = res;
38119 flag_X = flag_C = 0;
38124 DREGu8((Opcode >> 0) & 7) = res;
38143 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38144 src = DREGu16((Opcode >> 0) & 7);
38147 m68kcontext.io_cycle_counter -= sft * 2;
38150 flag_X = flag_C = (src << sft) >> 8;
38151 res = (src << sft) & 0x0000FFFF;
38155 DREGu16((Opcode >> 0) & 7) = res;
38159 flag_X = flag_C = 0;
38164 DREGu16((Opcode >> 0) & 7) = res;
38178 #ifdef USE_CYCLONE_TIMING
38188 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38189 src = DREGu32((Opcode >> 0) & 7);
38192 m68kcontext.io_cycle_counter -= sft * 2;
38195 flag_X = flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38198 flag_N = res >> 24;
38200 DREGu32((Opcode >> 0) & 7) = res;
38204 if (sft == 32) flag_C = src << M68K_SR_C_SFT;
38211 DREGu32((Opcode >> 0) & 7) = res;
38217 flag_N = src >> 24;
38231 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38232 src = DREGu8((Opcode >> 0) & 7);
38235 m68kcontext.io_cycle_counter -= sft * 2;
38238 src |= (flag_X & M68K_SR_X) << 0;
38239 res = (src << sft) | (src >> (9 - sft));
38240 flag_X = flag_C = res >> 0;
38243 flag_NotZ = res & 0x000000FF;
38244 DREGu8((Opcode >> 0) & 7) = res;
38263 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38264 src = DREGu16((Opcode >> 0) & 7);
38267 m68kcontext.io_cycle_counter -= sft * 2;
38270 src |= (flag_X & M68K_SR_X) << 8;
38271 res = (src << sft) | (src >> (17 - sft));
38272 flag_X = flag_C = res >> 8;
38275 flag_NotZ = res & 0x0000FFFF;
38276 DREGu16((Opcode >> 0) & 7) = res;
38290 #ifdef USE_CYCLONE_TIMING
38300 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38301 src = DREGu32((Opcode >> 0) & 7);
38304 m68kcontext.io_cycle_counter -= sft * 2;
38309 if (sft == 1) res = (src << 1) | ((flag_X >> ((M68K_SR_X_SFT + 1) - 1)) & 1);
38310 else res = (src << sft) | (src >> (33 - sft)) | (((flag_X >> ((M68K_SR_X_SFT + 1) - 1)) & 1) << (sft - 1));
38311 flag_X = (src >> (32 - sft)) << M68K_SR_X_SFT;
38316 flag_N = res >> 24;
38318 DREGu32((Opcode >> 0) & 7) = res;
38324 flag_N = src >> 24;
38338 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38339 src = DREGu8((Opcode >> 0) & 7);
38342 m68kcontext.io_cycle_counter -= sft * 2;
38345 flag_C = (src << sft) >> 0;
38346 res = ((src << sft) | (src >> (8 - sft))) & 0x000000FF;
38350 DREGu8((Opcode >> 0) & 7) = res;
38355 flag_C = src << M68K_SR_C_SFT;
38376 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38377 src = DREGu16((Opcode >> 0) & 7);
38380 m68kcontext.io_cycle_counter -= sft * 2;
38383 flag_C = (src << sft) >> 8;
38384 res = ((src << sft) | (src >> (16 - sft))) & 0x0000FFFF;
38388 DREGu16((Opcode >> 0) & 7) = res;
38393 flag_C = src << M68K_SR_C_SFT;
38409 #ifdef USE_CYCLONE_TIMING
38419 sft = DREG((Opcode >> 9) & 7) & 0x3F;
38420 src = DREGu32((Opcode >> 0) & 7);
38423 m68kcontext.io_cycle_counter -= sft * 2;
38426 flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT;
38427 res = (src << sft) | (src >> (32 - sft));
38429 flag_N = res >> 24;
38431 DREGu32((Opcode >> 0) & 7) = res;
38436 flag_C = src << M68K_SR_C_SFT;
38437 flag_N = src >> 24;
38444 flag_N = src >> 24;
38456 adr = AREG((Opcode >> 0) & 7);
38458 READ_WORD_F(adr, src)
38460 flag_X = flag_C = src << M68K_SR_C_SFT;
38461 res = (src >> 1) | (src & (1 << 15));
38464 WRITE_WORD_F(adr, res)
38475 adr = AREG((Opcode >> 0) & 7);
38476 AREG((Opcode >> 0) & 7) += 2;
38478 READ_WORD_F(adr, src)
38480 flag_X = flag_C = src << M68K_SR_C_SFT;
38481 res = (src >> 1) | (src & (1 << 15));
38484 WRITE_WORD_F(adr, res)
38495 adr = AREG((Opcode >> 0) & 7) - 2;
38496 AREG((Opcode >> 0) & 7) = adr;
38498 READ_WORD_F(adr, src)
38500 flag_X = flag_C = src << M68K_SR_C_SFT;
38501 res = (src >> 1) | (src & (1 << 15));
38504 WRITE_WORD_F(adr, res)
38516 adr += AREG((Opcode >> 0) & 7);
38518 READ_WORD_F(adr, src)
38520 flag_X = flag_C = src << M68K_SR_C_SFT;
38521 res = (src >> 1) | (src & (1 << 15));
38524 WRITE_WORD_F(adr, res)
38535 adr = AREG((Opcode >> 0) & 7);
38538 READ_WORD_F(adr, src)
38540 flag_X = flag_C = src << M68K_SR_C_SFT;
38541 res = (src >> 1) | (src & (1 << 15));
38544 WRITE_WORD_F(adr, res)
38557 READ_WORD_F(adr, src)
38559 flag_X = flag_C = src << M68K_SR_C_SFT;
38560 res = (src >> 1) | (src & (1 << 15));
38563 WRITE_WORD_F(adr, res)
38576 READ_WORD_F(adr, src)
38578 flag_X = flag_C = src << M68K_SR_C_SFT;
38579 res = (src >> 1) | (src & (1 << 15));
38582 WRITE_WORD_F(adr, res)
38596 READ_WORD_F(adr, src)
38598 flag_X = flag_C = src << M68K_SR_C_SFT;
38599 res = (src >> 1) | (src & (1 << 15));
38602 WRITE_WORD_F(adr, res)
38616 READ_WORD_F(adr, src)
38618 flag_X = flag_C = src << M68K_SR_C_SFT;
38619 res = (src >> 1) | (src & (1 << 15));
38622 WRITE_WORD_F(adr, res)
38633 adr = AREG((Opcode >> 0) & 7);
38635 READ_WORD_F(adr, src)
38636 flag_N = flag_V = 0;
38637 flag_X = flag_C = src << M68K_SR_C_SFT;
38640 WRITE_WORD_F(adr, res)
38651 adr = AREG((Opcode >> 0) & 7);
38652 AREG((Opcode >> 0) & 7) += 2;
38654 READ_WORD_F(adr, src)
38655 flag_N = flag_V = 0;
38656 flag_X = flag_C = src << M68K_SR_C_SFT;
38659 WRITE_WORD_F(adr, res)
38670 adr = AREG((Opcode >> 0) & 7) - 2;
38671 AREG((Opcode >> 0) & 7) = adr;
38673 READ_WORD_F(adr, src)
38674 flag_N = flag_V = 0;
38675 flag_X = flag_C = src << M68K_SR_C_SFT;
38678 WRITE_WORD_F(adr, res)
38690 adr += AREG((Opcode >> 0) & 7);
38692 READ_WORD_F(adr, src)
38693 flag_N = flag_V = 0;
38694 flag_X = flag_C = src << M68K_SR_C_SFT;
38697 WRITE_WORD_F(adr, res)
38708 adr = AREG((Opcode >> 0) & 7);
38711 READ_WORD_F(adr, src)
38712 flag_N = flag_V = 0;
38713 flag_X = flag_C = src << M68K_SR_C_SFT;
38716 WRITE_WORD_F(adr, res)
38729 READ_WORD_F(adr, src)
38730 flag_N = flag_V = 0;
38731 flag_X = flag_C = src << M68K_SR_C_SFT;
38734 WRITE_WORD_F(adr, res)
38747 READ_WORD_F(adr, src)
38748 flag_N = flag_V = 0;
38749 flag_X = flag_C = src << M68K_SR_C_SFT;
38752 WRITE_WORD_F(adr, res)
38766 READ_WORD_F(adr, src)
38767 flag_N = flag_V = 0;
38768 flag_X = flag_C = src << M68K_SR_C_SFT;
38771 WRITE_WORD_F(adr, res)
38785 READ_WORD_F(adr, src)
38786 flag_N = flag_V = 0;
38787 flag_X = flag_C = src << M68K_SR_C_SFT;
38790 WRITE_WORD_F(adr, res)
38801 adr = AREG((Opcode >> 0) & 7);
38803 READ_WORD_F(adr, src)
38805 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38806 flag_C = flag_X = src << M68K_SR_C_SFT;
38809 WRITE_WORD_F(adr, res)
38820 adr = AREG((Opcode >> 0) & 7);
38821 AREG((Opcode >> 0) & 7) += 2;
38823 READ_WORD_F(adr, src)
38825 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38826 flag_C = flag_X = src << M68K_SR_C_SFT;
38829 WRITE_WORD_F(adr, res)
38840 adr = AREG((Opcode >> 0) & 7) - 2;
38841 AREG((Opcode >> 0) & 7) = adr;
38843 READ_WORD_F(adr, src)
38845 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38846 flag_C = flag_X = src << M68K_SR_C_SFT;
38849 WRITE_WORD_F(adr, res)
38861 adr += AREG((Opcode >> 0) & 7);
38863 READ_WORD_F(adr, src)
38865 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38866 flag_C = flag_X = src << M68K_SR_C_SFT;
38869 WRITE_WORD_F(adr, res)
38880 adr = AREG((Opcode >> 0) & 7);
38883 READ_WORD_F(adr, src)
38885 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38886 flag_C = flag_X = src << M68K_SR_C_SFT;
38889 WRITE_WORD_F(adr, res)
38902 READ_WORD_F(adr, src)
38904 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38905 flag_C = flag_X = src << M68K_SR_C_SFT;
38908 WRITE_WORD_F(adr, res)
38921 READ_WORD_F(adr, src)
38923 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38924 flag_C = flag_X = src << M68K_SR_C_SFT;
38927 WRITE_WORD_F(adr, res)
38941 READ_WORD_F(adr, src)
38943 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38944 flag_C = flag_X = src << M68K_SR_C_SFT;
38947 WRITE_WORD_F(adr, res)
38961 READ_WORD_F(adr, src)
38963 res = (src >> 1) | ((flag_X & M68K_SR_X) << 7);
38964 flag_C = flag_X = src << M68K_SR_C_SFT;
38967 WRITE_WORD_F(adr, res)
38978 adr = AREG((Opcode >> 0) & 7);
38980 READ_WORD_F(adr, src)
38982 flag_C = src << M68K_SR_C_SFT;
38983 res = (src >> 1) | (src << 15);
38985 flag_NotZ = res & 0x0000FFFF;
38986 WRITE_WORD_F(adr, res)
38997 adr = AREG((Opcode >> 0) & 7);
38998 AREG((Opcode >> 0) & 7) += 2;
39000 READ_WORD_F(adr, src)
39002 flag_C = src << M68K_SR_C_SFT;
39003 res = (src >> 1) | (src << 15);
39005 flag_NotZ = res & 0x0000FFFF;
39006 WRITE_WORD_F(adr, res)
39017 adr = AREG((Opcode >> 0) & 7) - 2;
39018 AREG((Opcode >> 0) & 7) = adr;
39020 READ_WORD_F(adr, src)
39022 flag_C = src << M68K_SR_C_SFT;
39023 res = (src >> 1) | (src << 15);
39025 flag_NotZ = res & 0x0000FFFF;
39026 WRITE_WORD_F(adr, res)
39038 adr += AREG((Opcode >> 0) & 7);
39040 READ_WORD_F(adr, src)
39042 flag_C = src << M68K_SR_C_SFT;
39043 res = (src >> 1) | (src << 15);
39045 flag_NotZ = res & 0x0000FFFF;
39046 WRITE_WORD_F(adr, res)
39057 adr = AREG((Opcode >> 0) & 7);
39060 READ_WORD_F(adr, src)
39062 flag_C = src << M68K_SR_C_SFT;
39063 res = (src >> 1) | (src << 15);
39065 flag_NotZ = res & 0x0000FFFF;
39066 WRITE_WORD_F(adr, res)
39079 READ_WORD_F(adr, src)
39081 flag_C = src << M68K_SR_C_SFT;
39082 res = (src >> 1) | (src << 15);
39084 flag_NotZ = res & 0x0000FFFF;
39085 WRITE_WORD_F(adr, res)
39098 READ_WORD_F(adr, src)
39100 flag_C = src << M68K_SR_C_SFT;
39101 res = (src >> 1) | (src << 15);
39103 flag_NotZ = res & 0x0000FFFF;
39104 WRITE_WORD_F(adr, res)
39118 READ_WORD_F(adr, src)
39120 flag_C = src << M68K_SR_C_SFT;
39121 res = (src >> 1) | (src << 15);
39123 flag_NotZ = res & 0x0000FFFF;
39124 WRITE_WORD_F(adr, res)
39138 READ_WORD_F(adr, src)
39140 flag_C = src << M68K_SR_C_SFT;
39141 res = (src >> 1) | (src << 15);
39143 flag_NotZ = res & 0x0000FFFF;
39144 WRITE_WORD_F(adr, res)
39155 adr = AREG((Opcode >> 0) & 7);
39157 READ_WORD_F(adr, src)
39158 flag_X = flag_C = src >> 7;
39160 flag_V = (src ^ res) >> 8;
39162 flag_NotZ = res & 0x0000FFFF;
39163 WRITE_WORD_F(adr, res)
39174 adr = AREG((Opcode >> 0) & 7);
39175 AREG((Opcode >> 0) & 7) += 2;
39177 READ_WORD_F(adr, src)
39178 flag_X = flag_C = src >> 7;
39180 flag_V = (src ^ res) >> 8;
39182 flag_NotZ = res & 0x0000FFFF;
39183 WRITE_WORD_F(adr, res)
39194 adr = AREG((Opcode >> 0) & 7) - 2;
39195 AREG((Opcode >> 0) & 7) = adr;
39197 READ_WORD_F(adr, src)
39198 flag_X = flag_C = src >> 7;
39200 flag_V = (src ^ res) >> 8;
39202 flag_NotZ = res & 0x0000FFFF;
39203 WRITE_WORD_F(adr, res)
39215 adr += AREG((Opcode >> 0) & 7);
39217 READ_WORD_F(adr, src)
39218 flag_X = flag_C = src >> 7;
39220 flag_V = (src ^ res) >> 8;
39222 flag_NotZ = res & 0x0000FFFF;
39223 WRITE_WORD_F(adr, res)
39234 adr = AREG((Opcode >> 0) & 7);
39237 READ_WORD_F(adr, src)
39238 flag_X = flag_C = src >> 7;
39240 flag_V = (src ^ res) >> 8;
39242 flag_NotZ = res & 0x0000FFFF;
39243 WRITE_WORD_F(adr, res)
39256 READ_WORD_F(adr, src)
39257 flag_X = flag_C = src >> 7;
39259 flag_V = (src ^ res) >> 8;
39261 flag_NotZ = res & 0x0000FFFF;
39262 WRITE_WORD_F(adr, res)
39275 READ_WORD_F(adr, src)
39276 flag_X = flag_C = src >> 7;
39278 flag_V = (src ^ res) >> 8;
39280 flag_NotZ = res & 0x0000FFFF;
39281 WRITE_WORD_F(adr, res)
39295 READ_WORD_F(adr, src)
39296 flag_X = flag_C = src >> 7;
39298 flag_V = (src ^ res) >> 8;
39300 flag_NotZ = res & 0x0000FFFF;
39301 WRITE_WORD_F(adr, res)
39315 READ_WORD_F(adr, src)
39316 flag_X = flag_C = src >> 7;
39318 flag_V = (src ^ res) >> 8;
39320 flag_NotZ = res & 0x0000FFFF;
39321 WRITE_WORD_F(adr, res)
39332 adr = AREG((Opcode >> 0) & 7);
39334 READ_WORD_F(adr, src)
39336 flag_X = flag_C = src >> 7;
39339 flag_NotZ = res & 0x0000FFFF;
39340 WRITE_WORD_F(adr, res)
39351 adr = AREG((Opcode >> 0) & 7);
39352 AREG((Opcode >> 0) & 7) += 2;
39354 READ_WORD_F(adr, src)
39356 flag_X = flag_C = src >> 7;
39359 flag_NotZ = res & 0x0000FFFF;
39360 WRITE_WORD_F(adr, res)
39371 adr = AREG((Opcode >> 0) & 7) - 2;
39372 AREG((Opcode >> 0) & 7) = adr;
39374 READ_WORD_F(adr, src)
39376 flag_X = flag_C = src >> 7;
39379 flag_NotZ = res & 0x0000FFFF;
39380 WRITE_WORD_F(adr, res)
39392 adr += AREG((Opcode >> 0) & 7);
39394 READ_WORD_F(adr, src)
39396 flag_X = flag_C = src >> 7;
39399 flag_NotZ = res & 0x0000FFFF;
39400 WRITE_WORD_F(adr, res)
39411 adr = AREG((Opcode >> 0) & 7);
39414 READ_WORD_F(adr, src)
39416 flag_X = flag_C = src >> 7;
39419 flag_NotZ = res & 0x0000FFFF;
39420 WRITE_WORD_F(adr, res)
39433 READ_WORD_F(adr, src)
39435 flag_X = flag_C = src >> 7;
39438 flag_NotZ = res & 0x0000FFFF;
39439 WRITE_WORD_F(adr, res)
39452 READ_WORD_F(adr, src)
39454 flag_X = flag_C = src >> 7;
39457 flag_NotZ = res & 0x0000FFFF;
39458 WRITE_WORD_F(adr, res)
39472 READ_WORD_F(adr, src)
39474 flag_X = flag_C = src >> 7;
39477 flag_NotZ = res & 0x0000FFFF;
39478 WRITE_WORD_F(adr, res)
39492 READ_WORD_F(adr, src)
39494 flag_X = flag_C = src >> 7;
39497 flag_NotZ = res & 0x0000FFFF;
39498 WRITE_WORD_F(adr, res)
39509 adr = AREG((Opcode >> 0) & 7);
39511 READ_WORD_F(adr, src)
39513 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39514 flag_X = flag_C = src >> 7;
39516 flag_NotZ = res & 0x0000FFFF;
39517 WRITE_WORD_F(adr, res)
39528 adr = AREG((Opcode >> 0) & 7);
39529 AREG((Opcode >> 0) & 7) += 2;
39531 READ_WORD_F(adr, src)
39533 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39534 flag_X = flag_C = src >> 7;
39536 flag_NotZ = res & 0x0000FFFF;
39537 WRITE_WORD_F(adr, res)
39548 adr = AREG((Opcode >> 0) & 7) - 2;
39549 AREG((Opcode >> 0) & 7) = adr;
39551 READ_WORD_F(adr, src)
39553 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39554 flag_X = flag_C = src >> 7;
39556 flag_NotZ = res & 0x0000FFFF;
39557 WRITE_WORD_F(adr, res)
39569 adr += AREG((Opcode >> 0) & 7);
39571 READ_WORD_F(adr, src)
39573 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39574 flag_X = flag_C = src >> 7;
39576 flag_NotZ = res & 0x0000FFFF;
39577 WRITE_WORD_F(adr, res)
39588 adr = AREG((Opcode >> 0) & 7);
39591 READ_WORD_F(adr, src)
39593 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39594 flag_X = flag_C = src >> 7;
39596 flag_NotZ = res & 0x0000FFFF;
39597 WRITE_WORD_F(adr, res)
39610 READ_WORD_F(adr, src)
39612 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39613 flag_X = flag_C = src >> 7;
39615 flag_NotZ = res & 0x0000FFFF;
39616 WRITE_WORD_F(adr, res)
39629 READ_WORD_F(adr, src)
39631 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39632 flag_X = flag_C = src >> 7;
39634 flag_NotZ = res & 0x0000FFFF;
39635 WRITE_WORD_F(adr, res)
39649 READ_WORD_F(adr, src)
39651 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39652 flag_X = flag_C = src >> 7;
39654 flag_NotZ = res & 0x0000FFFF;
39655 WRITE_WORD_F(adr, res)
39669 READ_WORD_F(adr, src)
39671 res = (src << 1) | ((flag_X & M68K_SR_X) >> 8);
39672 flag_X = flag_C = src >> 7;
39674 flag_NotZ = res & 0x0000FFFF;
39675 WRITE_WORD_F(adr, res)
39686 adr = AREG((Opcode >> 0) & 7);
39688 READ_WORD_F(adr, src)
39691 res = (src << 1) | (src >> 15);
39693 flag_NotZ = res & 0x0000FFFF;
39694 WRITE_WORD_F(adr, res)
39705 adr = AREG((Opcode >> 0) & 7);
39706 AREG((Opcode >> 0) & 7) += 2;
39708 READ_WORD_F(adr, src)
39711 res = (src << 1) | (src >> 15);
39713 flag_NotZ = res & 0x0000FFFF;
39714 WRITE_WORD_F(adr, res)
39725 adr = AREG((Opcode >> 0) & 7) - 2;
39726 AREG((Opcode >> 0) & 7) = adr;
39728 READ_WORD_F(adr, src)
39731 res = (src << 1) | (src >> 15);
39733 flag_NotZ = res & 0x0000FFFF;
39734 WRITE_WORD_F(adr, res)
39746 adr += AREG((Opcode >> 0) & 7);
39748 READ_WORD_F(adr, src)
39751 res = (src << 1) | (src >> 15);
39753 flag_NotZ = res & 0x0000FFFF;
39754 WRITE_WORD_F(adr, res)
39765 adr = AREG((Opcode >> 0) & 7);
39768 READ_WORD_F(adr, src)
39771 res = (src << 1) | (src >> 15);
39773 flag_NotZ = res & 0x0000FFFF;
39774 WRITE_WORD_F(adr, res)
39787 READ_WORD_F(adr, src)
39790 res = (src << 1) | (src >> 15);
39792 flag_NotZ = res & 0x0000FFFF;
39793 WRITE_WORD_F(adr, res)
39806 READ_WORD_F(adr, src)
39809 res = (src << 1) | (src >> 15);
39811 flag_NotZ = res & 0x0000FFFF;
39812 WRITE_WORD_F(adr, res)
39826 READ_WORD_F(adr, src)
39829 res = (src << 1) | (src >> 15);
39831 flag_NotZ = res & 0x0000FFFF;
39832 WRITE_WORD_F(adr, res)
39846 READ_WORD_F(adr, src)
39849 res = (src << 1) | (src >> 15);
39851 flag_NotZ = res & 0x0000FFFF;
39852 WRITE_WORD_F(adr, res)