aboutsummaryrefslogtreecommitdiff
path: root/SrcShared/UAE
diff options
context:
space:
mode:
Diffstat (limited to 'SrcShared/UAE')
-rw-r--r--SrcShared/UAE/UAE.h21
-rw-r--r--SrcShared/UAE/build68k.c246
-rw-r--r--SrcShared/UAE/compiler.h106
-rw-r--r--SrcShared/UAE/config.h77
-rw-r--r--SrcShared/UAE/cpudefs.c173
-rw-r--r--SrcShared/UAE/cpuemu.c24243
-rw-r--r--SrcShared/UAE/cpuemu1.c53
-rw-r--r--SrcShared/UAE/cpuemu2.c53
-rw-r--r--SrcShared/UAE/cpuemu3.c53
-rw-r--r--SrcShared/UAE/cpuemu4.c53
-rw-r--r--SrcShared/UAE/cpuemu5.c53
-rw-r--r--SrcShared/UAE/cpuemu6.c53
-rw-r--r--SrcShared/UAE/cpuemu7.c53
-rw-r--r--SrcShared/UAE/cpuemu8.c53
-rw-r--r--SrcShared/UAE/cpustbl.c1590
-rw-r--r--SrcShared/UAE/cputbl.h1584
-rw-r--r--SrcShared/UAE/custom.h30
-rw-r--r--SrcShared/UAE/gencpu.c3346
-rw-r--r--SrcShared/UAE/machdep_m68k.h56
-rw-r--r--SrcShared/UAE/machdep_maccess.h27
-rw-r--r--SrcShared/UAE/memory_cpu.h13
-rw-r--r--SrcShared/UAE/missing.c36
-rw-r--r--SrcShared/UAE/newcpu.h230
-rw-r--r--SrcShared/UAE/options.h30
-rw-r--r--SrcShared/UAE/readcpu.cpp808
-rw-r--r--SrcShared/UAE/readcpu.h113
-rw-r--r--SrcShared/UAE/sysconfig.h33
-rw-r--r--SrcShared/UAE/sysdeps.h348
-rw-r--r--SrcShared/UAE/table68k242
-rw-r--r--SrcShared/UAE/target.h4
30 files changed, 33780 insertions, 0 deletions
diff --git a/SrcShared/UAE/UAE.h b/SrcShared/UAE/UAE.h
new file mode 100644
index 0000000..83307a7
--- /dev/null
+++ b/SrcShared/UAE/UAE.h
@@ -0,0 +1,21 @@
+#ifndef UAE_h
+#define UAE_h
+
+#include "sysconfig.h" // (should really be included by sysdeps.h ...)
+#include "sysdeps.h" // uae_u8, uae_u16, uae_u32, etc.
+#include "config.h"
+#include "options.h"
+#include "machdep_m68k.h"
+#include "memory_cpu.h"
+#include "custom.h"
+#include "readcpu.h"
+#include "newcpu.h"
+#include "compiler.h"
+#include "cputbl.h"
+
+// sysdeps.h brings in assert.h. However,
+// we don't want to use assert in our application
+// so undef it. Use EmAssert instead.
+#undef assert
+
+#endif /* UAE_h */
diff --git a/SrcShared/UAE/build68k.c b/SrcShared/UAE/build68k.c
new file mode 100644
index 0000000..d3fe88a
--- /dev/null
+++ b/SrcShared/UAE/build68k.c
@@ -0,0 +1,246 @@
+/*
+ * UAE - The Un*x Amiga Emulator
+ *
+ * Read 68000 CPU specs from file "table68k" and build table68k.c
+ *
+ * Copyright 1995,1996 Bernd Schmidt
+ */
+
+#include "sysconfig.h"
+#include "sysdeps.h"
+
+#include <assert.h>
+#include <ctype.h>
+
+#include "config.h"
+#include "options.h"
+#include "readcpu.h"
+
+static FILE *tablef;
+static int nextch = 0;
+
+static void getnextch(void)
+{
+ do {
+ nextch = fgetc(tablef);
+ if (nextch == '%') {
+ do {
+ nextch = fgetc(tablef);
+ } while (nextch != EOF && nextch != '\n');
+ }
+ } while (nextch != EOF && isspace(nextch));
+}
+
+static int nextchtohex(void)
+{
+ switch (isupper (nextch) ? tolower (nextch) : nextch) {
+ case '0': return 0;
+ case '1': return 1;
+ case '2': return 2;
+ case '3': return 3;
+ case '4': return 4;
+ case '5': return 5;
+ case '6': return 6;
+ case '7': return 7;
+ case '8': return 8;
+ case '9': return 9;
+ case 'a': return 10;
+ case 'b': return 11;
+ case 'c': return 12;
+ case 'd': return 13;
+ case 'e': return 14;
+ case 'f': return 15;
+ default: abort();
+ }
+}
+
+int main(int argc, char **argv)
+{
+ int no_insns = 0;
+
+ printf ("#include \"sysconfig.h\"\n");
+ printf ("#include \"sysdeps.h\"\n");
+ printf ("#include \"config.h\"\n");
+ printf ("#include \"options.h\"\n");
+ printf ("#include \"readcpu.h\"\n");
+ printf ("struct instr_def defs68k[] = {\n");
+#if 0
+ tablef = fopen("table68k","r");
+ if (tablef == NULL) {
+ fprintf(stderr, "table68k not found\n");
+ exit(1);
+ }
+#else
+ tablef = stdin;
+#endif
+ getnextch();
+ while (nextch != EOF) {
+ int cpulevel, plevel, sduse;
+ int i;
+
+ char patbits[16];
+ char opcstr[256];
+ int bitpos[16];
+ int flagset[5], flaguse[5];
+
+ unsigned int bitmask,bitpattern;
+ int n_variable;
+
+ n_variable = 0;
+ bitmask = bitpattern = 0;
+ memset (bitpos, 0, sizeof(bitpos));
+ for(i=0; i<16; i++) {
+ int currbit;
+ bitmask <<= 1;
+ bitpattern <<= 1;
+
+ switch (nextch) {
+ case '0': currbit = bit0; bitmask |= 1; break;
+ case '1': currbit = bit1; bitmask |= 1; bitpattern |= 1; break;
+ case 'c': currbit = bitc; break;
+ case 'C': currbit = bitC; break;
+ case 'f': currbit = bitf; break;
+ case 'i': currbit = biti; break;
+ case 'I': currbit = bitI; break;
+ case 'j': currbit = bitj; break;
+ case 'J': currbit = bitJ; break;
+ case 'k': currbit = bitk; break;
+ case 'K': currbit = bitK; break;
+ case 's': currbit = bits; break;
+ case 'S': currbit = bitS; break;
+ case 'd': currbit = bitd; break;
+ case 'D': currbit = bitD; break;
+ case 'r': currbit = bitr; break;
+ case 'R': currbit = bitR; break;
+ case 'z': currbit = bitz; break;
+ default: abort();
+ }
+ if (!(bitmask & 1)) {
+ bitpos[n_variable] = currbit;
+ n_variable++;
+ }
+
+ if (nextch == '0' || nextch == '1')
+ bitmask |= 1;
+ if (nextch == '1')
+ bitpattern |= 1;
+ patbits[i] = nextch;
+ getnextch();
+ }
+
+ while (isspace(nextch) || nextch == ':') /* Get CPU and privilege level */
+ getnextch();
+
+ switch (nextch) {
+ case '0': cpulevel = 0; break;
+ case '1': cpulevel = 1; break;
+ case '2': cpulevel = 2; break;
+ case '3': cpulevel = 3; break;
+ case '4': cpulevel = 4; break;
+ default: abort();
+ }
+ getnextch();
+
+ switch (nextch) {
+ case '0': plevel = 0; break;
+ case '1': plevel = 1; break;
+ case '2': plevel = 2; break;
+ case '3': plevel = 3; break;
+ default: abort();
+ }
+ getnextch();
+
+ while (isspace(nextch)) /* Get flag set information */
+ getnextch();
+
+ if (nextch != ':')
+ abort();
+
+ for(i = 0; i < 5; i++) {
+ getnextch();
+ switch(nextch){
+ case '-': flagset[i] = fa_unset; break;
+ case '/': flagset[i] = fa_isjmp; break;
+ case '0': flagset[i] = fa_zero; break;
+ case '1': flagset[i] = fa_one; break;
+ case 'x': flagset[i] = fa_dontcare; break;
+ case '?': flagset[i] = fa_unknown; break;
+ default: flagset[i] = fa_set; break;
+ }
+ }
+
+ getnextch();
+ while (isspace(nextch))
+ getnextch();
+
+ if (nextch != ':') /* Get flag used information */
+ abort();
+
+ for(i = 0; i < 5; i++) {
+ getnextch();
+ switch(nextch){
+ case '-': flaguse[i] = fu_unused; break;
+ case '/': flaguse[i] = fu_isjmp; break;
+ case '+': flaguse[i] = fu_maybecc; break;
+ case '?': flaguse[i] = fu_unknown; break;
+ default: flaguse[i] = fu_used; break;
+ }
+ }
+
+ getnextch();
+ while (isspace(nextch))
+ getnextch();
+
+ if (nextch != ':') /* Get source/dest usage information */
+ abort();
+
+ getnextch();
+ sduse = nextchtohex() << 4;
+ getnextch();
+ sduse |= nextchtohex();
+
+ getnextch();
+ while (isspace(nextch))
+ getnextch();
+
+ if (nextch != ':')
+ abort();
+
+ fgets(opcstr, 250, tablef);
+ getnextch();
+ {
+ int j;
+ /* Remove superfluous spaces from the string */
+ char *opstrp = opcstr, *osendp;
+ int slen = 0;
+
+ while (isspace(*opstrp))
+ opstrp++;
+
+ osendp = opstrp;
+ while (*osendp) {
+ if (!isspace (*osendp))
+ slen = osendp - opstrp + 1;
+ osendp++;
+ }
+ opstrp[slen] = 0;
+
+ if (no_insns > 0)
+ printf(",\n");
+ no_insns++;
+ printf("{ %d, %d, {", bitpattern, n_variable);
+ for (j = 0; j < 16; j++) {
+ printf("%d", bitpos[j]);
+ if (j < 15)
+ printf(",");
+ }
+ printf ("}, %d, %d, %d, { ", bitmask, cpulevel, plevel);
+ for(i = 0; i < 5; i++) {
+ printf("{ %d, %d }%c ", flaguse[i], flagset[i], i == 4 ? ' ' : ',');
+ }
+ printf("}, %d, \"%s\"}", sduse, opstrp);
+ }
+ }
+ printf("};\nint n_defs68k = %d;\n", no_insns);
+ return 0;
+}
diff --git a/SrcShared/UAE/compiler.h b/SrcShared/UAE/compiler.h
new file mode 100644
index 0000000..7d49f2e
--- /dev/null
+++ b/SrcShared/UAE/compiler.h
@@ -0,0 +1,106 @@
+ /*
+ * UAE - The Un*x Amiga Emulator
+ *
+ * m68k -> i386 compiler
+ *
+ * (c) 1995 Bernd Schmidt
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern void Software_ProcessLINK (uae_s32 linkSize);
+extern int Software_ProcessRTS (uaecptr dest);
+extern int Software_ProcessRTE (uaecptr newpc);
+extern int Software_ProcessJSR (uaecptr oldpc, uaecptr dest);
+extern int Software_ProcessJSR_Ind (uaecptr oldpc, uaecptr dest);
+extern void Software_CheckNewPC (uaecptr newPC);
+
+extern void Software_CheckStackPointerAssignment (void);
+extern void Software_CheckStackPointerDecrement (void);
+extern void Software_CheckStackPointerIncrement (void);
+extern void Software_CheckKernelStack (void);
+
+extern uae_u32 gStackHigh;
+extern uae_u32 gStackLowWarn;
+extern uae_u32 gStackLow;
+extern uae_u32 gKernelStackOverflowed;
+
+#define CHECK_STACK_POINTER_ASSIGNMENT() \
+do { \
+ Software_CheckStackPointerAssignment (); \
+ if (gKernelStackOverflowed) \
+ Software_CheckKernelStack (); \
+} while (0)
+
+#define CHECK_STACK_POINTER_DECREMENT() \
+do { \
+ if (m68k_areg (regs, 7) < gStackLowWarn) \
+ Software_CheckStackPointerDecrement (); \
+ if (gKernelStackOverflowed) \
+ Software_CheckKernelStack (); \
+} while (0)
+
+#define CHECK_STACK_POINTER_INCREMENT() \
+do { \
+ if (m68k_areg (regs, 7) > gStackHigh) \
+ Software_CheckStackPointerIncrement (); \
+ if (gKernelStackOverflowed) \
+ Software_CheckKernelStack (); \
+} while (0)
+
+// Called in RTD handler
+#define compiler_flush_jsr_stack() do { ; } while (0)
+
+STATIC_INLINE void m68k_do_rts(void)
+{
+ uaecptr returnAddr = get_long (m68k_areg (regs, 7));
+ if (Software_ProcessRTS (returnAddr))
+ return;
+
+ m68k_setpc(returnAddr);
+ m68k_areg(regs, 7) += 4;
+}
+
+STATIC_INLINE void m68k_do_rte(uaecptr newpc)
+{
+ if (Software_ProcessRTE(newpc))
+ return;
+
+ m68k_setpc_rte(newpc);
+}
+
+STATIC_INLINE void m68k_do_bsr(uaecptr oldpc, uae_s32 offset)
+{
+ /* CHANGED BY B. CAMERON LESIUK
+ * 19 Jan 2001
+ * Made this modification so that BSRs cause the profiler to
+ * track function calls properly.
+ */
+// Software_CheckNewPC (m68k_getpc () + offset);
+
+ if (Software_ProcessJSR (oldpc, m68k_getpc () + offset))
+ return;
+
+ m68k_areg(regs, 7) -= 4;
+ Software_CheckStackPointerDecrement ();
+ put_long(m68k_areg(regs, 7), oldpc);
+ m68k_incpc(offset);
+}
+
+STATIC_INLINE void m68k_do_jsr(uaecptr oldpc, uaecptr dest)
+{
+ if (Software_ProcessJSR (oldpc, dest))
+ return;
+
+ m68k_areg(regs, 7) -= 4;
+ Software_CheckStackPointerDecrement ();
+ put_long(m68k_areg(regs, 7), oldpc);
+ m68k_setpc(dest);
+}
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/SrcShared/UAE/config.h b/SrcShared/UAE/config.h
new file mode 100644
index 0000000..a1f0e04
--- /dev/null
+++ b/SrcShared/UAE/config.h
@@ -0,0 +1,77 @@
+ /*
+ * UAE - The Un*x Amiga Emulator
+ *
+ * User configuration options
+ *
+ * Copyright 1995 - 1998 Bernd Schmidt
+ */
+
+/*
+ * Please note: Many things are configurable with command line parameters,
+ * and you can put anything you can pass on the command line into a
+ * configuration file ~/.uaerc. Please read the documentation for more
+ * information.
+ *
+ * NOTE NOTE NOTE
+ * Whenever you change something in this file, you have to "make clean"
+ * afterwards.
+ * Don't remove the '#' signs. If you want to enable something, move it out
+ * of the C comment block, if you want to disable something, move it inside
+ * the block.
+ */
+
+/*
+ * When USE_COMPILER is defined, a m68k->i386 instruction compiler will be
+ * used. This is experimental. It has only been tested on a Linux/i386 ELF
+ * machine, although it might work on other i386 Unices.
+ * This is supposed to speed up application programs. It will not work very
+ * well for hardware bangers like games and demos, in fact it will be much
+ * slower. It can also be slower for some applications and/or benchmarks.
+ * It needs a lot of tuning. Please let me know your results with this.
+ * The second define, RELY_ON_LOADSEG_DETECTION, decides how the compiler
+ * tries to detect self-modifying code. If it is not set, the first bytes
+ * of every compiled routine are used as checksum before executing the
+ * routine. If it is set, the UAE filesystem will perform some checks to
+ * detect whether an executable is being loaded. This is less reliable
+ * (it won't work if you don't use the harddisk emulation, so don't try to
+ * use floppies or even the RAM disk), but much faster.
+ *
+ * @@@ NOTE: This option is unfortunately broken in this version. Don't
+ * try to use it. @@@
+ *
+#define USE_COMPILER
+#define RELY_ON_LOADSEG_DETECTION
+ */
+
+/*
+ * Set USER_PROGRAMS_BEHAVE to 1 or 2 to indicate that you are only running
+ * non-hardware banging programs which leave all the dirty work to the
+ * Kickstart. This affects the compiler. Any program that is _not_ in the ROM
+ * (i.e. everything but the Kickstart) will use faster memory access
+ * functions.
+ * There is of course the problem that the Amiga doesn't really distinguish
+ * between user programs and the kernel. Not all of the OS is in the ROM,
+ * e.g. the parallel.device is on the disk and gets loaded into RAM at least
+ * with Kickstart 1.3 (don't know about newer Kickstarts). So you probably
+ * can't print, and some other stuff may also fail to work.
+ * A useless option, really, given the way lots of Amiga software is written.
+#define USER_PROGRAMS_BEHAVE 0
+ */
+
+/***************************************************************************
+ * Operating system/machine specific options
+ * Configure these for your CPU. The default settings should work on any
+ * machine, but may not give optimal performance everywhere.
+ * (These don't do very much yet, except HAVE_RDTSC
+ */
+
+/*
+ * Define this on PPro's, K6's and maybe other non-x86 CPUs.
+#define MULTIPLICATION_PROFITABLE
+ */
+
+/*
+ * PPros don't like branches. With this option, UAE tries to avoid them in some
+ * places.
+#define BRANCHES_ARE_EXPENSIVE
+ */
diff --git a/SrcShared/UAE/cpudefs.c b/SrcShared/UAE/cpudefs.c
new file mode 100644
index 0000000..45d4b15
--- /dev/null
+++ b/SrcShared/UAE/cpudefs.c
@@ -0,0 +1,173 @@
+#include "sysconfig.h"
+#include "sysdeps.h"
+#include "config.h"
+#include "options.h"
+#include "readcpu.h"
+struct instr_def defs68k[] = {
+{ 60, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 0, { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } }, 16, "ORSR.B #1"},
+{ 124, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 2, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 16, "ORSR.W #1"},
+{ 192, 8, {17,17,11,11,11,12,12,12,0,0,0,0,0,0,0,0}, 63936, 2, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 17, "CHK2.z #1,s[!Dreg,Areg,Aipi,Apdi,Immd]"},
+{ 0, 8, {17,17,13,13,13,14,14,14,0,0,0,0,0,0,0,0}, 65280, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 19, "OR.z #z,d[!Areg]"},
+{ 572, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 0, { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } }, 16, "ANDSR.B #1"},
+{ 636, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 2, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 16, "ANDSR.W #1"},
+{ 512, 8, {17,17,13,13,13,14,14,14,0,0,0,0,0,0,0,0}, 65280, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 19, "AND.z #z,d[!Areg]"},
+{ 1024, 8, {17,17,13,13,13,14,14,14,0,0,0,0,0,0,0,0}, 65280, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 19, "SUB.z #z,d[!Areg]"},
+{ 1536, 8, {17,17,13,13,13,14,14,14,0,0,0,0,0,0,0,0}, 65280, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 19, "ADD.z #z,d[!Areg]"},
+{ 1728, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 16, "CALLM s[!Dreg,Areg,Aipi,Apdi,Immd]"},
+{ 1728, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 16, "RTM s[Dreg,Areg]"},
+{ 2048, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 0 }, { 1, 1 }, { 1, 1 } }, 17, "BTST #1,s[!Areg]"},
+{ 2112, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 0 }, { 1, 1 }, { 1, 1 } }, 19, "BCHG #1,s[!Areg,Immd]"},
+{ 2176, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 0 }, { 1, 1 }, { 1, 1 } }, 19, "BCLR #1,s[!Areg,Immd]"},
+{ 2240, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 0 }, { 1, 1 }, { 1, 1 } }, 19, "BSET #1,s[!Areg,Immd]"},
+{ 2620, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 0, { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } }, 16, "EORSR.B #1"},
+{ 2684, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 2, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 16, "EORSR.W #1"},
+{ 2560, 8, {17,17,13,13,13,14,14,14,0,0,0,0,0,0,0,0}, 65280, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 19, "EOR.z #z,d[!Areg]"},
+{ 3072, 8, {17,17,11,11,11,12,12,12,0,0,0,0,0,0,0,0}, 65280, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 17, "CMP.z #z,s[!Areg,Immd]"},
+{ 2752, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 19, "CAS.B #1,s[!Dreg,Areg,Immd,PC8r,PC16]"},
+{ 3264, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 19, "CAS.W #1,s[!Dreg,Areg,Immd,PC8r,PC16]"},
+{ 3324, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 2, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 16, "CAS2.W #2"},
+{ 3584, 8, {17,17,11,11,11,12,12,12,0,0,0,0,0,0,0,0}, 65280, 2, 2, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 19, "MOVES.z #1,s[!Dreg,Areg,Immd,PC8r,PC16]"},
+{ 3776, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 19, "CAS.L #1,s[!Dreg,Areg,Immd,PC8r,PC16]"},
+{ 3836, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 2, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 16, "CAS2.L #2"},
+{ 256, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 18, "MVPMR.W d[Areg-Ad16],Dr"},
+{ 320, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 18, "MVPMR.L d[Areg-Ad16],Dr"},
+{ 384, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 18, "MVPRM.W Dr,d[Areg-Ad16]"},
+{ 448, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 18, "MVPRM.L Dr,d[Areg-Ad16]"},
+{ 256, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 0 }, { 1, 1 }, { 1, 1 } }, 17, "BTST Dr,s[!Areg]"},
+{ 320, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 0 }, { 1, 1 }, { 1, 1 } }, 19, "BCHG Dr,s[!Areg,Immd]"},
+{ 384, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 0 }, { 1, 1 }, { 1, 1 } }, 19, "BCLR Dr,s[!Areg,Immd]"},
+{ 448, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 0 }, { 1, 1 }, { 1, 1 } }, 19, "BSET Dr,s[!Areg,Immd]"},
+{ 4096, 12, {14,14,14,13,13,13,11,11,11,12,12,12,0,0,0,0}, 61440, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 18, "MOVE.B s,d[!Areg]"},
+{ 8192, 12, {14,14,14,13,13,13,11,11,11,12,12,12,0,0,0,0}, 61440, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 18, "MOVEA.L s,d[Areg]"},
+{ 8192, 12, {14,14,14,13,13,13,11,11,11,12,12,12,0,0,0,0}, 61440, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 18, "MOVE.L s,d[!Areg]"},
+{ 12288, 12, {14,14,14,13,13,13,11,11,11,12,12,12,0,0,0,0}, 61440, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 18, "MOVEA.W s,d[Areg]"},
+{ 12288, 12, {14,14,14,13,13,13,11,11,11,12,12,12,0,0,0,0}, 61440, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 18, "MOVE.W s,d[!Areg]"},
+{ 16384, 8, {17,17,13,13,13,14,14,14,0,0,0,0,0,0,0,0}, 65280, 0, 0, { { 1, 0 }, { 1, 4 }, { 1, 0 }, { 1, 4 }, { 1, 0 } }, 48, "NEGX.z d[!Areg]"},
+{ 16576, 6, {13,13,13,14,14,14,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 1, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 16, "MVSR2.W d[!Areg]"},
+{ 16896, 8, {17,17,13,13,13,14,14,14,0,0,0,0,0,0,0,0}, 65280, 0, 0, { { 1, 1 }, { 1, 2 }, { 1, 3 }, { 1, 2 }, { 1, 2 } }, 32, "CLR.z d[!Areg]"},
+{ 17088, 6, {13,13,13,14,14,14,0,0,0,0,0,0,0,0,0,0}, 65472, 1, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 16, "MVSR2.B d[!Areg]"},
+{ 17408, 8, {17,17,13,13,13,14,14,14,0,0,0,0,0,0,0,0}, 65280, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 48, "NEG.z d[!Areg]"},
+{ 17600, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 16, "MV2SR.B s[!Areg]"},
+{ 17920, 8, {17,17,13,13,13,14,14,14,0,0,0,0,0,0,0,0}, 65280, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 48, "NOT.z d[!Areg]"},
+{ 18112, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 2, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 16, "MV2SR.W s[!Areg]"},
+{ 18440, 3, {15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65528, 2, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 49, "LINK.L Ar,#2"},
+{ 18432, 6, {13,13,13,14,14,14,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 0, 0 }, { 1, 5 }, { 0, 0 }, { 1, 5 }, { 1, 0 } }, 48, "NBCD.B d[!Areg]"},
+{ 18504, 3, {9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65528, 2, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 16, "BKPT #k"},
+{ 18496, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 48, "SWAP.W s[Dreg]"},
+{ 18496, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, "PEA.L s[!Dreg,Areg,Aipi,Apdi,Immd]"},
+{ 18560, 6, {13,13,13,14,14,14,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 48, "EXT.W d[Dreg]"},
+{ 18560, 6, {13,13,13,14,14,14,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 2, "MVMLE.W #1,d[!Dreg,Areg,Aipi]"},
+{ 18624, 6, {13,13,13,14,14,14,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 48, "EXT.L d[Dreg]"},
+{ 18624, 6, {13,13,13,14,14,14,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 2, "MVMLE.L #1,d[!Dreg,Areg,Aipi]"},
+{ 18880, 6, {13,13,13,14,14,14,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 48, "EXT.B d[Dreg]"},
+{ 18944, 8, {17,17,11,11,11,12,12,12,0,0,0,0,0,0,0,0}, 65280, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 16, "TST.z s"},
+{ 19136, 6, {13,13,13,14,14,14,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 48, "TAS.B d[!Areg]"},
+{ 19196, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 0, "ILLEGAL"},
+{ 19456, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 19, "MULL.L #1,s[!Areg]"},
+{ 19520, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 19, "DIVL.L #1,s[!Areg]"},
+{ 19584, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 1, "MVMEL.W #1,s[!Dreg,Areg,Apdi,Immd]"},
+{ 19648, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 1, "MVMEL.L #1,s[!Dreg,Areg,Apdi,Immd]"},
+{ 20032, 4, {8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0}, 65520, 0, 0, { { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 } }, 16, "TRAP #J"},
+{ 20048, 3, {15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65528, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 49, "LINK.W Ar,#1"},
+{ 20056, 3, {15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65528, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 48, "UNLK.L Ar"},
+{ 20064, 3, {15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65528, 0, 2, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 16, "MVR2USP.L Ar"},
+{ 20072, 3, {15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65528, 0, 2, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 32, "MVUSP2R.L Ar"},
+{ 20080, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 2, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, "RESET"},
+{ 20081, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, "NOP"},
+{ 20082, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 2, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 16, "STOP #1"},
+{ 20083, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 2, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 0, "RTE"},
+{ 20084, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 16, "RTD #1"},
+{ 20085, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 0, "RTS"},
+{ 20086, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 0, { { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 } }, 0, "TRAPV"},
+{ 20087, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 0, "RTR"},
+{ 20090, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 1, 2, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 16, "MOVEC2 #1"},
+{ 20091, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 1, 2, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 16, "MOVE2C #1"},
+{ 20096, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 4, 6 }, { 4, 6 }, { 4, 6 }, { 4, 6 }, { 4, 6 } }, 128, "JSR.L s[!Dreg,Areg,Aipi,Apdi,Immd]"},
+{ 16640, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 17, "CHK.L s[!Areg],Dr"},
+{ 16768, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 17, "CHK.W s[!Areg],Dr"},
+{ 20160, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 0, 0, { { 4, 6 }, { 4, 6 }, { 4, 6 }, { 4, 6 }, { 4, 6 } }, 128, "JMP.L s[!Dreg,Areg,Aipi,Apdi,Immd]"},
+{ 16832, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 2, "LEA.L s[!Dreg,Areg,Aipi,Apdi,Immd],Ar"},
+{ 20480, 11, {7,7,7,17,17,13,13,13,14,14,14,0,0,0,0,0}, 61696, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 19, "ADDA.z #j,d[Areg]"},
+{ 20480, 11, {7,7,7,17,17,13,13,13,14,14,14,0,0,0,0,0}, 61696, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 19, "ADD.z #j,d[!Areg]"},
+{ 20736, 11, {7,7,7,17,17,13,13,13,14,14,14,0,0,0,0,0}, 61696, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 19, "SUBA.z #j,d[Areg]"},
+{ 20736, 11, {7,7,7,17,17,13,13,13,14,14,14,0,0,0,0,0}, 61696, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 19, "SUB.z #j,d[!Areg]"},
+{ 20680, 7, {2,2,2,2,15,15,15,0,0,0,0,0,0,0,0,0}, 61688, 0, 0, { { 2, 1 }, { 2, 1 }, { 2, 1 }, { 2, 1 }, { 2, 1 } }, 49, "DBcc.W Dr,#1"},
+{ 20672, 10, {2,2,2,2,13,13,13,14,14,14,0,0,0,0,0,0}, 61632, 0, 0, { { 2, 1 }, { 2, 1 }, { 2, 1 }, { 2, 1 }, { 2, 1 } }, 32, "Scc.B d[!Areg]"},
+{ 20730, 4, {2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0}, 61695, 2, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 16, "TRAPcc #1"},
+{ 20731, 4, {2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0}, 61695, 2, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 16, "TRAPcc #2"},
+{ 20732, 4, {2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0}, 61695, 2, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 0, "TRAPcc"},
+{ 24832, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 0, { { 4, 6 }, { 4, 6 }, { 4, 6 }, { 4, 6 }, { 4, 6 } }, 64, "BSR.W #1"},
+{ 24832, 8, {6,6,6,6,6,6,6,6,0,0,0,0,0,0,0,0}, 65280, 0, 0, { { 4, 6 }, { 4, 6 }, { 4, 6 }, { 4, 6 }, { 4, 6 } }, 64, "BSR.B #i"},
+{ 25087, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 0, 0, { { 4, 6 }, { 4, 6 }, { 4, 6 }, { 4, 6 }, { 4, 6 } }, 64, "BSR.L #2"},
+{ 24576, 4, {3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0}, 61695, 0, 0, { { 2, 1 }, { 2, 1 }, { 2, 1 }, { 2, 1 }, { 2, 1 } }, 64, "Bcc.W #1"},
+{ 24576, 12, {3,3,3,3,6,6,6,6,6,6,6,6,0,0,0,0}, 61440, 0, 0, { { 2, 1 }, { 2, 1 }, { 2, 1 }, { 2, 1 }, { 2, 1 } }, 64, "Bcc.B #i"},
+{ 24831, 4, {3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0}, 61695, 0, 0, { { 2, 1 }, { 2, 1 }, { 2, 1 }, { 2, 1 }, { 2, 1 } }, 64, "Bcc.L #2"},
+{ 28672, 11, {15,15,15,5,5,5,5,5,5,5,5,0,0,0,0,0}, 61696, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 18, "MOVE.L #i,Dr"},
+{ 32768, 11, {15,15,15,17,17,11,11,11,12,12,12,0,0,0,0,0}, 61696, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 19, "OR.z s[!Areg],Dr"},
+{ 32960, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 19, "DIVU.W s[!Areg],Dr"},
+{ 33024, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 0, 0, { { 0, 0 }, { 1, 4 }, { 0, 0 }, { 1, 4 }, { 1, 0 } }, 19, "SBCD.B d[Dreg],Dr"},
+{ 33024, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 0, 0, { { 0, 0 }, { 1, 4 }, { 0, 0 }, { 1, 4 }, { 1, 0 } }, 19, "SBCD.B d[Areg-Apdi],Arp"},
+{ 33024, 11, {15,15,15,17,17,13,13,13,14,14,14,0,0,0,0,0}, 61696, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 19, "OR.z Dr,d[!Areg,Dreg]"},
+{ 33088, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 2, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 18, "PACK d[Dreg],Dr"},
+{ 33088, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 2, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 18, "PACK d[Areg-Apdi],Arp"},
+{ 33152, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 2, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 18, "UNPK d[Dreg],Dr"},
+{ 33152, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 2, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 18, "UNPK d[Areg-Apdi],Arp"},
+{ 33216, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 19, "DIVS.W s[!Areg],Dr"},
+{ 36864, 11, {15,15,15,17,17,11,11,11,12,12,12,0,0,0,0,0}, 61696, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 19, "SUB.z s,Dr"},
+{ 37056, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 19, "SUBA.W s,Ar"},
+{ 37120, 11, {15,15,15,17,17,13,13,13,14,14,14,0,0,0,0,0}, 61696, 0, 0, { { 0, 0 }, { 1, 0 }, { 0, 0 }, { 1, 0 }, { 1, 0 } }, 19, "SUBX.z d[Dreg],Dr"},
+{ 37120, 11, {15,15,15,17,17,13,13,13,14,14,14,0,0,0,0,0}, 61696, 0, 0, { { 0, 0 }, { 1, 0 }, { 0, 0 }, { 1, 0 }, { 1, 0 } }, 19, "SUBX.z d[Areg-Apdi],Arp"},
+{ 37120, 11, {15,15,15,17,17,13,13,13,14,14,14,0,0,0,0,0}, 61696, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 19, "SUB.z Dr,d[!Areg,Dreg]"},
+{ 37312, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 19, "SUBA.L s,Ar"},
+{ 45056, 11, {15,15,15,17,17,11,11,11,12,12,12,0,0,0,0,0}, 61696, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 17, "CMP.z s,Dr"},
+{ 45248, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 17, "CMPA.W s,Ar"},
+{ 45504, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 17, "CMPA.L s,Ar"},
+{ 45312, 11, {15,15,15,17,17,13,13,13,14,14,14,0,0,0,0,0}, 61696, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 17, "CMPM.z d[Areg-Aipi],ArP"},
+{ 45312, 11, {15,15,15,17,17,13,13,13,14,14,14,0,0,0,0,0}, 61696, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 19, "EOR.z Dr,d[!Areg]"},
+{ 49152, 11, {15,15,15,17,17,11,11,11,12,12,12,0,0,0,0,0}, 61696, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 19, "AND.z s[!Areg],Dr"},
+{ 49344, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 19, "MULU.W s[!Areg],Dr"},
+{ 49408, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 0, 0, { { 0, 0 }, { 1, 4 }, { 0, 0 }, { 1, 4 }, { 1, 0 } }, 19, "ABCD.B d[Dreg],Dr"},
+{ 49408, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 0, 0, { { 0, 0 }, { 1, 4 }, { 0, 0 }, { 1, 4 }, { 1, 0 } }, 19, "ABCD.B d[Areg-Apdi],Arp"},
+{ 49408, 11, {15,15,15,17,17,13,13,13,14,14,14,0,0,0,0,0}, 61696, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 19, "AND.z Dr,d[!Areg,Dreg]"},
+{ 49472, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 51, "EXG.L Dr,d[Dreg]"},
+{ 49472, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 51, "EXG.L Ar,d[Areg]"},
+{ 49536, 9, {15,15,15,13,13,13,14,14,14,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 51, "EXG.L Dr,d[Areg]"},
+{ 49600, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 2 } }, 19, "MULS.W s[!Areg],Dr"},
+{ 53248, 11, {15,15,15,17,17,11,11,11,12,12,12,0,0,0,0,0}, 61696, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 19, "ADD.z s,Dr"},
+{ 53440, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 19, "ADDA.W s,Ar"},
+{ 53504, 11, {15,15,15,17,17,13,13,13,14,14,14,0,0,0,0,0}, 61696, 0, 0, { { 0, 0 }, { 1, 0 }, { 0, 0 }, { 1, 0 }, { 1, 0 } }, 19, "ADDX.z d[Dreg],Dr"},
+{ 53504, 11, {15,15,15,17,17,13,13,13,14,14,14,0,0,0,0,0}, 61696, 0, 0, { { 0, 0 }, { 1, 0 }, { 0, 0 }, { 1, 0 }, { 1, 0 } }, 19, "ADDX.z d[Areg-Apdi],Arp"},
+{ 53504, 11, {15,15,15,17,17,13,13,13,14,14,14,0,0,0,0,0}, 61696, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 19, "ADD.z Dr,d[!Areg,Dreg]"},
+{ 53696, 9, {15,15,15,11,11,11,12,12,12,0,0,0,0,0,0,0}, 61888, 0, 0, { { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } }, 19, "ADDA.L s,Ar"},
+{ 57344, 9, {7,7,7,4,17,17,16,16,16,0,0,0,0,0,0,0}, 61496, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 19, "ASf.z #j,DR"},
+{ 57352, 9, {7,7,7,4,17,17,16,16,16,0,0,0,0,0,0,0}, 61496, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 0 } }, 19, "LSf.z #j,DR"},
+{ 57360, 9, {7,7,7,4,17,17,16,16,16,0,0,0,0,0,0,0}, 61496, 0, 0, { { 0, 0 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 0 } }, 19, "ROXf.z #j,DR"},
+{ 57368, 9, {7,7,7,4,17,17,16,16,16,0,0,0,0,0,0,0}, 61496, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 0 } }, 19, "ROf.z #j,DR"},
+{ 57376, 9, {15,15,15,4,17,17,16,16,16,0,0,0,0,0,0,0}, 61496, 0, 0, { { 0, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 19, "ASf.z Dr,DR"},
+{ 57384, 9, {15,15,15,4,17,17,16,16,16,0,0,0,0,0,0,0}, 61496, 0, 0, { { 0, 0 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 0 } }, 19, "LSf.z Dr,DR"},
+{ 57392, 9, {15,15,15,4,17,17,16,16,16,0,0,0,0,0,0,0}, 61496, 0, 0, { { 0, 0 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 0 } }, 19, "ROXf.z Dr,DR"},
+{ 57400, 9, {15,15,15,4,17,17,16,16,16,0,0,0,0,0,0,0}, 61496, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 0 } }, 19, "ROf.z Dr,DR"},
+{ 57536, 7, {4,13,13,13,14,14,14,0,0,0,0,0,0,0,0,0}, 65216, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 } }, 19, "ASfW.W d[!Dreg,Areg]"},
+{ 58048, 7, {4,13,13,13,14,14,14,0,0,0,0,0,0,0,0,0}, 65216, 0, 0, { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 0 } }, 19, "LSfW.W d[!Dreg,Areg]"},
+{ 58560, 7, {4,13,13,13,14,14,14,0,0,0,0,0,0,0,0,0}, 65216, 0, 0, { { 0, 0 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 0 } }, 19, "ROXfW.W d[!Dreg,Areg]"},
+{ 59072, 7, {4,13,13,13,14,14,14,0,0,0,0,0,0,0,0,0}, 65216, 0, 0, { { 1, 1 }, { 1, 0 }, { 1, 0 }, { 1, 2 }, { 1, 0 } }, 19, "ROfW.W d[!Dreg,Areg]"},
+{ 59584, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 17, "BFTST #1,s[!Areg,Apdi,Aipi,Immd]"},
+{ 59840, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 17, "BFEXTU #1,s[!Areg,Apdi,Aipi,Immd]"},
+{ 60096, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 19, "BFCHG #1,s[!Areg,Apdi,Aipi,Immd,PC8r,PC16]"},
+{ 60352, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 17, "BFEXTS #1,s[!Areg,Apdi,Aipi,Immd]"},
+{ 60608, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 19, "BFCLR #1,s[!Areg,Apdi,Aipi,Immd,PC8r,PC16]"},
+{ 60864, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 17, "BFFFO #1,s[!Areg,Apdi,Aipi,Immd]"},
+{ 61120, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 19, "BFSET #1,s[!Areg,Apdi,Aipi,Immd,PC8r,PC16]"},
+{ 61376, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 2, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 19, "BFINS #1,s[!Areg,Apdi,Aipi,Immd,PC8r,PC16]"},
+{ 61952, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 3, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 17, "FPP #1,s"},
+{ 62016, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 3, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 17, "FDBcc #1,s[Areg-Dreg]"},
+{ 62016, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 3, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 17, "FScc #1,s[!Areg,Immd,PC8r,PC16]"},
+{ 62074, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 3, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 16, "FTRAPcc #1"},
+{ 62075, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 3, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 16, "FTRAPcc #2"},
+{ 62076, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 65535, 3, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 0, "FTRAPcc"},
+{ 62080, 6, {10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0}, 65472, 3, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 17, "FBcc #K,#1"},
+{ 62144, 6, {10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0}, 65472, 3, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 17, "FBcc #K,#2"},
+{ 62208, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 3, 2, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 32, "FSAVE s[!Dreg,Areg,Aipi,Immd,PC8r,PC16]"},
+{ 62272, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 3, 2, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 16, "FRESTORE s[!Dreg,Areg,Apdi,Immd]"},
+{ 61440, 6, {11,11,11,12,12,12,0,0,0,0,0,0,0,0,0,0}, 65472, 4, 0, { { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 }, { 3, 5 } }, 17, "MMUOP #1,s"}};
+int n_defs68k = 166;
diff --git a/SrcShared/UAE/cpuemu.c b/SrcShared/UAE/cpuemu.c
new file mode 100644
index 0000000..5274a15
--- /dev/null
+++ b/SrcShared/UAE/cpuemu.c
@@ -0,0 +1,24243 @@
+#include "UAE.h"
+#if HAS_PROFILING
+#include "Profiling.h"
+#endif
+
+#if !defined(PART_1) && !defined(PART_2) && !defined(PART_3) && !defined(PART_4) && !defined(PART_5) && !defined(PART_6) && !defined(PART_7) && !defined(PART_8)
+#define PART_1 1
+#define PART_2 1
+#define PART_3 1
+#define PART_4 1
+#define PART_5 1
+#define PART_6 1
+#define PART_7 1
+#define PART_8 1
+#endif
+
+#ifdef PART_1
+unsigned long REGPARAM2 op_0_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_10_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_18_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_20_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_28_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+{ uae_s8 dst = get_byte(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_30_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+{ uae_s8 dst = get_byte(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_38_3(uae_u32 opcode) /* OR */
+{
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+{ uae_s8 dst = get_byte(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_39_3(uae_u32 opcode) /* OR */
+{
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = get_ilong(4);
+{ uae_s8 dst = get_byte(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_3c_3(uae_u32 opcode) /* ORSR */
+{
+{ MakeSR();
+{ uae_s16 src = get_iword(2);
+ src &= 0xFF;
+ regs.sr |= src;
+ MakeFromSR();
+}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_40_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_50_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_58_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg(regs, dstreg) += 2;
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_60_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_68_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+{ uae_s16 dst = get_word(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_70_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+{ uae_s16 dst = get_word(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_78_3(uae_u32 opcode) /* OR */
+{
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+{ uae_s16 dst = get_word(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_79_3(uae_u32 opcode) /* OR */
+{
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = get_ilong(4);
+{ uae_s16 dst = get_word(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_7c_3(uae_u32 opcode) /* ORSR */
+{
+{if (!regs.s) { Exception(8,0); goto endlabel18; }
+{ MakeSR();
+{ uae_s16 src = get_iword(2);
+ regs.sr |= src;
+ MakeFromSR();
+}}}m68k_incpc(4);
+endlabel18: ;
+return 4;
+}
+unsigned long REGPARAM2 op_80_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_90_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_98_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg(regs, dstreg) += 4;
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_a0_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_a8_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6);
+{ uae_s32 dst = get_long(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(8);
+return 16;
+}
+unsigned long REGPARAM2 op_b0_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6));
+{ uae_s32 dst = get_long(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(8);
+return 16;
+}
+unsigned long REGPARAM2 op_b8_3(uae_u32 opcode) /* OR */
+{
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6);
+{ uae_s32 dst = get_long(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(8);
+return 16;
+}
+unsigned long REGPARAM2 op_b9_3(uae_u32 opcode) /* OR */
+{
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = get_ilong(6);
+{ uae_s32 dst = get_long(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(10);
+return 18;
+}
+unsigned long REGPARAM2 op_100_3(uae_u32 opcode) /* BTST */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src &= 31;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_108_3(uae_u32 opcode) /* MVPMR */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr memp = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_u16 val = (get_byte(memp) << 8) + get_byte(memp + 2);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
+}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_110_3(uae_u32 opcode) /* BTST */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_118_3(uae_u32 opcode) /* BTST */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_120_3(uae_u32 opcode) /* BTST */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_128_3(uae_u32 opcode) /* BTST */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_130_3(uae_u32 opcode) /* BTST */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_138_3(uae_u32 opcode) /* BTST */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_139_3(uae_u32 opcode) /* BTST */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_ilong(2);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_13a_3(uae_u32 opcode) /* BTST */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = 2;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_getpc () + 2;
+ dsta += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_13b_3(uae_u32 opcode) /* BTST */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = 3;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr dsta = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_13c_3(uae_u32 opcode) /* BTST */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uae_s8 dst = get_ibyte(2);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_140_3(uae_u32 opcode) /* BCHG */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src &= 31;
+ dst ^= (1 << src);
+ SET_ZFLG ((dst >> src) & 1);
+ m68k_dreg(regs, dstreg) = (dst);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_148_3(uae_u32 opcode) /* MVPMR */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr memp = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_u32 val = (get_byte(memp) << 24) + (get_byte(memp + 2) << 16)
+ + (get_byte(memp + 4) << 8) + get_byte(memp + 6);
+ m68k_dreg(regs, dstreg) = (val);
+}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_150_3(uae_u32 opcode) /* BCHG */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ dst ^= (1 << src);
+ SET_ZFLG ((dst >> src) & 1);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_158_3(uae_u32 opcode) /* BCHG */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+ src &= 7;
+ dst ^= (1 << src);
+ SET_ZFLG ((dst >> src) & 1);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_160_3(uae_u32 opcode) /* BCHG */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ src &= 7;
+ dst ^= (1 << src);
+ SET_ZFLG ((dst >> src) & 1);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_168_3(uae_u32 opcode) /* BCHG */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ dst ^= (1 << src);
+ SET_ZFLG ((dst >> src) & 1);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_170_3(uae_u32 opcode) /* BCHG */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ dst ^= (1 << src);
+ SET_ZFLG ((dst >> src) & 1);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_178_3(uae_u32 opcode) /* BCHG */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ dst ^= (1 << src);
+ SET_ZFLG ((dst >> src) & 1);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_179_3(uae_u32 opcode) /* BCHG */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_ilong(2);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ dst ^= (1 << src);
+ SET_ZFLG ((dst >> src) & 1);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_17a_3(uae_u32 opcode) /* BCHG */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = 2;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_getpc () + 2;
+ dsta += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ dst ^= (1 << src);
+ SET_ZFLG ((dst >> src) & 1);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_17b_3(uae_u32 opcode) /* BCHG */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = 3;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr dsta = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ dst ^= (1 << src);
+ SET_ZFLG ((dst >> src) & 1);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_180_3(uae_u32 opcode) /* BCLR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src &= 31;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst &= ~(1 << src);
+ m68k_dreg(regs, dstreg) = (dst);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_188_3(uae_u32 opcode) /* MVPRM */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+ uaecptr memp = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+ put_byte(memp, src >> 8); put_byte(memp + 2, src);
+}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_190_3(uae_u32 opcode) /* BCLR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst &= ~(1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_198_3(uae_u32 opcode) /* BCLR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst &= ~(1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_1a0_3(uae_u32 opcode) /* BCLR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst &= ~(1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_1a8_3(uae_u32 opcode) /* BCLR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst &= ~(1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_1b0_3(uae_u32 opcode) /* BCLR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst &= ~(1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_1b8_3(uae_u32 opcode) /* BCLR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst &= ~(1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_1b9_3(uae_u32 opcode) /* BCLR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_ilong(2);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst &= ~(1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_1ba_3(uae_u32 opcode) /* BCLR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = 2;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_getpc () + 2;
+ dsta += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst &= ~(1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_1bb_3(uae_u32 opcode) /* BCLR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = 3;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr dsta = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst &= ~(1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_1c0_3(uae_u32 opcode) /* BSET */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src &= 31;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst |= (1 << src);
+ m68k_dreg(regs, dstreg) = (dst);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_1c8_3(uae_u32 opcode) /* MVPRM */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+ uaecptr memp = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+ put_byte(memp, src >> 24); put_byte(memp + 2, src >> 16);
+ put_byte(memp + 4, src >> 8); put_byte(memp + 6, src);
+}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_1d0_3(uae_u32 opcode) /* BSET */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst |= (1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_1d8_3(uae_u32 opcode) /* BSET */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst |= (1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_1e0_3(uae_u32 opcode) /* BSET */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst |= (1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_1e8_3(uae_u32 opcode) /* BSET */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst |= (1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_1f0_3(uae_u32 opcode) /* BSET */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst |= (1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_1f8_3(uae_u32 opcode) /* BSET */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst |= (1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_1f9_3(uae_u32 opcode) /* BSET */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_ilong(2);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst |= (1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_1fa_3(uae_u32 opcode) /* BSET */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = 2;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_getpc () + 2;
+ dsta += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst |= (1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_1fb_3(uae_u32 opcode) /* BSET */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = 3;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr dsta = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst |= (1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_200_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_210_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_218_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_220_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_228_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+{ uae_s8 dst = get_byte(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_230_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+{ uae_s8 dst = get_byte(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_238_3(uae_u32 opcode) /* AND */
+{
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+{ uae_s8 dst = get_byte(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_239_3(uae_u32 opcode) /* AND */
+{
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = get_ilong(4);
+{ uae_s8 dst = get_byte(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_23c_3(uae_u32 opcode) /* ANDSR */
+{
+{ MakeSR();
+{ uae_s16 src = get_iword(2);
+ src |= 0xFF00;
+ regs.sr &= src;
+ MakeFromSR();
+}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_240_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_250_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_258_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg(regs, dstreg) += 2;
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_260_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_268_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+{ uae_s16 dst = get_word(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_270_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+{ uae_s16 dst = get_word(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_278_3(uae_u32 opcode) /* AND */
+{
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+{ uae_s16 dst = get_word(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_279_3(uae_u32 opcode) /* AND */
+{
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = get_ilong(4);
+{ uae_s16 dst = get_word(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_27c_3(uae_u32 opcode) /* ANDSR */
+{
+{if (!regs.s) { Exception(8,0); goto endlabel89; }
+{ MakeSR();
+{ uae_s16 src = get_iword(2);
+ regs.sr &= src;
+ MakeFromSR();
+}}}m68k_incpc(4);
+endlabel89: ;
+return 4;
+}
+unsigned long REGPARAM2 op_280_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_290_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_298_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg(regs, dstreg) += 4;
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_2a0_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_2a8_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6);
+{ uae_s32 dst = get_long(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(8);
+return 16;
+}
+unsigned long REGPARAM2 op_2b0_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6));
+{ uae_s32 dst = get_long(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(8);
+return 16;
+}
+unsigned long REGPARAM2 op_2b8_3(uae_u32 opcode) /* AND */
+{
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6);
+{ uae_s32 dst = get_long(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(8);
+return 16;
+}
+unsigned long REGPARAM2 op_2b9_3(uae_u32 opcode) /* AND */
+{
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = get_ilong(6);
+{ uae_s32 dst = get_long(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(10);
+return 18;
+}
+unsigned long REGPARAM2 op_400_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_410_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_418_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_420_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_428_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_430_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_438_3(uae_u32 opcode) /* SUB */
+{
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_439_3(uae_u32 opcode) /* SUB */
+{
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = get_ilong(4);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_440_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_450_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_458_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg(regs, dstreg) += 2;
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_460_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_468_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_470_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_478_3(uae_u32 opcode) /* SUB */
+{
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_479_3(uae_u32 opcode) /* SUB */
+{
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = get_ilong(4);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_480_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_490_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_498_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg(regs, dstreg) += 4;
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_4a0_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_4a8_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(8);
+return 16;
+}
+unsigned long REGPARAM2 op_4b0_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6));
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(8);
+return 16;
+}
+unsigned long REGPARAM2 op_4b8_3(uae_u32 opcode) /* SUB */
+{
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(8);
+return 16;
+}
+unsigned long REGPARAM2 op_4b9_3(uae_u32 opcode) /* SUB */
+{
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = get_ilong(6);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(10);
+return 18;
+}
+unsigned long REGPARAM2 op_600_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_610_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_618_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_620_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_628_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_630_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_638_3(uae_u32 opcode) /* ADD */
+{
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_639_3(uae_u32 opcode) /* ADD */
+{
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = get_ilong(4);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_640_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_650_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_658_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg(regs, dstreg) += 2;
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_660_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_668_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_670_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_678_3(uae_u32 opcode) /* ADD */
+{
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_679_3(uae_u32 opcode) /* ADD */
+{
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = get_ilong(4);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_680_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_690_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_698_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg(regs, dstreg) += 4;
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_6a0_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_6a8_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(8);
+return 16;
+}
+unsigned long REGPARAM2 op_6b0_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6));
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(8);
+return 16;
+}
+unsigned long REGPARAM2 op_6b8_3(uae_u32 opcode) /* ADD */
+{
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(8);
+return 16;
+}
+unsigned long REGPARAM2 op_6b9_3(uae_u32 opcode) /* ADD */
+{
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = get_ilong(6);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(10);
+return 18;
+}
+unsigned long REGPARAM2 op_800_3(uae_u32 opcode) /* BTST */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src &= 31;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_810_3(uae_u32 opcode) /* BTST */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_818_3(uae_u32 opcode) /* BTST */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_820_3(uae_u32 opcode) /* BTST */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_828_3(uae_u32 opcode) /* BTST */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_830_3(uae_u32 opcode) /* BTST */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_838_3(uae_u32 opcode) /* BTST */
+{
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_839_3(uae_u32 opcode) /* BTST */
+{
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = get_ilong(4);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+}}}}m68k_incpc(8);
+return 10;
+}
+unsigned long REGPARAM2 op_83a_3(uae_u32 opcode) /* BTST */
+{
+ uae_u32 dstreg = 2;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_getpc () + 4;
+ dsta += (uae_s32)(uae_s16)get_iword(4);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_83b_3(uae_u32 opcode) /* BTST */
+{
+ uae_u32 dstreg = 3;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr tmppc = m68k_getpc() + 4;
+ uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4));
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_83c_3(uae_u32 opcode) /* BTST */
+{
+{{ uae_s16 src = get_iword(2);
+{ uae_s8 dst = get_ibyte(4);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_840_3(uae_u32 opcode) /* BCHG */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src &= 31;
+ dst ^= (1 << src);
+ SET_ZFLG ((dst >> src) & 1);
+ m68k_dreg(regs, dstreg) = (dst);
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_850_3(uae_u32 opcode) /* BCHG */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ dst ^= (1 << src);
+ SET_ZFLG ((dst >> src) & 1);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_858_3(uae_u32 opcode) /* BCHG */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+ src &= 7;
+ dst ^= (1 << src);
+ SET_ZFLG ((dst >> src) & 1);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_860_3(uae_u32 opcode) /* BCHG */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ src &= 7;
+ dst ^= (1 << src);
+ SET_ZFLG ((dst >> src) & 1);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_868_3(uae_u32 opcode) /* BCHG */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ dst ^= (1 << src);
+ SET_ZFLG ((dst >> src) & 1);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_870_3(uae_u32 opcode) /* BCHG */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ dst ^= (1 << src);
+ SET_ZFLG ((dst >> src) & 1);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_878_3(uae_u32 opcode) /* BCHG */
+{
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ dst ^= (1 << src);
+ SET_ZFLG ((dst >> src) & 1);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_879_3(uae_u32 opcode) /* BCHG */
+{
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = get_ilong(4);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ dst ^= (1 << src);
+ SET_ZFLG ((dst >> src) & 1);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_87a_3(uae_u32 opcode) /* BCHG */
+{
+ uae_u32 dstreg = 2;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_getpc () + 4;
+ dsta += (uae_s32)(uae_s16)get_iword(4);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ dst ^= (1 << src);
+ SET_ZFLG ((dst >> src) & 1);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_87b_3(uae_u32 opcode) /* BCHG */
+{
+ uae_u32 dstreg = 3;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr tmppc = m68k_getpc() + 4;
+ uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4));
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ dst ^= (1 << src);
+ SET_ZFLG ((dst >> src) & 1);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_880_3(uae_u32 opcode) /* BCLR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src &= 31;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst &= ~(1 << src);
+ m68k_dreg(regs, dstreg) = (dst);
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_890_3(uae_u32 opcode) /* BCLR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst &= ~(1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_898_3(uae_u32 opcode) /* BCLR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst &= ~(1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_8a0_3(uae_u32 opcode) /* BCLR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst &= ~(1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_8a8_3(uae_u32 opcode) /* BCLR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst &= ~(1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_8b0_3(uae_u32 opcode) /* BCLR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst &= ~(1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_8b8_3(uae_u32 opcode) /* BCLR */
+{
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst &= ~(1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_8b9_3(uae_u32 opcode) /* BCLR */
+{
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = get_ilong(4);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst &= ~(1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_8ba_3(uae_u32 opcode) /* BCLR */
+{
+ uae_u32 dstreg = 2;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_getpc () + 4;
+ dsta += (uae_s32)(uae_s16)get_iword(4);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst &= ~(1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_8bb_3(uae_u32 opcode) /* BCLR */
+{
+ uae_u32 dstreg = 3;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr tmppc = m68k_getpc() + 4;
+ uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4));
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst &= ~(1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_8c0_3(uae_u32 opcode) /* BSET */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src &= 31;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst |= (1 << src);
+ m68k_dreg(regs, dstreg) = (dst);
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_8d0_3(uae_u32 opcode) /* BSET */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst |= (1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_8d8_3(uae_u32 opcode) /* BSET */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst |= (1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_8e0_3(uae_u32 opcode) /* BSET */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst |= (1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_8e8_3(uae_u32 opcode) /* BSET */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst |= (1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_8f0_3(uae_u32 opcode) /* BSET */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst |= (1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_8f8_3(uae_u32 opcode) /* BSET */
+{
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst |= (1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_8f9_3(uae_u32 opcode) /* BSET */
+{
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = get_ilong(4);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst |= (1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_8fa_3(uae_u32 opcode) /* BSET */
+{
+ uae_u32 dstreg = 2;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_getpc () + 4;
+ dsta += (uae_s32)(uae_s16)get_iword(4);
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst |= (1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_8fb_3(uae_u32 opcode) /* BSET */
+{
+ uae_u32 dstreg = 3;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr tmppc = m68k_getpc() + 4;
+ uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4));
+{ uae_s8 dst = get_byte(dsta);
+ src &= 7;
+ SET_ZFLG (1 ^ ((dst >> src) & 1));
+ dst |= (1 << src);
+ put_byte(dsta,dst);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_a00_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_a10_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_a18_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_a20_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_a28_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+{ uae_s8 dst = get_byte(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_a30_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+{ uae_s8 dst = get_byte(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_a38_3(uae_u32 opcode) /* EOR */
+{
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+{ uae_s8 dst = get_byte(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_a39_3(uae_u32 opcode) /* EOR */
+{
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = get_ilong(4);
+{ uae_s8 dst = get_byte(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_a3c_3(uae_u32 opcode) /* EORSR */
+{
+{ MakeSR();
+{ uae_s16 src = get_iword(2);
+ src &= 0xFF;
+ regs.sr ^= src;
+ MakeFromSR();
+}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_a40_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_a50_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_a58_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg(regs, dstreg) += 2;
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_a60_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_a68_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+{ uae_s16 dst = get_word(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_a70_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+{ uae_s16 dst = get_word(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+#endif
+
+#ifdef PART_2
+unsigned long REGPARAM2 op_a78_3(uae_u32 opcode) /* EOR */
+{
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+{ uae_s16 dst = get_word(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_a79_3(uae_u32 opcode) /* EOR */
+{
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = get_ilong(4);
+{ uae_s16 dst = get_word(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_a7c_3(uae_u32 opcode) /* EORSR */
+{
+{if (!regs.s) { Exception(8,0); goto endlabel204; }
+{ MakeSR();
+{ uae_s16 src = get_iword(2);
+ regs.sr ^= src;
+ MakeFromSR();
+}}}m68k_incpc(4);
+endlabel204: ;
+return 4;
+}
+unsigned long REGPARAM2 op_a80_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_a90_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_a98_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg(regs, dstreg) += 4;
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_aa0_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_aa8_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6);
+{ uae_s32 dst = get_long(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(8);
+return 16;
+}
+unsigned long REGPARAM2 op_ab0_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6));
+{ uae_s32 dst = get_long(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(8);
+return 16;
+}
+unsigned long REGPARAM2 op_ab8_3(uae_u32 opcode) /* EOR */
+{
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6);
+{ uae_s32 dst = get_long(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(8);
+return 16;
+}
+unsigned long REGPARAM2 op_ab9_3(uae_u32 opcode) /* EOR */
+{
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = get_ilong(6);
+{ uae_s32 dst = get_long(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(10);
+return 18;
+}
+unsigned long REGPARAM2 op_c00_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_c10_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_c18_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_c20_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_c28_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_c30_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_c38_3(uae_u32 opcode) /* CMP */
+{
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_c39_3(uae_u32 opcode) /* CMP */
+{
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = get_ilong(4);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(8);
+return 10;
+}
+unsigned long REGPARAM2 op_c3a_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = 2;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_getpc () + 4;
+ dsta += (uae_s32)(uae_s16)get_iword(4);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_c3b_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = 3;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr tmppc = m68k_getpc() + 4;
+ uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4));
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_c40_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_c50_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_c58_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg(regs, dstreg) += 2;
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_c60_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_c68_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_c70_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_c78_3(uae_u32 opcode) /* CMP */
+{
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_c79_3(uae_u32 opcode) /* CMP */
+{
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = get_ilong(4);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(8);
+return 10;
+}
+unsigned long REGPARAM2 op_c7a_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = 2;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_getpc () + 4;
+ dsta += (uae_s32)(uae_s16)get_iword(4);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_c7b_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = 3;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr tmppc = m68k_getpc() + 4;
+ uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4));
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_c80_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_c90_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_c98_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg(regs, dstreg) += 4;
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_ca0_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_ca8_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_cb0_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6));
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_cb8_3(uae_u32 opcode) /* CMP */
+{
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_cb9_3(uae_u32 opcode) /* CMP */
+{
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = get_ilong(6);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(10);
+return 14;
+}
+unsigned long REGPARAM2 op_cba_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = 2;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_getpc () + 6;
+ dsta += (uae_s32)(uae_s16)get_iword(6);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_cbb_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = 3;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr tmppc = m68k_getpc() + 6;
+ uaecptr dsta = get_disp_ea_000(tmppc, get_iword(6));
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_1000_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_1010_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_1018_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_1020_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+{ uae_s8 src = get_byte(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_1028_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_1030_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_1038_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_1039_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s8 src = get_byte(srca);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_103a_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_103b_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_103c_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_1080_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_1090_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_1098_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_10a0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+{ uae_s8 src = get_byte(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_10a8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_10b0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_10b8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_10b9_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_10ba_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_10bb_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_10bc_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_10c0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_10d0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_10d8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_10e0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+{ uae_s8 src = get_byte(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_10e8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_10f0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_10f8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_10f9_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_10fa_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_10fb_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_10fc_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_1100_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_1110_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_1118_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_1120_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+{ uae_s8 src = get_byte(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_1128_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_1130_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_1138_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_1139_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_113a_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_113b_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_113c_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_1140_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_1150_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_1158_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_1160_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+{ uae_s8 src = get_byte(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_1168_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_1170_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_1178_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_1179_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_117a_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_117b_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_117c_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_1180_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_1190_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_1198_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_11a0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+{ uae_s8 src = get_byte(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_11a8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_11b0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_11b8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_11b9_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_11ba_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_11bb_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_11bc_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_11c0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_11d0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_11d8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_11e0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+{ uae_s8 src = get_byte(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_11e8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_11f0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_11f8_3(uae_u32 opcode) /* MOVE */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_11f9_3(uae_u32 opcode) /* MOVE */
+{
+{{ uaecptr srca = get_ilong(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_11fa_3(uae_u32 opcode) /* MOVE */
+{
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_11fb_3(uae_u32 opcode) /* MOVE */
+{
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_11fc_3(uae_u32 opcode) /* MOVE */
+{
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_13c0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_ilong(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_13d0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = get_ilong(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_13d8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ uaecptr dsta = get_ilong(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_13e0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+{ uae_s8 src = get_byte(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = get_ilong(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_13e8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = get_ilong(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_13f0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = get_ilong(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_13f8_3(uae_u32 opcode) /* MOVE */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = get_ilong(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_13f9_3(uae_u32 opcode) /* MOVE */
+{
+{{ uaecptr srca = get_ilong(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = get_ilong(6);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(10);
+return 14;
+}
+unsigned long REGPARAM2 op_13fa_3(uae_u32 opcode) /* MOVE */
+{
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = get_ilong(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_13fb_3(uae_u32 opcode) /* MOVE */
+{
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uaecptr dsta = get_ilong(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_13fc_3(uae_u32 opcode) /* MOVE */
+{
+{{ uae_s8 src = get_ibyte(2);
+{ uaecptr dsta = get_ilong(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}m68k_incpc(8);
+return 10;
+}
+unsigned long REGPARAM2 op_2000_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_2008_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_areg(regs, srcreg);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_2010_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_2018_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+ m68k_areg(regs, srcreg) += 4;
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_2020_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
+{ uae_s32 src = get_long(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_2028_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_2030_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_2038_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_2039_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s32 src = get_long(srca);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_203a_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_203b_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_203c_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = get_ilong(2);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_2040_3(uae_u32 opcode) /* MOVEA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uae_u32 val = src;
+ m68k_areg(regs, dstreg) = (val);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_2048_3(uae_u32 opcode) /* MOVEA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_areg(regs, srcreg);
+{ uae_u32 val = src;
+ m68k_areg(regs, dstreg) = (val);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_2050_3(uae_u32 opcode) /* MOVEA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+{ uae_u32 val = src;
+ m68k_areg(regs, dstreg) = (val);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_2058_3(uae_u32 opcode) /* MOVEA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+ m68k_areg(regs, srcreg) += 4;
+{ uae_u32 val = src;
+ m68k_areg(regs, dstreg) = (val);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_2060_3(uae_u32 opcode) /* MOVEA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
+{ uae_s32 src = get_long(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_u32 val = src;
+ m68k_areg(regs, dstreg) = (val);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_2068_3(uae_u32 opcode) /* MOVEA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_u32 val = src;
+ m68k_areg(regs, dstreg) = (val);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_2070_3(uae_u32 opcode) /* MOVEA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uae_u32 val = src;
+ m68k_areg(regs, dstreg) = (val);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_2078_3(uae_u32 opcode) /* MOVEA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_u32 val = src;
+ m68k_areg(regs, dstreg) = (val);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_2079_3(uae_u32 opcode) /* MOVEA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s32 src = get_long(srca);
+{ uae_u32 val = src;
+ m68k_areg(regs, dstreg) = (val);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_207a_3(uae_u32 opcode) /* MOVEA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_u32 val = src;
+ m68k_areg(regs, dstreg) = (val);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_207b_3(uae_u32 opcode) /* MOVEA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uae_u32 val = src;
+ m68k_areg(regs, dstreg) = (val);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_207c_3(uae_u32 opcode) /* MOVEA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uae_u32 val = src;
+ m68k_areg(regs, dstreg) = (val);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_2080_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_2088_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_areg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_2090_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_2098_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+ m68k_areg(regs, srcreg) += 4;
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_20a0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
+{ uae_s32 src = get_long(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_20a8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_20b0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_20b8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_20b9_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_20ba_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_20bb_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_20bc_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_20c0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += 4;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_20c8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_areg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += 4;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_20d0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += 4;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_20d8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+ m68k_areg(regs, srcreg) += 4;
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += 4;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_20e0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
+{ uae_s32 src = get_long(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += 4;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_20e8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += 4;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_20f0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += 4;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_20f8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += 4;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_20f9_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += 4;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_20fa_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += 4;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_20fb_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += 4;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_20fc_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += 4;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_2100_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_2108_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_areg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_2110_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_2118_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+ m68k_areg(regs, srcreg) += 4;
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_2120_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
+{ uae_s32 src = get_long(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_2128_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_2130_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_2138_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_2139_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_213a_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_213b_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+#endif
+
+#ifdef PART_3
+unsigned long REGPARAM2 op_213c_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_2140_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_2148_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_areg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_2150_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_2158_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+ m68k_areg(regs, srcreg) += 4;
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_2160_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
+{ uae_s32 src = get_long(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_2168_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_2170_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_2178_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_2179_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(8);
+return 16;
+}
+unsigned long REGPARAM2 op_217a_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_217b_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_217c_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_2180_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_2188_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_areg(regs, srcreg);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_2190_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_2198_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+ m68k_areg(regs, srcreg) += 4;
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_21a0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
+{ uae_s32 src = get_long(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_21a8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_21b0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_21b8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_21b9_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(8);
+return 16;
+}
+unsigned long REGPARAM2 op_21ba_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_21bb_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_21bc_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_21c0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_21c8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s32 src = m68k_areg(regs, srcreg);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_21d0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_21d8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+ m68k_areg(regs, srcreg) += 4;
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_21e0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
+{ uae_s32 src = get_long(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_21e8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_21f0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_21f8_3(uae_u32 opcode) /* MOVE */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_21f9_3(uae_u32 opcode) /* MOVE */
+{
+{{ uaecptr srca = get_ilong(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(8);
+return 16;
+}
+unsigned long REGPARAM2 op_21fa_3(uae_u32 opcode) /* MOVE */
+{
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_21fb_3(uae_u32 opcode) /* MOVE */
+{
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_21fc_3(uae_u32 opcode) /* MOVE */
+{
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_23c0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_ilong(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_23c8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s32 src = m68k_areg(regs, srcreg);
+{ uaecptr dsta = get_ilong(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_23d0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = get_ilong(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_23d8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+ m68k_areg(regs, srcreg) += 4;
+{ uaecptr dsta = get_ilong(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_23e0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
+{ uae_s32 src = get_long(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = get_ilong(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_23e8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = get_ilong(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(8);
+return 16;
+}
+unsigned long REGPARAM2 op_23f0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = get_ilong(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(8);
+return 16;
+}
+unsigned long REGPARAM2 op_23f8_3(uae_u32 opcode) /* MOVE */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = get_ilong(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(8);
+return 16;
+}
+unsigned long REGPARAM2 op_23f9_3(uae_u32 opcode) /* MOVE */
+{
+{{ uaecptr srca = get_ilong(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = get_ilong(6);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(10);
+return 18;
+}
+unsigned long REGPARAM2 op_23fa_3(uae_u32 opcode) /* MOVE */
+{
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = get_ilong(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(8);
+return 16;
+}
+unsigned long REGPARAM2 op_23fb_3(uae_u32 opcode) /* MOVE */
+{
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uaecptr dsta = get_ilong(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(8);
+return 16;
+}
+unsigned long REGPARAM2 op_23fc_3(uae_u32 opcode) /* MOVE */
+{
+{{ uae_s32 src = get_ilong(2);
+{ uaecptr dsta = get_ilong(6);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}m68k_incpc(10);
+return 14;
+}
+unsigned long REGPARAM2 op_3000_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_3008_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_areg(regs, srcreg);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_3010_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_3018_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_3020_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_3028_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_3030_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_3038_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_3039_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_303a_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_303b_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_303c_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = get_iword(2);
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_3040_3(uae_u32 opcode) /* MOVEA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_u32 val = (uae_s32)(uae_s16)src;
+ m68k_areg(regs, dstreg) = (val);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_3048_3(uae_u32 opcode) /* MOVEA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_areg(regs, srcreg);
+{ uae_u32 val = (uae_s32)(uae_s16)src;
+ m68k_areg(regs, dstreg) = (val);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_3050_3(uae_u32 opcode) /* MOVEA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+{ uae_u32 val = (uae_s32)(uae_s16)src;
+ m68k_areg(regs, dstreg) = (val);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_3058_3(uae_u32 opcode) /* MOVEA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+{ uae_u32 val = (uae_s32)(uae_s16)src;
+ m68k_areg(regs, dstreg) = (val);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_3060_3(uae_u32 opcode) /* MOVEA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_u32 val = (uae_s32)(uae_s16)src;
+ m68k_areg(regs, dstreg) = (val);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_3068_3(uae_u32 opcode) /* MOVEA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_u32 val = (uae_s32)(uae_s16)src;
+ m68k_areg(regs, dstreg) = (val);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_3070_3(uae_u32 opcode) /* MOVEA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_u32 val = (uae_s32)(uae_s16)src;
+ m68k_areg(regs, dstreg) = (val);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_3078_3(uae_u32 opcode) /* MOVEA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_u32 val = (uae_s32)(uae_s16)src;
+ m68k_areg(regs, dstreg) = (val);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_3079_3(uae_u32 opcode) /* MOVEA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+{ uae_u32 val = (uae_s32)(uae_s16)src;
+ m68k_areg(regs, dstreg) = (val);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_307a_3(uae_u32 opcode) /* MOVEA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_u32 val = (uae_s32)(uae_s16)src;
+ m68k_areg(regs, dstreg) = (val);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_307b_3(uae_u32 opcode) /* MOVEA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_u32 val = (uae_s32)(uae_s16)src;
+ m68k_areg(regs, dstreg) = (val);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_307c_3(uae_u32 opcode) /* MOVEA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = get_iword(2);
+{ uae_u32 val = (uae_s32)(uae_s16)src;
+ m68k_areg(regs, dstreg) = (val);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_3080_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_3088_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_areg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_3090_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_3098_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_30a0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_30a8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_30b0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_30b8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_30b9_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_30ba_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_30bb_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_30bc_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_30c0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += 2;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_30c8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_areg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += 2;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_30d0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += 2;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_30d8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += 2;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_30e0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += 2;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_30e8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += 2;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_30f0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += 2;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_30f8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += 2;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_30f9_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += 2;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_30fa_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += 2;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_30fb_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += 2;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_30fc_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) += 2;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_3100_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_3108_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_areg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_3110_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_3118_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_3120_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_3128_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_3130_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_3138_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_3139_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_313a_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_313b_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_313c_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_3140_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_3148_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_areg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_3150_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_3158_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_3160_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_3168_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_3170_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_3178_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_3179_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_317a_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_317b_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_317c_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_3180_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_3188_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_areg(regs, srcreg);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_3190_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_3198_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_31a0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_31a8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_31b0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_31b8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_31b9_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_31ba_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_31bb_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_31bc_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_31c0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_31c8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s16 src = m68k_areg(regs, srcreg);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_31d0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_31d8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_31e0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_31e8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_31f0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_31f8_3(uae_u32 opcode) /* MOVE */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_31f9_3(uae_u32 opcode) /* MOVE */
+{
+{{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_31fa_3(uae_u32 opcode) /* MOVE */
+{
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_31fb_3(uae_u32 opcode) /* MOVE */
+{
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_31fc_3(uae_u32 opcode) /* MOVE */
+{
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_33c0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_ilong(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_33c8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s16 src = m68k_areg(regs, srcreg);
+{ uaecptr dsta = get_ilong(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_33d0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = get_ilong(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_33d8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+{ uaecptr dsta = get_ilong(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_33e0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = get_ilong(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_33e8_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = get_ilong(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_33f0_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = get_ilong(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_33f8_3(uae_u32 opcode) /* MOVE */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = get_ilong(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_33f9_3(uae_u32 opcode) /* MOVE */
+{
+{{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = get_ilong(6);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(10);
+return 14;
+}
+unsigned long REGPARAM2 op_33fa_3(uae_u32 opcode) /* MOVE */
+{
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = get_ilong(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_33fb_3(uae_u32 opcode) /* MOVE */
+{
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uaecptr dsta = get_ilong(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(8);
+return 12;
+}
+unsigned long REGPARAM2 op_33fc_3(uae_u32 opcode) /* MOVE */
+{
+{{ uae_s16 src = get_iword(2);
+{ uaecptr dsta = get_ilong(4);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}m68k_incpc(8);
+return 10;
+}
+unsigned long REGPARAM2 op_4000_3(uae_u32 opcode) /* NEGX */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(0)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
+ SET_NFLG (((uae_s8)(newv)) < 0);
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((newv) & 0xff);
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_4010_3(uae_u32 opcode) /* NEGX */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(0)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
+ SET_NFLG (((uae_s8)(newv)) < 0);
+ put_byte(srca,newv);
+}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4018_3(uae_u32 opcode) /* NEGX */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(0)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
+ SET_NFLG (((uae_s8)(newv)) < 0);
+ put_byte(srca,newv);
+}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4020_3(uae_u32 opcode) /* NEGX */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+{ uae_s8 src = get_byte(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(0)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
+ SET_NFLG (((uae_s8)(newv)) < 0);
+ put_byte(srca,newv);
+}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4028_3(uae_u32 opcode) /* NEGX */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(0)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
+ SET_NFLG (((uae_s8)(newv)) < 0);
+ put_byte(srca,newv);
+}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4030_3(uae_u32 opcode) /* NEGX */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(0)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
+ SET_NFLG (((uae_s8)(newv)) < 0);
+ put_byte(srca,newv);
+}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4038_3(uae_u32 opcode) /* NEGX */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(0)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
+ SET_NFLG (((uae_s8)(newv)) < 0);
+ put_byte(srca,newv);
+}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4039_3(uae_u32 opcode) /* NEGX */
+{
+{{ uaecptr srca = get_ilong(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(0)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
+ SET_NFLG (((uae_s8)(newv)) < 0);
+ put_byte(srca,newv);
+}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_4040_3(uae_u32 opcode) /* NEGX */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(0)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_4050_3(uae_u32 opcode) /* NEGX */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(0)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ put_word(srca,newv);
+}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4058_3(uae_u32 opcode) /* NEGX */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(0)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ put_word(srca,newv);
+}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4060_3(uae_u32 opcode) /* NEGX */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(0)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ put_word(srca,newv);
+}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4068_3(uae_u32 opcode) /* NEGX */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(0)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ put_word(srca,newv);
+}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4070_3(uae_u32 opcode) /* NEGX */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(0)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ put_word(srca,newv);
+}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4078_3(uae_u32 opcode) /* NEGX */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(0)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ put_word(srca,newv);
+}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4079_3(uae_u32 opcode) /* NEGX */
+{
+{{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(0)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ put_word(srca,newv);
+}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_4080_3(uae_u32 opcode) /* NEGX */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(0)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ m68k_dreg(regs, srcreg) = (newv);
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_4090_3(uae_u32 opcode) /* NEGX */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(0)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ put_long(srca,newv);
+}}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_4098_3(uae_u32 opcode) /* NEGX */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+ m68k_areg(regs, srcreg) += 4;
+{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(0)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ put_long(srca,newv);
+}}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_40a0_3(uae_u32 opcode) /* NEGX */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
+{ uae_s32 src = get_long(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(0)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ put_long(srca,newv);
+}}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_40a8_3(uae_u32 opcode) /* NEGX */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(0)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ put_long(srca,newv);
+}}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_40b0_3(uae_u32 opcode) /* NEGX */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(0)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ put_long(srca,newv);
+}}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_40b8_3(uae_u32 opcode) /* NEGX */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(0)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ put_long(srca,newv);
+}}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_40b9_3(uae_u32 opcode) /* NEGX */
+{
+{{ uaecptr srca = get_ilong(2);
+{ uae_s32 src = get_long(srca);
+{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(0)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ put_long(srca,newv);
+}}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_40c0_3(uae_u32 opcode) /* MVSR2 */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ MakeSR();
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((regs.sr) & 0xffff);
+}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_40d0_3(uae_u32 opcode) /* MVSR2 */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+ MakeSR();
+ put_word(srca,regs.sr);
+}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_40d8_3(uae_u32 opcode) /* MVSR2 */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+ m68k_areg(regs, srcreg) += 2;
+ MakeSR();
+ put_word(srca,regs.sr);
+}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_40e0_3(uae_u32 opcode) /* MVSR2 */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ MakeSR();
+ put_word(srca,regs.sr);
+}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_40e8_3(uae_u32 opcode) /* MVSR2 */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+ MakeSR();
+ put_word(srca,regs.sr);
+}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_40f0_3(uae_u32 opcode) /* MVSR2 */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+ MakeSR();
+ put_word(srca,regs.sr);
+}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_40f8_3(uae_u32 opcode) /* MVSR2 */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+ MakeSR();
+ put_word(srca,regs.sr);
+}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_40f9_3(uae_u32 opcode) /* MVSR2 */
+{
+{{ uaecptr srca = get_ilong(2);
+ MakeSR();
+ put_word(srca,regs.sr);
+}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_4100_3(uae_u32 opcode) /* CHK */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel579; }
+ else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel579; }
+}}}m68k_incpc(2);
+endlabel579: ;
+return 2;
+}
+unsigned long REGPARAM2 op_4110_3(uae_u32 opcode) /* CHK */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel580; }
+ else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel580; }
+}}}}m68k_incpc(2);
+endlabel580: ;
+return 6;
+}
+unsigned long REGPARAM2 op_4118_3(uae_u32 opcode) /* CHK */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+ m68k_areg(regs, srcreg) += 4;
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel581; }
+ else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel581; }
+}}}}m68k_incpc(2);
+endlabel581: ;
+return 6;
+}
+unsigned long REGPARAM2 op_4120_3(uae_u32 opcode) /* CHK */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
+{ uae_s32 src = get_long(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel582; }
+ else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel582; }
+}}}}m68k_incpc(2);
+endlabel582: ;
+return 6;
+}
+unsigned long REGPARAM2 op_4128_3(uae_u32 opcode) /* CHK */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel583; }
+ else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel583; }
+}}}}m68k_incpc(4);
+endlabel583: ;
+return 8;
+}
+unsigned long REGPARAM2 op_4130_3(uae_u32 opcode) /* CHK */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel584; }
+ else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel584; }
+}}}}m68k_incpc(4);
+endlabel584: ;
+return 8;
+}
+unsigned long REGPARAM2 op_4138_3(uae_u32 opcode) /* CHK */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel585; }
+ else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel585; }
+}}}}m68k_incpc(4);
+endlabel585: ;
+return 8;
+}
+unsigned long REGPARAM2 op_4139_3(uae_u32 opcode) /* CHK */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = get_ilong(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel586; }
+ else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel586; }
+}}}}m68k_incpc(6);
+endlabel586: ;
+return 10;
+}
+unsigned long REGPARAM2 op_413a_3(uae_u32 opcode) /* CHK */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel587; }
+ else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel587; }
+}}}}m68k_incpc(4);
+endlabel587: ;
+return 8;
+}
+unsigned long REGPARAM2 op_413b_3(uae_u32 opcode) /* CHK */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel588; }
+ else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel588; }
+}}}}m68k_incpc(4);
+endlabel588: ;
+return 8;
+}
+unsigned long REGPARAM2 op_413c_3(uae_u32 opcode) /* CHK */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uae_s32 src = get_ilong(2);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel589; }
+ else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel589; }
+}}}m68k_incpc(6);
+endlabel589: ;
+return 6;
+}
+unsigned long REGPARAM2 op_4180_3(uae_u32 opcode) /* CHK */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel590; }
+ else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel590; }
+}}}m68k_incpc(2);
+endlabel590: ;
+return 2;
+}
+unsigned long REGPARAM2 op_4190_3(uae_u32 opcode) /* CHK */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel591; }
+ else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel591; }
+}}}}m68k_incpc(2);
+endlabel591: ;
+return 4;
+}
+unsigned long REGPARAM2 op_4198_3(uae_u32 opcode) /* CHK */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel592; }
+ else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel592; }
+}}}}m68k_incpc(2);
+endlabel592: ;
+return 4;
+}
+unsigned long REGPARAM2 op_41a0_3(uae_u32 opcode) /* CHK */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel593; }
+ else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel593; }
+}}}}m68k_incpc(2);
+endlabel593: ;
+return 4;
+}
+unsigned long REGPARAM2 op_41a8_3(uae_u32 opcode) /* CHK */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel594; }
+ else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel594; }
+}}}}m68k_incpc(4);
+endlabel594: ;
+return 6;
+}
+unsigned long REGPARAM2 op_41b0_3(uae_u32 opcode) /* CHK */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel595; }
+ else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel595; }
+}}}}m68k_incpc(4);
+endlabel595: ;
+return 6;
+}
+unsigned long REGPARAM2 op_41b8_3(uae_u32 opcode) /* CHK */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel596; }
+ else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel596; }
+}}}}m68k_incpc(4);
+endlabel596: ;
+return 6;
+}
+unsigned long REGPARAM2 op_41b9_3(uae_u32 opcode) /* CHK */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel597; }
+ else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel597; }
+}}}}m68k_incpc(6);
+endlabel597: ;
+return 8;
+}
+unsigned long REGPARAM2 op_41ba_3(uae_u32 opcode) /* CHK */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel598; }
+ else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel598; }
+}}}}m68k_incpc(4);
+endlabel598: ;
+return 6;
+}
+unsigned long REGPARAM2 op_41bb_3(uae_u32 opcode) /* CHK */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel599; }
+ else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel599; }
+}}}}m68k_incpc(4);
+endlabel599: ;
+return 6;
+}
+unsigned long REGPARAM2 op_41bc_3(uae_u32 opcode) /* CHK */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uae_s16 src = get_iword(2);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel600; }
+ else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel600; }
+}}}m68k_incpc(4);
+endlabel600: ;
+return 4;
+}
+unsigned long REGPARAM2 op_41d0_3(uae_u32 opcode) /* LEA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{{ uaecptr prev_dstreg = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) = (srca);
+ if (dstreg == 7) {
+ if (srcreg == 7) {
+ if (prev_dstreg < (srca)) CHECK_STACK_POINTER_INCREMENT ();
+ if (prev_dstreg > (srca)) CHECK_STACK_POINTER_DECREMENT ();
+ } else {
+ CHECK_STACK_POINTER_ASSIGNMENT ();
+ }
+ }
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_41e8_3(uae_u32 opcode) /* LEA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{{ uaecptr prev_dstreg = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) = (srca);
+ if (dstreg == 7) {
+ if (srcreg == 7) {
+ if (prev_dstreg < (srca)) CHECK_STACK_POINTER_INCREMENT ();
+ if (prev_dstreg > (srca)) CHECK_STACK_POINTER_DECREMENT ();
+ } else {
+ CHECK_STACK_POINTER_ASSIGNMENT ();
+ }
+ }
+}}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_41f0_3(uae_u32 opcode) /* LEA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{{ uaecptr prev_dstreg = m68k_areg(regs, dstreg);
+ m68k_areg(regs, dstreg) = (srca);
+ if (dstreg == 7) {
+ if (srcreg == 7) {
+ if (prev_dstreg < (srca)) CHECK_STACK_POINTER_INCREMENT ();
+ if (prev_dstreg > (srca)) CHECK_STACK_POINTER_DECREMENT ();
+ } else {
+ CHECK_STACK_POINTER_ASSIGNMENT ();
+ }
+ }
+}}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_41f8_3(uae_u32 opcode) /* LEA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ m68k_areg(regs, dstreg) = (srca);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_41f9_3(uae_u32 opcode) /* LEA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ m68k_areg(regs, dstreg) = (srca);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_41fa_3(uae_u32 opcode) /* LEA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ m68k_areg(regs, dstreg) = (srca);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_41fb_3(uae_u32 opcode) /* LEA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ m68k_areg(regs, dstreg) = (srca);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_4200_3(uae_u32 opcode) /* CLR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(0)) == 0);
+ SET_NFLG (((uae_s8)(0)) < 0);
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((0) & 0xff);
+}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_4210_3(uae_u32 opcode) /* CLR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(0)) == 0);
+ SET_NFLG (((uae_s8)(0)) < 0);
+ put_byte(srca,0);
+}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_4218_3(uae_u32 opcode) /* CLR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(0)) == 0);
+ SET_NFLG (((uae_s8)(0)) < 0);
+ put_byte(srca,0);
+}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_4220_3(uae_u32 opcode) /* CLR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(0)) == 0);
+ SET_NFLG (((uae_s8)(0)) < 0);
+ put_byte(srca,0);
+}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_4228_3(uae_u32 opcode) /* CLR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(0)) == 0);
+ SET_NFLG (((uae_s8)(0)) < 0);
+ put_byte(srca,0);
+}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_4230_3(uae_u32 opcode) /* CLR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(0)) == 0);
+ SET_NFLG (((uae_s8)(0)) < 0);
+ put_byte(srca,0);
+}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_4238_3(uae_u32 opcode) /* CLR */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(0)) == 0);
+ SET_NFLG (((uae_s8)(0)) < 0);
+ put_byte(srca,0);
+}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_4239_3(uae_u32 opcode) /* CLR */
+{
+{{ uaecptr srca = get_ilong(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(0)) == 0);
+ SET_NFLG (((uae_s8)(0)) < 0);
+ put_byte(srca,0);
+}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_4240_3(uae_u32 opcode) /* CLR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(0)) == 0);
+ SET_NFLG (((uae_s16)(0)) < 0);
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((0) & 0xffff);
+}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_4250_3(uae_u32 opcode) /* CLR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(0)) == 0);
+ SET_NFLG (((uae_s16)(0)) < 0);
+ put_word(srca,0);
+}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_4258_3(uae_u32 opcode) /* CLR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+ m68k_areg(regs, srcreg) += 2;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(0)) == 0);
+ SET_NFLG (((uae_s16)(0)) < 0);
+ put_word(srca,0);
+}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_4260_3(uae_u32 opcode) /* CLR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(0)) == 0);
+ SET_NFLG (((uae_s16)(0)) < 0);
+ put_word(srca,0);
+}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_4268_3(uae_u32 opcode) /* CLR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(0)) == 0);
+ SET_NFLG (((uae_s16)(0)) < 0);
+ put_word(srca,0);
+}}m68k_incpc(4);
+return 6;
+}
+#endif
+
+#ifdef PART_4
+unsigned long REGPARAM2 op_4270_3(uae_u32 opcode) /* CLR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(0)) == 0);
+ SET_NFLG (((uae_s16)(0)) < 0);
+ put_word(srca,0);
+}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_4278_3(uae_u32 opcode) /* CLR */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(0)) == 0);
+ SET_NFLG (((uae_s16)(0)) < 0);
+ put_word(srca,0);
+}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_4279_3(uae_u32 opcode) /* CLR */
+{
+{{ uaecptr srca = get_ilong(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(0)) == 0);
+ SET_NFLG (((uae_s16)(0)) < 0);
+ put_word(srca,0);
+}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_4280_3(uae_u32 opcode) /* CLR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(0)) == 0);
+ SET_NFLG (((uae_s32)(0)) < 0);
+ m68k_dreg(regs, srcreg) = (0);
+}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_4290_3(uae_u32 opcode) /* CLR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(0)) == 0);
+ SET_NFLG (((uae_s32)(0)) < 0);
+ put_long(srca,0);
+}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4298_3(uae_u32 opcode) /* CLR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+ m68k_areg(regs, srcreg) += 4;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(0)) == 0);
+ SET_NFLG (((uae_s32)(0)) < 0);
+ put_long(srca,0);
+}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_42a0_3(uae_u32 opcode) /* CLR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(0)) == 0);
+ SET_NFLG (((uae_s32)(0)) < 0);
+ put_long(srca,0);
+}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_42a8_3(uae_u32 opcode) /* CLR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(0)) == 0);
+ SET_NFLG (((uae_s32)(0)) < 0);
+ put_long(srca,0);
+}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_42b0_3(uae_u32 opcode) /* CLR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(0)) == 0);
+ SET_NFLG (((uae_s32)(0)) < 0);
+ put_long(srca,0);
+}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_42b8_3(uae_u32 opcode) /* CLR */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(0)) == 0);
+ SET_NFLG (((uae_s32)(0)) < 0);
+ put_long(srca,0);
+}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_42b9_3(uae_u32 opcode) /* CLR */
+{
+{{ uaecptr srca = get_ilong(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(0)) == 0);
+ SET_NFLG (((uae_s32)(0)) < 0);
+ put_long(srca,0);
+}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_4400_3(uae_u32 opcode) /* NEG */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(0)) < 0;
+ int flgn = ((uae_s8)(dst)) < 0;
+ SET_ZFLG (((uae_s8)(dst)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((dst) & 0xff);
+}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_4410_3(uae_u32 opcode) /* NEG */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+{{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(0)) < 0;
+ int flgn = ((uae_s8)(dst)) < 0;
+ SET_ZFLG (((uae_s8)(dst)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(srca,dst);
+}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4418_3(uae_u32 opcode) /* NEG */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(0)) < 0;
+ int flgn = ((uae_s8)(dst)) < 0;
+ SET_ZFLG (((uae_s8)(dst)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(srca,dst);
+}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4420_3(uae_u32 opcode) /* NEG */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+{ uae_s8 src = get_byte(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(0)) < 0;
+ int flgn = ((uae_s8)(dst)) < 0;
+ SET_ZFLG (((uae_s8)(dst)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(srca,dst);
+}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4428_3(uae_u32 opcode) /* NEG */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(0)) < 0;
+ int flgn = ((uae_s8)(dst)) < 0;
+ SET_ZFLG (((uae_s8)(dst)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(srca,dst);
+}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4430_3(uae_u32 opcode) /* NEG */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(0)) < 0;
+ int flgn = ((uae_s8)(dst)) < 0;
+ SET_ZFLG (((uae_s8)(dst)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(srca,dst);
+}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4438_3(uae_u32 opcode) /* NEG */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(0)) < 0;
+ int flgn = ((uae_s8)(dst)) < 0;
+ SET_ZFLG (((uae_s8)(dst)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(srca,dst);
+}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4439_3(uae_u32 opcode) /* NEG */
+{
+{{ uaecptr srca = get_ilong(2);
+{ uae_s8 src = get_byte(srca);
+{{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(0)) < 0;
+ int flgn = ((uae_s8)(dst)) < 0;
+ SET_ZFLG (((uae_s8)(dst)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(srca,dst);
+}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_4440_3(uae_u32 opcode) /* NEG */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(0)) < 0;
+ int flgn = ((uae_s16)(dst)) < 0;
+ SET_ZFLG (((uae_s16)(dst)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((dst) & 0xffff);
+}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_4450_3(uae_u32 opcode) /* NEG */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+{{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(0)) < 0;
+ int flgn = ((uae_s16)(dst)) < 0;
+ SET_ZFLG (((uae_s16)(dst)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(srca,dst);
+}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4458_3(uae_u32 opcode) /* NEG */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+{{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(0)) < 0;
+ int flgn = ((uae_s16)(dst)) < 0;
+ SET_ZFLG (((uae_s16)(dst)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(srca,dst);
+}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4460_3(uae_u32 opcode) /* NEG */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(0)) < 0;
+ int flgn = ((uae_s16)(dst)) < 0;
+ SET_ZFLG (((uae_s16)(dst)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(srca,dst);
+}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4468_3(uae_u32 opcode) /* NEG */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(0)) < 0;
+ int flgn = ((uae_s16)(dst)) < 0;
+ SET_ZFLG (((uae_s16)(dst)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(srca,dst);
+}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4470_3(uae_u32 opcode) /* NEG */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+{{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(0)) < 0;
+ int flgn = ((uae_s16)(dst)) < 0;
+ SET_ZFLG (((uae_s16)(dst)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(srca,dst);
+}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4478_3(uae_u32 opcode) /* NEG */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(0)) < 0;
+ int flgn = ((uae_s16)(dst)) < 0;
+ SET_ZFLG (((uae_s16)(dst)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(srca,dst);
+}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4479_3(uae_u32 opcode) /* NEG */
+{
+{{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+{{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(0)) < 0;
+ int flgn = ((uae_s16)(dst)) < 0;
+ SET_ZFLG (((uae_s16)(dst)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(srca,dst);
+}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_4480_3(uae_u32 opcode) /* NEG */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(0)) < 0;
+ int flgn = ((uae_s32)(dst)) < 0;
+ SET_ZFLG (((uae_s32)(dst)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, srcreg) = (dst);
+}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_4490_3(uae_u32 opcode) /* NEG */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+{{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(0)) < 0;
+ int flgn = ((uae_s32)(dst)) < 0;
+ SET_ZFLG (((uae_s32)(dst)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(srca,dst);
+}}}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_4498_3(uae_u32 opcode) /* NEG */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+ m68k_areg(regs, srcreg) += 4;
+{{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(0)) < 0;
+ int flgn = ((uae_s32)(dst)) < 0;
+ SET_ZFLG (((uae_s32)(dst)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(srca,dst);
+}}}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_44a0_3(uae_u32 opcode) /* NEG */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
+{ uae_s32 src = get_long(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(0)) < 0;
+ int flgn = ((uae_s32)(dst)) < 0;
+ SET_ZFLG (((uae_s32)(dst)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(srca,dst);
+}}}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_44a8_3(uae_u32 opcode) /* NEG */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(0)) < 0;
+ int flgn = ((uae_s32)(dst)) < 0;
+ SET_ZFLG (((uae_s32)(dst)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(srca,dst);
+}}}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_44b0_3(uae_u32 opcode) /* NEG */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s32 src = get_long(srca);
+{{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(0)) < 0;
+ int flgn = ((uae_s32)(dst)) < 0;
+ SET_ZFLG (((uae_s32)(dst)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(srca,dst);
+}}}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_44b8_3(uae_u32 opcode) /* NEG */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(0)) < 0;
+ int flgn = ((uae_s32)(dst)) < 0;
+ SET_ZFLG (((uae_s32)(dst)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(srca,dst);
+}}}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_44b9_3(uae_u32 opcode) /* NEG */
+{
+{{ uaecptr srca = get_ilong(2);
+{ uae_s32 src = get_long(srca);
+{{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(0)) < 0;
+ int flgn = ((uae_s32)(dst)) < 0;
+ SET_ZFLG (((uae_s32)(dst)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(srca,dst);
+}}}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_44c0_3(uae_u32 opcode) /* MV2SR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+ MakeSR();
+ regs.sr &= 0xFF00;
+ regs.sr |= src & 0xFF;
+ MakeFromSR();
+}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_44d0_3(uae_u32 opcode) /* MV2SR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ MakeSR();
+ regs.sr &= 0xFF00;
+ regs.sr |= src & 0xFF;
+ MakeFromSR();
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_44d8_3(uae_u32 opcode) /* MV2SR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+ MakeSR();
+ regs.sr &= 0xFF00;
+ regs.sr |= src & 0xFF;
+ MakeFromSR();
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_44e0_3(uae_u32 opcode) /* MV2SR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ MakeSR();
+ regs.sr &= 0xFF00;
+ regs.sr |= src & 0xFF;
+ MakeFromSR();
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_44e8_3(uae_u32 opcode) /* MV2SR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+ MakeSR();
+ regs.sr &= 0xFF00;
+ regs.sr |= src & 0xFF;
+ MakeFromSR();
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_44f0_3(uae_u32 opcode) /* MV2SR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+ MakeSR();
+ regs.sr &= 0xFF00;
+ regs.sr |= src & 0xFF;
+ MakeFromSR();
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_44f8_3(uae_u32 opcode) /* MV2SR */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+ MakeSR();
+ regs.sr &= 0xFF00;
+ regs.sr |= src & 0xFF;
+ MakeFromSR();
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_44f9_3(uae_u32 opcode) /* MV2SR */
+{
+{{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+ MakeSR();
+ regs.sr &= 0xFF00;
+ regs.sr |= src & 0xFF;
+ MakeFromSR();
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_44fa_3(uae_u32 opcode) /* MV2SR */
+{
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+ MakeSR();
+ regs.sr &= 0xFF00;
+ regs.sr |= src & 0xFF;
+ MakeFromSR();
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_44fb_3(uae_u32 opcode) /* MV2SR */
+{
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s16 src = get_word(srca);
+ MakeSR();
+ regs.sr &= 0xFF00;
+ regs.sr |= src & 0xFF;
+ MakeFromSR();
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_44fc_3(uae_u32 opcode) /* MV2SR */
+{
+{{ uae_s16 src = get_iword(2);
+ MakeSR();
+ regs.sr &= 0xFF00;
+ regs.sr |= src & 0xFF;
+ MakeFromSR();
+}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_4600_3(uae_u32 opcode) /* NOT */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uae_u32 dst = ~src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(dst)) == 0);
+ SET_NFLG (((uae_s8)(dst)) < 0);
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((dst) & 0xff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_4610_3(uae_u32 opcode) /* NOT */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+{ uae_u32 dst = ~src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(dst)) == 0);
+ SET_NFLG (((uae_s8)(dst)) < 0);
+ put_byte(srca,dst);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4618_3(uae_u32 opcode) /* NOT */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ uae_u32 dst = ~src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(dst)) == 0);
+ SET_NFLG (((uae_s8)(dst)) < 0);
+ put_byte(srca,dst);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4620_3(uae_u32 opcode) /* NOT */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+{ uae_s8 src = get_byte(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_u32 dst = ~src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(dst)) == 0);
+ SET_NFLG (((uae_s8)(dst)) < 0);
+ put_byte(srca,dst);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4628_3(uae_u32 opcode) /* NOT */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_u32 dst = ~src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(dst)) == 0);
+ SET_NFLG (((uae_s8)(dst)) < 0);
+ put_byte(srca,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4630_3(uae_u32 opcode) /* NOT */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uae_u32 dst = ~src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(dst)) == 0);
+ SET_NFLG (((uae_s8)(dst)) < 0);
+ put_byte(srca,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4638_3(uae_u32 opcode) /* NOT */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_u32 dst = ~src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(dst)) == 0);
+ SET_NFLG (((uae_s8)(dst)) < 0);
+ put_byte(srca,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4639_3(uae_u32 opcode) /* NOT */
+{
+{{ uaecptr srca = get_ilong(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_u32 dst = ~src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(dst)) == 0);
+ SET_NFLG (((uae_s8)(dst)) < 0);
+ put_byte(srca,dst);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_4640_3(uae_u32 opcode) /* NOT */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_u32 dst = ~src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(dst)) == 0);
+ SET_NFLG (((uae_s16)(dst)) < 0);
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((dst) & 0xffff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_4650_3(uae_u32 opcode) /* NOT */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+{ uae_u32 dst = ~src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(dst)) == 0);
+ SET_NFLG (((uae_s16)(dst)) < 0);
+ put_word(srca,dst);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4658_3(uae_u32 opcode) /* NOT */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+{ uae_u32 dst = ~src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(dst)) == 0);
+ SET_NFLG (((uae_s16)(dst)) < 0);
+ put_word(srca,dst);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4660_3(uae_u32 opcode) /* NOT */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_u32 dst = ~src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(dst)) == 0);
+ SET_NFLG (((uae_s16)(dst)) < 0);
+ put_word(srca,dst);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4668_3(uae_u32 opcode) /* NOT */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_u32 dst = ~src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(dst)) == 0);
+ SET_NFLG (((uae_s16)(dst)) < 0);
+ put_word(srca,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4670_3(uae_u32 opcode) /* NOT */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_u32 dst = ~src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(dst)) == 0);
+ SET_NFLG (((uae_s16)(dst)) < 0);
+ put_word(srca,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4678_3(uae_u32 opcode) /* NOT */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_u32 dst = ~src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(dst)) == 0);
+ SET_NFLG (((uae_s16)(dst)) < 0);
+ put_word(srca,dst);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4679_3(uae_u32 opcode) /* NOT */
+{
+{{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+{ uae_u32 dst = ~src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(dst)) == 0);
+ SET_NFLG (((uae_s16)(dst)) < 0);
+ put_word(srca,dst);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_4680_3(uae_u32 opcode) /* NOT */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uae_u32 dst = ~src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(dst)) == 0);
+ SET_NFLG (((uae_s32)(dst)) < 0);
+ m68k_dreg(regs, srcreg) = (dst);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_4690_3(uae_u32 opcode) /* NOT */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+{ uae_u32 dst = ~src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(dst)) == 0);
+ SET_NFLG (((uae_s32)(dst)) < 0);
+ put_long(srca,dst);
+}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_4698_3(uae_u32 opcode) /* NOT */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+ m68k_areg(regs, srcreg) += 4;
+{ uae_u32 dst = ~src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(dst)) == 0);
+ SET_NFLG (((uae_s32)(dst)) < 0);
+ put_long(srca,dst);
+}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_46a0_3(uae_u32 opcode) /* NOT */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
+{ uae_s32 src = get_long(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_u32 dst = ~src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(dst)) == 0);
+ SET_NFLG (((uae_s32)(dst)) < 0);
+ put_long(srca,dst);
+}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_46a8_3(uae_u32 opcode) /* NOT */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_u32 dst = ~src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(dst)) == 0);
+ SET_NFLG (((uae_s32)(dst)) < 0);
+ put_long(srca,dst);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_46b0_3(uae_u32 opcode) /* NOT */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uae_u32 dst = ~src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(dst)) == 0);
+ SET_NFLG (((uae_s32)(dst)) < 0);
+ put_long(srca,dst);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_46b8_3(uae_u32 opcode) /* NOT */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_u32 dst = ~src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(dst)) == 0);
+ SET_NFLG (((uae_s32)(dst)) < 0);
+ put_long(srca,dst);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_46b9_3(uae_u32 opcode) /* NOT */
+{
+{{ uaecptr srca = get_ilong(2);
+{ uae_s32 src = get_long(srca);
+{ uae_u32 dst = ~src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(dst)) == 0);
+ SET_NFLG (((uae_s32)(dst)) < 0);
+ put_long(srca,dst);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_46c0_3(uae_u32 opcode) /* MV2SR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{if (!regs.s) { Exception(8,0); goto endlabel691; }
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+ regs.sr = src;
+ MakeFromSR();
+}}}m68k_incpc(2);
+endlabel691: ;
+return 2;
+}
+unsigned long REGPARAM2 op_46d0_3(uae_u32 opcode) /* MV2SR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{if (!regs.s) { Exception(8,0); goto endlabel692; }
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ regs.sr = src;
+ MakeFromSR();
+}}}}m68k_incpc(2);
+endlabel692: ;
+return 4;
+}
+unsigned long REGPARAM2 op_46d8_3(uae_u32 opcode) /* MV2SR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{if (!regs.s) { Exception(8,0); goto endlabel693; }
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+ regs.sr = src;
+ MakeFromSR();
+}}}}m68k_incpc(2);
+endlabel693: ;
+return 4;
+}
+unsigned long REGPARAM2 op_46e0_3(uae_u32 opcode) /* MV2SR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{if (!regs.s) { Exception(8,0); goto endlabel694; }
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ regs.sr = src;
+ MakeFromSR();
+}}}}m68k_incpc(2);
+endlabel694: ;
+return 4;
+}
+unsigned long REGPARAM2 op_46e8_3(uae_u32 opcode) /* MV2SR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{if (!regs.s) { Exception(8,0); goto endlabel695; }
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+ regs.sr = src;
+ MakeFromSR();
+}}}}m68k_incpc(4);
+endlabel695: ;
+return 6;
+}
+unsigned long REGPARAM2 op_46f0_3(uae_u32 opcode) /* MV2SR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{if (!regs.s) { Exception(8,0); goto endlabel696; }
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+ regs.sr = src;
+ MakeFromSR();
+}}}}m68k_incpc(4);
+endlabel696: ;
+return 6;
+}
+unsigned long REGPARAM2 op_46f8_3(uae_u32 opcode) /* MV2SR */
+{
+{if (!regs.s) { Exception(8,0); goto endlabel697; }
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+ regs.sr = src;
+ MakeFromSR();
+}}}}m68k_incpc(4);
+endlabel697: ;
+return 6;
+}
+unsigned long REGPARAM2 op_46f9_3(uae_u32 opcode) /* MV2SR */
+{
+{if (!regs.s) { Exception(8,0); goto endlabel698; }
+{{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+ regs.sr = src;
+ MakeFromSR();
+}}}}m68k_incpc(6);
+endlabel698: ;
+return 8;
+}
+unsigned long REGPARAM2 op_46fa_3(uae_u32 opcode) /* MV2SR */
+{
+{if (!regs.s) { Exception(8,0); goto endlabel699; }
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+ regs.sr = src;
+ MakeFromSR();
+}}}}m68k_incpc(4);
+endlabel699: ;
+return 6;
+}
+unsigned long REGPARAM2 op_46fb_3(uae_u32 opcode) /* MV2SR */
+{
+{if (!regs.s) { Exception(8,0); goto endlabel700; }
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s16 src = get_word(srca);
+ regs.sr = src;
+ MakeFromSR();
+}}}}m68k_incpc(4);
+endlabel700: ;
+return 6;
+}
+unsigned long REGPARAM2 op_46fc_3(uae_u32 opcode) /* MV2SR */
+{
+{if (!regs.s) { Exception(8,0); goto endlabel701; }
+{{ uae_s16 src = get_iword(2);
+ regs.sr = src;
+ MakeFromSR();
+}}}m68k_incpc(4);
+endlabel701: ;
+return 4;
+}
+unsigned long REGPARAM2 op_4800_3(uae_u32 opcode) /* NBCD */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);
+ uae_u16 newv_hi = - (src & 0xF0);
+ uae_u16 newv;
+ int cflg;
+ if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; }
+ newv = newv_hi + (newv_lo & 0xF); SET_CFLG (cflg = (newv_hi & 0x1F0) > 0x90);
+ COPY_CARRY;
+ if (cflg) newv -= 0x60;
+ SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
+ SET_NFLG (((uae_s8)(newv)) < 0);
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((newv) & 0xff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_4810_3(uae_u32 opcode) /* NBCD */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);
+ uae_u16 newv_hi = - (src & 0xF0);
+ uae_u16 newv;
+ int cflg;
+ if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; }
+ newv = newv_hi + (newv_lo & 0xF); SET_CFLG (cflg = (newv_hi & 0x1F0) > 0x90);
+ COPY_CARRY;
+ if (cflg) newv -= 0x60;
+ SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
+ SET_NFLG (((uae_s8)(newv)) < 0);
+ put_byte(srca,newv);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4818_3(uae_u32 opcode) /* NBCD */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);
+ uae_u16 newv_hi = - (src & 0xF0);
+ uae_u16 newv;
+ int cflg;
+ if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; }
+ newv = newv_hi + (newv_lo & 0xF); SET_CFLG (cflg = (newv_hi & 0x1F0) > 0x90);
+ COPY_CARRY;
+ if (cflg) newv -= 0x60;
+ SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
+ SET_NFLG (((uae_s8)(newv)) < 0);
+ put_byte(srca,newv);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4820_3(uae_u32 opcode) /* NBCD */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+{ uae_s8 src = get_byte(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);
+ uae_u16 newv_hi = - (src & 0xF0);
+ uae_u16 newv;
+ int cflg;
+ if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; }
+ newv = newv_hi + (newv_lo & 0xF); SET_CFLG (cflg = (newv_hi & 0x1F0) > 0x90);
+ COPY_CARRY;
+ if (cflg) newv -= 0x60;
+ SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
+ SET_NFLG (((uae_s8)(newv)) < 0);
+ put_byte(srca,newv);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4828_3(uae_u32 opcode) /* NBCD */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);
+ uae_u16 newv_hi = - (src & 0xF0);
+ uae_u16 newv;
+ int cflg;
+ if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; }
+ newv = newv_hi + (newv_lo & 0xF); SET_CFLG (cflg = (newv_hi & 0x1F0) > 0x90);
+ COPY_CARRY;
+ if (cflg) newv -= 0x60;
+ SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
+ SET_NFLG (((uae_s8)(newv)) < 0);
+ put_byte(srca,newv);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4830_3(uae_u32 opcode) /* NBCD */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);
+ uae_u16 newv_hi = - (src & 0xF0);
+ uae_u16 newv;
+ int cflg;
+ if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; }
+ newv = newv_hi + (newv_lo & 0xF); SET_CFLG (cflg = (newv_hi & 0x1F0) > 0x90);
+ COPY_CARRY;
+ if (cflg) newv -= 0x60;
+ SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
+ SET_NFLG (((uae_s8)(newv)) < 0);
+ put_byte(srca,newv);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4838_3(uae_u32 opcode) /* NBCD */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);
+ uae_u16 newv_hi = - (src & 0xF0);
+ uae_u16 newv;
+ int cflg;
+ if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; }
+ newv = newv_hi + (newv_lo & 0xF); SET_CFLG (cflg = (newv_hi & 0x1F0) > 0x90);
+ COPY_CARRY;
+ if (cflg) newv -= 0x60;
+ SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
+ SET_NFLG (((uae_s8)(newv)) < 0);
+ put_byte(srca,newv);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4839_3(uae_u32 opcode) /* NBCD */
+{
+{{ uaecptr srca = get_ilong(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);
+ uae_u16 newv_hi = - (src & 0xF0);
+ uae_u16 newv;
+ int cflg;
+ if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; }
+ newv = newv_hi + (newv_lo & 0xF); SET_CFLG (cflg = (newv_hi & 0x1F0) > 0x90);
+ COPY_CARRY;
+ if (cflg) newv -= 0x60;
+ SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
+ SET_NFLG (((uae_s8)(newv)) < 0);
+ put_byte(srca,newv);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_4840_3(uae_u32 opcode) /* SWAP */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uae_u32 dst = ((src >> 16)&0xFFFF) | ((src&0xFFFF)<<16);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(dst)) == 0);
+ SET_NFLG (((uae_s32)(dst)) < 0);
+ m68k_dreg(regs, srcreg) = (dst);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_4850_3(uae_u32 opcode) /* PEA */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, 7) - 4;
+ m68k_areg (regs, 7) = dsta;
+ if (7 == 7) CHECK_STACK_POINTER_DECREMENT ();
+ put_long(dsta,srca);
+}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4868_3(uae_u32 opcode) /* PEA */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, 7) - 4;
+ m68k_areg (regs, 7) = dsta;
+ if (7 == 7) CHECK_STACK_POINTER_DECREMENT ();
+ put_long(dsta,srca);
+}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4870_3(uae_u32 opcode) /* PEA */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uaecptr dsta = m68k_areg(regs, 7) - 4;
+ m68k_areg (regs, 7) = dsta;
+ if (7 == 7) CHECK_STACK_POINTER_DECREMENT ();
+ put_long(dsta,srca);
+}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4878_3(uae_u32 opcode) /* PEA */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, 7) - 4;
+ m68k_areg (regs, 7) = dsta;
+ if (7 == 7) CHECK_STACK_POINTER_DECREMENT ();
+ put_long(dsta,srca);
+}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4879_3(uae_u32 opcode) /* PEA */
+{
+{{ uaecptr srca = get_ilong(2);
+{ uaecptr dsta = m68k_areg(regs, 7) - 4;
+ m68k_areg (regs, 7) = dsta;
+ if (7 == 7) CHECK_STACK_POINTER_DECREMENT ();
+ put_long(dsta,srca);
+}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_487a_3(uae_u32 opcode) /* PEA */
+{
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uaecptr dsta = m68k_areg(regs, 7) - 4;
+ m68k_areg (regs, 7) = dsta;
+ if (7 == 7) CHECK_STACK_POINTER_DECREMENT ();
+ put_long(dsta,srca);
+}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_487b_3(uae_u32 opcode) /* PEA */
+{
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uaecptr dsta = m68k_areg(regs, 7) - 4;
+ m68k_areg (regs, 7) = dsta;
+ if (7 == 7) CHECK_STACK_POINTER_DECREMENT ();
+ put_long(dsta,srca);
+}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4880_3(uae_u32 opcode) /* EXT */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uae_u16 dst = (uae_s16)(uae_s8)src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(dst)) == 0);
+ SET_NFLG (((uae_s16)(dst)) < 0);
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((dst) & 0xffff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_4890_3(uae_u32 opcode) /* MVMLE */
+{
+ uae_u32 dstreg = opcode & 7;
+{ uae_u16 mask = get_iword(2);
+{ uaecptr srca = m68k_areg(regs, dstreg);
+{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
+ while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; }
+ while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; }
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_48a0_3(uae_u32 opcode) /* MVMLE */
+{
+ uae_u32 dstreg = opcode & 7;
+{ uae_u16 mask = get_iword(2);
+{ uaecptr srca = m68k_areg(regs, dstreg) - 0;
+{ uae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff;
+ m68k_areg(regs, dstreg) -= 16*2;
+ while (amask) { srca -= 2; put_word(srca, m68k_areg(regs, movem_index2[amask])); amask = movem_next[amask]; }
+ while (dmask) { srca -= 2; put_word(srca, m68k_dreg(regs, movem_index2[dmask])); dmask = movem_next[dmask]; }
+ m68k_areg(regs, dstreg) = srca;
+ CHECK_STACK_POINTER_DECREMENT ();
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_48a8_3(uae_u32 opcode) /* MVMLE */
+{
+ uae_u32 dstreg = opcode & 7;
+{ uae_u16 mask = get_iword(2);
+{ uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
+ while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; }
+ while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; }
+}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_48b0_3(uae_u32 opcode) /* MVMLE */
+{
+ uae_u32 dstreg = opcode & 7;
+{ uae_u16 mask = get_iword(2);
+{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
+ while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; }
+ while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; }
+}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_48b8_3(uae_u32 opcode) /* MVMLE */
+{
+{ uae_u16 mask = get_iword(2);
+{ uaecptr srca = (uae_s32)(uae_s16)get_iword(4);
+{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
+ while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; }
+ while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; }
+}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_48b9_3(uae_u32 opcode) /* MVMLE */
+{
+{ uae_u16 mask = get_iword(2);
+{ uaecptr srca = get_ilong(4);
+{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
+ while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; }
+ while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; }
+}}}m68k_incpc(8);
+return 8;
+}
+unsigned long REGPARAM2 op_48c0_3(uae_u32 opcode) /* EXT */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uae_u32 dst = (uae_s32)(uae_s16)src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(dst)) == 0);
+ SET_NFLG (((uae_s32)(dst)) < 0);
+ m68k_dreg(regs, srcreg) = (dst);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_48d0_3(uae_u32 opcode) /* MVMLE */
+{
+ uae_u32 dstreg = opcode & 7;
+{ uae_u16 mask = get_iword(2);
+{ uaecptr srca = m68k_areg(regs, dstreg);
+{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
+ while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; }
+ while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; }
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_48e0_3(uae_u32 opcode) /* MVMLE */
+{
+ uae_u32 dstreg = opcode & 7;
+{ uae_u16 mask = get_iword(2);
+{ uaecptr srca = m68k_areg(regs, dstreg) - 0;
+{ uae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff;
+ m68k_areg(regs, dstreg) -= 16*4;
+ while (amask) { srca -= 4; put_long(srca, m68k_areg(regs, movem_index2[amask])); amask = movem_next[amask]; }
+ while (dmask) { srca -= 4; put_long(srca, m68k_dreg(regs, movem_index2[dmask])); dmask = movem_next[dmask]; }
+ m68k_areg(regs, dstreg) = srca;
+ CHECK_STACK_POINTER_DECREMENT ();
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_48e8_3(uae_u32 opcode) /* MVMLE */
+{
+ uae_u32 dstreg = opcode & 7;
+{ uae_u16 mask = get_iword(2);
+{ uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
+ while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; }
+ while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; }
+}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_48f0_3(uae_u32 opcode) /* MVMLE */
+{
+ uae_u32 dstreg = opcode & 7;
+{ uae_u16 mask = get_iword(2);
+{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
+ while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; }
+ while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; }
+}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_48f8_3(uae_u32 opcode) /* MVMLE */
+{
+{ uae_u16 mask = get_iword(2);
+{ uaecptr srca = (uae_s32)(uae_s16)get_iword(4);
+{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
+ while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; }
+ while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; }
+}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_48f9_3(uae_u32 opcode) /* MVMLE */
+{
+{ uae_u16 mask = get_iword(2);
+{ uaecptr srca = get_ilong(4);
+{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
+ while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; }
+ while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; }
+}}}m68k_incpc(8);
+return 8;
+}
+unsigned long REGPARAM2 op_49c0_3(uae_u32 opcode) /* EXT */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uae_u32 dst = (uae_s32)(uae_s8)src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(dst)) == 0);
+ SET_NFLG (((uae_s32)(dst)) < 0);
+ m68k_dreg(regs, srcreg) = (dst);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_4a00_3(uae_u32 opcode) /* TST */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_4a10_3(uae_u32 opcode) /* TST */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_4a18_3(uae_u32 opcode) /* TST */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_4a20_3(uae_u32 opcode) /* TST */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+{ uae_s8 src = get_byte(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_4a28_3(uae_u32 opcode) /* TST */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_4a30_3(uae_u32 opcode) /* TST */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s8 src = get_byte(srca);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_4a38_3(uae_u32 opcode) /* TST */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_4a39_3(uae_u32 opcode) /* TST */
+{
+{{ uaecptr srca = get_ilong(2);
+{ uae_s8 src = get_byte(srca);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_4a3a_3(uae_u32 opcode) /* TST */
+{
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_4a3b_3(uae_u32 opcode) /* TST */
+{
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s8 src = get_byte(srca);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_4a3c_3(uae_u32 opcode) /* TST */
+{
+{{ uae_s8 src = get_ibyte(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_4a40_3(uae_u32 opcode) /* TST */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_4a48_3(uae_u32 opcode) /* TST */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s16 src = m68k_areg(regs, srcreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_4a50_3(uae_u32 opcode) /* TST */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_4a58_3(uae_u32 opcode) /* TST */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_4a60_3(uae_u32 opcode) /* TST */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_4a68_3(uae_u32 opcode) /* TST */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_4a70_3(uae_u32 opcode) /* TST */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_4a78_3(uae_u32 opcode) /* TST */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_4a79_3(uae_u32 opcode) /* TST */
+{
+{{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_4a7a_3(uae_u32 opcode) /* TST */
+{
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_4a7b_3(uae_u32 opcode) /* TST */
+{
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s16 src = get_word(srca);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_4a7c_3(uae_u32 opcode) /* TST */
+{
+{{ uae_s16 src = get_iword(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_4a80_3(uae_u32 opcode) /* TST */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_4a88_3(uae_u32 opcode) /* TST */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s32 src = m68k_areg(regs, srcreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_4a90_3(uae_u32 opcode) /* TST */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4a98_3(uae_u32 opcode) /* TST */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+ m68k_areg(regs, srcreg) += 4;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4aa0_3(uae_u32 opcode) /* TST */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
+{ uae_s32 src = get_long(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4aa8_3(uae_u32 opcode) /* TST */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4ab0_3(uae_u32 opcode) /* TST */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s32 src = get_long(srca);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4ab8_3(uae_u32 opcode) /* TST */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4ab9_3(uae_u32 opcode) /* TST */
+{
+{{ uaecptr srca = get_ilong(2);
+{ uae_s32 src = get_long(srca);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_4aba_3(uae_u32 opcode) /* TST */
+{
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4abb_3(uae_u32 opcode) /* TST */
+{
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s32 src = get_long(srca);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4abc_3(uae_u32 opcode) /* TST */
+{
+{{ uae_s32 src = get_ilong(2);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_4ac0_3(uae_u32 opcode) /* TAS */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ src |= 0x80;
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((src) & 0xff);
+}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_4ad0_3(uae_u32 opcode) /* TAS */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ src |= 0x80;
+ put_byte(srca,src);
+}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4ad8_3(uae_u32 opcode) /* TAS */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ src |= 0x80;
+ put_byte(srca,src);
+}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4ae0_3(uae_u32 opcode) /* TAS */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+{ uae_s8 src = get_byte(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ src |= 0x80;
+ put_byte(srca,src);
+}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4ae8_3(uae_u32 opcode) /* TAS */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ src |= 0x80;
+ put_byte(srca,src);
+}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4af0_3(uae_u32 opcode) /* TAS */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s8 src = get_byte(srca);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ src |= 0x80;
+ put_byte(srca,src);
+}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4af8_3(uae_u32 opcode) /* TAS */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ src |= 0x80;
+ put_byte(srca,src);
+}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4af9_3(uae_u32 opcode) /* TAS */
+{
+{{ uaecptr srca = get_ilong(2);
+{ uae_s8 src = get_byte(srca);
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ src |= 0x80;
+ put_byte(srca,src);
+}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_4c90_3(uae_u32 opcode) /* MVMEL */
+{
+ uae_u32 dstreg = opcode & 7;
+{ uae_u16 mask = get_iword(2);
+ unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
+{ uaecptr srca = m68k_areg(regs, dstreg);
+{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; }
+ while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; }
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_4c98_3(uae_u32 opcode) /* MVMEL */
+{
+ uae_u32 dstreg = opcode & 7;
+{ uae_u16 mask = get_iword(2);
+ unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
+{ uaecptr srca = m68k_areg(regs, dstreg);
+{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; }
+ while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; }
+ m68k_areg(regs, dstreg) = srca;
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_4ca8_3(uae_u32 opcode) /* MVMEL */
+{
+ uae_u32 dstreg = opcode & 7;
+{ uae_u16 mask = get_iword(2);
+ unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
+{ uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; }
+ while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; }
+}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_4cb0_3(uae_u32 opcode) /* MVMEL */
+{
+ uae_u32 dstreg = opcode & 7;
+{ uae_u16 mask = get_iword(2);
+ unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
+{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; }
+ while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; }
+}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_4cb8_3(uae_u32 opcode) /* MVMEL */
+{
+{ uae_u16 mask = get_iword(2);
+ unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
+{ uaecptr srca = (uae_s32)(uae_s16)get_iword(4);
+{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; }
+ while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; }
+}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_4cb9_3(uae_u32 opcode) /* MVMEL */
+{
+{ uae_u16 mask = get_iword(2);
+ unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
+{ uaecptr srca = get_ilong(4);
+{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; }
+ while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; }
+}}}m68k_incpc(8);
+return 8;
+}
+unsigned long REGPARAM2 op_4cba_3(uae_u32 opcode) /* MVMEL */
+{
+ uae_u32 dstreg = 2;
+{ uae_u16 mask = get_iword(2);
+ unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
+{ uaecptr srca = m68k_getpc () + 4;
+ srca += (uae_s32)(uae_s16)get_iword(4);
+{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; }
+ while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; }
+}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_4cbb_3(uae_u32 opcode) /* MVMEL */
+{
+ uae_u32 dstreg = 3;
+{ uae_u16 mask = get_iword(2);
+ unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
+{ uaecptr tmppc = m68k_getpc() + 4;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(4));
+{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; }
+ while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; }
+}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_4cd0_3(uae_u32 opcode) /* MVMEL */
+{
+ uae_u32 dstreg = opcode & 7;
+{ uae_u16 mask = get_iword(2);
+ unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
+{ uaecptr srca = m68k_areg(regs, dstreg);
+{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; }
+ while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; }
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_4cd8_3(uae_u32 opcode) /* MVMEL */
+{
+ uae_u32 dstreg = opcode & 7;
+{ uae_u16 mask = get_iword(2);
+ unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
+{ uaecptr srca = m68k_areg(regs, dstreg);
+{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; }
+ while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; }
+ m68k_areg(regs, dstreg) = srca;
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_4ce8_3(uae_u32 opcode) /* MVMEL */
+{
+ uae_u32 dstreg = opcode & 7;
+{ uae_u16 mask = get_iword(2);
+ unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
+{ uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
+{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; }
+ while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; }
+}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_4cf0_3(uae_u32 opcode) /* MVMEL */
+{
+ uae_u32 dstreg = opcode & 7;
+{ uae_u16 mask = get_iword(2);
+ unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
+{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
+{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; }
+ while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; }
+}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_4cf8_3(uae_u32 opcode) /* MVMEL */
+{
+{ uae_u16 mask = get_iword(2);
+ unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
+{ uaecptr srca = (uae_s32)(uae_s16)get_iword(4);
+{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; }
+ while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; }
+}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_4cf9_3(uae_u32 opcode) /* MVMEL */
+{
+{ uae_u16 mask = get_iword(2);
+ unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
+{ uaecptr srca = get_ilong(4);
+{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; }
+ while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; }
+}}}m68k_incpc(8);
+return 8;
+}
+unsigned long REGPARAM2 op_4cfa_3(uae_u32 opcode) /* MVMEL */
+{
+ uae_u32 dstreg = 2;
+{ uae_u16 mask = get_iword(2);
+ unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
+{ uaecptr srca = m68k_getpc () + 4;
+ srca += (uae_s32)(uae_s16)get_iword(4);
+{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; }
+ while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; }
+}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_4cfb_3(uae_u32 opcode) /* MVMEL */
+{
+ uae_u32 dstreg = 3;
+{ uae_u16 mask = get_iword(2);
+ unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
+{ uaecptr tmppc = m68k_getpc() + 4;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(4));
+{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; }
+ while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; }
+}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_4e40_3(uae_u32 opcode) /* TRAP */
+{
+ uae_u32 srcreg = (opcode & 15);
+{{ uae_u32 src = srcreg;
+m68k_incpc(2);
+ Exception(src+32,0);
+}}return 2;
+}
+unsigned long REGPARAM2 op_4e50_3(uae_u32 opcode) /* LINK */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr olda = m68k_areg(regs, 7) - 4;
+ m68k_areg (regs, 7) = olda;
+ if (7 == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s32 src = m68k_areg(regs, srcreg);
+ put_long(olda,src);
+ m68k_areg(regs, srcreg) = (m68k_areg(regs, 7));
+ if (srcreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+{ uae_s16 offs = get_iword(2);
+ m68k_areg(regs, 7) += offs;
+ CHECK_STACK_POINTER_DECREMENT ();
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_4e58_3(uae_u32 opcode) /* UNLK */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s32 src = m68k_areg(regs, srcreg);
+ m68k_areg(regs, 7) = src;
+ CHECK_STACK_POINTER_INCREMENT ();
+{ uaecptr olda = m68k_areg(regs, 7);
+{ uae_s32 old = get_long(olda);
+ m68k_areg(regs, 7) += 4;
+ m68k_areg(regs, srcreg) = (old);
+ if (srcreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_4e60_3(uae_u32 opcode) /* MVR2USP */
+{
+ uae_u32 srcreg = (opcode & 7);
+{if (!regs.s) { Exception(8,0); goto endlabel795; }
+{{ uae_s32 src = m68k_areg(regs, srcreg);
+ regs.usp = src;
+}}}m68k_incpc(2);
+endlabel795: ;
+return 2;
+}
+unsigned long REGPARAM2 op_4e68_3(uae_u32 opcode) /* MVUSP2R */
+{
+ uae_u32 srcreg = (opcode & 7);
+{if (!regs.s) { Exception(8,0); goto endlabel796; }
+{{ m68k_areg(regs, srcreg) = (regs.usp);
+ if (srcreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}m68k_incpc(2);
+endlabel796: ;
+return 2;
+}
+unsigned long REGPARAM2 op_4e70_3(uae_u32 opcode) /* RESET */
+{
+{if (!regs.s) { Exception(8,0); goto endlabel797; }
+{ customreset();
+}}m68k_incpc(2);
+endlabel797: ;
+return 2;
+}
+unsigned long REGPARAM2 op_4e71_3(uae_u32 opcode) /* NOP */
+{
+{}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_4e72_3(uae_u32 opcode) /* STOP */
+{
+{if (!regs.s) { Exception(8,0); goto endlabel799; }
+{{ uae_s16 src = get_iword(2);
+ regs.sr = src;
+ MakeFromSR();
+ m68k_setstopped(1);
+}}}m68k_incpc(4);
+endlabel799: ;
+return 4;
+}
+unsigned long REGPARAM2 op_4e73_3(uae_u32 opcode) /* RTE */
+{
+{if (!regs.s) { Exception(8,0); goto endlabel800; }
+{{ uaecptr sra = m68k_areg(regs, 7);
+{ uae_s16 sr = get_word(sra);
+ m68k_areg(regs, 7) += 2;
+{ uaecptr pca = m68k_areg(regs, 7);
+{ uae_s32 pc = get_long(pca);
+ m68k_areg(regs, 7) += 4;
+ regs.sr = sr; m68k_do_rte(pc);
+ MakeFromSR();
+}}}}}}endlabel800: ;
+return 8;
+}
+unsigned long REGPARAM2 op_4e74_3(uae_u32 opcode) /* RTD */
+{
+{ compiler_flush_jsr_stack();
+{ uaecptr pca = m68k_areg(regs, 7);
+{ uae_s32 pc = get_long(pca);
+ m68k_areg(regs, 7) += 4;
+{ uae_s16 offs = get_iword(2);
+ m68k_areg(regs, 7) += offs;
+ m68k_setpc_rte(pc);
+}}}}return 8;
+}
+unsigned long REGPARAM2 op_4e75_3(uae_u32 opcode) /* RTS */
+{
+{ m68k_do_rts();
+}return 2;
+}
+unsigned long REGPARAM2 op_4e76_3(uae_u32 opcode) /* TRAPV */
+{
+{m68k_incpc(2);
+ if (GET_VFLG) { Exception(7,m68k_getpc()); goto endlabel803; }
+}endlabel803: ;
+return 2;
+}
+unsigned long REGPARAM2 op_4e77_3(uae_u32 opcode) /* RTR */
+{
+{ compiler_flush_jsr_stack();
+ MakeSR();
+{ uaecptr sra = m68k_areg(regs, 7);
+{ uae_s16 sr = get_word(sra);
+ m68k_areg(regs, 7) += 2;
+{ uaecptr pca = m68k_areg(regs, 7);
+{ uae_s32 pc = get_long(pca);
+ m68k_areg(regs, 7) += 4;
+ regs.sr &= 0xFF00; sr &= 0xFF;
+ regs.sr |= sr; m68k_setpc(pc);
+ MakeFromSR();
+}}}}}return 8;
+}
+unsigned long REGPARAM2 op_4e90_3(uae_u32 opcode) /* JSR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+if (!Software_ProcessJSR_Ind (m68k_getpc(), srca))
+ m68k_do_jsr(m68k_getpc() + 2, srca);
+}}return 2;
+}
+unsigned long REGPARAM2 op_4ea8_3(uae_u32 opcode) /* JSR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+ m68k_do_jsr(m68k_getpc() + 4, srca);
+}}return 4;
+}
+unsigned long REGPARAM2 op_4eb0_3(uae_u32 opcode) /* JSR */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+ m68k_do_jsr(m68k_getpc() + 4, srca);
+}}return 4;
+}
+unsigned long REGPARAM2 op_4eb8_3(uae_u32 opcode) /* JSR */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+ m68k_do_jsr(m68k_getpc() + 4, srca);
+}}return 4;
+}
+unsigned long REGPARAM2 op_4eb9_3(uae_u32 opcode) /* JSR */
+{
+{{ uaecptr srca = get_ilong(2);
+ m68k_do_jsr(m68k_getpc() + 6, srca);
+}}return 6;
+}
+unsigned long REGPARAM2 op_4eba_3(uae_u32 opcode) /* JSR */
+{
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+ m68k_do_jsr(m68k_getpc() + 4, srca);
+}}return 4;
+}
+unsigned long REGPARAM2 op_4ebb_3(uae_u32 opcode) /* JSR */
+{
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+ m68k_do_jsr(m68k_getpc() + 4, srca);
+}}return 4;
+}
+unsigned long REGPARAM2 op_4ed0_3(uae_u32 opcode) /* JMP */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+ m68k_setpc(srca);
+}}return 2;
+}
+unsigned long REGPARAM2 op_4ee8_3(uae_u32 opcode) /* JMP */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+ m68k_setpc(srca);
+}}return 4;
+}
+unsigned long REGPARAM2 op_4ef0_3(uae_u32 opcode) /* JMP */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+ m68k_setpc(srca);
+}}return 4;
+}
+unsigned long REGPARAM2 op_4ef8_3(uae_u32 opcode) /* JMP */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+ m68k_setpc(srca);
+}}return 4;
+}
+unsigned long REGPARAM2 op_4ef9_3(uae_u32 opcode) /* JMP */
+{
+{{ uaecptr srca = get_ilong(2);
+ m68k_setpc(srca);
+}}return 6;
+}
+unsigned long REGPARAM2 op_4efa_3(uae_u32 opcode) /* JMP */
+{
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+ m68k_setpc(srca);
+}}return 4;
+}
+unsigned long REGPARAM2 op_4efb_3(uae_u32 opcode) /* JMP */
+{
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+ m68k_setpc(srca);
+}}return 4;
+}
+#endif
+
+#ifdef PART_5
+unsigned long REGPARAM2 op_5000_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_5010_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_5018_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_5020_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_5028_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_5030_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_5038_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_5039_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = get_ilong(2);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_5040_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_5048_3(uae_u32 opcode) /* ADDA */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst + src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT ();
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_5050_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_5058_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg(regs, dstreg) += 2;
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_5060_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_5068_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_5070_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_5078_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_5079_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = get_ilong(2);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_5080_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_5088_3(uae_u32 opcode) /* ADDA */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst + src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT ();
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_5090_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_5098_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg(regs, dstreg) += 4;
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_50a0_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_50a8_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_50b0_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_50b8_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_50b9_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = get_ilong(2);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_50c0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{{ int val = cctrue(0) ? 0xff : 0;
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_50c8_3(uae_u32 opcode) /* DBcc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 offs = get_iword(2);
+ if (!cctrue(0)) {
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
+ if (src) {
+ m68k_incpc((uae_s32)offs + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel846;
+ }
+ }
+}}}m68k_incpc(4);
+endlabel846: ;
+return 4;
+}
+unsigned long REGPARAM2 op_50d0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ int val = cctrue(0) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_50d8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ int val = cctrue(0) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_50e0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ int val = cctrue(0) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_50e8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(0) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_50f0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ int val = cctrue(0) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_50f8_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(0) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_50f9_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = get_ilong(2);
+{ int val = cctrue(0) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_5100_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_5110_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_5118_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_5120_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_5128_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_5130_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_5138_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_5139_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = get_ilong(2);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_5140_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_5148_3(uae_u32 opcode) /* SUBA */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst - src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_5150_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_5158_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg(regs, dstreg) += 2;
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_5160_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_5168_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_5170_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_5178_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_5179_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = get_ilong(2);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_5180_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_5188_3(uae_u32 opcode) /* SUBA */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst - src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_5190_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_5198_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg(regs, dstreg) += 4;
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_51a0_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_51a8_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_51b0_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_51b8_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_51b9_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+{{ uae_u32 src = srcreg;
+{ uaecptr dsta = get_ilong(2);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_51c0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{{ int val = cctrue(1) ? 0xff : 0;
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_51c8_3(uae_u32 opcode) /* DBcc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 offs = get_iword(2);
+ if (!cctrue(1)) {
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
+ if (src) {
+ m68k_incpc((uae_s32)offs + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel881;
+ }
+ }
+}}}m68k_incpc(4);
+endlabel881: ;
+return 4;
+}
+unsigned long REGPARAM2 op_51d0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ int val = cctrue(1) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_51d8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ int val = cctrue(1) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_51e0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ int val = cctrue(1) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_51e8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(1) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_51f0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ int val = cctrue(1) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_51f8_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(1) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_51f9_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = get_ilong(2);
+{ int val = cctrue(1) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_52c0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{{ int val = cctrue(2) ? 0xff : 0;
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_52c8_3(uae_u32 opcode) /* DBcc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 offs = get_iword(2);
+ if (!cctrue(2)) {
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
+ if (src) {
+ m68k_incpc((uae_s32)offs + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel890;
+ }
+ }
+}}}m68k_incpc(4);
+endlabel890: ;
+return 4;
+}
+unsigned long REGPARAM2 op_52d0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ int val = cctrue(2) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_52d8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ int val = cctrue(2) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_52e0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ int val = cctrue(2) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_52e8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(2) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_52f0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ int val = cctrue(2) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_52f8_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(2) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_52f9_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = get_ilong(2);
+{ int val = cctrue(2) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_53c0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{{ int val = cctrue(3) ? 0xff : 0;
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_53c8_3(uae_u32 opcode) /* DBcc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 offs = get_iword(2);
+ if (!cctrue(3)) {
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
+ if (src) {
+ m68k_incpc((uae_s32)offs + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel899;
+ }
+ }
+}}}m68k_incpc(4);
+endlabel899: ;
+return 4;
+}
+unsigned long REGPARAM2 op_53d0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ int val = cctrue(3) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_53d8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ int val = cctrue(3) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_53e0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ int val = cctrue(3) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_53e8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(3) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_53f0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ int val = cctrue(3) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_53f8_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(3) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_53f9_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = get_ilong(2);
+{ int val = cctrue(3) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_54c0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{{ int val = cctrue(4) ? 0xff : 0;
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_54c8_3(uae_u32 opcode) /* DBcc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 offs = get_iword(2);
+ if (!cctrue(4)) {
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
+ if (src) {
+ m68k_incpc((uae_s32)offs + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel908;
+ }
+ }
+}}}m68k_incpc(4);
+endlabel908: ;
+return 4;
+}
+unsigned long REGPARAM2 op_54d0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ int val = cctrue(4) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_54d8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ int val = cctrue(4) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_54e0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ int val = cctrue(4) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_54e8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(4) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_54f0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ int val = cctrue(4) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_54f8_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(4) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_54f9_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = get_ilong(2);
+{ int val = cctrue(4) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_55c0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{{ int val = cctrue(5) ? 0xff : 0;
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_55c8_3(uae_u32 opcode) /* DBcc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 offs = get_iword(2);
+ if (!cctrue(5)) {
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
+ if (src) {
+ m68k_incpc((uae_s32)offs + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel917;
+ }
+ }
+}}}m68k_incpc(4);
+endlabel917: ;
+return 4;
+}
+unsigned long REGPARAM2 op_55d0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ int val = cctrue(5) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_55d8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ int val = cctrue(5) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_55e0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ int val = cctrue(5) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_55e8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(5) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_55f0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ int val = cctrue(5) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_55f8_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(5) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_55f9_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = get_ilong(2);
+{ int val = cctrue(5) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_56c0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{{ int val = cctrue(6) ? 0xff : 0;
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_56c8_3(uae_u32 opcode) /* DBcc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 offs = get_iword(2);
+ if (!cctrue(6)) {
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
+ if (src) {
+ m68k_incpc((uae_s32)offs + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel926;
+ }
+ }
+}}}m68k_incpc(4);
+endlabel926: ;
+return 4;
+}
+unsigned long REGPARAM2 op_56d0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ int val = cctrue(6) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_56d8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ int val = cctrue(6) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_56e0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ int val = cctrue(6) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_56e8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(6) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_56f0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ int val = cctrue(6) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_56f8_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(6) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_56f9_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = get_ilong(2);
+{ int val = cctrue(6) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_57c0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{{ int val = cctrue(7) ? 0xff : 0;
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_57c8_3(uae_u32 opcode) /* DBcc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 offs = get_iword(2);
+ if (!cctrue(7)) {
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
+ if (src) {
+ m68k_incpc((uae_s32)offs + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel935;
+ }
+ }
+}}}m68k_incpc(4);
+endlabel935: ;
+return 4;
+}
+unsigned long REGPARAM2 op_57d0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ int val = cctrue(7) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_57d8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ int val = cctrue(7) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_57e0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ int val = cctrue(7) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_57e8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(7) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_57f0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ int val = cctrue(7) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_57f8_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(7) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_57f9_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = get_ilong(2);
+{ int val = cctrue(7) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_58c0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{{ int val = cctrue(8) ? 0xff : 0;
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_58c8_3(uae_u32 opcode) /* DBcc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 offs = get_iword(2);
+ if (!cctrue(8)) {
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
+ if (src) {
+ m68k_incpc((uae_s32)offs + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel944;
+ }
+ }
+}}}m68k_incpc(4);
+endlabel944: ;
+return 4;
+}
+unsigned long REGPARAM2 op_58d0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ int val = cctrue(8) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_58d8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ int val = cctrue(8) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_58e0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ int val = cctrue(8) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_58e8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(8) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_58f0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ int val = cctrue(8) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_58f8_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(8) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_58f9_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = get_ilong(2);
+{ int val = cctrue(8) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_59c0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{{ int val = cctrue(9) ? 0xff : 0;
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_59c8_3(uae_u32 opcode) /* DBcc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 offs = get_iword(2);
+ if (!cctrue(9)) {
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
+ if (src) {
+ m68k_incpc((uae_s32)offs + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel953;
+ }
+ }
+}}}m68k_incpc(4);
+endlabel953: ;
+return 4;
+}
+unsigned long REGPARAM2 op_59d0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ int val = cctrue(9) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_59d8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ int val = cctrue(9) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_59e0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ int val = cctrue(9) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_59e8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(9) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_59f0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ int val = cctrue(9) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_59f8_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(9) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_59f9_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = get_ilong(2);
+{ int val = cctrue(9) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_5ac0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{{ int val = cctrue(10) ? 0xff : 0;
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_5ac8_3(uae_u32 opcode) /* DBcc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 offs = get_iword(2);
+ if (!cctrue(10)) {
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
+ if (src) {
+ m68k_incpc((uae_s32)offs + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel962;
+ }
+ }
+}}}m68k_incpc(4);
+endlabel962: ;
+return 4;
+}
+unsigned long REGPARAM2 op_5ad0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ int val = cctrue(10) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_5ad8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ int val = cctrue(10) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_5ae0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ int val = cctrue(10) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_5ae8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(10) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_5af0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ int val = cctrue(10) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_5af8_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(10) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_5af9_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = get_ilong(2);
+{ int val = cctrue(10) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_5bc0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{{ int val = cctrue(11) ? 0xff : 0;
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_5bc8_3(uae_u32 opcode) /* DBcc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 offs = get_iword(2);
+ if (!cctrue(11)) {
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
+ if (src) {
+ m68k_incpc((uae_s32)offs + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel971;
+ }
+ }
+}}}m68k_incpc(4);
+endlabel971: ;
+return 4;
+}
+unsigned long REGPARAM2 op_5bd0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ int val = cctrue(11) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_5bd8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ int val = cctrue(11) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_5be0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ int val = cctrue(11) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_5be8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(11) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_5bf0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ int val = cctrue(11) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_5bf8_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(11) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_5bf9_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = get_ilong(2);
+{ int val = cctrue(11) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_5cc0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{{ int val = cctrue(12) ? 0xff : 0;
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_5cc8_3(uae_u32 opcode) /* DBcc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 offs = get_iword(2);
+ if (!cctrue(12)) {
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
+ if (src) {
+ m68k_incpc((uae_s32)offs + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel980;
+ }
+ }
+}}}m68k_incpc(4);
+endlabel980: ;
+return 4;
+}
+unsigned long REGPARAM2 op_5cd0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ int val = cctrue(12) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_5cd8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ int val = cctrue(12) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_5ce0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ int val = cctrue(12) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_5ce8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(12) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_5cf0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ int val = cctrue(12) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_5cf8_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(12) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_5cf9_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = get_ilong(2);
+{ int val = cctrue(12) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_5dc0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{{ int val = cctrue(13) ? 0xff : 0;
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_5dc8_3(uae_u32 opcode) /* DBcc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 offs = get_iword(2);
+ if (!cctrue(13)) {
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
+ if (src) {
+ m68k_incpc((uae_s32)offs + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel989;
+ }
+ }
+}}}m68k_incpc(4);
+endlabel989: ;
+return 4;
+}
+unsigned long REGPARAM2 op_5dd0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ int val = cctrue(13) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_5dd8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ int val = cctrue(13) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_5de0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ int val = cctrue(13) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_5de8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(13) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_5df0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ int val = cctrue(13) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_5df8_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(13) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_5df9_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = get_ilong(2);
+{ int val = cctrue(13) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_5ec0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{{ int val = cctrue(14) ? 0xff : 0;
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_5ec8_3(uae_u32 opcode) /* DBcc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 offs = get_iword(2);
+ if (!cctrue(14)) {
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
+ if (src) {
+ m68k_incpc((uae_s32)offs + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel998;
+ }
+ }
+}}}m68k_incpc(4);
+endlabel998: ;
+return 4;
+}
+unsigned long REGPARAM2 op_5ed0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ int val = cctrue(14) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_5ed8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ int val = cctrue(14) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_5ee0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ int val = cctrue(14) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_5ee8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(14) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_5ef0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ int val = cctrue(14) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_5ef8_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(14) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_5ef9_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = get_ilong(2);
+{ int val = cctrue(14) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(6);
+return 8;
+}
+#endif
+
+#ifdef PART_6
+unsigned long REGPARAM2 op_5fc0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{{ int val = cctrue(15) ? 0xff : 0;
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_5fc8_3(uae_u32 opcode) /* DBcc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 offs = get_iword(2);
+ if (!cctrue(15)) {
+ m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
+ if (src) {
+ m68k_incpc((uae_s32)offs + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1007;
+ }
+ }
+}}}m68k_incpc(4);
+endlabel1007: ;
+return 4;
+}
+unsigned long REGPARAM2 op_5fd0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ int val = cctrue(15) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_5fd8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ int val = cctrue(15) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_5fe0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ int val = cctrue(15) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_5fe8_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(15) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_5ff0_3(uae_u32 opcode) /* Scc */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ int val = cctrue(15) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_5ff8_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ int val = cctrue(15) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_5ff9_3(uae_u32 opcode) /* Scc */
+{
+{{ uaecptr srca = get_ilong(2);
+{ int val = cctrue(15) ? 0xff : 0;
+ put_byte(srca,val);
+}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_6000_3(uae_u32 opcode) /* Bcc */
+{
+{{ uae_s16 src = get_iword(2);
+ if (!cctrue(0)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1015;
+didnt_jump:;
+}}m68k_incpc(4);
+endlabel1015: ;
+return 4;
+}
+unsigned long REGPARAM2 op_6001_3(uae_u32 opcode) /* Bcc */
+{
+ uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
+{{ uae_u32 src = srcreg;
+ if (!cctrue(0)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1016;
+didnt_jump:;
+}}m68k_incpc(2);
+endlabel1016: ;
+return 2;
+}
+unsigned long REGPARAM2 op_60ff_3(uae_u32 opcode) /* Bcc */
+{
+{ m68k_incpc(2);
+ if (!cctrue(0)) goto endlabel1017;
+ last_addr_for_exception_3 = m68k_getpc() + 2;
+ last_fault_for_exception_3 = m68k_getpc() + 1;
+ last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1017;
+{ uae_s32 src = get_ilong(2);
+ if (!cctrue(0)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1017;
+didnt_jump:;
+}}m68k_incpc(6);
+endlabel1017: ;
+return 6;
+}
+unsigned long REGPARAM2 op_6100_3(uae_u32 opcode) /* BSR */
+{
+{{ uae_s16 src = get_iword(2);
+ uae_s32 s = (uae_s32)src + 2;
+ m68k_do_bsr(m68k_getpc() + 4, s);
+}}return 4;
+}
+unsigned long REGPARAM2 op_6101_3(uae_u32 opcode) /* BSR */
+{
+ uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
+{{ uae_u32 src = srcreg;
+ uae_s32 s = (uae_s32)src + 2;
+ m68k_do_bsr(m68k_getpc() + 2, s);
+}}return 2;
+}
+unsigned long REGPARAM2 op_61ff_3(uae_u32 opcode) /* BSR */
+{
+{{ uae_s32 src = get_ilong(2);
+ uae_s32 s = (uae_s32)src + 2;
+ m68k_do_bsr(m68k_getpc() + 6, s);
+}}return 6;
+}
+unsigned long REGPARAM2 op_6200_3(uae_u32 opcode) /* Bcc */
+{
+{{ uae_s16 src = get_iword(2);
+ if (!cctrue(2)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1021;
+didnt_jump:;
+}}m68k_incpc(4);
+endlabel1021: ;
+return 4;
+}
+unsigned long REGPARAM2 op_6201_3(uae_u32 opcode) /* Bcc */
+{
+ uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
+{{ uae_u32 src = srcreg;
+ if (!cctrue(2)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1022;
+didnt_jump:;
+}}m68k_incpc(2);
+endlabel1022: ;
+return 2;
+}
+unsigned long REGPARAM2 op_62ff_3(uae_u32 opcode) /* Bcc */
+{
+{ m68k_incpc(2);
+ if (!cctrue(2)) goto endlabel1023;
+ last_addr_for_exception_3 = m68k_getpc() + 2;
+ last_fault_for_exception_3 = m68k_getpc() + 1;
+ last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1023;
+{ uae_s32 src = get_ilong(2);
+ if (!cctrue(2)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1023;
+didnt_jump:;
+}}m68k_incpc(6);
+endlabel1023: ;
+return 6;
+}
+unsigned long REGPARAM2 op_6300_3(uae_u32 opcode) /* Bcc */
+{
+{{ uae_s16 src = get_iword(2);
+ if (!cctrue(3)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1024;
+didnt_jump:;
+}}m68k_incpc(4);
+endlabel1024: ;
+return 4;
+}
+unsigned long REGPARAM2 op_6301_3(uae_u32 opcode) /* Bcc */
+{
+ uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
+{{ uae_u32 src = srcreg;
+ if (!cctrue(3)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1025;
+didnt_jump:;
+}}m68k_incpc(2);
+endlabel1025: ;
+return 2;
+}
+unsigned long REGPARAM2 op_63ff_3(uae_u32 opcode) /* Bcc */
+{
+{ m68k_incpc(2);
+ if (!cctrue(3)) goto endlabel1026;
+ last_addr_for_exception_3 = m68k_getpc() + 2;
+ last_fault_for_exception_3 = m68k_getpc() + 1;
+ last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1026;
+{ uae_s32 src = get_ilong(2);
+ if (!cctrue(3)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1026;
+didnt_jump:;
+}}m68k_incpc(6);
+endlabel1026: ;
+return 6;
+}
+unsigned long REGPARAM2 op_6400_3(uae_u32 opcode) /* Bcc */
+{
+{{ uae_s16 src = get_iword(2);
+ if (!cctrue(4)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1027;
+didnt_jump:;
+}}m68k_incpc(4);
+endlabel1027: ;
+return 4;
+}
+unsigned long REGPARAM2 op_6401_3(uae_u32 opcode) /* Bcc */
+{
+ uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
+{{ uae_u32 src = srcreg;
+ if (!cctrue(4)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1028;
+didnt_jump:;
+}}m68k_incpc(2);
+endlabel1028: ;
+return 2;
+}
+unsigned long REGPARAM2 op_64ff_3(uae_u32 opcode) /* Bcc */
+{
+{ m68k_incpc(2);
+ if (!cctrue(4)) goto endlabel1029;
+ last_addr_for_exception_3 = m68k_getpc() + 2;
+ last_fault_for_exception_3 = m68k_getpc() + 1;
+ last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1029;
+{ uae_s32 src = get_ilong(2);
+ if (!cctrue(4)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1029;
+didnt_jump:;
+}}m68k_incpc(6);
+endlabel1029: ;
+return 6;
+}
+unsigned long REGPARAM2 op_6500_3(uae_u32 opcode) /* Bcc */
+{
+{{ uae_s16 src = get_iword(2);
+ if (!cctrue(5)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1030;
+didnt_jump:;
+}}m68k_incpc(4);
+endlabel1030: ;
+return 4;
+}
+unsigned long REGPARAM2 op_6501_3(uae_u32 opcode) /* Bcc */
+{
+ uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
+{{ uae_u32 src = srcreg;
+ if (!cctrue(5)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1031;
+didnt_jump:;
+}}m68k_incpc(2);
+endlabel1031: ;
+return 2;
+}
+unsigned long REGPARAM2 op_65ff_3(uae_u32 opcode) /* Bcc */
+{
+{ m68k_incpc(2);
+ if (!cctrue(5)) goto endlabel1032;
+ last_addr_for_exception_3 = m68k_getpc() + 2;
+ last_fault_for_exception_3 = m68k_getpc() + 1;
+ last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1032;
+{ uae_s32 src = get_ilong(2);
+ if (!cctrue(5)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1032;
+didnt_jump:;
+}}m68k_incpc(6);
+endlabel1032: ;
+return 6;
+}
+unsigned long REGPARAM2 op_6600_3(uae_u32 opcode) /* Bcc */
+{
+{{ uae_s16 src = get_iword(2);
+ if (!cctrue(6)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1033;
+didnt_jump:;
+}}m68k_incpc(4);
+endlabel1033: ;
+return 4;
+}
+unsigned long REGPARAM2 op_6601_3(uae_u32 opcode) /* Bcc */
+{
+ uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
+{{ uae_u32 src = srcreg;
+ if (!cctrue(6)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1034;
+didnt_jump:;
+}}m68k_incpc(2);
+endlabel1034: ;
+return 2;
+}
+unsigned long REGPARAM2 op_66ff_3(uae_u32 opcode) /* Bcc */
+{
+{ m68k_incpc(2);
+ if (!cctrue(6)) goto endlabel1035;
+ last_addr_for_exception_3 = m68k_getpc() + 2;
+ last_fault_for_exception_3 = m68k_getpc() + 1;
+ last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1035;
+{ uae_s32 src = get_ilong(2);
+ if (!cctrue(6)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1035;
+didnt_jump:;
+}}m68k_incpc(6);
+endlabel1035: ;
+return 6;
+}
+unsigned long REGPARAM2 op_6700_3(uae_u32 opcode) /* Bcc */
+{
+{{ uae_s16 src = get_iword(2);
+ if (!cctrue(7)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1036;
+didnt_jump:;
+}}m68k_incpc(4);
+endlabel1036: ;
+return 4;
+}
+unsigned long REGPARAM2 op_6701_3(uae_u32 opcode) /* Bcc */
+{
+ uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
+{{ uae_u32 src = srcreg;
+ if (!cctrue(7)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1037;
+didnt_jump:;
+}}m68k_incpc(2);
+endlabel1037: ;
+return 2;
+}
+unsigned long REGPARAM2 op_67ff_3(uae_u32 opcode) /* Bcc */
+{
+{ m68k_incpc(2);
+ if (!cctrue(7)) goto endlabel1038;
+ last_addr_for_exception_3 = m68k_getpc() + 2;
+ last_fault_for_exception_3 = m68k_getpc() + 1;
+ last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1038;
+{ uae_s32 src = get_ilong(2);
+ if (!cctrue(7)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1038;
+didnt_jump:;
+}}m68k_incpc(6);
+endlabel1038: ;
+return 6;
+}
+unsigned long REGPARAM2 op_6800_3(uae_u32 opcode) /* Bcc */
+{
+{{ uae_s16 src = get_iword(2);
+ if (!cctrue(8)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1039;
+didnt_jump:;
+}}m68k_incpc(4);
+endlabel1039: ;
+return 4;
+}
+unsigned long REGPARAM2 op_6801_3(uae_u32 opcode) /* Bcc */
+{
+ uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
+{{ uae_u32 src = srcreg;
+ if (!cctrue(8)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1040;
+didnt_jump:;
+}}m68k_incpc(2);
+endlabel1040: ;
+return 2;
+}
+unsigned long REGPARAM2 op_68ff_3(uae_u32 opcode) /* Bcc */
+{
+{ m68k_incpc(2);
+ if (!cctrue(8)) goto endlabel1041;
+ last_addr_for_exception_3 = m68k_getpc() + 2;
+ last_fault_for_exception_3 = m68k_getpc() + 1;
+ last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1041;
+{ uae_s32 src = get_ilong(2);
+ if (!cctrue(8)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1041;
+didnt_jump:;
+}}m68k_incpc(6);
+endlabel1041: ;
+return 6;
+}
+unsigned long REGPARAM2 op_6900_3(uae_u32 opcode) /* Bcc */
+{
+{{ uae_s16 src = get_iword(2);
+ if (!cctrue(9)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1042;
+didnt_jump:;
+}}m68k_incpc(4);
+endlabel1042: ;
+return 4;
+}
+unsigned long REGPARAM2 op_6901_3(uae_u32 opcode) /* Bcc */
+{
+ uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
+{{ uae_u32 src = srcreg;
+ if (!cctrue(9)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1043;
+didnt_jump:;
+}}m68k_incpc(2);
+endlabel1043: ;
+return 2;
+}
+unsigned long REGPARAM2 op_69ff_3(uae_u32 opcode) /* Bcc */
+{
+{ m68k_incpc(2);
+ if (!cctrue(9)) goto endlabel1044;
+ last_addr_for_exception_3 = m68k_getpc() + 2;
+ last_fault_for_exception_3 = m68k_getpc() + 1;
+ last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1044;
+{ uae_s32 src = get_ilong(2);
+ if (!cctrue(9)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1044;
+didnt_jump:;
+}}m68k_incpc(6);
+endlabel1044: ;
+return 6;
+}
+unsigned long REGPARAM2 op_6a00_3(uae_u32 opcode) /* Bcc */
+{
+{{ uae_s16 src = get_iword(2);
+ if (!cctrue(10)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1045;
+didnt_jump:;
+}}m68k_incpc(4);
+endlabel1045: ;
+return 4;
+}
+unsigned long REGPARAM2 op_6a01_3(uae_u32 opcode) /* Bcc */
+{
+ uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
+{{ uae_u32 src = srcreg;
+ if (!cctrue(10)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1046;
+didnt_jump:;
+}}m68k_incpc(2);
+endlabel1046: ;
+return 2;
+}
+unsigned long REGPARAM2 op_6aff_3(uae_u32 opcode) /* Bcc */
+{
+{ m68k_incpc(2);
+ if (!cctrue(10)) goto endlabel1047;
+ last_addr_for_exception_3 = m68k_getpc() + 2;
+ last_fault_for_exception_3 = m68k_getpc() + 1;
+ last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1047;
+{ uae_s32 src = get_ilong(2);
+ if (!cctrue(10)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1047;
+didnt_jump:;
+}}m68k_incpc(6);
+endlabel1047: ;
+return 6;
+}
+unsigned long REGPARAM2 op_6b00_3(uae_u32 opcode) /* Bcc */
+{
+{{ uae_s16 src = get_iword(2);
+ if (!cctrue(11)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1048;
+didnt_jump:;
+}}m68k_incpc(4);
+endlabel1048: ;
+return 4;
+}
+unsigned long REGPARAM2 op_6b01_3(uae_u32 opcode) /* Bcc */
+{
+ uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
+{{ uae_u32 src = srcreg;
+ if (!cctrue(11)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1049;
+didnt_jump:;
+}}m68k_incpc(2);
+endlabel1049: ;
+return 2;
+}
+unsigned long REGPARAM2 op_6bff_3(uae_u32 opcode) /* Bcc */
+{
+{ m68k_incpc(2);
+ if (!cctrue(11)) goto endlabel1050;
+ last_addr_for_exception_3 = m68k_getpc() + 2;
+ last_fault_for_exception_3 = m68k_getpc() + 1;
+ last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1050;
+{ uae_s32 src = get_ilong(2);
+ if (!cctrue(11)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1050;
+didnt_jump:;
+}}m68k_incpc(6);
+endlabel1050: ;
+return 6;
+}
+unsigned long REGPARAM2 op_6c00_3(uae_u32 opcode) /* Bcc */
+{
+{{ uae_s16 src = get_iword(2);
+ if (!cctrue(12)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1051;
+didnt_jump:;
+}}m68k_incpc(4);
+endlabel1051: ;
+return 4;
+}
+unsigned long REGPARAM2 op_6c01_3(uae_u32 opcode) /* Bcc */
+{
+ uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
+{{ uae_u32 src = srcreg;
+ if (!cctrue(12)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1052;
+didnt_jump:;
+}}m68k_incpc(2);
+endlabel1052: ;
+return 2;
+}
+unsigned long REGPARAM2 op_6cff_3(uae_u32 opcode) /* Bcc */
+{
+{ m68k_incpc(2);
+ if (!cctrue(12)) goto endlabel1053;
+ last_addr_for_exception_3 = m68k_getpc() + 2;
+ last_fault_for_exception_3 = m68k_getpc() + 1;
+ last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1053;
+{ uae_s32 src = get_ilong(2);
+ if (!cctrue(12)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1053;
+didnt_jump:;
+}}m68k_incpc(6);
+endlabel1053: ;
+return 6;
+}
+unsigned long REGPARAM2 op_6d00_3(uae_u32 opcode) /* Bcc */
+{
+{{ uae_s16 src = get_iword(2);
+ if (!cctrue(13)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1054;
+didnt_jump:;
+}}m68k_incpc(4);
+endlabel1054: ;
+return 4;
+}
+unsigned long REGPARAM2 op_6d01_3(uae_u32 opcode) /* Bcc */
+{
+ uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
+{{ uae_u32 src = srcreg;
+ if (!cctrue(13)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1055;
+didnt_jump:;
+}}m68k_incpc(2);
+endlabel1055: ;
+return 2;
+}
+unsigned long REGPARAM2 op_6dff_3(uae_u32 opcode) /* Bcc */
+{
+{ m68k_incpc(2);
+ if (!cctrue(13)) goto endlabel1056;
+ last_addr_for_exception_3 = m68k_getpc() + 2;
+ last_fault_for_exception_3 = m68k_getpc() + 1;
+ last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1056;
+{ uae_s32 src = get_ilong(2);
+ if (!cctrue(13)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1056;
+didnt_jump:;
+}}m68k_incpc(6);
+endlabel1056: ;
+return 6;
+}
+unsigned long REGPARAM2 op_6e00_3(uae_u32 opcode) /* Bcc */
+{
+{{ uae_s16 src = get_iword(2);
+ if (!cctrue(14)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1057;
+didnt_jump:;
+}}m68k_incpc(4);
+endlabel1057: ;
+return 4;
+}
+unsigned long REGPARAM2 op_6e01_3(uae_u32 opcode) /* Bcc */
+{
+ uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
+{{ uae_u32 src = srcreg;
+ if (!cctrue(14)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1058;
+didnt_jump:;
+}}m68k_incpc(2);
+endlabel1058: ;
+return 2;
+}
+unsigned long REGPARAM2 op_6eff_3(uae_u32 opcode) /* Bcc */
+{
+{ m68k_incpc(2);
+ if (!cctrue(14)) goto endlabel1059;
+ last_addr_for_exception_3 = m68k_getpc() + 2;
+ last_fault_for_exception_3 = m68k_getpc() + 1;
+ last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1059;
+{ uae_s32 src = get_ilong(2);
+ if (!cctrue(14)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1059;
+didnt_jump:;
+}}m68k_incpc(6);
+endlabel1059: ;
+return 6;
+}
+unsigned long REGPARAM2 op_6f00_3(uae_u32 opcode) /* Bcc */
+{
+{{ uae_s16 src = get_iword(2);
+ if (!cctrue(15)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1060;
+didnt_jump:;
+}}m68k_incpc(4);
+endlabel1060: ;
+return 4;
+}
+unsigned long REGPARAM2 op_6f01_3(uae_u32 opcode) /* Bcc */
+{
+ uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
+{{ uae_u32 src = srcreg;
+ if (!cctrue(15)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1061;
+didnt_jump:;
+}}m68k_incpc(2);
+endlabel1061: ;
+return 2;
+}
+unsigned long REGPARAM2 op_6fff_3(uae_u32 opcode) /* Bcc */
+{
+{ m68k_incpc(2);
+ if (!cctrue(15)) goto endlabel1062;
+ last_addr_for_exception_3 = m68k_getpc() + 2;
+ last_fault_for_exception_3 = m68k_getpc() + 1;
+ last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1062;
+{ uae_s32 src = get_ilong(2);
+ if (!cctrue(15)) goto didnt_jump;
+ m68k_incpc ((uae_s32)src + 2);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2);
+#endif
+ goto endlabel1062;
+didnt_jump:;
+}}m68k_incpc(6);
+endlabel1062: ;
+return 6;
+}
+unsigned long REGPARAM2 op_7000_3(uae_u32 opcode) /* MOVE */
+{
+ uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_u32 src = srcreg;
+{ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_8000_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_8010_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_8018_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_8020_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+{ uae_s8 src = get_byte(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_8028_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_8030_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_8038_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_8039_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_803a_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_803b_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_803c_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_8040_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_8050_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_8058_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_8060_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_8068_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_8070_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_8078_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_8079_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_807a_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_807b_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_807c_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = get_iword(2);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_8080_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_8090_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_8098_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+ m68k_areg(regs, srcreg) += 4;
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_80a0_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
+{ uae_s32 src = get_long(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_80a8_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_80b0_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_80b8_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_80b9_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_80ba_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_80bb_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_80bc_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_80c0_3(uae_u32 opcode) /* DIVU */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if(src == 0) { Exception(5,oldpc); goto endlabel1097; } else {
+ uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
+ uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
+ if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
+ {
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ newv = (newv & 0xffff) | ((uae_u32)rem << 16);
+ m68k_dreg(regs, dstreg) = (newv);
+ }
+ }
+}}}m68k_incpc(2);
+endlabel1097: ;
+return 70;
+}
+unsigned long REGPARAM2 op_80d0_3(uae_u32 opcode) /* DIVU */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if(src == 0) { Exception(5,oldpc); goto endlabel1098; } else {
+ uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
+ uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
+ if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
+ {
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ newv = (newv & 0xffff) | ((uae_u32)rem << 16);
+ m68k_dreg(regs, dstreg) = (newv);
+ }
+ }
+}}}}m68k_incpc(2);
+endlabel1098: ;
+return 72;
+}
+unsigned long REGPARAM2 op_80d8_3(uae_u32 opcode) /* DIVU */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if(src == 0) { Exception(5,oldpc); goto endlabel1099; } else {
+ uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
+ uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
+ if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
+ {
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ newv = (newv & 0xffff) | ((uae_u32)rem << 16);
+ m68k_dreg(regs, dstreg) = (newv);
+ }
+ }
+}}}}m68k_incpc(2);
+endlabel1099: ;
+return 72;
+}
+unsigned long REGPARAM2 op_80e0_3(uae_u32 opcode) /* DIVU */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if(src == 0) { Exception(5,oldpc); goto endlabel1100; } else {
+ uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
+ uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
+ if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
+ {
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ newv = (newv & 0xffff) | ((uae_u32)rem << 16);
+ m68k_dreg(regs, dstreg) = (newv);
+ }
+ }
+}}}}m68k_incpc(2);
+endlabel1100: ;
+return 72;
+}
+unsigned long REGPARAM2 op_80e8_3(uae_u32 opcode) /* DIVU */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if(src == 0) { Exception(5,oldpc); goto endlabel1101; } else {
+ uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
+ uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
+ if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
+ {
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ newv = (newv & 0xffff) | ((uae_u32)rem << 16);
+ m68k_dreg(regs, dstreg) = (newv);
+ }
+ }
+}}}}m68k_incpc(4);
+endlabel1101: ;
+return 74;
+}
+unsigned long REGPARAM2 op_80f0_3(uae_u32 opcode) /* DIVU */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if(src == 0) { Exception(5,oldpc); goto endlabel1102; } else {
+ uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
+ uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
+ if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
+ {
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ newv = (newv & 0xffff) | ((uae_u32)rem << 16);
+ m68k_dreg(regs, dstreg) = (newv);
+ }
+ }
+}}}}m68k_incpc(4);
+endlabel1102: ;
+return 74;
+}
+unsigned long REGPARAM2 op_80f8_3(uae_u32 opcode) /* DIVU */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if(src == 0) { Exception(5,oldpc); goto endlabel1103; } else {
+ uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
+ uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
+ if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
+ {
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ newv = (newv & 0xffff) | ((uae_u32)rem << 16);
+ m68k_dreg(regs, dstreg) = (newv);
+ }
+ }
+}}}}m68k_incpc(4);
+endlabel1103: ;
+return 74;
+}
+unsigned long REGPARAM2 op_80f9_3(uae_u32 opcode) /* DIVU */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if(src == 0) { Exception(5,oldpc); goto endlabel1104; } else {
+ uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
+ uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
+ if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
+ {
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ newv = (newv & 0xffff) | ((uae_u32)rem << 16);
+ m68k_dreg(regs, dstreg) = (newv);
+ }
+ }
+}}}}m68k_incpc(6);
+endlabel1104: ;
+return 76;
+}
+unsigned long REGPARAM2 op_80fa_3(uae_u32 opcode) /* DIVU */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if(src == 0) { Exception(5,oldpc); goto endlabel1105; } else {
+ uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
+ uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
+ if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
+ {
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ newv = (newv & 0xffff) | ((uae_u32)rem << 16);
+ m68k_dreg(regs, dstreg) = (newv);
+ }
+ }
+}}}}m68k_incpc(4);
+endlabel1105: ;
+return 74;
+}
+unsigned long REGPARAM2 op_80fb_3(uae_u32 opcode) /* DIVU */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if(src == 0) { Exception(5,oldpc); goto endlabel1106; } else {
+ uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
+ uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
+ if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
+ {
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ newv = (newv & 0xffff) | ((uae_u32)rem << 16);
+ m68k_dreg(regs, dstreg) = (newv);
+ }
+ }
+}}}}m68k_incpc(4);
+endlabel1106: ;
+return 74;
+}
+unsigned long REGPARAM2 op_80fc_3(uae_u32 opcode) /* DIVU */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uae_s16 src = get_iword(2);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if(src == 0) { Exception(5,oldpc); goto endlabel1107; } else {
+ uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
+ uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
+ if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
+ {
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ newv = (newv & 0xffff) | ((uae_u32)rem << 16);
+ m68k_dreg(regs, dstreg) = (newv);
+ }
+ }
+}}}m68k_incpc(4);
+endlabel1107: ;
+return 72;
+}
+unsigned long REGPARAM2 op_8100_3(uae_u32 opcode) /* SBCD */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{ uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG ? 1 : 0);
+ uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0);
+ uae_u16 newv;
+ int cflg;
+ if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; }
+ newv = newv_hi + (newv_lo & 0xF); SET_CFLG (cflg = (newv_hi & 0x1F0) > 0x90);
+ COPY_CARRY;
+ if (cflg) newv -= 0x60;
+ SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
+ SET_NFLG (((uae_s8)(newv)) < 0);
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_8108_3(uae_u32 opcode) /* SBCD */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+{ uae_s8 src = get_byte(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG ? 1 : 0);
+ uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0);
+ uae_u16 newv;
+ int cflg;
+ if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; }
+ newv = newv_hi + (newv_lo & 0xF); SET_CFLG (cflg = (newv_hi & 0x1F0) > 0x90);
+ COPY_CARRY;
+ if (cflg) newv -= 0x60;
+ SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
+ SET_NFLG (((uae_s8)(newv)) < 0);
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 8;
+}
+unsigned long REGPARAM2 op_8110_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_8118_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_8120_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_8128_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 dst = get_byte(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_8130_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+{ uae_s8 dst = get_byte(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_8138_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 dst = get_byte(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_8139_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_ilong(2);
+{ uae_s8 dst = get_byte(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_8150_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_8158_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg(regs, dstreg) += 2;
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_8160_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_8168_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 dst = get_word(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_8170_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+{ uae_s16 dst = get_word(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_8178_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 dst = get_word(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_8179_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_ilong(2);
+{ uae_s16 dst = get_word(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_8190_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_8198_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg(regs, dstreg) += 4;
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_81a0_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_81a8_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 dst = get_long(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_81b0_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+{ uae_s32 dst = get_long(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_81b8_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 dst = get_long(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_81b9_3(uae_u32 opcode) /* OR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_ilong(2);
+{ uae_s32 dst = get_long(dsta);
+ src |= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_81c0_3(uae_u32 opcode) /* DIVS */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if(src == 0) { Exception(5,oldpc); goto endlabel1131; } else {
+ uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
+ uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
+ if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
+ {
+ if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ newv = (newv & 0xffff) | ((uae_u32)rem << 16);
+ m68k_dreg(regs, dstreg) = (newv);
+ }
+ }
+}}}m68k_incpc(2);
+endlabel1131: ;
+return 74;
+}
+unsigned long REGPARAM2 op_81d0_3(uae_u32 opcode) /* DIVS */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if(src == 0) { Exception(5,oldpc); goto endlabel1132; } else {
+ uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
+ uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
+ if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
+ {
+ if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ newv = (newv & 0xffff) | ((uae_u32)rem << 16);
+ m68k_dreg(regs, dstreg) = (newv);
+ }
+ }
+}}}}m68k_incpc(2);
+endlabel1132: ;
+return 76;
+}
+unsigned long REGPARAM2 op_81d8_3(uae_u32 opcode) /* DIVS */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if(src == 0) { Exception(5,oldpc); goto endlabel1133; } else {
+ uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
+ uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
+ if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
+ {
+ if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ newv = (newv & 0xffff) | ((uae_u32)rem << 16);
+ m68k_dreg(regs, dstreg) = (newv);
+ }
+ }
+}}}}m68k_incpc(2);
+endlabel1133: ;
+return 76;
+}
+unsigned long REGPARAM2 op_81e0_3(uae_u32 opcode) /* DIVS */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if(src == 0) { Exception(5,oldpc); goto endlabel1134; } else {
+ uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
+ uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
+ if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
+ {
+ if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ newv = (newv & 0xffff) | ((uae_u32)rem << 16);
+ m68k_dreg(regs, dstreg) = (newv);
+ }
+ }
+}}}}m68k_incpc(2);
+endlabel1134: ;
+return 76;
+}
+unsigned long REGPARAM2 op_81e8_3(uae_u32 opcode) /* DIVS */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if(src == 0) { Exception(5,oldpc); goto endlabel1135; } else {
+ uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
+ uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
+ if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
+ {
+ if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ newv = (newv & 0xffff) | ((uae_u32)rem << 16);
+ m68k_dreg(regs, dstreg) = (newv);
+ }
+ }
+}}}}m68k_incpc(4);
+endlabel1135: ;
+return 78;
+}
+unsigned long REGPARAM2 op_81f0_3(uae_u32 opcode) /* DIVS */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if(src == 0) { Exception(5,oldpc); goto endlabel1136; } else {
+ uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
+ uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
+ if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
+ {
+ if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ newv = (newv & 0xffff) | ((uae_u32)rem << 16);
+ m68k_dreg(regs, dstreg) = (newv);
+ }
+ }
+}}}}m68k_incpc(4);
+endlabel1136: ;
+return 78;
+}
+unsigned long REGPARAM2 op_81f8_3(uae_u32 opcode) /* DIVS */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if(src == 0) { Exception(5,oldpc); goto endlabel1137; } else {
+ uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
+ uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
+ if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
+ {
+ if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ newv = (newv & 0xffff) | ((uae_u32)rem << 16);
+ m68k_dreg(regs, dstreg) = (newv);
+ }
+ }
+}}}}m68k_incpc(4);
+endlabel1137: ;
+return 78;
+}
+unsigned long REGPARAM2 op_81f9_3(uae_u32 opcode) /* DIVS */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if(src == 0) { Exception(5,oldpc); goto endlabel1138; } else {
+ uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
+ uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
+ if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
+ {
+ if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ newv = (newv & 0xffff) | ((uae_u32)rem << 16);
+ m68k_dreg(regs, dstreg) = (newv);
+ }
+ }
+}}}}m68k_incpc(6);
+endlabel1138: ;
+return 80;
+}
+unsigned long REGPARAM2 op_81fa_3(uae_u32 opcode) /* DIVS */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if(src == 0) { Exception(5,oldpc); goto endlabel1139; } else {
+ uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
+ uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
+ if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
+ {
+ if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ newv = (newv & 0xffff) | ((uae_u32)rem << 16);
+ m68k_dreg(regs, dstreg) = (newv);
+ }
+ }
+}}}}m68k_incpc(4);
+endlabel1139: ;
+return 78;
+}
+unsigned long REGPARAM2 op_81fb_3(uae_u32 opcode) /* DIVS */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if(src == 0) { Exception(5,oldpc); goto endlabel1140; } else {
+ uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
+ uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
+ if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
+ {
+ if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ newv = (newv & 0xffff) | ((uae_u32)rem << 16);
+ m68k_dreg(regs, dstreg) = (newv);
+ }
+ }
+}}}}m68k_incpc(4);
+endlabel1140: ;
+return 78;
+}
+unsigned long REGPARAM2 op_81fc_3(uae_u32 opcode) /* DIVS */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{ uaecptr oldpc = m68k_getpc();
+{ uae_s16 src = get_iword(2);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ if(src == 0) { Exception(5,oldpc); goto endlabel1141; } else {
+ uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
+ uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
+ if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
+ {
+ if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ newv = (newv & 0xffff) | ((uae_u32)rem << 16);
+ m68k_dreg(regs, dstreg) = (newv);
+ }
+ }
+}}}m68k_incpc(4);
+endlabel1141: ;
+return 76;
+}
+unsigned long REGPARAM2 op_9000_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_9010_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_9018_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_9020_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+{ uae_s8 src = get_byte(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_9028_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_9030_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_9038_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_9039_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_903a_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_903b_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_903c_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_9040_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_9048_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_areg(regs, srcreg);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_9050_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_9058_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_9060_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_9068_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_9070_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_9078_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_9079_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_907a_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_907b_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_907c_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = get_iword(2);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_9080_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_9088_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_areg(regs, srcreg);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_9090_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_9098_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+ m68k_areg(regs, srcreg) += 4;
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_90a0_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
+{ uae_s32 src = get_long(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_90a8_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_90b0_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_90b8_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_90b9_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_90ba_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_90bb_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_90bc_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_90c0_3(uae_u32 opcode) /* SUBA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst - src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_90c8_3(uae_u32 opcode) /* SUBA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_areg(regs, srcreg);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst - src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_90d0_3(uae_u32 opcode) /* SUBA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst - src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+}}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_90d8_3(uae_u32 opcode) /* SUBA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst - src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+}}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_90e0_3(uae_u32 opcode) /* SUBA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst - src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+}}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_90e8_3(uae_u32 opcode) /* SUBA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst - src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_90f0_3(uae_u32 opcode) /* SUBA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst - src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_90f8_3(uae_u32 opcode) /* SUBA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst - src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_90f9_3(uae_u32 opcode) /* SUBA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst - src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+}}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_90fa_3(uae_u32 opcode) /* SUBA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst - src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_90fb_3(uae_u32 opcode) /* SUBA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst - src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_90fc_3(uae_u32 opcode) /* SUBA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = get_iword(2);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst - src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+}}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_9100_3(uae_u32 opcode) /* SUBX */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
+ SET_NFLG (((uae_s8)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_9108_3(uae_u32 opcode) /* SUBX */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+{ uae_s8 src = get_byte(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
+ SET_NFLG (((uae_s8)(newv)) < 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 8;
+}
+unsigned long REGPARAM2 op_9110_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_9118_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_9120_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_9128_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_9130_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_9138_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_9139_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_ilong(2);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_9140_3(uae_u32 opcode) /* SUBX */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_9148_3(uae_u32 opcode) /* SUBX */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 8;
+}
+unsigned long REGPARAM2 op_9150_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_9158_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg(regs, dstreg) += 2;
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_9160_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_9168_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_9170_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_9178_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_9179_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_ilong(2);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_9180_3(uae_u32 opcode) /* SUBX */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_9188_3(uae_u32 opcode) /* SUBX */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
+{ uae_s32 src = get_long(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 14;
+}
+unsigned long REGPARAM2 op_9190_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_9198_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg(regs, dstreg) += 4;
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_91a0_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_91a8_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_91b0_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_91b8_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_91b9_3(uae_u32 opcode) /* SUB */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_ilong(2);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_91c0_3(uae_u32 opcode) /* SUBA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst - src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_91c8_3(uae_u32 opcode) /* SUBA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_areg(regs, srcreg);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst - src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_91d0_3(uae_u32 opcode) /* SUBA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst - src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_91d8_3(uae_u32 opcode) /* SUBA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+ m68k_areg(regs, srcreg) += 4;
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst - src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_91e0_3(uae_u32 opcode) /* SUBA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
+{ uae_s32 src = get_long(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst - src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_91e8_3(uae_u32 opcode) /* SUBA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst - src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_91f0_3(uae_u32 opcode) /* SUBA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst - src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_91f8_3(uae_u32 opcode) /* SUBA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst - src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_91f9_3(uae_u32 opcode) /* SUBA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst - src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_91fa_3(uae_u32 opcode) /* SUBA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst - src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_91fb_3(uae_u32 opcode) /* SUBA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst - src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_91fc_3(uae_u32 opcode) /* SUBA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst - src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+}}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_b000_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_b010_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(2);
+return 4;
+}
+#endif
+
+#ifdef PART_7
+unsigned long REGPARAM2 op_b018_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_b020_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+{ uae_s8 src = get_byte(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_b028_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_b030_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_b038_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_b039_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_b03a_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_b03b_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_b03c_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_b040_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_b048_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_areg(regs, srcreg);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_b050_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_b058_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_b060_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_b068_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_b070_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_b078_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_b079_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_b07a_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_b07b_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_b07c_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = get_iword(2);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_b080_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_b088_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_areg(regs, srcreg);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_b090_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_b098_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+ m68k_areg(regs, srcreg) += 4;
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_b0a0_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
+{ uae_s32 src = get_long(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_b0a8_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_b0b0_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_b0b8_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_b0b9_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_b0ba_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_b0bb_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_b0bc_3(uae_u32 opcode) /* CMP */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_b0c0_3(uae_u32 opcode) /* CMPA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_b0c8_3(uae_u32 opcode) /* CMPA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_areg(regs, srcreg);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_b0d0_3(uae_u32 opcode) /* CMPA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_b0d8_3(uae_u32 opcode) /* CMPA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_b0e0_3(uae_u32 opcode) /* CMPA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_b0e8_3(uae_u32 opcode) /* CMPA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_b0f0_3(uae_u32 opcode) /* CMPA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_b0f8_3(uae_u32 opcode) /* CMPA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_b0f9_3(uae_u32 opcode) /* CMPA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_b0fa_3(uae_u32 opcode) /* CMPA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_b0fb_3(uae_u32 opcode) /* CMPA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_b0fc_3(uae_u32 opcode) /* CMPA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = get_iword(2);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_b100_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_b108_3(uae_u32 opcode) /* CMPM */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_b110_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_b118_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_b120_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_b128_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 dst = get_byte(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_b130_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+{ uae_s8 dst = get_byte(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_b138_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 dst = get_byte(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_b139_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_ilong(2);
+{ uae_s8 dst = get_byte(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_b140_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_b148_3(uae_u32 opcode) /* CMPM */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg(regs, dstreg) += 2;
+{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_b150_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_b158_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg(regs, dstreg) += 2;
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_b160_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_b168_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 dst = get_word(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_b170_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+{ uae_s16 dst = get_word(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_b178_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 dst = get_word(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_b179_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_ilong(2);
+{ uae_s16 dst = get_word(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_b180_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_b188_3(uae_u32 opcode) /* CMPM */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+ m68k_areg(regs, srcreg) += 4;
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg(regs, dstreg) += 4;
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_b190_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_b198_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg(regs, dstreg) += 4;
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_b1a0_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_b1a8_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 dst = get_long(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_b1b0_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+{ uae_s32 dst = get_long(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_b1b8_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 dst = get_long(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_b1b9_3(uae_u32 opcode) /* EOR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_ilong(2);
+{ uae_s32 dst = get_long(dsta);
+ src ^= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_b1c0_3(uae_u32 opcode) /* CMPA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_b1c8_3(uae_u32 opcode) /* CMPA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_areg(regs, srcreg);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_b1d0_3(uae_u32 opcode) /* CMPA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_b1d8_3(uae_u32 opcode) /* CMPA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+ m68k_areg(regs, srcreg) += 4;
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_b1e0_3(uae_u32 opcode) /* CMPA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
+{ uae_s32 src = get_long(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_b1e8_3(uae_u32 opcode) /* CMPA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_b1f0_3(uae_u32 opcode) /* CMPA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_b1f8_3(uae_u32 opcode) /* CMPA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_b1f9_3(uae_u32 opcode) /* CMPA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_b1fa_3(uae_u32 opcode) /* CMPA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_b1fb_3(uae_u32 opcode) /* CMPA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_b1fc_3(uae_u32 opcode) /* CMPA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs != flgo) && (flgn != flgo));
+ SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
+ SET_NFLG (flgn != 0);
+}}}}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_c000_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_c010_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_c018_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_c020_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+{ uae_s8 src = get_byte(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_c028_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_c030_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_c038_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_c039_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_c03a_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_c03b_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_c03c_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_c040_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_c050_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_c058_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_c060_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_c068_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_c070_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_c078_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_c079_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_c07a_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_c07b_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_c07c_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = get_iword(2);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
+}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_c080_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_c090_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_c098_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+ m68k_areg(regs, srcreg) += 4;
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_c0a0_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
+{ uae_s32 src = get_long(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_c0a8_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_c0b0_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_c0b8_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_c0b9_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_c0ba_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_c0bb_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_c0bc_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ m68k_dreg(regs, dstreg) = (src);
+}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_c0c0_3(uae_u32 opcode) /* MULU */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}m68k_incpc(2);
+return 34;
+}
+unsigned long REGPARAM2 op_c0d0_3(uae_u32 opcode) /* MULU */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}m68k_incpc(2);
+return 36;
+}
+unsigned long REGPARAM2 op_c0d8_3(uae_u32 opcode) /* MULU */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}m68k_incpc(2);
+return 36;
+}
+unsigned long REGPARAM2 op_c0e0_3(uae_u32 opcode) /* MULU */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}m68k_incpc(2);
+return 36;
+}
+unsigned long REGPARAM2 op_c0e8_3(uae_u32 opcode) /* MULU */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}m68k_incpc(4);
+return 38;
+}
+unsigned long REGPARAM2 op_c0f0_3(uae_u32 opcode) /* MULU */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}m68k_incpc(4);
+return 38;
+}
+unsigned long REGPARAM2 op_c0f8_3(uae_u32 opcode) /* MULU */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}m68k_incpc(4);
+return 38;
+}
+unsigned long REGPARAM2 op_c0f9_3(uae_u32 opcode) /* MULU */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}m68k_incpc(6);
+return 40;
+}
+unsigned long REGPARAM2 op_c0fa_3(uae_u32 opcode) /* MULU */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}m68k_incpc(4);
+return 38;
+}
+unsigned long REGPARAM2 op_c0fb_3(uae_u32 opcode) /* MULU */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}m68k_incpc(4);
+return 38;
+}
+unsigned long REGPARAM2 op_c0fc_3(uae_u32 opcode) /* MULU */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = get_iword(2);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}m68k_incpc(4);
+return 36;
+}
+unsigned long REGPARAM2 op_c100_3(uae_u32 opcode) /* ABCD */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{ uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG ? 1 : 0);
+ uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0);
+ uae_u16 newv;
+ int cflg;
+ if (newv_lo > 9) { newv_lo +=6; }
+ newv = newv_hi + newv_lo; SET_CFLG (cflg = (newv & 0x1F0) > 0x90);
+ COPY_CARRY;
+ if (cflg) newv += 0x60;
+ SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
+ SET_NFLG (((uae_s8)(newv)) < 0);
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_c108_3(uae_u32 opcode) /* ABCD */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+{ uae_s8 src = get_byte(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG ? 1 : 0);
+ uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0);
+ uae_u16 newv;
+ int cflg;
+ if (newv_lo > 9) { newv_lo +=6; }
+ newv = newv_hi + newv_lo; SET_CFLG (cflg = (newv & 0x1F0) > 0x90);
+ COPY_CARRY;
+ if (cflg) newv += 0x60;
+ SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
+ SET_NFLG (((uae_s8)(newv)) < 0);
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 8;
+}
+unsigned long REGPARAM2 op_c110_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_c118_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_c120_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_c128_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 dst = get_byte(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_c130_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+{ uae_s8 dst = get_byte(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_c138_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 dst = get_byte(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_c139_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_ilong(2);
+{ uae_s8 dst = get_byte(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s8)(src)) == 0);
+ SET_NFLG (((uae_s8)(src)) < 0);
+ put_byte(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_c140_3(uae_u32 opcode) /* EXG */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+ m68k_dreg(regs, srcreg) = (dst);
+ m68k_dreg(regs, dstreg) = (src);
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_c148_3(uae_u32 opcode) /* EXG */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_areg(regs, srcreg);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+ m68k_areg(regs, srcreg) = (dst);
+ if (srcreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+ m68k_areg(regs, dstreg) = (src);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_c150_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_c158_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg(regs, dstreg) += 2;
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_c160_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_c168_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 dst = get_word(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_c170_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+{ uae_s16 dst = get_word(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_c178_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 dst = get_word(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_c179_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_ilong(2);
+{ uae_s16 dst = get_word(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(src)) == 0);
+ SET_NFLG (((uae_s16)(src)) < 0);
+ put_word(dsta,src);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_c188_3(uae_u32 opcode) /* EXG */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+ m68k_dreg(regs, srcreg) = (dst);
+ m68k_areg(regs, dstreg) = (src);
+ if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT ();
+}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_c190_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_c198_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg(regs, dstreg) += 4;
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_c1a0_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_c1a8_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 dst = get_long(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_c1b0_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+{ uae_s32 dst = get_long(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_c1b8_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 dst = get_long(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_c1b9_3(uae_u32 opcode) /* AND */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_ilong(2);
+{ uae_s32 dst = get_long(dsta);
+ src &= dst;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(src)) == 0);
+ SET_NFLG (((uae_s32)(src)) < 0);
+ put_long(dsta,src);
+}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_c1c0_3(uae_u32 opcode) /* MULS */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}m68k_incpc(2);
+return 34;
+}
+unsigned long REGPARAM2 op_c1d0_3(uae_u32 opcode) /* MULS */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}m68k_incpc(2);
+return 36;
+}
+unsigned long REGPARAM2 op_c1d8_3(uae_u32 opcode) /* MULS */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}m68k_incpc(2);
+return 36;
+}
+unsigned long REGPARAM2 op_c1e0_3(uae_u32 opcode) /* MULS */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}m68k_incpc(2);
+return 36;
+}
+unsigned long REGPARAM2 op_c1e8_3(uae_u32 opcode) /* MULS */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}m68k_incpc(4);
+return 38;
+}
+unsigned long REGPARAM2 op_c1f0_3(uae_u32 opcode) /* MULS */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}m68k_incpc(4);
+return 38;
+}
+unsigned long REGPARAM2 op_c1f8_3(uae_u32 opcode) /* MULS */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}m68k_incpc(4);
+return 38;
+}
+unsigned long REGPARAM2 op_c1f9_3(uae_u32 opcode) /* MULS */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}m68k_incpc(6);
+return 40;
+}
+unsigned long REGPARAM2 op_c1fa_3(uae_u32 opcode) /* MULS */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}m68k_incpc(4);
+return 38;
+}
+unsigned long REGPARAM2 op_c1fb_3(uae_u32 opcode) /* MULS */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}m68k_incpc(4);
+return 38;
+}
+unsigned long REGPARAM2 op_c1fc_3(uae_u32 opcode) /* MULS */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = get_iword(2);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}m68k_incpc(4);
+return 36;
+}
+unsigned long REGPARAM2 op_d000_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_d010_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_d018_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s8 src = get_byte(srca);
+ m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_d020_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+{ uae_s8 src = get_byte(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_d028_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_d030_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_d038_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_d039_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_d03a_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_d03b_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s8 src = get_byte(srca);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_d03c_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s8 src = get_ibyte(2);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_d040_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_d048_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_areg(regs, srcreg);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_d050_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_d058_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_d060_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_d068_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_d070_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_d078_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_d079_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_d07a_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_d07b_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_d07c_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = get_iword(2);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_d080_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_d088_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_areg(regs, srcreg);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_d090_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_d098_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+ m68k_areg(regs, srcreg) += 4;
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_d0a0_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
+{ uae_s32 src = get_long(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_d0a8_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_d0b0_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_d0b8_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_d0b9_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_d0ba_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_d0bb_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_d0bc_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_d0c0_3(uae_u32 opcode) /* ADDA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst + src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT ();
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_d0c8_3(uae_u32 opcode) /* ADDA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_areg(regs, srcreg);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst + src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT ();
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_d0d0_3(uae_u32 opcode) /* ADDA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst + src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT ();
+}}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_d0d8_3(uae_u32 opcode) /* ADDA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s16 src = get_word(srca);
+ m68k_areg(regs, srcreg) += 2;
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst + src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT ();
+}}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_d0e0_3(uae_u32 opcode) /* ADDA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst + src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT ();
+}}}}}m68k_incpc(2);
+return 4;
+}
+unsigned long REGPARAM2 op_d0e8_3(uae_u32 opcode) /* ADDA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst + src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT ();
+}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_d0f0_3(uae_u32 opcode) /* ADDA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst + src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT ();
+}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_d0f8_3(uae_u32 opcode) /* ADDA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst + src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT ();
+}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_d0f9_3(uae_u32 opcode) /* ADDA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst + src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT ();
+}}}}}m68k_incpc(6);
+return 8;
+}
+unsigned long REGPARAM2 op_d0fa_3(uae_u32 opcode) /* ADDA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst + src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT ();
+}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_d0fb_3(uae_u32 opcode) /* ADDA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s16 src = get_word(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst + src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT ();
+}}}}}m68k_incpc(4);
+return 6;
+}
+unsigned long REGPARAM2 op_d0fc_3(uae_u32 opcode) /* ADDA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = get_iword(2);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst + src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT ();
+}}}}m68k_incpc(4);
+return 4;
+}
+unsigned long REGPARAM2 op_d100_3(uae_u32 opcode) /* ADDX */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uae_s8 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
+ SET_NFLG (((uae_s8)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
+}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_d108_3(uae_u32 opcode) /* ADDX */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
+{ uae_s8 src = get_byte(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
+ SET_NFLG (((uae_s8)(newv)) < 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 8;
+}
+unsigned long REGPARAM2 op_d110_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_d118_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_d120_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
+{ uae_s8 dst = get_byte(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_d128_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_d130_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_d138_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_d139_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s8 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_ilong(2);
+{ uae_s8 dst = get_byte(dsta);
+{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
+{ int flgs = ((uae_s8)(src)) < 0;
+ int flgo = ((uae_s8)(dst)) < 0;
+ int flgn = ((uae_s8)(newv)) < 0;
+ SET_ZFLG (((uae_s8)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_byte(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_d140_3(uae_u32 opcode) /* ADDX */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uae_s16 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
+}}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_d148_3(uae_u32 opcode) /* ADDX */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 src = get_word(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
+ SET_NFLG (((uae_s16)(newv)) < 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 8;
+}
+unsigned long REGPARAM2 op_d150_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_d158_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg(regs, dstreg) += 2;
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_d160_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 2;
+{ uae_s16 dst = get_word(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_d168_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_d170_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_d178_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_d179_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s16 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_ilong(2);
+{ uae_s16 dst = get_word(dsta);
+{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
+{ int flgs = ((uae_s16)(src)) < 0;
+ int flgo = ((uae_s16)(dst)) < 0;
+ int flgn = ((uae_s16)(newv)) < 0;
+ SET_ZFLG (((uae_s16)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_word(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_d180_3(uae_u32 opcode) /* ADDX */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uae_s32 dst = m68k_dreg(regs, dstreg);
+{ uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ m68k_dreg(regs, dstreg) = (newv);
+}}}}}m68k_incpc(2);
+return 2;
+}
+#endif
+
+#ifdef PART_8
+unsigned long REGPARAM2 op_d188_3(uae_u32 opcode) /* ADDX */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
+{ uae_s32 src = get_long(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0);
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn)));
+ COPY_CARRY;
+ SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
+ SET_NFLG (((uae_s32)(newv)) < 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 14;
+}
+unsigned long REGPARAM2 op_d190_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_d198_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg);
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg(regs, dstreg) += 4;
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_d1a0_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) - 4;
+{ uae_s32 dst = get_long(dsta);
+ m68k_areg (regs, dstreg) = dsta;
+ if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(2);
+return 10;
+}
+unsigned long REGPARAM2 op_d1a8_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_d1b0_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_d1b8_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(4);
+return 12;
+}
+unsigned long REGPARAM2 op_d1b9_3(uae_u32 opcode) /* ADD */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uaecptr dsta = get_ilong(2);
+{ uae_s32 dst = get_long(dsta);
+{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
+{ int flgs = ((uae_s32)(src)) < 0;
+ int flgo = ((uae_s32)(dst)) < 0;
+ int flgn = ((uae_s32)(newv)) < 0;
+ SET_ZFLG (((uae_s32)(newv)) == 0);
+ SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
+ SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
+ COPY_CARRY;
+ SET_NFLG (flgn != 0);
+ put_long(dsta,newv);
+}}}}}}}m68k_incpc(6);
+return 14;
+}
+unsigned long REGPARAM2 op_d1c0_3(uae_u32 opcode) /* ADDA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_dreg(regs, srcreg);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst + src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT ();
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_d1c8_3(uae_u32 opcode) /* ADDA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = m68k_areg(regs, srcreg);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst + src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT ();
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_d1d0_3(uae_u32 opcode) /* ADDA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst + src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT ();
+}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_d1d8_3(uae_u32 opcode) /* ADDA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg);
+{ uae_s32 src = get_long(srca);
+ m68k_areg(regs, srcreg) += 4;
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst + src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT ();
+}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_d1e0_3(uae_u32 opcode) /* ADDA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
+{ uae_s32 src = get_long(srca);
+ m68k_areg (regs, srcreg) = srca;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst + src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT ();
+}}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_d1e8_3(uae_u32 opcode) /* ADDA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst + src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT ();
+}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_d1f0_3(uae_u32 opcode) /* ADDA */
+{
+ uae_u32 srcreg = (opcode & 7);
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst + src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT ();
+}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_d1f8_3(uae_u32 opcode) /* ADDA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst + src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT ();
+}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_d1f9_3(uae_u32 opcode) /* ADDA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = get_ilong(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst + src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT ();
+}}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_d1fa_3(uae_u32 opcode) /* ADDA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr srca = m68k_getpc () + 2;
+ srca += (uae_s32)(uae_s16)get_iword(2);
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst + src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT ();
+}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_d1fb_3(uae_u32 opcode) /* ADDA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uaecptr tmppc = m68k_getpc() + 2;
+ uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
+{ uae_s32 src = get_long(srca);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst + src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT ();
+}}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_d1fc_3(uae_u32 opcode) /* ADDA */
+{
+ uae_u32 dstreg = (opcode >> 9) & 7;
+{{ uae_s32 src = get_ilong(2);
+{ uae_s32 dst = m68k_areg(regs, dstreg);
+{ uae_u32 newv = dst + src;
+ m68k_areg(regs, dstreg) = (newv);
+ if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT ();
+}}}}m68k_incpc(6);
+return 6;
+}
+unsigned long REGPARAM2 op_e000_3(uae_u32 opcode) /* ASR */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 cnt = srcreg;
+{ uae_s8 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u8)data;
+ uae_u32 sign = (0x80 & val) >> 7;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 8) {
+ val = 0xff & (uae_u32)-sign;
+ SET_CFLG (sign);
+ COPY_CARRY;
+ } else {
+ val >>= cnt - 1;
+ SET_CFLG (val & 1);
+ COPY_CARRY;
+ val >>= 1;
+ val |= (0xff << (8 - cnt)) & (uae_u32)-sign;
+ val &= 0xff;
+ }
+ SET_ZFLG (((uae_s8)(val)) == 0);
+ SET_NFLG (((uae_s8)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e008_3(uae_u32 opcode) /* LSR */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 cnt = srcreg;
+{ uae_s8 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u8)data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 8) {
+ SET_CFLG ((cnt == 8) & (val >> 7));
+ COPY_CARRY;
+ val = 0;
+ } else {
+ val >>= cnt - 1;
+ SET_CFLG (val & 1);
+ COPY_CARRY;
+ val >>= 1;
+ }
+ SET_ZFLG (((uae_s8)(val)) == 0);
+ SET_NFLG (((uae_s8)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e010_3(uae_u32 opcode) /* ROXR */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 cnt = srcreg;
+{ uae_s8 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u8)data;
+ cnt &= 63;
+ CLEAR_CZNV;
+{ cnt--;
+ {
+ uae_u32 carry;
+ uae_u32 hival = (val << 1) | GET_XFLG;
+ hival <<= (7 - cnt);
+ val >>= cnt;
+ carry = val & 1;
+ val >>= 1;
+ val |= hival;
+ SET_XFLG (carry);
+ val &= 0xff;
+ } }
+ SET_CFLG (GET_XFLG);
+ SET_ZFLG (((uae_s8)(val)) == 0);
+ SET_NFLG (((uae_s8)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e018_3(uae_u32 opcode) /* ROR */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 cnt = srcreg;
+{ uae_s8 data = m68k_dreg(regs, dstreg);
+{ uae_u8 val = data;
+ uae_u32 cmask = 0x80;
+ cnt &= 63;
+ if (!cnt) { CFLG = 0; } else { uae_u32 carry;
+ for(;cnt;--cnt){
+ carry=val&1; val = val >> 1;
+ if(carry) val |= cmask;
+ }
+ SET_CFLG (carry);
+}
+ SET_NFLG ((val & cmask) != 0); SET_ZFLG (val == 0); SET_VFLG (0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e020_3(uae_u32 opcode) /* ASR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 cnt = m68k_dreg(regs, srcreg);
+{ uae_s8 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u8)data;
+ uae_u32 sign = (0x80 & val) >> 7;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 8) {
+ val = 0xff & (uae_u32)-sign;
+ SET_CFLG (sign);
+ COPY_CARRY;
+ } else if (cnt > 0) {
+ val >>= cnt - 1;
+ SET_CFLG (val & 1);
+ COPY_CARRY;
+ val >>= 1;
+ val |= (0xff << (8 - cnt)) & (uae_u32)-sign;
+ val &= 0xff;
+ }
+ SET_ZFLG (((uae_s8)(val)) == 0);
+ SET_NFLG (((uae_s8)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e028_3(uae_u32 opcode) /* LSR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 cnt = m68k_dreg(regs, srcreg);
+{ uae_s8 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u8)data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 8) {
+ SET_CFLG ((cnt == 8) & (val >> 7));
+ COPY_CARRY;
+ val = 0;
+ } else if (cnt > 0) {
+ val >>= cnt - 1;
+ SET_CFLG (val & 1);
+ COPY_CARRY;
+ val >>= 1;
+ }
+ SET_ZFLG (((uae_s8)(val)) == 0);
+ SET_NFLG (((uae_s8)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e030_3(uae_u32 opcode) /* ROXR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 cnt = m68k_dreg(regs, srcreg);
+{ uae_s8 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u8)data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 36) cnt -= 36;
+ if (cnt >= 18) cnt -= 18;
+ if (cnt >= 9) cnt -= 9;
+ if (cnt > 0) {
+ cnt--;
+ {
+ uae_u32 carry;
+ uae_u32 hival = (val << 1) | GET_XFLG;
+ hival <<= (7 - cnt);
+ val >>= cnt;
+ carry = val & 1;
+ val >>= 1;
+ val |= hival;
+ SET_XFLG (carry);
+ val &= 0xff;
+ } }
+ SET_CFLG (GET_XFLG);
+ SET_ZFLG (((uae_s8)(val)) == 0);
+ SET_NFLG (((uae_s8)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e038_3(uae_u32 opcode) /* ROR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 cnt = m68k_dreg(regs, srcreg);
+{ uae_s8 data = m68k_dreg(regs, dstreg);
+{ uae_u8 val = data;
+ uae_u32 cmask = 0x80;
+ cnt &= 63;
+ if (!cnt) { CFLG = 0; } else { uae_u32 carry;
+ for(;cnt;--cnt){
+ carry=val&1; val = val >> 1;
+ if(carry) val |= cmask;
+ }
+ SET_CFLG (carry);
+}
+ SET_NFLG ((val & cmask) != 0); SET_ZFLG (val == 0); SET_VFLG (0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e040_3(uae_u32 opcode) /* ASR */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 cnt = srcreg;
+{ uae_s16 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u16)data;
+ uae_u32 sign = (0x8000 & val) >> 15;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 16) {
+ val = 0xffff & (uae_u32)-sign;
+ SET_CFLG (sign);
+ COPY_CARRY;
+ } else {
+ val >>= cnt - 1;
+ SET_CFLG (val & 1);
+ COPY_CARRY;
+ val >>= 1;
+ val |= (0xffff << (16 - cnt)) & (uae_u32)-sign;
+ val &= 0xffff;
+ }
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e048_3(uae_u32 opcode) /* LSR */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 cnt = srcreg;
+{ uae_s16 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u16)data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 16) {
+ SET_CFLG ((cnt == 16) & (val >> 15));
+ COPY_CARRY;
+ val = 0;
+ } else {
+ val >>= cnt - 1;
+ SET_CFLG (val & 1);
+ COPY_CARRY;
+ val >>= 1;
+ }
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e050_3(uae_u32 opcode) /* ROXR */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 cnt = srcreg;
+{ uae_s16 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u16)data;
+ cnt &= 63;
+ CLEAR_CZNV;
+{ cnt--;
+ {
+ uae_u32 carry;
+ uae_u32 hival = (val << 1) | GET_XFLG;
+ hival <<= (15 - cnt);
+ val >>= cnt;
+ carry = val & 1;
+ val >>= 1;
+ val |= hival;
+ SET_XFLG (carry);
+ val &= 0xffff;
+ } }
+ SET_CFLG (GET_XFLG);
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e058_3(uae_u32 opcode) /* ROR */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 cnt = srcreg;
+{ uae_s16 data = m68k_dreg(regs, dstreg);
+{ uae_u16 val = data;
+ uae_u32 cmask = 0x8000;
+ cnt &= 63;
+ if (!cnt) { CFLG = 0; } else { uae_u32 carry;
+ for(;cnt;--cnt){
+ carry=val&1; val = val >> 1;
+ if(carry) val |= cmask;
+ }
+ SET_CFLG (carry);
+}
+ SET_NFLG ((val & cmask) != 0); SET_ZFLG (val == 0); SET_VFLG (0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e060_3(uae_u32 opcode) /* ASR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 cnt = m68k_dreg(regs, srcreg);
+{ uae_s16 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u16)data;
+ uae_u32 sign = (0x8000 & val) >> 15;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 16) {
+ val = 0xffff & (uae_u32)-sign;
+ SET_CFLG (sign);
+ COPY_CARRY;
+ } else if (cnt > 0) {
+ val >>= cnt - 1;
+ SET_CFLG (val & 1);
+ COPY_CARRY;
+ val >>= 1;
+ val |= (0xffff << (16 - cnt)) & (uae_u32)-sign;
+ val &= 0xffff;
+ }
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e068_3(uae_u32 opcode) /* LSR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 cnt = m68k_dreg(regs, srcreg);
+{ uae_s16 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u16)data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 16) {
+ SET_CFLG ((cnt == 16) & (val >> 15));
+ COPY_CARRY;
+ val = 0;
+ } else if (cnt > 0) {
+ val >>= cnt - 1;
+ SET_CFLG (val & 1);
+ COPY_CARRY;
+ val >>= 1;
+ }
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e070_3(uae_u32 opcode) /* ROXR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 cnt = m68k_dreg(regs, srcreg);
+{ uae_s16 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u16)data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 34) cnt -= 34;
+ if (cnt >= 17) cnt -= 17;
+ if (cnt > 0) {
+ cnt--;
+ {
+ uae_u32 carry;
+ uae_u32 hival = (val << 1) | GET_XFLG;
+ hival <<= (15 - cnt);
+ val >>= cnt;
+ carry = val & 1;
+ val >>= 1;
+ val |= hival;
+ SET_XFLG (carry);
+ val &= 0xffff;
+ } }
+ SET_CFLG (GET_XFLG);
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e078_3(uae_u32 opcode) /* ROR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 cnt = m68k_dreg(regs, srcreg);
+{ uae_s16 data = m68k_dreg(regs, dstreg);
+{ uae_u16 val = data;
+ uae_u32 cmask = 0x8000;
+ cnt &= 63;
+ if (!cnt) { CFLG = 0; } else { uae_u32 carry;
+ for(;cnt;--cnt){
+ carry=val&1; val = val >> 1;
+ if(carry) val |= cmask;
+ }
+ SET_CFLG (carry);
+}
+ SET_NFLG ((val & cmask) != 0); SET_ZFLG (val == 0); SET_VFLG (0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e080_3(uae_u32 opcode) /* ASR */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 cnt = srcreg;
+{ uae_s32 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = data;
+ uae_u32 sign = (0x80000000 & val) >> 31;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 32) {
+ val = 0xffffffff & (uae_u32)-sign;
+ SET_CFLG (sign);
+ COPY_CARRY;
+ } else {
+ val >>= cnt - 1;
+ SET_CFLG (val & 1);
+ COPY_CARRY;
+ val >>= 1;
+ val |= (0xffffffff << (32 - cnt)) & (uae_u32)-sign;
+ val &= 0xffffffff;
+ }
+ SET_ZFLG (((uae_s32)(val)) == 0);
+ SET_NFLG (((uae_s32)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (val);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e088_3(uae_u32 opcode) /* LSR */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 cnt = srcreg;
+{ uae_s32 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 32) {
+ SET_CFLG ((cnt == 32) & (val >> 31));
+ COPY_CARRY;
+ val = 0;
+ } else {
+ val >>= cnt - 1;
+ SET_CFLG (val & 1);
+ COPY_CARRY;
+ val >>= 1;
+ }
+ SET_ZFLG (((uae_s32)(val)) == 0);
+ SET_NFLG (((uae_s32)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (val);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e090_3(uae_u32 opcode) /* ROXR */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 cnt = srcreg;
+{ uae_s32 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = data;
+ cnt &= 63;
+ CLEAR_CZNV;
+{ cnt--;
+ {
+ uae_u32 carry;
+ uae_u32 hival = (val << 1) | GET_XFLG;
+ hival <<= (31 - cnt);
+ val >>= cnt;
+ carry = val & 1;
+ val >>= 1;
+ val |= hival;
+ SET_XFLG (carry);
+ val &= 0xffffffff;
+ } }
+ SET_CFLG (GET_XFLG);
+ SET_ZFLG (((uae_s32)(val)) == 0);
+ SET_NFLG (((uae_s32)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (val);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e098_3(uae_u32 opcode) /* ROR */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 cnt = srcreg;
+{ uae_s32 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = data;
+ uae_u32 cmask = 0x80000000;
+ cnt &= 63;
+ if (!cnt) { CFLG = 0; } else { uae_u32 carry;
+ for(;cnt;--cnt){
+ carry=val&1; val = val >> 1;
+ if(carry) val |= cmask;
+ }
+ SET_CFLG (carry);
+}
+ SET_NFLG ((val & cmask) != 0); SET_ZFLG (val == 0); SET_VFLG (0);
+ m68k_dreg(regs, dstreg) = (val);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e0a0_3(uae_u32 opcode) /* ASR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 cnt = m68k_dreg(regs, srcreg);
+{ uae_s32 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = data;
+ uae_u32 sign = (0x80000000 & val) >> 31;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 32) {
+ val = 0xffffffff & (uae_u32)-sign;
+ SET_CFLG (sign);
+ COPY_CARRY;
+ } else if (cnt > 0) {
+ val >>= cnt - 1;
+ SET_CFLG (val & 1);
+ COPY_CARRY;
+ val >>= 1;
+ val |= (0xffffffff << (32 - cnt)) & (uae_u32)-sign;
+ val &= 0xffffffff;
+ }
+ SET_ZFLG (((uae_s32)(val)) == 0);
+ SET_NFLG (((uae_s32)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (val);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e0a8_3(uae_u32 opcode) /* LSR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 cnt = m68k_dreg(regs, srcreg);
+{ uae_s32 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 32) {
+ SET_CFLG ((cnt == 32) & (val >> 31));
+ COPY_CARRY;
+ val = 0;
+ } else if (cnt > 0) {
+ val >>= cnt - 1;
+ SET_CFLG (val & 1);
+ COPY_CARRY;
+ val >>= 1;
+ }
+ SET_ZFLG (((uae_s32)(val)) == 0);
+ SET_NFLG (((uae_s32)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (val);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e0b0_3(uae_u32 opcode) /* ROXR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 cnt = m68k_dreg(regs, srcreg);
+{ uae_s32 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 33) cnt -= 33;
+ if (cnt > 0) {
+ cnt--;
+ {
+ uae_u32 carry;
+ uae_u32 hival = (val << 1) | GET_XFLG;
+ hival <<= (31 - cnt);
+ val >>= cnt;
+ carry = val & 1;
+ val >>= 1;
+ val |= hival;
+ SET_XFLG (carry);
+ val &= 0xffffffff;
+ } }
+ SET_CFLG (GET_XFLG);
+ SET_ZFLG (((uae_s32)(val)) == 0);
+ SET_NFLG (((uae_s32)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (val);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e0b8_3(uae_u32 opcode) /* ROR */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 cnt = m68k_dreg(regs, srcreg);
+{ uae_s32 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = data;
+ uae_u32 cmask = 0x80000000;
+ cnt &= 63;
+ if (!cnt) { CFLG = 0; } else { uae_u32 carry;
+ for(;cnt;--cnt){
+ carry=val&1; val = val >> 1;
+ if(carry) val |= cmask;
+ }
+ SET_CFLG (carry);
+}
+ SET_NFLG ((val & cmask) != 0); SET_ZFLG (val == 0); SET_VFLG (0);
+ m68k_dreg(regs, dstreg) = (val);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e0d0_3(uae_u32 opcode) /* ASRW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg);
+{ uae_s16 data = get_word(dataa);
+{ uae_u32 val = (uae_u16)data;
+ uae_u32 sign = 0x8000 & val;
+ uae_u32 cflg = val & 1;
+ val = (val >> 1) | sign;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ SET_CFLG (cflg);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_e0d8_3(uae_u32 opcode) /* ASRW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg);
+{ uae_s16 data = get_word(dataa);
+ m68k_areg(regs, srcreg) += 2;
+{ uae_u32 val = (uae_u16)data;
+ uae_u32 sign = 0x8000 & val;
+ uae_u32 cflg = val & 1;
+ val = (val >> 1) | sign;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ SET_CFLG (cflg);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_e0e0_3(uae_u32 opcode) /* ASRW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 data = get_word(dataa);
+ m68k_areg (regs, srcreg) = dataa;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_u32 val = (uae_u16)data;
+ uae_u32 sign = 0x8000 & val;
+ uae_u32 cflg = val & 1;
+ val = (val >> 1) | sign;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ SET_CFLG (cflg);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_e0e8_3(uae_u32 opcode) /* ASRW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 data = get_word(dataa);
+{ uae_u32 val = (uae_u16)data;
+ uae_u32 sign = 0x8000 & val;
+ uae_u32 cflg = val & 1;
+ val = (val >> 1) | sign;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ SET_CFLG (cflg);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_e0f0_3(uae_u32 opcode) /* ASRW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 data = get_word(dataa);
+{ uae_u32 val = (uae_u16)data;
+ uae_u32 sign = 0x8000 & val;
+ uae_u32 cflg = val & 1;
+ val = (val >> 1) | sign;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ SET_CFLG (cflg);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_e0f8_3(uae_u32 opcode) /* ASRW */
+{
+{{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 data = get_word(dataa);
+{ uae_u32 val = (uae_u16)data;
+ uae_u32 sign = 0x8000 & val;
+ uae_u32 cflg = val & 1;
+ val = (val >> 1) | sign;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ SET_CFLG (cflg);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_e0f9_3(uae_u32 opcode) /* ASRW */
+{
+{{ uaecptr dataa = get_ilong(2);
+{ uae_s16 data = get_word(dataa);
+{ uae_u32 val = (uae_u16)data;
+ uae_u32 sign = 0x8000 & val;
+ uae_u32 cflg = val & 1;
+ val = (val >> 1) | sign;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ SET_CFLG (cflg);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_e100_3(uae_u32 opcode) /* ASL */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 cnt = srcreg;
+{ uae_s8 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u8)data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 8) {
+ SET_VFLG (val != 0);
+ SET_CFLG (cnt == 8 ? val & 1 : 0);
+ COPY_CARRY;
+ val = 0;
+ } else {
+ uae_u32 mask = (0xff << (7 - cnt)) & 0xff;
+ SET_VFLG ((val & mask) != mask && (val & mask) != 0);
+ val <<= cnt - 1;
+ SET_CFLG ((val & 0x80) >> 7);
+ COPY_CARRY;
+ val <<= 1;
+ val &= 0xff;
+ }
+ SET_ZFLG (((uae_s8)(val)) == 0);
+ SET_NFLG (((uae_s8)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e108_3(uae_u32 opcode) /* LSL */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 cnt = srcreg;
+{ uae_s8 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u8)data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 8) {
+ SET_CFLG (cnt == 8 ? val & 1 : 0);
+ COPY_CARRY;
+ val = 0;
+ } else {
+ val <<= (cnt - 1);
+ SET_CFLG ((val & 0x80) >> 7);
+ COPY_CARRY;
+ val <<= 1;
+ val &= 0xff;
+ }
+ SET_ZFLG (((uae_s8)(val)) == 0);
+ SET_NFLG (((uae_s8)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e110_3(uae_u32 opcode) /* ROXL */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 cnt = srcreg;
+{ uae_s8 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u8)data;
+ cnt &= 63;
+ CLEAR_CZNV;
+{ cnt--;
+ {
+ uae_u32 carry;
+ uae_u32 loval = val >> (7 - cnt);
+ carry = loval & 1;
+ val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1);
+ SET_XFLG (carry);
+ val &= 0xff;
+ } }
+ SET_CFLG (GET_XFLG);
+ SET_ZFLG (((uae_s8)(val)) == 0);
+ SET_NFLG (((uae_s8)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e118_3(uae_u32 opcode) /* ROL */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 cnt = srcreg;
+{ uae_s8 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u8)data;
+ cnt &= 63;
+ CLEAR_CZNV;
+{ uae_u32 loval;
+ cnt &= 7;
+ loval = val >> (8 - cnt);
+ val <<= cnt;
+ val |= loval;
+ val &= 0xff;
+ SET_CFLG (val & 1);
+}
+ SET_ZFLG (((uae_s8)(val)) == 0);
+ SET_NFLG (((uae_s8)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e120_3(uae_u32 opcode) /* ASL */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 cnt = m68k_dreg(regs, srcreg);
+{ uae_s8 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u8)data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 8) {
+ SET_VFLG (val != 0);
+ SET_CFLG (cnt == 8 ? val & 1 : 0);
+ COPY_CARRY;
+ val = 0;
+ } else if (cnt > 0) {
+ uae_u32 mask = (0xff << (7 - cnt)) & 0xff;
+ SET_VFLG ((val & mask) != mask && (val & mask) != 0);
+ val <<= cnt - 1;
+ SET_CFLG ((val & 0x80) >> 7);
+ COPY_CARRY;
+ val <<= 1;
+ val &= 0xff;
+ }
+ SET_ZFLG (((uae_s8)(val)) == 0);
+ SET_NFLG (((uae_s8)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e128_3(uae_u32 opcode) /* LSL */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 cnt = m68k_dreg(regs, srcreg);
+{ uae_s8 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u8)data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 8) {
+ SET_CFLG (cnt == 8 ? val & 1 : 0);
+ COPY_CARRY;
+ val = 0;
+ } else if (cnt > 0) {
+ val <<= (cnt - 1);
+ SET_CFLG ((val & 0x80) >> 7);
+ COPY_CARRY;
+ val <<= 1;
+ val &= 0xff;
+ }
+ SET_ZFLG (((uae_s8)(val)) == 0);
+ SET_NFLG (((uae_s8)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e130_3(uae_u32 opcode) /* ROXL */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 cnt = m68k_dreg(regs, srcreg);
+{ uae_s8 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u8)data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 36) cnt -= 36;
+ if (cnt >= 18) cnt -= 18;
+ if (cnt >= 9) cnt -= 9;
+ if (cnt > 0) {
+ cnt--;
+ {
+ uae_u32 carry;
+ uae_u32 loval = val >> (7 - cnt);
+ carry = loval & 1;
+ val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1);
+ SET_XFLG (carry);
+ val &= 0xff;
+ } }
+ SET_CFLG (GET_XFLG);
+ SET_ZFLG (((uae_s8)(val)) == 0);
+ SET_NFLG (((uae_s8)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e138_3(uae_u32 opcode) /* ROL */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s8 cnt = m68k_dreg(regs, srcreg);
+{ uae_s8 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u8)data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt > 0) {
+ uae_u32 loval;
+ cnt &= 7;
+ loval = val >> (8 - cnt);
+ val <<= cnt;
+ val |= loval;
+ val &= 0xff;
+ SET_CFLG (val & 1);
+}
+ SET_ZFLG (((uae_s8)(val)) == 0);
+ SET_NFLG (((uae_s8)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e140_3(uae_u32 opcode) /* ASL */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 cnt = srcreg;
+{ uae_s16 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u16)data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 16) {
+ SET_VFLG (val != 0);
+ SET_CFLG (cnt == 16 ? val & 1 : 0);
+ COPY_CARRY;
+ val = 0;
+ } else {
+ uae_u32 mask = (0xffff << (15 - cnt)) & 0xffff;
+ SET_VFLG ((val & mask) != mask && (val & mask) != 0);
+ val <<= cnt - 1;
+ SET_CFLG ((val & 0x8000) >> 15);
+ COPY_CARRY;
+ val <<= 1;
+ val &= 0xffff;
+ }
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e148_3(uae_u32 opcode) /* LSL */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 cnt = srcreg;
+{ uae_s16 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u16)data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 16) {
+ SET_CFLG (cnt == 16 ? val & 1 : 0);
+ COPY_CARRY;
+ val = 0;
+ } else {
+ val <<= (cnt - 1);
+ SET_CFLG ((val & 0x8000) >> 15);
+ COPY_CARRY;
+ val <<= 1;
+ val &= 0xffff;
+ }
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e150_3(uae_u32 opcode) /* ROXL */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 cnt = srcreg;
+{ uae_s16 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u16)data;
+ cnt &= 63;
+ CLEAR_CZNV;
+{ cnt--;
+ {
+ uae_u32 carry;
+ uae_u32 loval = val >> (15 - cnt);
+ carry = loval & 1;
+ val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1);
+ SET_XFLG (carry);
+ val &= 0xffff;
+ } }
+ SET_CFLG (GET_XFLG);
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e158_3(uae_u32 opcode) /* ROL */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 cnt = srcreg;
+{ uae_s16 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u16)data;
+ cnt &= 63;
+ CLEAR_CZNV;
+{ uae_u32 loval;
+ cnt &= 15;
+ loval = val >> (16 - cnt);
+ val <<= cnt;
+ val |= loval;
+ val &= 0xffff;
+ SET_CFLG (val & 1);
+}
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e160_3(uae_u32 opcode) /* ASL */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 cnt = m68k_dreg(regs, srcreg);
+{ uae_s16 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u16)data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 16) {
+ SET_VFLG (val != 0);
+ SET_CFLG (cnt == 16 ? val & 1 : 0);
+ COPY_CARRY;
+ val = 0;
+ } else if (cnt > 0) {
+ uae_u32 mask = (0xffff << (15 - cnt)) & 0xffff;
+ SET_VFLG ((val & mask) != mask && (val & mask) != 0);
+ val <<= cnt - 1;
+ SET_CFLG ((val & 0x8000) >> 15);
+ COPY_CARRY;
+ val <<= 1;
+ val &= 0xffff;
+ }
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e168_3(uae_u32 opcode) /* LSL */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 cnt = m68k_dreg(regs, srcreg);
+{ uae_s16 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u16)data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 16) {
+ SET_CFLG (cnt == 16 ? val & 1 : 0);
+ COPY_CARRY;
+ val = 0;
+ } else if (cnt > 0) {
+ val <<= (cnt - 1);
+ SET_CFLG ((val & 0x8000) >> 15);
+ COPY_CARRY;
+ val <<= 1;
+ val &= 0xffff;
+ }
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e170_3(uae_u32 opcode) /* ROXL */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 cnt = m68k_dreg(regs, srcreg);
+{ uae_s16 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u16)data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 34) cnt -= 34;
+ if (cnt >= 17) cnt -= 17;
+ if (cnt > 0) {
+ cnt--;
+ {
+ uae_u32 carry;
+ uae_u32 loval = val >> (15 - cnt);
+ carry = loval & 1;
+ val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1);
+ SET_XFLG (carry);
+ val &= 0xffff;
+ } }
+ SET_CFLG (GET_XFLG);
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e178_3(uae_u32 opcode) /* ROL */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s16 cnt = m68k_dreg(regs, srcreg);
+{ uae_s16 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = (uae_u16)data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt > 0) {
+ uae_u32 loval;
+ cnt &= 15;
+ loval = val >> (16 - cnt);
+ val <<= cnt;
+ val |= loval;
+ val &= 0xffff;
+ SET_CFLG (val & 1);
+}
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e180_3(uae_u32 opcode) /* ASL */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 cnt = srcreg;
+{ uae_s32 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 32) {
+ SET_VFLG (val != 0);
+ SET_CFLG (cnt == 32 ? val & 1 : 0);
+ COPY_CARRY;
+ val = 0;
+ } else {
+ uae_u32 mask = (0xffffffff << (31 - cnt)) & 0xffffffff;
+ SET_VFLG ((val & mask) != mask && (val & mask) != 0);
+ val <<= cnt - 1;
+ SET_CFLG ((val & 0x80000000) >> 31);
+ COPY_CARRY;
+ val <<= 1;
+ val &= 0xffffffff;
+ }
+ SET_ZFLG (((uae_s32)(val)) == 0);
+ SET_NFLG (((uae_s32)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (val);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e188_3(uae_u32 opcode) /* LSL */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 cnt = srcreg;
+{ uae_s32 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 32) {
+ SET_CFLG (cnt == 32 ? val & 1 : 0);
+ COPY_CARRY;
+ val = 0;
+ } else {
+ val <<= (cnt - 1);
+ SET_CFLG ((val & 0x80000000) >> 31);
+ COPY_CARRY;
+ val <<= 1;
+ val &= 0xffffffff;
+ }
+ SET_ZFLG (((uae_s32)(val)) == 0);
+ SET_NFLG (((uae_s32)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (val);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e190_3(uae_u32 opcode) /* ROXL */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 cnt = srcreg;
+{ uae_s32 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = data;
+ cnt &= 63;
+ CLEAR_CZNV;
+{ cnt--;
+ {
+ uae_u32 carry;
+ uae_u32 loval = val >> (31 - cnt);
+ carry = loval & 1;
+ val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1);
+ SET_XFLG (carry);
+ val &= 0xffffffff;
+ } }
+ SET_CFLG (GET_XFLG);
+ SET_ZFLG (((uae_s32)(val)) == 0);
+ SET_NFLG (((uae_s32)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (val);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e198_3(uae_u32 opcode) /* ROL */
+{
+ uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
+ uae_u32 dstreg = opcode & 7;
+{{ uae_u32 cnt = srcreg;
+{ uae_s32 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = data;
+ cnt &= 63;
+ CLEAR_CZNV;
+{ uae_u32 loval;
+ cnt &= 31;
+ loval = val >> (32 - cnt);
+ val <<= cnt;
+ val |= loval;
+ val &= 0xffffffff;
+ SET_CFLG (val & 1);
+}
+ SET_ZFLG (((uae_s32)(val)) == 0);
+ SET_NFLG (((uae_s32)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (val);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e1a0_3(uae_u32 opcode) /* ASL */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 cnt = m68k_dreg(regs, srcreg);
+{ uae_s32 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 32) {
+ SET_VFLG (val != 0);
+ SET_CFLG (cnt == 32 ? val & 1 : 0);
+ COPY_CARRY;
+ val = 0;
+ } else if (cnt > 0) {
+ uae_u32 mask = (0xffffffff << (31 - cnt)) & 0xffffffff;
+ SET_VFLG ((val & mask) != mask && (val & mask) != 0);
+ val <<= cnt - 1;
+ SET_CFLG ((val & 0x80000000) >> 31);
+ COPY_CARRY;
+ val <<= 1;
+ val &= 0xffffffff;
+ }
+ SET_ZFLG (((uae_s32)(val)) == 0);
+ SET_NFLG (((uae_s32)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (val);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e1a8_3(uae_u32 opcode) /* LSL */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 cnt = m68k_dreg(regs, srcreg);
+{ uae_s32 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 32) {
+ SET_CFLG (cnt == 32 ? val & 1 : 0);
+ COPY_CARRY;
+ val = 0;
+ } else if (cnt > 0) {
+ val <<= (cnt - 1);
+ SET_CFLG ((val & 0x80000000) >> 31);
+ COPY_CARRY;
+ val <<= 1;
+ val &= 0xffffffff;
+ }
+ SET_ZFLG (((uae_s32)(val)) == 0);
+ SET_NFLG (((uae_s32)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (val);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e1b0_3(uae_u32 opcode) /* ROXL */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 cnt = m68k_dreg(regs, srcreg);
+{ uae_s32 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt >= 33) cnt -= 33;
+ if (cnt > 0) {
+ cnt--;
+ {
+ uae_u32 carry;
+ uae_u32 loval = val >> (31 - cnt);
+ carry = loval & 1;
+ val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1);
+ SET_XFLG (carry);
+ val &= 0xffffffff;
+ } }
+ SET_CFLG (GET_XFLG);
+ SET_ZFLG (((uae_s32)(val)) == 0);
+ SET_NFLG (((uae_s32)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (val);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e1b8_3(uae_u32 opcode) /* ROL */
+{
+ uae_u32 srcreg = ((opcode >> 9) & 7);
+ uae_u32 dstreg = opcode & 7;
+{{ uae_s32 cnt = m68k_dreg(regs, srcreg);
+{ uae_s32 data = m68k_dreg(regs, dstreg);
+{ uae_u32 val = data;
+ cnt &= 63;
+ CLEAR_CZNV;
+ if (cnt > 0) {
+ uae_u32 loval;
+ cnt &= 31;
+ loval = val >> (32 - cnt);
+ val <<= cnt;
+ val |= loval;
+ val &= 0xffffffff;
+ SET_CFLG (val & 1);
+}
+ SET_ZFLG (((uae_s32)(val)) == 0);
+ SET_NFLG (((uae_s32)(val)) < 0);
+ m68k_dreg(regs, dstreg) = (val);
+#if HAS_PROFILING
+ if (gProfilingEnabled)
+ ProfileIncrementClock(2*cnt);
+#endif
+}}}}m68k_incpc(2);
+return 2;
+}
+unsigned long REGPARAM2 op_e1d0_3(uae_u32 opcode) /* ASLW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg);
+{ uae_s16 data = get_word(dataa);
+{ uae_u32 val = (uae_u16)data;
+ uae_u32 sign = 0x8000 & val;
+ uae_u32 sign2;
+ val <<= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ sign2 = 0x8000 & val;
+ SET_CFLG (sign != 0);
+ COPY_CARRY;
+ SET_VFLG (GET_VFLG | (sign2 != sign));
+ put_word(dataa,val);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_e1d8_3(uae_u32 opcode) /* ASLW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg);
+{ uae_s16 data = get_word(dataa);
+ m68k_areg(regs, srcreg) += 2;
+{ uae_u32 val = (uae_u16)data;
+ uae_u32 sign = 0x8000 & val;
+ uae_u32 sign2;
+ val <<= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ sign2 = 0x8000 & val;
+ SET_CFLG (sign != 0);
+ COPY_CARRY;
+ SET_VFLG (GET_VFLG | (sign2 != sign));
+ put_word(dataa,val);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_e1e0_3(uae_u32 opcode) /* ASLW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 data = get_word(dataa);
+ m68k_areg (regs, srcreg) = dataa;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_u32 val = (uae_u16)data;
+ uae_u32 sign = 0x8000 & val;
+ uae_u32 sign2;
+ val <<= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ sign2 = 0x8000 & val;
+ SET_CFLG (sign != 0);
+ COPY_CARRY;
+ SET_VFLG (GET_VFLG | (sign2 != sign));
+ put_word(dataa,val);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_e1e8_3(uae_u32 opcode) /* ASLW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 data = get_word(dataa);
+{ uae_u32 val = (uae_u16)data;
+ uae_u32 sign = 0x8000 & val;
+ uae_u32 sign2;
+ val <<= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ sign2 = 0x8000 & val;
+ SET_CFLG (sign != 0);
+ COPY_CARRY;
+ SET_VFLG (GET_VFLG | (sign2 != sign));
+ put_word(dataa,val);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_e1f0_3(uae_u32 opcode) /* ASLW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 data = get_word(dataa);
+{ uae_u32 val = (uae_u16)data;
+ uae_u32 sign = 0x8000 & val;
+ uae_u32 sign2;
+ val <<= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ sign2 = 0x8000 & val;
+ SET_CFLG (sign != 0);
+ COPY_CARRY;
+ SET_VFLG (GET_VFLG | (sign2 != sign));
+ put_word(dataa,val);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_e1f8_3(uae_u32 opcode) /* ASLW */
+{
+{{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 data = get_word(dataa);
+{ uae_u32 val = (uae_u16)data;
+ uae_u32 sign = 0x8000 & val;
+ uae_u32 sign2;
+ val <<= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ sign2 = 0x8000 & val;
+ SET_CFLG (sign != 0);
+ COPY_CARRY;
+ SET_VFLG (GET_VFLG | (sign2 != sign));
+ put_word(dataa,val);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_e1f9_3(uae_u32 opcode) /* ASLW */
+{
+{{ uaecptr dataa = get_ilong(2);
+{ uae_s16 data = get_word(dataa);
+{ uae_u32 val = (uae_u16)data;
+ uae_u32 sign = 0x8000 & val;
+ uae_u32 sign2;
+ val <<= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+ sign2 = 0x8000 & val;
+ SET_CFLG (sign != 0);
+ COPY_CARRY;
+ SET_VFLG (GET_VFLG | (sign2 != sign));
+ put_word(dataa,val);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_e2d0_3(uae_u32 opcode) /* LSRW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg);
+{ uae_s16 data = get_word(dataa);
+{ uae_u32 val = (uae_u16)data;
+ uae_u32 carry = val & 1;
+ val >>= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_e2d8_3(uae_u32 opcode) /* LSRW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg);
+{ uae_s16 data = get_word(dataa);
+ m68k_areg(regs, srcreg) += 2;
+{ uae_u32 val = (uae_u16)data;
+ uae_u32 carry = val & 1;
+ val >>= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_e2e0_3(uae_u32 opcode) /* LSRW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 data = get_word(dataa);
+ m68k_areg (regs, srcreg) = dataa;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_u32 val = (uae_u16)data;
+ uae_u32 carry = val & 1;
+ val >>= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_e2e8_3(uae_u32 opcode) /* LSRW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 data = get_word(dataa);
+{ uae_u32 val = (uae_u16)data;
+ uae_u32 carry = val & 1;
+ val >>= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_e2f0_3(uae_u32 opcode) /* LSRW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 data = get_word(dataa);
+{ uae_u32 val = (uae_u16)data;
+ uae_u32 carry = val & 1;
+ val >>= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_e2f8_3(uae_u32 opcode) /* LSRW */
+{
+{{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 data = get_word(dataa);
+{ uae_u32 val = (uae_u16)data;
+ uae_u32 carry = val & 1;
+ val >>= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_e2f9_3(uae_u32 opcode) /* LSRW */
+{
+{{ uaecptr dataa = get_ilong(2);
+{ uae_s16 data = get_word(dataa);
+{ uae_u32 val = (uae_u16)data;
+ uae_u32 carry = val & 1;
+ val >>= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_e3d0_3(uae_u32 opcode) /* LSLW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg);
+{ uae_s16 data = get_word(dataa);
+{ uae_u16 val = data;
+ uae_u32 carry = val & 0x8000;
+ val <<= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry >> 15);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_e3d8_3(uae_u32 opcode) /* LSLW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg);
+{ uae_s16 data = get_word(dataa);
+ m68k_areg(regs, srcreg) += 2;
+{ uae_u16 val = data;
+ uae_u32 carry = val & 0x8000;
+ val <<= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry >> 15);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_e3e0_3(uae_u32 opcode) /* LSLW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 data = get_word(dataa);
+ m68k_areg (regs, srcreg) = dataa;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_u16 val = data;
+ uae_u32 carry = val & 0x8000;
+ val <<= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry >> 15);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_e3e8_3(uae_u32 opcode) /* LSLW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 data = get_word(dataa);
+{ uae_u16 val = data;
+ uae_u32 carry = val & 0x8000;
+ val <<= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry >> 15);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_e3f0_3(uae_u32 opcode) /* LSLW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 data = get_word(dataa);
+{ uae_u16 val = data;
+ uae_u32 carry = val & 0x8000;
+ val <<= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry >> 15);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_e3f8_3(uae_u32 opcode) /* LSLW */
+{
+{{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 data = get_word(dataa);
+{ uae_u16 val = data;
+ uae_u32 carry = val & 0x8000;
+ val <<= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry >> 15);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_e3f9_3(uae_u32 opcode) /* LSLW */
+{
+{{ uaecptr dataa = get_ilong(2);
+{ uae_s16 data = get_word(dataa);
+{ uae_u16 val = data;
+ uae_u32 carry = val & 0x8000;
+ val <<= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry >> 15);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_e4d0_3(uae_u32 opcode) /* ROXRW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg);
+{ uae_s16 data = get_word(dataa);
+{ uae_u16 val = data;
+ uae_u32 carry = val & 1;
+ val >>= 1;
+ if (GET_XFLG) val |= 0x8000;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_e4d8_3(uae_u32 opcode) /* ROXRW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg);
+{ uae_s16 data = get_word(dataa);
+ m68k_areg(regs, srcreg) += 2;
+{ uae_u16 val = data;
+ uae_u32 carry = val & 1;
+ val >>= 1;
+ if (GET_XFLG) val |= 0x8000;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_e4e0_3(uae_u32 opcode) /* ROXRW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 data = get_word(dataa);
+ m68k_areg (regs, srcreg) = dataa;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_u16 val = data;
+ uae_u32 carry = val & 1;
+ val >>= 1;
+ if (GET_XFLG) val |= 0x8000;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_e4e8_3(uae_u32 opcode) /* ROXRW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 data = get_word(dataa);
+{ uae_u16 val = data;
+ uae_u32 carry = val & 1;
+ val >>= 1;
+ if (GET_XFLG) val |= 0x8000;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_e4f0_3(uae_u32 opcode) /* ROXRW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 data = get_word(dataa);
+{ uae_u16 val = data;
+ uae_u32 carry = val & 1;
+ val >>= 1;
+ if (GET_XFLG) val |= 0x8000;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_e4f8_3(uae_u32 opcode) /* ROXRW */
+{
+{{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 data = get_word(dataa);
+{ uae_u16 val = data;
+ uae_u32 carry = val & 1;
+ val >>= 1;
+ if (GET_XFLG) val |= 0x8000;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_e4f9_3(uae_u32 opcode) /* ROXRW */
+{
+{{ uaecptr dataa = get_ilong(2);
+{ uae_s16 data = get_word(dataa);
+{ uae_u16 val = data;
+ uae_u32 carry = val & 1;
+ val >>= 1;
+ if (GET_XFLG) val |= 0x8000;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_e5d0_3(uae_u32 opcode) /* ROXLW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg);
+{ uae_s16 data = get_word(dataa);
+{ uae_u16 val = data;
+ uae_u32 carry = val & 0x8000;
+ val <<= 1;
+ if (GET_XFLG) val |= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry >> 15);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_e5d8_3(uae_u32 opcode) /* ROXLW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg);
+{ uae_s16 data = get_word(dataa);
+ m68k_areg(regs, srcreg) += 2;
+{ uae_u16 val = data;
+ uae_u32 carry = val & 0x8000;
+ val <<= 1;
+ if (GET_XFLG) val |= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry >> 15);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_e5e0_3(uae_u32 opcode) /* ROXLW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 data = get_word(dataa);
+ m68k_areg (regs, srcreg) = dataa;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_u16 val = data;
+ uae_u32 carry = val & 0x8000;
+ val <<= 1;
+ if (GET_XFLG) val |= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry >> 15);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_e5e8_3(uae_u32 opcode) /* ROXLW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 data = get_word(dataa);
+{ uae_u16 val = data;
+ uae_u32 carry = val & 0x8000;
+ val <<= 1;
+ if (GET_XFLG) val |= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry >> 15);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_e5f0_3(uae_u32 opcode) /* ROXLW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 data = get_word(dataa);
+{ uae_u16 val = data;
+ uae_u32 carry = val & 0x8000;
+ val <<= 1;
+ if (GET_XFLG) val |= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry >> 15);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_e5f8_3(uae_u32 opcode) /* ROXLW */
+{
+{{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 data = get_word(dataa);
+{ uae_u16 val = data;
+ uae_u32 carry = val & 0x8000;
+ val <<= 1;
+ if (GET_XFLG) val |= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry >> 15);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_e5f9_3(uae_u32 opcode) /* ROXLW */
+{
+{{ uaecptr dataa = get_ilong(2);
+{ uae_s16 data = get_word(dataa);
+{ uae_u16 val = data;
+ uae_u32 carry = val & 0x8000;
+ val <<= 1;
+ if (GET_XFLG) val |= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry >> 15);
+ COPY_CARRY;
+ put_word(dataa,val);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_e6d0_3(uae_u32 opcode) /* RORW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg);
+{ uae_s16 data = get_word(dataa);
+{ uae_u16 val = data;
+ uae_u32 carry = val & 1;
+ val >>= 1;
+ if (carry) val |= 0x8000;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry);
+ put_word(dataa,val);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_e6d8_3(uae_u32 opcode) /* RORW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg);
+{ uae_s16 data = get_word(dataa);
+ m68k_areg(regs, srcreg) += 2;
+{ uae_u16 val = data;
+ uae_u32 carry = val & 1;
+ val >>= 1;
+ if (carry) val |= 0x8000;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry);
+ put_word(dataa,val);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_e6e0_3(uae_u32 opcode) /* RORW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 data = get_word(dataa);
+ m68k_areg (regs, srcreg) = dataa;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_u16 val = data;
+ uae_u32 carry = val & 1;
+ val >>= 1;
+ if (carry) val |= 0x8000;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry);
+ put_word(dataa,val);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_e6e8_3(uae_u32 opcode) /* RORW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 data = get_word(dataa);
+{ uae_u16 val = data;
+ uae_u32 carry = val & 1;
+ val >>= 1;
+ if (carry) val |= 0x8000;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry);
+ put_word(dataa,val);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_e6f0_3(uae_u32 opcode) /* RORW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 data = get_word(dataa);
+{ uae_u16 val = data;
+ uae_u32 carry = val & 1;
+ val >>= 1;
+ if (carry) val |= 0x8000;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry);
+ put_word(dataa,val);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_e6f8_3(uae_u32 opcode) /* RORW */
+{
+{{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 data = get_word(dataa);
+{ uae_u16 val = data;
+ uae_u32 carry = val & 1;
+ val >>= 1;
+ if (carry) val |= 0x8000;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry);
+ put_word(dataa,val);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_e6f9_3(uae_u32 opcode) /* RORW */
+{
+{{ uaecptr dataa = get_ilong(2);
+{ uae_s16 data = get_word(dataa);
+{ uae_u16 val = data;
+ uae_u32 carry = val & 1;
+ val >>= 1;
+ if (carry) val |= 0x8000;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry);
+ put_word(dataa,val);
+}}}}m68k_incpc(6);
+return 10;
+}
+unsigned long REGPARAM2 op_e7d0_3(uae_u32 opcode) /* ROLW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg);
+{ uae_s16 data = get_word(dataa);
+{ uae_u16 val = data;
+ uae_u32 carry = val & 0x8000;
+ val <<= 1;
+ if (carry) val |= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry >> 15);
+ put_word(dataa,val);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_e7d8_3(uae_u32 opcode) /* ROLW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg);
+{ uae_s16 data = get_word(dataa);
+ m68k_areg(regs, srcreg) += 2;
+{ uae_u16 val = data;
+ uae_u32 carry = val & 0x8000;
+ val <<= 1;
+ if (carry) val |= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry >> 15);
+ put_word(dataa,val);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_e7e0_3(uae_u32 opcode) /* ROLW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg) - 2;
+{ uae_s16 data = get_word(dataa);
+ m68k_areg (regs, srcreg) = dataa;
+ if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT ();
+{ uae_u16 val = data;
+ uae_u32 carry = val & 0x8000;
+ val <<= 1;
+ if (carry) val |= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry >> 15);
+ put_word(dataa,val);
+}}}}m68k_incpc(2);
+return 6;
+}
+unsigned long REGPARAM2 op_e7e8_3(uae_u32 opcode) /* ROLW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 data = get_word(dataa);
+{ uae_u16 val = data;
+ uae_u32 carry = val & 0x8000;
+ val <<= 1;
+ if (carry) val |= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry >> 15);
+ put_word(dataa,val);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_e7f0_3(uae_u32 opcode) /* ROLW */
+{
+ uae_u32 srcreg = (opcode & 7);
+{{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
+{ uae_s16 data = get_word(dataa);
+{ uae_u16 val = data;
+ uae_u32 carry = val & 0x8000;
+ val <<= 1;
+ if (carry) val |= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry >> 15);
+ put_word(dataa,val);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_e7f8_3(uae_u32 opcode) /* ROLW */
+{
+{{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2);
+{ uae_s16 data = get_word(dataa);
+{ uae_u16 val = data;
+ uae_u32 carry = val & 0x8000;
+ val <<= 1;
+ if (carry) val |= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry >> 15);
+ put_word(dataa,val);
+}}}}m68k_incpc(4);
+return 8;
+}
+unsigned long REGPARAM2 op_e7f9_3(uae_u32 opcode) /* ROLW */
+{
+{{ uaecptr dataa = get_ilong(2);
+{ uae_s16 data = get_word(dataa);
+{ uae_u16 val = data;
+ uae_u32 carry = val & 0x8000;
+ val <<= 1;
+ if (carry) val |= 1;
+ CLEAR_CZNV;
+ SET_ZFLG (((uae_s16)(val)) == 0);
+ SET_NFLG (((uae_s16)(val)) < 0);
+SET_CFLG (carry >> 15);
+ put_word(dataa,val);
+}}}}m68k_incpc(6);
+return 10;
+}
+#endif
+
diff --git a/SrcShared/UAE/cpuemu1.c b/SrcShared/UAE/cpuemu1.c
new file mode 100644
index 0000000..bf64d54
--- /dev/null
+++ b/SrcShared/UAE/cpuemu1.c
@@ -0,0 +1,53 @@
+/*********************************************************************
+ *
+ * Copyright (c) 1998
+ * 3Com/Palm Computing Division. All rights reserved.
+ *
+ * Portions copyright (c) 1995-1998
+ * Bernd Schmidt. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ * software must display the following acknowledgement:
+ *
+ * This product includes software developed by 3Com and its
+ * contributors.
+ *
+ * 4. Neither 3Com nor the names of its contributors may be used to
+ * endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE 3COM AND CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 3COM OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+ * OF SUCH DAMAGE.
+ *
+ *******************************************************************/
+
+// CodeWarrior Pro 3 can compile the full cpuemu.c file OK, but has
+// occassional memory problems linking it. Sometimes it links OK, but
+// sometimes it puts up the generic "Link failed" message. So we break
+// up cpuemu.c to heap it out a little.
+
+#define PART_1 1
+
+#include "cpuemu.c"
diff --git a/SrcShared/UAE/cpuemu2.c b/SrcShared/UAE/cpuemu2.c
new file mode 100644
index 0000000..ebe9c5e
--- /dev/null
+++ b/SrcShared/UAE/cpuemu2.c
@@ -0,0 +1,53 @@
+/*********************************************************************
+ *
+ * Copyright (c) 1998
+ * 3Com/Palm Computing Division. All rights reserved.
+ *
+ * Portions copyright (c) 1995-1998
+ * Bernd Schmidt. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ * software must display the following acknowledgement:
+ *
+ * This product includes software developed by 3Com and its
+ * contributors.
+ *
+ * 4. Neither 3Com nor the names of its contributors may be used to
+ * endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE 3COM AND CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 3COM OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+ * OF SUCH DAMAGE.
+ *
+ *******************************************************************/
+
+// CodeWarrior Pro 3 can compile the full cpuemu.c file OK, but has
+// occassional memory problems linking it. Sometimes it links OK, but
+// sometimes it puts up the generic "Link failed" message. So we break
+// up cpuemu.c to heap it out a little.
+
+#define PART_2 1
+
+#include "cpuemu.c"
diff --git a/SrcShared/UAE/cpuemu3.c b/SrcShared/UAE/cpuemu3.c
new file mode 100644
index 0000000..f38fc67
--- /dev/null
+++ b/SrcShared/UAE/cpuemu3.c
@@ -0,0 +1,53 @@
+/*********************************************************************
+ *
+ * Copyright (c) 1998
+ * 3Com/Palm Computing Division. All rights reserved.
+ *
+ * Portions copyright (c) 1995-1998
+ * Bernd Schmidt. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ * software must display the following acknowledgement:
+ *
+ * This product includes software developed by 3Com and its
+ * contributors.
+ *
+ * 4. Neither 3Com nor the names of its contributors may be used to
+ * endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE 3COM AND CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 3COM OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+ * OF SUCH DAMAGE.
+ *
+ *******************************************************************/
+
+// CodeWarrior Pro 3 can compile the full cpuemu.c file OK, but has
+// occassional memory problems linking it. Sometimes it links OK, but
+// sometimes it puts up the generic "Link failed" message. So we break
+// up cpuemu.c to heap it out a little.
+
+#define PART_3 1
+
+#include "cpuemu.c"
diff --git a/SrcShared/UAE/cpuemu4.c b/SrcShared/UAE/cpuemu4.c
new file mode 100644
index 0000000..34784e0
--- /dev/null
+++ b/SrcShared/UAE/cpuemu4.c
@@ -0,0 +1,53 @@
+/*********************************************************************
+ *
+ * Copyright (c) 1998
+ * 3Com/Palm Computing Division. All rights reserved.
+ *
+ * Portions copyright (c) 1995-1998
+ * Bernd Schmidt. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ * software must display the following acknowledgement:
+ *
+ * This product includes software developed by 3Com and its
+ * contributors.
+ *
+ * 4. Neither 3Com nor the names of its contributors may be used to
+ * endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE 3COM AND CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 3COM OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+ * OF SUCH DAMAGE.
+ *
+ *******************************************************************/
+
+// CodeWarrior Pro 3 can compile the full cpuemu.c file OK, but has
+// occassional memory problems linking it. Sometimes it links OK, but
+// sometimes it puts up the generic "Link failed" message. So we break
+// up cpuemu.c to heap it out a little.
+
+#define PART_4 1
+
+#include "cpuemu.c"
diff --git a/SrcShared/UAE/cpuemu5.c b/SrcShared/UAE/cpuemu5.c
new file mode 100644
index 0000000..33e7a0b
--- /dev/null
+++ b/SrcShared/UAE/cpuemu5.c
@@ -0,0 +1,53 @@
+/*********************************************************************
+ *
+ * Copyright (c) 1998
+ * 3Com/Palm Computing Division. All rights reserved.
+ *
+ * Portions copyright (c) 1995-1998
+ * Bernd Schmidt. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ * software must display the following acknowledgement:
+ *
+ * This product includes software developed by 3Com and its
+ * contributors.
+ *
+ * 4. Neither 3Com nor the names of its contributors may be used to
+ * endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE 3COM AND CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 3COM OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+ * OF SUCH DAMAGE.
+ *
+ *******************************************************************/
+
+// CodeWarrior Pro 3 can compile the full cpuemu.c file OK, but has
+// occassional memory problems linking it. Sometimes it links OK, but
+// sometimes it puts up the generic "Link failed" message. So we break
+// up cpuemu.c to heap it out a little.
+
+#define PART_5 1
+
+#include "cpuemu.c"
diff --git a/SrcShared/UAE/cpuemu6.c b/SrcShared/UAE/cpuemu6.c
new file mode 100644
index 0000000..d25d4bc
--- /dev/null
+++ b/SrcShared/UAE/cpuemu6.c
@@ -0,0 +1,53 @@
+/*********************************************************************
+ *
+ * Copyright (c) 1998
+ * 3Com/Palm Computing Division. All rights reserved.
+ *
+ * Portions copyright (c) 1995-1998
+ * Bernd Schmidt. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ * software must display the following acknowledgement:
+ *
+ * This product includes software developed by 3Com and its
+ * contributors.
+ *
+ * 4. Neither 3Com nor the names of its contributors may be used to
+ * endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE 3COM AND CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 3COM OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+ * OF SUCH DAMAGE.
+ *
+ *******************************************************************/
+
+// CodeWarrior Pro 3 can compile the full cpuemu.c file OK, but has
+// occassional memory problems linking it. Sometimes it links OK, but
+// sometimes it puts up the generic "Link failed" message. So we break
+// up cpuemu.c to heap it out a little.
+
+#define PART_6 1
+
+#include "cpuemu.c"
diff --git a/SrcShared/UAE/cpuemu7.c b/SrcShared/UAE/cpuemu7.c
new file mode 100644
index 0000000..c8aa72f
--- /dev/null
+++ b/SrcShared/UAE/cpuemu7.c
@@ -0,0 +1,53 @@
+/*********************************************************************
+ *
+ * Copyright (c) 1998
+ * 3Com/Palm Computing Division. All rights reserved.
+ *
+ * Portions copyright (c) 1995-1998
+ * Bernd Schmidt. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ * software must display the following acknowledgement:
+ *
+ * This product includes software developed by 3Com and its
+ * contributors.
+ *
+ * 4. Neither 3Com nor the names of its contributors may be used to
+ * endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE 3COM AND CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 3COM OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+ * OF SUCH DAMAGE.
+ *
+ *******************************************************************/
+
+// CodeWarrior Pro 3 can compile the full cpuemu.c file OK, but has
+// occassional memory problems linking it. Sometimes it links OK, but
+// sometimes it puts up the generic "Link failed" message. So we break
+// up cpuemu.c to heap it out a little.
+
+#define PART_7 1
+
+#include "cpuemu.c"
diff --git a/SrcShared/UAE/cpuemu8.c b/SrcShared/UAE/cpuemu8.c
new file mode 100644
index 0000000..e75f26e
--- /dev/null
+++ b/SrcShared/UAE/cpuemu8.c
@@ -0,0 +1,53 @@
+/*********************************************************************
+ *
+ * Copyright (c) 1998
+ * 3Com/Palm Computing Division. All rights reserved.
+ *
+ * Portions copyright (c) 1995-1998
+ * Bernd Schmidt. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ * software must display the following acknowledgement:
+ *
+ * This product includes software developed by 3Com and its
+ * contributors.
+ *
+ * 4. Neither 3Com nor the names of its contributors may be used to
+ * endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE 3COM AND CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 3COM OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+ * OF SUCH DAMAGE.
+ *
+ *******************************************************************/
+
+// CodeWarrior Pro 3 can compile the full cpuemu.c file OK, but has
+// occassional memory problems linking it. Sometimes it links OK, but
+// sometimes it puts up the generic "Link failed" message. So we break
+// up cpuemu.c to heap it out a little.
+
+#define PART_8 1
+
+#include "cpuemu.c"
diff --git a/SrcShared/UAE/cpustbl.c b/SrcShared/UAE/cpustbl.c
new file mode 100644
index 0000000..154cf36
--- /dev/null
+++ b/SrcShared/UAE/cpustbl.c
@@ -0,0 +1,1590 @@
+#include "UAE.h"
+#if HAS_PROFILING
+#include "Profiling.h"
+#endif
+struct cputbl op_smalltbl_3[] = {
+{ op_0_3, 0, 0, 0, 2, 0 }, /* OR */
+{ op_10_3, 0, 16, 0, 3, 1 }, /* OR */
+{ op_18_3, 0, 24, 0, 3, 1 }, /* OR */
+{ op_20_3, 0, 32, 2, 3, 1 }, /* OR */
+{ op_28_3, 0, 40, 0, 4, 1 }, /* OR */
+{ op_30_3, 0, 48, 2, 4, 1 }, /* OR */
+{ op_38_3, 0, 56, 0, 4, 1 }, /* OR */
+{ op_39_3, 0, 57, 0, 5, 1 }, /* OR */
+{ op_3c_3, 0, 60, 8, 4, 0 }, /* ORSR */
+{ op_40_3, 0, 64, 0, 2, 0 }, /* OR */
+{ op_50_3, 0, 80, 0, 3, 1 }, /* OR */
+{ op_58_3, 0, 88, 0, 3, 1 }, /* OR */
+{ op_60_3, 0, 96, 2, 3, 1 }, /* OR */
+{ op_68_3, 0, 104, 0, 4, 1 }, /* OR */
+{ op_70_3, 0, 112, 2, 4, 1 }, /* OR */
+{ op_78_3, 0, 120, 0, 4, 1 }, /* OR */
+{ op_79_3, 0, 121, 0, 5, 1 }, /* OR */
+{ op_7c_3, 0, 124, 8, 4, 0 }, /* ORSR */
+{ op_80_3, 0, 128, 2, 3, 0 }, /* OR */
+{ op_90_3, 0, 144, 0, 5, 2 }, /* OR */
+{ op_98_3, 0, 152, 0, 5, 2 }, /* OR */
+{ op_a0_3, 0, 160, 2, 5, 2 }, /* OR */
+{ op_a8_3, 0, 168, 0, 6, 2 }, /* OR */
+{ op_b0_3, 0, 176, 2, 6, 2 }, /* OR */
+{ op_b8_3, 0, 184, 0, 6, 2 }, /* OR */
+{ op_b9_3, 0, 185, 0, 7, 2 }, /* OR */
+{ op_100_3, 0, 256, 2, 1, 0 }, /* BTST */
+{ op_108_3, 0, 264, 0, 4, 0 }, /* MVPMR */
+{ op_110_3, 0, 272, 0, 2, 0 }, /* BTST */
+{ op_118_3, 0, 280, 0, 2, 0 }, /* BTST */
+{ op_120_3, 0, 288, 2, 2, 0 }, /* BTST */
+{ op_128_3, 0, 296, 0, 3, 0 }, /* BTST */
+{ op_130_3, 0, 304, 2, 3, 0 }, /* BTST */
+{ op_138_3, 0, 312, 0, 3, 0 }, /* BTST */
+{ op_139_3, 0, 313, 0, 4, 0 }, /* BTST */
+{ op_13a_3, 0, 314, 0, 3, 0 }, /* BTST */
+{ op_13b_3, 0, 315, 2, 3, 0 }, /* BTST */
+{ op_13c_3, 0, 316, 0, 2, 0 }, /* BTST */
+{ op_140_3, 0, 320, 4, 1, 0 }, /* BCHG */
+{ op_148_3, 0, 328, 0, 6, 0 }, /* MVPMR */
+{ op_150_3, 0, 336, 0, 2, 1 }, /* BCHG */
+{ op_158_3, 0, 344, 0, 2, 1 }, /* BCHG */
+{ op_160_3, 0, 352, 2, 2, 1 }, /* BCHG */
+{ op_168_3, 0, 360, 0, 3, 1 }, /* BCHG */
+{ op_170_3, 0, 368, 2, 3, 1 }, /* BCHG */
+{ op_178_3, 0, 376, 0, 3, 1 }, /* BCHG */
+{ op_179_3, 0, 377, 0, 4, 1 }, /* BCHG */
+{ op_17a_3, 0, 378, 0, 3, 1 }, /* BCHG */
+{ op_17b_3, 0, 379, 2, 3, 1 }, /* BCHG */
+{ op_180_3, 0, 384, 6, 1, 0 }, /* BCLR */
+{ op_188_3, 0, 392, 0, 2, 2 }, /* MVPRM */
+{ op_190_3, 0, 400, 0, 2, 1 }, /* BCLR */
+{ op_198_3, 0, 408, 0, 2, 1 }, /* BCLR */
+{ op_1a0_3, 0, 416, 2, 2, 1 }, /* BCLR */
+{ op_1a8_3, 0, 424, 0, 3, 1 }, /* BCLR */
+{ op_1b0_3, 0, 432, 2, 3, 1 }, /* BCLR */
+{ op_1b8_3, 0, 440, 0, 3, 1 }, /* BCLR */
+{ op_1b9_3, 0, 441, 0, 4, 1 }, /* BCLR */
+{ op_1ba_3, 0, 442, 0, 3, 1 }, /* BCLR */
+{ op_1bb_3, 0, 443, 2, 3, 1 }, /* BCLR */
+{ op_1c0_3, 0, 448, 4, 1, 0 }, /* BSET */
+{ op_1c8_3, 0, 456, 0, 2, 4 }, /* MVPRM */
+{ op_1d0_3, 0, 464, 0, 2, 1 }, /* BSET */
+{ op_1d8_3, 0, 472, 0, 2, 1 }, /* BSET */
+{ op_1e0_3, 0, 480, 2, 2, 1 }, /* BSET */
+{ op_1e8_3, 0, 488, 0, 3, 1 }, /* BSET */
+{ op_1f0_3, 0, 496, 2, 3, 1 }, /* BSET */
+{ op_1f8_3, 0, 504, 0, 3, 1 }, /* BSET */
+{ op_1f9_3, 0, 505, 0, 4, 1 }, /* BSET */
+{ op_1fa_3, 0, 506, 0, 3, 1 }, /* BSET */
+{ op_1fb_3, 0, 507, 2, 3, 1 }, /* BSET */
+{ op_200_3, 0, 512, 0, 2, 0 }, /* AND */
+{ op_210_3, 0, 528, 0, 3, 1 }, /* AND */
+{ op_218_3, 0, 536, 0, 3, 1 }, /* AND */
+{ op_220_3, 0, 544, 2, 3, 1 }, /* AND */
+{ op_228_3, 0, 552, 0, 4, 1 }, /* AND */
+{ op_230_3, 0, 560, 2, 4, 1 }, /* AND */
+{ op_238_3, 0, 568, 0, 4, 1 }, /* AND */
+{ op_239_3, 0, 569, 0, 5, 1 }, /* AND */
+{ op_23c_3, 0, 572, 8, 4, 0 }, /* ANDSR */
+{ op_240_3, 0, 576, 0, 2, 0 }, /* AND */
+{ op_250_3, 0, 592, 0, 3, 1 }, /* AND */
+{ op_258_3, 0, 600, 0, 3, 1 }, /* AND */
+{ op_260_3, 0, 608, 2, 3, 1 }, /* AND */
+{ op_268_3, 0, 616, 0, 4, 1 }, /* AND */
+{ op_270_3, 0, 624, 2, 4, 1 }, /* AND */
+{ op_278_3, 0, 632, 0, 4, 1 }, /* AND */
+{ op_279_3, 0, 633, 0, 5, 1 }, /* AND */
+{ op_27c_3, 0, 636, 8, 4, 0 }, /* ANDSR */
+{ op_280_3, 0, 640, 2, 3, 0 }, /* AND */
+{ op_290_3, 0, 656, 0, 5, 2 }, /* AND */
+{ op_298_3, 0, 664, 0, 5, 2 }, /* AND */
+{ op_2a0_3, 0, 672, 2, 5, 2 }, /* AND */
+{ op_2a8_3, 0, 680, 0, 6, 2 }, /* AND */
+{ op_2b0_3, 0, 688, 2, 6, 2 }, /* AND */
+{ op_2b8_3, 0, 696, 0, 6, 2 }, /* AND */
+{ op_2b9_3, 0, 697, 0, 7, 2 }, /* AND */
+{ op_400_3, 0, 1024, 0, 2, 0 }, /* SUB */
+{ op_410_3, 0, 1040, 0, 3, 1 }, /* SUB */
+{ op_418_3, 0, 1048, 0, 3, 1 }, /* SUB */
+{ op_420_3, 0, 1056, 2, 3, 1 }, /* SUB */
+{ op_428_3, 0, 1064, 0, 4, 1 }, /* SUB */
+{ op_430_3, 0, 1072, 2, 4, 1 }, /* SUB */
+{ op_438_3, 0, 1080, 0, 4, 1 }, /* SUB */
+{ op_439_3, 0, 1081, 0, 5, 1 }, /* SUB */
+{ op_440_3, 0, 1088, 0, 2, 0 }, /* SUB */
+{ op_450_3, 0, 1104, 0, 3, 1 }, /* SUB */
+{ op_458_3, 0, 1112, 0, 3, 1 }, /* SUB */
+{ op_460_3, 0, 1120, 2, 3, 1 }, /* SUB */
+{ op_468_3, 0, 1128, 0, 4, 1 }, /* SUB */
+{ op_470_3, 0, 1136, 2, 4, 1 }, /* SUB */
+{ op_478_3, 0, 1144, 0, 4, 1 }, /* SUB */
+{ op_479_3, 0, 1145, 0, 5, 1 }, /* SUB */
+{ op_480_3, 0, 1152, 4, 3, 0 }, /* SUB */
+{ op_490_3, 0, 1168, 0, 5, 2 }, /* SUB */
+{ op_498_3, 0, 1176, 0, 5, 2 }, /* SUB */
+{ op_4a0_3, 0, 1184, 2, 5, 2 }, /* SUB */
+{ op_4a8_3, 0, 1192, 0, 6, 2 }, /* SUB */
+{ op_4b0_3, 0, 1200, 2, 6, 2 }, /* SUB */
+{ op_4b8_3, 0, 1208, 0, 6, 2 }, /* SUB */
+{ op_4b9_3, 0, 1209, 0, 7, 2 }, /* SUB */
+{ op_600_3, 0, 1536, 0, 2, 0 }, /* ADD */
+{ op_610_3, 0, 1552, 0, 3, 1 }, /* ADD */
+{ op_618_3, 0, 1560, 0, 3, 1 }, /* ADD */
+{ op_620_3, 0, 1568, 2, 3, 1 }, /* ADD */
+{ op_628_3, 0, 1576, 0, 4, 1 }, /* ADD */
+{ op_630_3, 0, 1584, 2, 4, 1 }, /* ADD */
+{ op_638_3, 0, 1592, 0, 4, 1 }, /* ADD */
+{ op_639_3, 0, 1593, 0, 5, 1 }, /* ADD */
+{ op_640_3, 0, 1600, 0, 2, 0 }, /* ADD */
+{ op_650_3, 0, 1616, 0, 3, 1 }, /* ADD */
+{ op_658_3, 0, 1624, 0, 3, 1 }, /* ADD */
+{ op_660_3, 0, 1632, 2, 3, 1 }, /* ADD */
+{ op_668_3, 0, 1640, 0, 4, 1 }, /* ADD */
+{ op_670_3, 0, 1648, 2, 4, 1 }, /* ADD */
+{ op_678_3, 0, 1656, 0, 4, 1 }, /* ADD */
+{ op_679_3, 0, 1657, 0, 5, 1 }, /* ADD */
+{ op_680_3, 0, 1664, 4, 3, 0 }, /* ADD */
+{ op_690_3, 0, 1680, 0, 5, 2 }, /* ADD */
+{ op_698_3, 0, 1688, 0, 5, 2 }, /* ADD */
+{ op_6a0_3, 0, 1696, 2, 5, 2 }, /* ADD */
+{ op_6a8_3, 0, 1704, 0, 6, 2 }, /* ADD */
+{ op_6b0_3, 0, 1712, 2, 6, 2 }, /* ADD */
+{ op_6b8_3, 0, 1720, 0, 6, 2 }, /* ADD */
+{ op_6b9_3, 0, 1721, 0, 7, 2 }, /* ADD */
+{ op_800_3, 0, 2048, 2, 2, 0 }, /* BTST */
+{ op_810_3, 0, 2064, 0, 3, 0 }, /* BTST */
+{ op_818_3, 0, 2072, 0, 3, 0 }, /* BTST */
+{ op_820_3, 0, 2080, 2, 3, 0 }, /* BTST */
+{ op_828_3, 0, 2088, 0, 4, 0 }, /* BTST */
+{ op_830_3, 0, 2096, 2, 4, 0 }, /* BTST */
+{ op_838_3, 0, 2104, 0, 4, 0 }, /* BTST */
+{ op_839_3, 0, 2105, 0, 5, 0 }, /* BTST */
+{ op_83a_3, 0, 2106, 0, 4, 0 }, /* BTST */
+{ op_83b_3, 0, 2107, 2, 4, 0 }, /* BTST */
+{ op_83c_3, 0, 2108, 0, 3, 0 }, /* BTST */
+{ op_840_3, 0, 2112, 4, 2, 0 }, /* BCHG */
+{ op_850_3, 0, 2128, 0, 3, 1 }, /* BCHG */
+{ op_858_3, 0, 2136, 0, 3, 1 }, /* BCHG */
+{ op_860_3, 0, 2144, 2, 3, 1 }, /* BCHG */
+{ op_868_3, 0, 2152, 0, 4, 1 }, /* BCHG */
+{ op_870_3, 0, 2160, 2, 4, 1 }, /* BCHG */
+{ op_878_3, 0, 2168, 0, 4, 1 }, /* BCHG */
+{ op_879_3, 0, 2169, 0, 5, 1 }, /* BCHG */
+{ op_87a_3, 0, 2170, 0, 4, 1 }, /* BCHG */
+{ op_87b_3, 0, 2171, 2, 4, 1 }, /* BCHG */
+{ op_880_3, 0, 2176, 6, 2, 0 }, /* BCLR */
+{ op_890_3, 0, 2192, 0, 3, 1 }, /* BCLR */
+{ op_898_3, 0, 2200, 0, 3, 1 }, /* BCLR */
+{ op_8a0_3, 0, 2208, 2, 3, 1 }, /* BCLR */
+{ op_8a8_3, 0, 2216, 0, 4, 1 }, /* BCLR */
+{ op_8b0_3, 0, 2224, 2, 4, 1 }, /* BCLR */
+{ op_8b8_3, 0, 2232, 0, 4, 1 }, /* BCLR */
+{ op_8b9_3, 0, 2233, 0, 5, 1 }, /* BCLR */
+{ op_8ba_3, 0, 2234, 0, 4, 1 }, /* BCLR */
+{ op_8bb_3, 0, 2235, 2, 4, 1 }, /* BCLR */
+{ op_8c0_3, 0, 2240, 4, 2, 0 }, /* BSET */
+{ op_8d0_3, 0, 2256, 0, 3, 1 }, /* BSET */
+{ op_8d8_3, 0, 2264, 0, 3, 1 }, /* BSET */
+{ op_8e0_3, 0, 2272, 2, 3, 1 }, /* BSET */
+{ op_8e8_3, 0, 2280, 0, 4, 1 }, /* BSET */
+{ op_8f0_3, 0, 2288, 2, 4, 1 }, /* BSET */
+{ op_8f8_3, 0, 2296, 0, 4, 1 }, /* BSET */
+{ op_8f9_3, 0, 2297, 0, 5, 1 }, /* BSET */
+{ op_8fa_3, 0, 2298, 0, 4, 1 }, /* BSET */
+{ op_8fb_3, 0, 2299, 2, 4, 1 }, /* BSET */
+{ op_a00_3, 0, 2560, 0, 2, 0 }, /* EOR */
+{ op_a10_3, 0, 2576, 0, 3, 1 }, /* EOR */
+{ op_a18_3, 0, 2584, 0, 3, 1 }, /* EOR */
+{ op_a20_3, 0, 2592, 2, 3, 1 }, /* EOR */
+{ op_a28_3, 0, 2600, 0, 4, 1 }, /* EOR */
+{ op_a30_3, 0, 2608, 2, 4, 1 }, /* EOR */
+{ op_a38_3, 0, 2616, 0, 4, 1 }, /* EOR */
+{ op_a39_3, 0, 2617, 0, 5, 1 }, /* EOR */
+{ op_a3c_3, 0, 2620, 8, 4, 0 }, /* EORSR */
+{ op_a40_3, 0, 2624, 0, 2, 0 }, /* EOR */
+{ op_a50_3, 0, 2640, 0, 3, 1 }, /* EOR */
+{ op_a58_3, 0, 2648, 0, 3, 1 }, /* EOR */
+{ op_a60_3, 0, 2656, 2, 3, 1 }, /* EOR */
+{ op_a68_3, 0, 2664, 0, 4, 1 }, /* EOR */
+{ op_a70_3, 0, 2672, 2, 4, 1 }, /* EOR */
+{ op_a78_3, 0, 2680, 0, 4, 1 }, /* EOR */
+{ op_a79_3, 0, 2681, 0, 5, 1 }, /* EOR */
+{ op_a7c_3, 0, 2684, 8, 4, 0 }, /* EORSR */
+{ op_a80_3, 0, 2688, 4, 3, 0 }, /* EOR */
+{ op_a90_3, 0, 2704, 0, 5, 2 }, /* EOR */
+{ op_a98_3, 0, 2712, 0, 5, 2 }, /* EOR */
+{ op_aa0_3, 0, 2720, 2, 5, 2 }, /* EOR */
+{ op_aa8_3, 0, 2728, 0, 6, 2 }, /* EOR */
+{ op_ab0_3, 0, 2736, 2, 6, 2 }, /* EOR */
+{ op_ab8_3, 0, 2744, 0, 6, 2 }, /* EOR */
+{ op_ab9_3, 0, 2745, 0, 7, 2 }, /* EOR */
+{ op_c00_3, 0, 3072, 0, 2, 0 }, /* CMP */
+{ op_c10_3, 0, 3088, 0, 3, 0 }, /* CMP */
+{ op_c18_3, 0, 3096, 0, 3, 0 }, /* CMP */
+{ op_c20_3, 0, 3104, 2, 3, 0 }, /* CMP */
+{ op_c28_3, 0, 3112, 0, 4, 0 }, /* CMP */
+{ op_c30_3, 0, 3120, 2, 4, 0 }, /* CMP */
+{ op_c38_3, 0, 3128, 0, 4, 0 }, /* CMP */
+{ op_c39_3, 0, 3129, 0, 5, 0 }, /* CMP */
+{ op_c3a_3, 0, 3130, 0, 4, 0 }, /* CMP */
+{ op_c3b_3, 0, 3131, 2, 4, 0 }, /* CMP */
+{ op_c40_3, 0, 3136, 0, 2, 0 }, /* CMP */
+{ op_c50_3, 0, 3152, 0, 3, 0 }, /* CMP */
+{ op_c58_3, 0, 3160, 0, 3, 0 }, /* CMP */
+{ op_c60_3, 0, 3168, 2, 3, 0 }, /* CMP */
+{ op_c68_3, 0, 3176, 0, 4, 0 }, /* CMP */
+{ op_c70_3, 0, 3184, 2, 4, 0 }, /* CMP */
+{ op_c78_3, 0, 3192, 0, 4, 0 }, /* CMP */
+{ op_c79_3, 0, 3193, 0, 5, 0 }, /* CMP */
+{ op_c7a_3, 0, 3194, 0, 4, 0 }, /* CMP */
+{ op_c7b_3, 0, 3195, 2, 4, 0 }, /* CMP */
+{ op_c80_3, 0, 3200, 2, 3, 0 }, /* CMP */
+{ op_c90_3, 0, 3216, 0, 5, 0 }, /* CMP */
+{ op_c98_3, 0, 3224, 0, 5, 0 }, /* CMP */
+{ op_ca0_3, 0, 3232, 2, 5, 0 }, /* CMP */
+{ op_ca8_3, 0, 3240, 0, 6, 0 }, /* CMP */
+{ op_cb0_3, 0, 3248, 2, 6, 0 }, /* CMP */
+{ op_cb8_3, 0, 3256, 0, 6, 0 }, /* CMP */
+{ op_cb9_3, 0, 3257, 0, 7, 0 }, /* CMP */
+{ op_cba_3, 0, 3258, 0, 6, 0 }, /* CMP */
+{ op_cbb_3, 0, 3259, 2, 6, 0 }, /* CMP */
+{ op_1000_3, 0, 4096, 0, 1, 0 }, /* MOVE */
+{ op_1010_3, 0, 4112, 0, 2, 0 }, /* MOVE */
+{ op_1018_3, 0, 4120, 0, 2, 0 }, /* MOVE */
+{ op_1020_3, 0, 4128, 2, 2, 0 }, /* MOVE */
+{ op_1028_3, 0, 4136, 0, 3, 0 }, /* MOVE */
+{ op_1030_3, 0, 4144, 2, 3, 0 }, /* MOVE */
+{ op_1038_3, 0, 4152, 0, 3, 0 }, /* MOVE */
+{ op_1039_3, 0, 4153, 0, 4, 0 }, /* MOVE */
+{ op_103a_3, 0, 4154, 0, 3, 0 }, /* MOVE */
+{ op_103b_3, 0, 4155, 2, 3, 0 }, /* MOVE */
+{ op_103c_3, 0, 4156, 0, 2, 0 }, /* MOVE */
+{ op_1080_3, 0, 4224, 0, 1, 1 }, /* MOVE */
+{ op_1090_3, 0, 4240, 0, 2, 1 }, /* MOVE */
+{ op_1098_3, 0, 4248, 0, 2, 1 }, /* MOVE */
+{ op_10a0_3, 0, 4256, 2, 2, 1 }, /* MOVE */
+{ op_10a8_3, 0, 4264, 0, 3, 1 }, /* MOVE */
+{ op_10b0_3, 0, 4272, 2, 3, 1 }, /* MOVE */
+{ op_10b8_3, 0, 4280, 0, 3, 1 }, /* MOVE */
+{ op_10b9_3, 0, 4281, 0, 4, 1 }, /* MOVE */
+{ op_10ba_3, 0, 4282, 0, 3, 1 }, /* MOVE */
+{ op_10bb_3, 0, 4283, 2, 3, 1 }, /* MOVE */
+{ op_10bc_3, 0, 4284, 0, 2, 1 }, /* MOVE */
+{ op_10c0_3, 0, 4288, 0, 1, 1 }, /* MOVE */
+{ op_10d0_3, 0, 4304, 0, 2, 1 }, /* MOVE */
+{ op_10d8_3, 0, 4312, 0, 2, 1 }, /* MOVE */
+{ op_10e0_3, 0, 4320, 2, 2, 1 }, /* MOVE */
+{ op_10e8_3, 0, 4328, 0, 3, 1 }, /* MOVE */
+{ op_10f0_3, 0, 4336, 2, 3, 1 }, /* MOVE */
+{ op_10f8_3, 0, 4344, 0, 3, 1 }, /* MOVE */
+{ op_10f9_3, 0, 4345, 0, 4, 1 }, /* MOVE */
+{ op_10fa_3, 0, 4346, 0, 3, 1 }, /* MOVE */
+{ op_10fb_3, 0, 4347, 2, 3, 1 }, /* MOVE */
+{ op_10fc_3, 0, 4348, 0, 2, 1 }, /* MOVE */
+{ op_1100_3, 0, 4352, 2, 1, 1 }, /* MOVE */
+{ op_1110_3, 0, 4368, 2, 2, 1 }, /* MOVE */
+{ op_1118_3, 0, 4376, 2, 2, 1 }, /* MOVE */
+{ op_1120_3, 0, 4384, 4, 2, 1 }, /* MOVE */
+{ op_1128_3, 0, 4392, 2, 3, 1 }, /* MOVE */
+{ op_1130_3, 0, 4400, 4, 3, 1 }, /* MOVE */
+{ op_1138_3, 0, 4408, 2, 3, 1 }, /* MOVE */
+{ op_1139_3, 0, 4409, 2, 4, 1 }, /* MOVE */
+{ op_113a_3, 0, 4410, 2, 3, 1 }, /* MOVE */
+{ op_113b_3, 0, 4411, 4, 3, 1 }, /* MOVE */
+{ op_113c_3, 0, 4412, 2, 2, 1 }, /* MOVE */
+{ op_1140_3, 0, 4416, 0, 2, 1 }, /* MOVE */
+{ op_1150_3, 0, 4432, 0, 3, 1 }, /* MOVE */
+{ op_1158_3, 0, 4440, 0, 3, 1 }, /* MOVE */
+{ op_1160_3, 0, 4448, 2, 3, 1 }, /* MOVE */
+{ op_1168_3, 0, 4456, 0, 4, 1 }, /* MOVE */
+{ op_1170_3, 0, 4464, 2, 4, 1 }, /* MOVE */
+{ op_1178_3, 0, 4472, 0, 4, 1 }, /* MOVE */
+{ op_1179_3, 0, 4473, 0, 5, 1 }, /* MOVE */
+{ op_117a_3, 0, 4474, 0, 4, 1 }, /* MOVE */
+{ op_117b_3, 0, 4475, 2, 4, 1 }, /* MOVE */
+{ op_117c_3, 0, 4476, 0, 3, 1 }, /* MOVE */
+{ op_1180_3, 0, 4480, 2, 2, 1 }, /* MOVE */
+{ op_1190_3, 0, 4496, 2, 3, 1 }, /* MOVE */
+{ op_1198_3, 0, 4504, 2, 3, 1 }, /* MOVE */
+{ op_11a0_3, 0, 4512, 4, 3, 1 }, /* MOVE */
+{ op_11a8_3, 0, 4520, 2, 4, 1 }, /* MOVE */
+{ op_11b0_3, 0, 4528, 4, 4, 1 }, /* MOVE */
+{ op_11b8_3, 0, 4536, 2, 4, 1 }, /* MOVE */
+{ op_11b9_3, 0, 4537, 2, 5, 1 }, /* MOVE */
+{ op_11ba_3, 0, 4538, 2, 4, 1 }, /* MOVE */
+{ op_11bb_3, 0, 4539, 4, 4, 1 }, /* MOVE */
+{ op_11bc_3, 0, 4540, 2, 3, 1 }, /* MOVE */
+{ op_11c0_3, 0, 4544, 0, 2, 1 }, /* MOVE */
+{ op_11d0_3, 0, 4560, 0, 3, 1 }, /* MOVE */
+{ op_11d8_3, 0, 4568, 0, 3, 1 }, /* MOVE */
+{ op_11e0_3, 0, 4576, 2, 3, 1 }, /* MOVE */
+{ op_11e8_3, 0, 4584, 0, 4, 1 }, /* MOVE */
+{ op_11f0_3, 0, 4592, 2, 4, 1 }, /* MOVE */
+{ op_11f8_3, 0, 4600, 0, 4, 1 }, /* MOVE */
+{ op_11f9_3, 0, 4601, 0, 5, 1 }, /* MOVE */
+{ op_11fa_3, 0, 4602, 0, 4, 1 }, /* MOVE */
+{ op_11fb_3, 0, 4603, 2, 4, 1 }, /* MOVE */
+{ op_11fc_3, 0, 4604, 0, 3, 1 }, /* MOVE */
+{ op_13c0_3, 0, 5056, 0, 3, 1 }, /* MOVE */
+{ op_13d0_3, 0, 5072, 0, 4, 1 }, /* MOVE */
+{ op_13d8_3, 0, 5080, 0, 4, 1 }, /* MOVE */
+{ op_13e0_3, 0, 5088, 2, 4, 1 }, /* MOVE */
+{ op_13e8_3, 0, 5096, 0, 5, 1 }, /* MOVE */
+{ op_13f0_3, 0, 5104, 2, 5, 1 }, /* MOVE */
+{ op_13f8_3, 0, 5112, 0, 5, 1 }, /* MOVE */
+{ op_13f9_3, 0, 5113, 0, 6, 1 }, /* MOVE */
+{ op_13fa_3, 0, 5114, 0, 5, 1 }, /* MOVE */
+{ op_13fb_3, 0, 5115, 2, 5, 1 }, /* MOVE */
+{ op_13fc_3, 0, 5116, 0, 4, 1 }, /* MOVE */
+{ op_2000_3, 0, 8192, 0, 1, 0 }, /* MOVE */
+{ op_2008_3, 0, 8200, 0, 1, 0 }, /* MOVE */
+{ op_2010_3, 0, 8208, 0, 3, 0 }, /* MOVE */
+{ op_2018_3, 0, 8216, 0, 3, 0 }, /* MOVE */
+{ op_2020_3, 0, 8224, 2, 3, 0 }, /* MOVE */
+{ op_2028_3, 0, 8232, 0, 4, 0 }, /* MOVE */
+{ op_2030_3, 0, 8240, 2, 4, 0 }, /* MOVE */
+{ op_2038_3, 0, 8248, 0, 4, 0 }, /* MOVE */
+{ op_2039_3, 0, 8249, 0, 5, 0 }, /* MOVE */
+{ op_203a_3, 0, 8250, 0, 4, 0 }, /* MOVE */
+{ op_203b_3, 0, 8251, 2, 4, 0 }, /* MOVE */
+{ op_203c_3, 0, 8252, 0, 3, 0 }, /* MOVE */
+{ op_2040_3, 0, 8256, 0, 1, 0 }, /* MOVEA */
+{ op_2048_3, 0, 8264, 0, 1, 0 }, /* MOVEA */
+{ op_2050_3, 0, 8272, 0, 3, 0 }, /* MOVEA */
+{ op_2058_3, 0, 8280, 0, 3, 0 }, /* MOVEA */
+{ op_2060_3, 0, 8288, 2, 3, 0 }, /* MOVEA */
+{ op_2068_3, 0, 8296, 0, 4, 0 }, /* MOVEA */
+{ op_2070_3, 0, 8304, 2, 4, 0 }, /* MOVEA */
+{ op_2078_3, 0, 8312, 0, 4, 0 }, /* MOVEA */
+{ op_2079_3, 0, 8313, 0, 5, 0 }, /* MOVEA */
+{ op_207a_3, 0, 8314, 0, 4, 0 }, /* MOVEA */
+{ op_207b_3, 0, 8315, 2, 4, 0 }, /* MOVEA */
+{ op_207c_3, 0, 8316, 0, 3, 0 }, /* MOVEA */
+{ op_2080_3, 0, 8320, 0, 1, 2 }, /* MOVE */
+{ op_2088_3, 0, 8328, 0, 1, 2 }, /* MOVE */
+{ op_2090_3, 0, 8336, 0, 3, 2 }, /* MOVE */
+{ op_2098_3, 0, 8344, 0, 3, 2 }, /* MOVE */
+{ op_20a0_3, 0, 8352, 2, 3, 2 }, /* MOVE */
+{ op_20a8_3, 0, 8360, 0, 4, 2 }, /* MOVE */
+{ op_20b0_3, 0, 8368, 2, 4, 2 }, /* MOVE */
+{ op_20b8_3, 0, 8376, 0, 4, 2 }, /* MOVE */
+{ op_20b9_3, 0, 8377, 0, 5, 2 }, /* MOVE */
+{ op_20ba_3, 0, 8378, 0, 4, 2 }, /* MOVE */
+{ op_20bb_3, 0, 8379, 2, 4, 2 }, /* MOVE */
+{ op_20bc_3, 0, 8380, 0, 3, 2 }, /* MOVE */
+{ op_20c0_3, 0, 8384, 0, 1, 2 }, /* MOVE */
+{ op_20c8_3, 0, 8392, 0, 1, 2 }, /* MOVE */
+{ op_20d0_3, 0, 8400, 0, 3, 2 }, /* MOVE */
+{ op_20d8_3, 0, 8408, 0, 3, 2 }, /* MOVE */
+{ op_20e0_3, 0, 8416, 2, 3, 2 }, /* MOVE */
+{ op_20e8_3, 0, 8424, 0, 4, 2 }, /* MOVE */
+{ op_20f0_3, 0, 8432, 2, 4, 2 }, /* MOVE */
+{ op_20f8_3, 0, 8440, 0, 4, 2 }, /* MOVE */
+{ op_20f9_3, 0, 8441, 0, 5, 2 }, /* MOVE */
+{ op_20fa_3, 0, 8442, 0, 4, 2 }, /* MOVE */
+{ op_20fb_3, 0, 8443, 2, 4, 2 }, /* MOVE */
+{ op_20fc_3, 0, 8444, 0, 3, 2 }, /* MOVE */
+{ op_2100_3, 0, 8448, 2, 1, 2 }, /* MOVE */
+{ op_2108_3, 0, 8456, 2, 1, 2 }, /* MOVE */
+{ op_2110_3, 0, 8464, 2, 3, 2 }, /* MOVE */
+{ op_2118_3, 0, 8472, 2, 3, 2 }, /* MOVE */
+{ op_2120_3, 0, 8480, 4, 3, 2 }, /* MOVE */
+{ op_2128_3, 0, 8488, 2, 4, 2 }, /* MOVE */
+{ op_2130_3, 0, 8496, 4, 4, 2 }, /* MOVE */
+{ op_2138_3, 0, 8504, 2, 4, 2 }, /* MOVE */
+{ op_2139_3, 0, 8505, 2, 5, 2 }, /* MOVE */
+{ op_213a_3, 0, 8506, 2, 4, 2 }, /* MOVE */
+{ op_213b_3, 0, 8507, 4, 4, 2 }, /* MOVE */
+{ op_213c_3, 0, 8508, 2, 3, 2 }, /* MOVE */
+{ op_2140_3, 0, 8512, 0, 2, 2 }, /* MOVE */
+{ op_2148_3, 0, 8520, 0, 2, 2 }, /* MOVE */
+{ op_2150_3, 0, 8528, 0, 4, 2 }, /* MOVE */
+{ op_2158_3, 0, 8536, 0, 4, 2 }, /* MOVE */
+{ op_2160_3, 0, 8544, 2, 4, 2 }, /* MOVE */
+{ op_2168_3, 0, 8552, 0, 5, 2 }, /* MOVE */
+{ op_2170_3, 0, 8560, 2, 5, 2 }, /* MOVE */
+{ op_2178_3, 0, 8568, 0, 5, 2 }, /* MOVE */
+{ op_2179_3, 0, 8569, 0, 6, 2 }, /* MOVE */
+{ op_217a_3, 0, 8570, 0, 5, 2 }, /* MOVE */
+{ op_217b_3, 0, 8571, 2, 5, 2 }, /* MOVE */
+{ op_217c_3, 0, 8572, 0, 4, 2 }, /* MOVE */
+{ op_2180_3, 0, 8576, 2, 2, 2 }, /* MOVE */
+{ op_2188_3, 0, 8584, 2, 2, 2 }, /* MOVE */
+{ op_2190_3, 0, 8592, 2, 4, 2 }, /* MOVE */
+{ op_2198_3, 0, 8600, 2, 4, 2 }, /* MOVE */
+{ op_21a0_3, 0, 8608, 4, 4, 2 }, /* MOVE */
+{ op_21a8_3, 0, 8616, 2, 5, 2 }, /* MOVE */
+{ op_21b0_3, 0, 8624, 4, 5, 2 }, /* MOVE */
+{ op_21b8_3, 0, 8632, 2, 5, 2 }, /* MOVE */
+{ op_21b9_3, 0, 8633, 2, 6, 2 }, /* MOVE */
+{ op_21ba_3, 0, 8634, 2, 5, 2 }, /* MOVE */
+{ op_21bb_3, 0, 8635, 4, 5, 2 }, /* MOVE */
+{ op_21bc_3, 0, 8636, 2, 4, 2 }, /* MOVE */
+{ op_21c0_3, 0, 8640, 0, 2, 2 }, /* MOVE */
+{ op_21c8_3, 0, 8648, 0, 2, 2 }, /* MOVE */
+{ op_21d0_3, 0, 8656, 0, 4, 2 }, /* MOVE */
+{ op_21d8_3, 0, 8664, 0, 4, 2 }, /* MOVE */
+{ op_21e0_3, 0, 8672, 2, 4, 2 }, /* MOVE */
+{ op_21e8_3, 0, 8680, 0, 5, 2 }, /* MOVE */
+{ op_21f0_3, 0, 8688, 2, 5, 2 }, /* MOVE */
+{ op_21f8_3, 0, 8696, 0, 5, 2 }, /* MOVE */
+{ op_21f9_3, 0, 8697, 0, 6, 2 }, /* MOVE */
+{ op_21fa_3, 0, 8698, 0, 5, 2 }, /* MOVE */
+{ op_21fb_3, 0, 8699, 2, 5, 2 }, /* MOVE */
+{ op_21fc_3, 0, 8700, 0, 4, 2 }, /* MOVE */
+{ op_23c0_3, 0, 9152, 0, 3, 2 }, /* MOVE */
+{ op_23c8_3, 0, 9160, 0, 3, 2 }, /* MOVE */
+{ op_23d0_3, 0, 9168, 0, 5, 2 }, /* MOVE */
+{ op_23d8_3, 0, 9176, 0, 5, 2 }, /* MOVE */
+{ op_23e0_3, 0, 9184, 2, 5, 2 }, /* MOVE */
+{ op_23e8_3, 0, 9192, 0, 6, 2 }, /* MOVE */
+{ op_23f0_3, 0, 9200, 2, 6, 2 }, /* MOVE */
+{ op_23f8_3, 0, 9208, 0, 6, 2 }, /* MOVE */
+{ op_23f9_3, 0, 9209, 0, 7, 2 }, /* MOVE */
+{ op_23fa_3, 0, 9210, 0, 6, 2 }, /* MOVE */
+{ op_23fb_3, 0, 9211, 2, 6, 2 }, /* MOVE */
+{ op_23fc_3, 0, 9212, 0, 5, 2 }, /* MOVE */
+{ op_3000_3, 0, 12288, 0, 1, 0 }, /* MOVE */
+{ op_3008_3, 0, 12296, 0, 1, 0 }, /* MOVE */
+{ op_3010_3, 0, 12304, 0, 2, 0 }, /* MOVE */
+{ op_3018_3, 0, 12312, 0, 2, 0 }, /* MOVE */
+{ op_3020_3, 0, 12320, 2, 2, 0 }, /* MOVE */
+{ op_3028_3, 0, 12328, 0, 3, 0 }, /* MOVE */
+{ op_3030_3, 0, 12336, 2, 3, 0 }, /* MOVE */
+{ op_3038_3, 0, 12344, 0, 3, 0 }, /* MOVE */
+{ op_3039_3, 0, 12345, 0, 4, 0 }, /* MOVE */
+{ op_303a_3, 0, 12346, 0, 3, 0 }, /* MOVE */
+{ op_303b_3, 0, 12347, 2, 3, 0 }, /* MOVE */
+{ op_303c_3, 0, 12348, 0, 2, 0 }, /* MOVE */
+{ op_3040_3, 0, 12352, 0, 1, 0 }, /* MOVEA */
+{ op_3048_3, 0, 12360, 0, 1, 0 }, /* MOVEA */
+{ op_3050_3, 0, 12368, 0, 2, 0 }, /* MOVEA */
+{ op_3058_3, 0, 12376, 0, 2, 0 }, /* MOVEA */
+{ op_3060_3, 0, 12384, 2, 2, 0 }, /* MOVEA */
+{ op_3068_3, 0, 12392, 0, 3, 0 }, /* MOVEA */
+{ op_3070_3, 0, 12400, 2, 3, 0 }, /* MOVEA */
+{ op_3078_3, 0, 12408, 0, 3, 0 }, /* MOVEA */
+{ op_3079_3, 0, 12409, 0, 4, 0 }, /* MOVEA */
+{ op_307a_3, 0, 12410, 0, 3, 0 }, /* MOVEA */
+{ op_307b_3, 0, 12411, 2, 3, 0 }, /* MOVEA */
+{ op_307c_3, 0, 12412, 0, 2, 0 }, /* MOVEA */
+{ op_3080_3, 0, 12416, 0, 1, 1 }, /* MOVE */
+{ op_3088_3, 0, 12424, 0, 1, 1 }, /* MOVE */
+{ op_3090_3, 0, 12432, 0, 2, 1 }, /* MOVE */
+{ op_3098_3, 0, 12440, 0, 2, 1 }, /* MOVE */
+{ op_30a0_3, 0, 12448, 2, 2, 1 }, /* MOVE */
+{ op_30a8_3, 0, 12456, 0, 3, 1 }, /* MOVE */
+{ op_30b0_3, 0, 12464, 2, 3, 1 }, /* MOVE */
+{ op_30b8_3, 0, 12472, 0, 3, 1 }, /* MOVE */
+{ op_30b9_3, 0, 12473, 0, 4, 1 }, /* MOVE */
+{ op_30ba_3, 0, 12474, 0, 3, 1 }, /* MOVE */
+{ op_30bb_3, 0, 12475, 2, 3, 1 }, /* MOVE */
+{ op_30bc_3, 0, 12476, 0, 2, 1 }, /* MOVE */
+{ op_30c0_3, 0, 12480, 0, 1, 1 }, /* MOVE */
+{ op_30c8_3, 0, 12488, 0, 1, 1 }, /* MOVE */
+{ op_30d0_3, 0, 12496, 0, 2, 1 }, /* MOVE */
+{ op_30d8_3, 0, 12504, 0, 2, 1 }, /* MOVE */
+{ op_30e0_3, 0, 12512, 2, 2, 1 }, /* MOVE */
+{ op_30e8_3, 0, 12520, 0, 3, 1 }, /* MOVE */
+{ op_30f0_3, 0, 12528, 2, 3, 1 }, /* MOVE */
+{ op_30f8_3, 0, 12536, 0, 3, 1 }, /* MOVE */
+{ op_30f9_3, 0, 12537, 0, 4, 1 }, /* MOVE */
+{ op_30fa_3, 0, 12538, 0, 3, 1 }, /* MOVE */
+{ op_30fb_3, 0, 12539, 2, 3, 1 }, /* MOVE */
+{ op_30fc_3, 0, 12540, 0, 2, 1 }, /* MOVE */
+{ op_3100_3, 0, 12544, 2, 1, 1 }, /* MOVE */
+{ op_3108_3, 0, 12552, 2, 1, 1 }, /* MOVE */
+{ op_3110_3, 0, 12560, 2, 2, 1 }, /* MOVE */
+{ op_3118_3, 0, 12568, 2, 2, 1 }, /* MOVE */
+{ op_3120_3, 0, 12576, 4, 2, 1 }, /* MOVE */
+{ op_3128_3, 0, 12584, 2, 3, 1 }, /* MOVE */
+{ op_3130_3, 0, 12592, 4, 3, 1 }, /* MOVE */
+{ op_3138_3, 0, 12600, 2, 3, 1 }, /* MOVE */
+{ op_3139_3, 0, 12601, 2, 4, 1 }, /* MOVE */
+{ op_313a_3, 0, 12602, 2, 3, 1 }, /* MOVE */
+{ op_313b_3, 0, 12603, 4, 3, 1 }, /* MOVE */
+{ op_313c_3, 0, 12604, 2, 2, 1 }, /* MOVE */
+{ op_3140_3, 0, 12608, 0, 2, 1 }, /* MOVE */
+{ op_3148_3, 0, 12616, 0, 2, 1 }, /* MOVE */
+{ op_3150_3, 0, 12624, 0, 3, 1 }, /* MOVE */
+{ op_3158_3, 0, 12632, 0, 3, 1 }, /* MOVE */
+{ op_3160_3, 0, 12640, 2, 3, 1 }, /* MOVE */
+{ op_3168_3, 0, 12648, 0, 4, 1 }, /* MOVE */
+{ op_3170_3, 0, 12656, 2, 4, 1 }, /* MOVE */
+{ op_3178_3, 0, 12664, 0, 4, 1 }, /* MOVE */
+{ op_3179_3, 0, 12665, 0, 5, 1 }, /* MOVE */
+{ op_317a_3, 0, 12666, 0, 4, 1 }, /* MOVE */
+{ op_317b_3, 0, 12667, 2, 4, 1 }, /* MOVE */
+{ op_317c_3, 0, 12668, 0, 3, 1 }, /* MOVE */
+{ op_3180_3, 0, 12672, 2, 2, 1 }, /* MOVE */
+{ op_3188_3, 0, 12680, 2, 2, 1 }, /* MOVE */
+{ op_3190_3, 0, 12688, 2, 3, 1 }, /* MOVE */
+{ op_3198_3, 0, 12696, 2, 3, 1 }, /* MOVE */
+{ op_31a0_3, 0, 12704, 4, 3, 1 }, /* MOVE */
+{ op_31a8_3, 0, 12712, 2, 4, 1 }, /* MOVE */
+{ op_31b0_3, 0, 12720, 4, 4, 1 }, /* MOVE */
+{ op_31b8_3, 0, 12728, 2, 4, 1 }, /* MOVE */
+{ op_31b9_3, 0, 12729, 2, 5, 1 }, /* MOVE */
+{ op_31ba_3, 0, 12730, 2, 4, 1 }, /* MOVE */
+{ op_31bb_3, 0, 12731, 4, 4, 1 }, /* MOVE */
+{ op_31bc_3, 0, 12732, 2, 3, 1 }, /* MOVE */
+{ op_31c0_3, 0, 12736, 0, 2, 1 }, /* MOVE */
+{ op_31c8_3, 0, 12744, 0, 2, 1 }, /* MOVE */
+{ op_31d0_3, 0, 12752, 0, 3, 1 }, /* MOVE */
+{ op_31d8_3, 0, 12760, 0, 3, 1 }, /* MOVE */
+{ op_31e0_3, 0, 12768, 2, 3, 1 }, /* MOVE */
+{ op_31e8_3, 0, 12776, 0, 4, 1 }, /* MOVE */
+{ op_31f0_3, 0, 12784, 2, 4, 1 }, /* MOVE */
+{ op_31f8_3, 0, 12792, 0, 4, 1 }, /* MOVE */
+{ op_31f9_3, 0, 12793, 0, 5, 1 }, /* MOVE */
+{ op_31fa_3, 0, 12794, 0, 4, 1 }, /* MOVE */
+{ op_31fb_3, 0, 12795, 2, 4, 1 }, /* MOVE */
+{ op_31fc_3, 0, 12796, 0, 3, 1 }, /* MOVE */
+{ op_33c0_3, 0, 13248, 0, 3, 1 }, /* MOVE */
+{ op_33c8_3, 0, 13256, 0, 3, 1 }, /* MOVE */
+{ op_33d0_3, 0, 13264, 0, 4, 1 }, /* MOVE */
+{ op_33d8_3, 0, 13272, 0, 4, 1 }, /* MOVE */
+{ op_33e0_3, 0, 13280, 2, 4, 1 }, /* MOVE */
+{ op_33e8_3, 0, 13288, 0, 5, 1 }, /* MOVE */
+{ op_33f0_3, 0, 13296, 2, 5, 1 }, /* MOVE */
+{ op_33f8_3, 0, 13304, 0, 5, 1 }, /* MOVE */
+{ op_33f9_3, 0, 13305, 0, 6, 1 }, /* MOVE */
+{ op_33fa_3, 0, 13306, 0, 5, 1 }, /* MOVE */
+{ op_33fb_3, 0, 13307, 2, 5, 1 }, /* MOVE */
+{ op_33fc_3, 0, 13308, 0, 4, 1 }, /* MOVE */
+{ op_4000_3, 0, 16384, 0, 1, 0 }, /* NEGX */
+{ op_4010_3, 0, 16400, 0, 2, 1 }, /* NEGX */
+{ op_4018_3, 0, 16408, 0, 2, 1 }, /* NEGX */
+{ op_4020_3, 0, 16416, 2, 2, 1 }, /* NEGX */
+{ op_4028_3, 0, 16424, 0, 3, 1 }, /* NEGX */
+{ op_4030_3, 0, 16432, 2, 3, 1 }, /* NEGX */
+{ op_4038_3, 0, 16440, 0, 3, 1 }, /* NEGX */
+{ op_4039_3, 0, 16441, 0, 4, 1 }, /* NEGX */
+{ op_4040_3, 0, 16448, 0, 1, 0 }, /* NEGX */
+{ op_4050_3, 0, 16464, 0, 2, 1 }, /* NEGX */
+{ op_4058_3, 0, 16472, 0, 2, 1 }, /* NEGX */
+{ op_4060_3, 0, 16480, 2, 2, 1 }, /* NEGX */
+{ op_4068_3, 0, 16488, 0, 3, 1 }, /* NEGX */
+{ op_4070_3, 0, 16496, 2, 3, 1 }, /* NEGX */
+{ op_4078_3, 0, 16504, 0, 3, 1 }, /* NEGX */
+{ op_4079_3, 0, 16505, 0, 4, 1 }, /* NEGX */
+{ op_4080_3, 0, 16512, 2, 1, 0 }, /* NEGX */
+{ op_4090_3, 0, 16528, 0, 3, 2 }, /* NEGX */
+{ op_4098_3, 0, 16536, 0, 3, 2 }, /* NEGX */
+{ op_40a0_3, 0, 16544, 2, 3, 2 }, /* NEGX */
+{ op_40a8_3, 0, 16552, 0, 4, 2 }, /* NEGX */
+{ op_40b0_3, 0, 16560, 2, 4, 2 }, /* NEGX */
+{ op_40b8_3, 0, 16568, 0, 4, 2 }, /* NEGX */
+{ op_40b9_3, 0, 16569, 0, 5, 2 }, /* NEGX */
+{ op_40c0_3, 0, 16576, 2, 1, 0 }, /* MVSR2 */
+{ op_40d0_3, 0, 16592, 0, 1, 1 }, /* MVSR2 */
+{ op_40d8_3, 0, 16600, 0, 1, 1 }, /* MVSR2 */
+{ op_40e0_3, 0, 16608, 2, 1, 1 }, /* MVSR2 */
+{ op_40e8_3, 0, 16616, 0, 2, 1 }, /* MVSR2 */
+{ op_40f0_3, 0, 16624, 2, 2, 1 }, /* MVSR2 */
+{ op_40f8_3, 0, 16632, 0, 2, 1 }, /* MVSR2 */
+{ op_40f9_3, 0, 16633, 0, 3, 1 }, /* MVSR2 */
+{ op_4100_3, 0, 16640, 6, 1, 0 }, /* CHK */
+{ op_4110_3, 0, 16656, 6, 3, 0 }, /* CHK */
+{ op_4118_3, 0, 16664, 6, 3, 0 }, /* CHK */
+{ op_4120_3, 0, 16672, 8, 3, 0 }, /* CHK */
+{ op_4128_3, 0, 16680, 6, 4, 0 }, /* CHK */
+{ op_4130_3, 0, 16688, 8, 4, 0 }, /* CHK */
+{ op_4138_3, 0, 16696, 6, 4, 0 }, /* CHK */
+{ op_4139_3, 0, 16697, 6, 5, 0 }, /* CHK */
+{ op_413a_3, 0, 16698, 6, 4, 0 }, /* CHK */
+{ op_413b_3, 0, 16699, 8, 4, 0 }, /* CHK */
+{ op_413c_3, 0, 16700, 6, 3, 0 }, /* CHK */
+{ op_4180_3, 0, 16768, 6, 1, 0 }, /* CHK */
+{ op_4190_3, 0, 16784, 6, 2, 0 }, /* CHK */
+{ op_4198_3, 0, 16792, 6, 2, 0 }, /* CHK */
+{ op_41a0_3, 0, 16800, 8, 2, 0 }, /* CHK */
+{ op_41a8_3, 0, 16808, 6, 3, 0 }, /* CHK */
+{ op_41b0_3, 0, 16816, 8, 3, 0 }, /* CHK */
+{ op_41b8_3, 0, 16824, 6, 3, 0 }, /* CHK */
+{ op_41b9_3, 0, 16825, 6, 4, 0 }, /* CHK */
+{ op_41ba_3, 0, 16826, 6, 3, 0 }, /* CHK */
+{ op_41bb_3, 0, 16827, 8, 3, 0 }, /* CHK */
+{ op_41bc_3, 0, 16828, 6, 2, 0 }, /* CHK */
+{ op_41d0_3, 0, 16848, 0, 1, 0 }, /* LEA */
+{ op_41e8_3, 0, 16872, 0, 2, 0 }, /* LEA */
+{ op_41f0_3, 0, 16880, 4, 2, 0 }, /* LEA */
+{ op_41f8_3, 0, 16888, 0, 2, 0 }, /* LEA */
+{ op_41f9_3, 0, 16889, 0, 3, 0 }, /* LEA */
+{ op_41fa_3, 0, 16890, 0, 2, 0 }, /* LEA */
+{ op_41fb_3, 0, 16891, 4, 2, 0 }, /* LEA */
+{ op_4200_3, 0, 16896, 0, 1, 0 }, /* CLR */
+{ op_4210_3, 0, 16912, 0, 1, 1 }, /* CLR */
+{ op_4218_3, 0, 16920, 0, 1, 1 }, /* CLR */
+{ op_4220_3, 0, 16928, 2, 1, 1 }, /* CLR */
+{ op_4228_3, 0, 16936, 0, 2, 1 }, /* CLR */
+{ op_4230_3, 0, 16944, 2, 2, 1 }, /* CLR */
+{ op_4238_3, 0, 16952, 0, 2, 1 }, /* CLR */
+{ op_4239_3, 0, 16953, 0, 3, 1 }, /* CLR */
+{ op_4240_3, 0, 16960, 0, 1, 0 }, /* CLR */
+{ op_4250_3, 0, 16976, 0, 1, 1 }, /* CLR */
+{ op_4258_3, 0, 16984, 0, 1, 1 }, /* CLR */
+{ op_4260_3, 0, 16992, 2, 1, 1 }, /* CLR */
+{ op_4268_3, 0, 17000, 0, 2, 1 }, /* CLR */
+{ op_4270_3, 0, 17008, 2, 2, 1 }, /* CLR */
+{ op_4278_3, 0, 17016, 0, 2, 1 }, /* CLR */
+{ op_4279_3, 0, 17017, 0, 3, 1 }, /* CLR */
+{ op_4280_3, 0, 17024, 2, 1, 0 }, /* CLR */
+{ op_4290_3, 0, 17040, 0, 1, 2 }, /* CLR */
+{ op_4298_3, 0, 17048, 0, 1, 2 }, /* CLR */
+{ op_42a0_3, 0, 17056, 2, 1, 2 }, /* CLR */
+{ op_42a8_3, 0, 17064, 0, 2, 2 }, /* CLR */
+{ op_42b0_3, 0, 17072, 2, 2, 2 }, /* CLR */
+{ op_42b8_3, 0, 17080, 0, 2, 2 }, /* CLR */
+{ op_42b9_3, 0, 17081, 0, 3, 2 }, /* CLR */
+{ op_4400_3, 0, 17408, 0, 1, 0 }, /* NEG */
+{ op_4410_3, 0, 17424, 0, 2, 1 }, /* NEG */
+{ op_4418_3, 0, 17432, 0, 2, 1 }, /* NEG */
+{ op_4420_3, 0, 17440, 2, 2, 1 }, /* NEG */
+{ op_4428_3, 0, 17448, 0, 3, 1 }, /* NEG */
+{ op_4430_3, 0, 17456, 2, 3, 1 }, /* NEG */
+{ op_4438_3, 0, 17464, 0, 3, 1 }, /* NEG */
+{ op_4439_3, 0, 17465, 0, 4, 1 }, /* NEG */
+{ op_4440_3, 0, 17472, 0, 1, 0 }, /* NEG */
+{ op_4450_3, 0, 17488, 0, 2, 1 }, /* NEG */
+{ op_4458_3, 0, 17496, 0, 2, 1 }, /* NEG */
+{ op_4460_3, 0, 17504, 2, 2, 1 }, /* NEG */
+{ op_4468_3, 0, 17512, 0, 3, 1 }, /* NEG */
+{ op_4470_3, 0, 17520, 2, 3, 1 }, /* NEG */
+{ op_4478_3, 0, 17528, 0, 3, 1 }, /* NEG */
+{ op_4479_3, 0, 17529, 0, 4, 1 }, /* NEG */
+{ op_4480_3, 0, 17536, 2, 1, 0 }, /* NEG */
+{ op_4490_3, 0, 17552, 0, 3, 2 }, /* NEG */
+{ op_4498_3, 0, 17560, 0, 3, 2 }, /* NEG */
+{ op_44a0_3, 0, 17568, 2, 3, 2 }, /* NEG */
+{ op_44a8_3, 0, 17576, 0, 4, 2 }, /* NEG */
+{ op_44b0_3, 0, 17584, 2, 4, 2 }, /* NEG */
+{ op_44b8_3, 0, 17592, 0, 4, 2 }, /* NEG */
+{ op_44b9_3, 0, 17593, 0, 5, 2 }, /* NEG */
+{ op_44c0_3, 0, 17600, 4, 2, 0 }, /* MV2SR */
+{ op_44d0_3, 0, 17616, 4, 3, 0 }, /* MV2SR */
+{ op_44d8_3, 0, 17624, 4, 3, 0 }, /* MV2SR */
+{ op_44e0_3, 0, 17632, 6, 3, 0 }, /* MV2SR */
+{ op_44e8_3, 0, 17640, 4, 4, 0 }, /* MV2SR */
+{ op_44f0_3, 0, 17648, 6, 4, 0 }, /* MV2SR */
+{ op_44f8_3, 0, 17656, 4, 4, 0 }, /* MV2SR */
+{ op_44f9_3, 0, 17657, 4, 5, 0 }, /* MV2SR */
+{ op_44fa_3, 0, 17658, 4, 4, 0 }, /* MV2SR */
+{ op_44fb_3, 0, 17659, 6, 4, 0 }, /* MV2SR */
+{ op_44fc_3, 0, 17660, 4, 3, 0 }, /* MV2SR */
+{ op_4600_3, 0, 17920, 0, 1, 0 }, /* NOT */
+{ op_4610_3, 0, 17936, 0, 2, 1 }, /* NOT */
+{ op_4618_3, 0, 17944, 0, 2, 1 }, /* NOT */
+{ op_4620_3, 0, 17952, 2, 2, 1 }, /* NOT */
+{ op_4628_3, 0, 17960, 0, 3, 1 }, /* NOT */
+{ op_4630_3, 0, 17968, 2, 3, 1 }, /* NOT */
+{ op_4638_3, 0, 17976, 0, 3, 1 }, /* NOT */
+{ op_4639_3, 0, 17977, 0, 4, 1 }, /* NOT */
+{ op_4640_3, 0, 17984, 0, 1, 0 }, /* NOT */
+{ op_4650_3, 0, 18000, 0, 2, 1 }, /* NOT */
+{ op_4658_3, 0, 18008, 0, 2, 1 }, /* NOT */
+{ op_4660_3, 0, 18016, 2, 2, 1 }, /* NOT */
+{ op_4668_3, 0, 18024, 0, 3, 1 }, /* NOT */
+{ op_4670_3, 0, 18032, 2, 3, 1 }, /* NOT */
+{ op_4678_3, 0, 18040, 0, 3, 1 }, /* NOT */
+{ op_4679_3, 0, 18041, 0, 4, 1 }, /* NOT */
+{ op_4680_3, 0, 18048, 2, 1, 0 }, /* NOT */
+{ op_4690_3, 0, 18064, 0, 3, 2 }, /* NOT */
+{ op_4698_3, 0, 18072, 0, 3, 2 }, /* NOT */
+{ op_46a0_3, 0, 18080, 2, 3, 2 }, /* NOT */
+{ op_46a8_3, 0, 18088, 0, 4, 2 }, /* NOT */
+{ op_46b0_3, 0, 18096, 2, 4, 2 }, /* NOT */
+{ op_46b8_3, 0, 18104, 0, 4, 2 }, /* NOT */
+{ op_46b9_3, 0, 18105, 0, 5, 2 }, /* NOT */
+{ op_46c0_3, 0, 18112, 4, 2, 0 }, /* MV2SR */
+{ op_46d0_3, 0, 18128, 4, 3, 0 }, /* MV2SR */
+{ op_46d8_3, 0, 18136, 4, 3, 0 }, /* MV2SR */
+{ op_46e0_3, 0, 18144, 6, 3, 0 }, /* MV2SR */
+{ op_46e8_3, 0, 18152, 4, 4, 0 }, /* MV2SR */
+{ op_46f0_3, 0, 18160, 6, 4, 0 }, /* MV2SR */
+{ op_46f8_3, 0, 18168, 4, 4, 0 }, /* MV2SR */
+{ op_46f9_3, 0, 18169, 4, 5, 0 }, /* MV2SR */
+{ op_46fa_3, 0, 18170, 4, 4, 0 }, /* MV2SR */
+{ op_46fb_3, 0, 18171, 6, 4, 0 }, /* MV2SR */
+{ op_46fc_3, 0, 18172, 4, 3, 0 }, /* MV2SR */
+{ op_4800_3, 0, 18432, 2, 1, 0 }, /* NBCD */
+{ op_4810_3, 0, 18448, 0, 2, 1 }, /* NBCD */
+{ op_4818_3, 0, 18456, 0, 2, 1 }, /* NBCD */
+{ op_4820_3, 0, 18464, 2, 2, 1 }, /* NBCD */
+{ op_4828_3, 0, 18472, 0, 3, 1 }, /* NBCD */
+{ op_4830_3, 0, 18480, 2, 3, 1 }, /* NBCD */
+{ op_4838_3, 0, 18488, 0, 3, 1 }, /* NBCD */
+{ op_4839_3, 0, 18489, 0, 4, 1 }, /* NBCD */
+{ op_4840_3, 0, 18496, 0, 1, 0 }, /* SWAP */
+{ op_4850_3, 0, 18512, 2, 1, 2 }, /* PEA */
+{ op_4868_3, 0, 18536, 2, 2, 2 }, /* PEA */
+{ op_4870_3, 0, 18544, 5, 2, 2 }, /* PEA */
+{ op_4878_3, 0, 18552, 2, 2, 2 }, /* PEA */
+{ op_4879_3, 0, 18553, 2, 3, 2 }, /* PEA */
+{ op_487a_3, 0, 18554, 2, 2, 2 }, /* PEA */
+{ op_487b_3, 0, 18555, 5, 2, 2 }, /* PEA */
+{ op_4880_3, 0, 18560, 0, 1, 0 }, /* EXT */
+{ op_4890_3, 0, 18576, 0, 2, 255 }, /* MVMLE */
+{ op_48a0_3, 0, 18592, 2, 2, 255 }, /* MVMLE */
+{ op_48a8_3, 0, 18600, 0, 3, 255 }, /* MVMLE */
+{ op_48b0_3, 0, 18608, 2, 3, 255 }, /* MVMLE */
+{ op_48b8_3, 0, 18616, 0, 3, 255 }, /* MVMLE */
+{ op_48b9_3, 0, 18617, 0, 4, 255 }, /* MVMLE */
+{ op_48c0_3, 0, 18624, 0, 1, 0 }, /* EXT */
+{ op_48d0_3, 0, 18640, 0, 2, 255 }, /* MVMLE */
+{ op_48e0_3, 0, 18656, 2, 2, 255 }, /* MVMLE */
+{ op_48e8_3, 0, 18664, 0, 3, 255 }, /* MVMLE */
+{ op_48f0_3, 0, 18672, 2, 3, 255 }, /* MVMLE */
+{ op_48f8_3, 0, 18680, 0, 3, 255 }, /* MVMLE */
+{ op_48f9_3, 0, 18681, 0, 4, 255 }, /* MVMLE */
+{ op_49c0_3, 0, 18880, 0, 1, 0 }, /* EXT */
+{ op_4a00_3, 0, 18944, 0, 1, 0 }, /* TST */
+{ op_4a10_3, 0, 18960, 0, 2, 0 }, /* TST */
+{ op_4a18_3, 0, 18968, 0, 2, 0 }, /* TST */
+{ op_4a20_3, 0, 18976, 2, 2, 0 }, /* TST */
+{ op_4a28_3, 0, 18984, 0, 3, 0 }, /* TST */
+{ op_4a30_3, 0, 18992, 2, 3, 0 }, /* TST */
+{ op_4a38_3, 0, 19000, 0, 3, 0 }, /* TST */
+{ op_4a39_3, 0, 19001, 0, 4, 0 }, /* TST */
+{ op_4a3a_3, 0, 19002, 0, 3, 0 }, /* TST */
+{ op_4a3b_3, 0, 19003, 2, 3, 0 }, /* TST */
+{ op_4a3c_3, 0, 19004, 0, 2, 0 }, /* TST */
+{ op_4a40_3, 0, 19008, 0, 1, 0 }, /* TST */
+{ op_4a48_3, 0, 19016, 0, 1, 0 }, /* TST */
+{ op_4a50_3, 0, 19024, 0, 2, 0 }, /* TST */
+{ op_4a58_3, 0, 19032, 0, 2, 0 }, /* TST */
+{ op_4a60_3, 0, 19040, 2, 2, 0 }, /* TST */
+{ op_4a68_3, 0, 19048, 0, 3, 0 }, /* TST */
+{ op_4a70_3, 0, 19056, 2, 3, 0 }, /* TST */
+{ op_4a78_3, 0, 19064, 0, 3, 0 }, /* TST */
+{ op_4a79_3, 0, 19065, 0, 4, 0 }, /* TST */
+{ op_4a7a_3, 0, 19066, 0, 3, 0 }, /* TST */
+{ op_4a7b_3, 0, 19067, 2, 3, 0 }, /* TST */
+{ op_4a7c_3, 0, 19068, 0, 2, 0 }, /* TST */
+{ op_4a80_3, 0, 19072, 0, 1, 0 }, /* TST */
+{ op_4a88_3, 0, 19080, 0, 1, 0 }, /* TST */
+{ op_4a90_3, 0, 19088, 0, 3, 0 }, /* TST */
+{ op_4a98_3, 0, 19096, 0, 3, 0 }, /* TST */
+{ op_4aa0_3, 0, 19104, 2, 3, 0 }, /* TST */
+{ op_4aa8_3, 0, 19112, 0, 4, 0 }, /* TST */
+{ op_4ab0_3, 0, 19120, 2, 4, 0 }, /* TST */
+{ op_4ab8_3, 0, 19128, 0, 4, 0 }, /* TST */
+{ op_4ab9_3, 0, 19129, 0, 5, 0 }, /* TST */
+{ op_4aba_3, 0, 19130, 0, 4, 0 }, /* TST */
+{ op_4abb_3, 0, 19131, 2, 4, 0 }, /* TST */
+{ op_4abc_3, 0, 19132, 0, 3, 0 }, /* TST */
+{ op_4ac0_3, 0, 19136, 0, 1, 0 }, /* TAS */
+{ op_4ad0_3, 0, 19152, 2, 2, 1 }, /* TAS */
+{ op_4ad8_3, 0, 19160, 2, 2, 1 }, /* TAS */
+{ op_4ae0_3, 0, 19168, 4, 2, 1 }, /* TAS */
+{ op_4ae8_3, 0, 19176, 2, 3, 1 }, /* TAS */
+{ op_4af0_3, 0, 19184, 4, 3, 1 }, /* TAS */
+{ op_4af8_3, 0, 19192, 2, 3, 1 }, /* TAS */
+{ op_4af9_3, 0, 19193, 2, 4, 1 }, /* TAS */
+{ op_4c90_3, 0, 19600, 0, 255, 0 }, /* MVMEL */
+{ op_4c98_3, 0, 19608, 0, 255, 0 }, /* MVMEL */
+{ op_4ca8_3, 0, 19624, 0, 255, 0 }, /* MVMEL */
+{ op_4cb0_3, 0, 19632, 2, 255, 0 }, /* MVMEL */
+{ op_4cb8_3, 0, 19640, 0, 255, 0 }, /* MVMEL */
+{ op_4cb9_3, 0, 19641, 0, 255, 0 }, /* MVMEL */
+{ op_4cba_3, 0, 19642, 0, 255, 0 }, /* MVMEL */
+{ op_4cbb_3, 0, 19643, 2, 255, 0 }, /* MVMEL */
+{ op_4cd0_3, 0, 19664, 0, 255, 0 }, /* MVMEL */
+{ op_4cd8_3, 0, 19672, 0, 255, 0 }, /* MVMEL */
+{ op_4ce8_3, 0, 19688, 0, 255, 0 }, /* MVMEL */
+{ op_4cf0_3, 0, 19696, 2, 255, 0 }, /* MVMEL */
+{ op_4cf8_3, 0, 19704, 0, 255, 0 }, /* MVMEL */
+{ op_4cf9_3, 0, 19705, 0, 255, 0 }, /* MVMEL */
+{ op_4cfa_3, 0, 19706, 0, 255, 0 }, /* MVMEL */
+{ op_4cfb_3, 0, 19707, 2, 255, 0 }, /* MVMEL */
+{ op_4e40_3, 0, 20032, 6, 255, 255 }, /* TRAP */
+{ op_4e50_3, 0, 20048, 2, 2, 2 }, /* LINK */
+{ op_4e58_3, 0, 20056, 0, 3, 0 }, /* UNLK */
+{ op_4e60_3, 0, 20064, 0, 1, 0 }, /* MVR2USP */
+{ op_4e68_3, 0, 20072, 0, 1, 0 }, /* MVUSP2R */
+{ op_4e70_3, 0, 20080, 128, 1, 0 }, /* RESET */
+{ op_4e71_3, 0, 20081, 0, 1, 0 }, /* NOP */
+{ op_4e72_3, 0, 20082, 4, 1, 0 }, /* STOP */
+{ op_4e73_3, 0, 20083, 0, 5, 0 }, /* RTE */
+{ op_4e74_3, 0, 20084, 0, 3, 0 }, /* RTD */
+{ op_4e75_3, 0, 20085, 0, 4, 0 }, /* RTS */
+{ op_4e76_3, 0, 20086, 0, 255, 255 }, /* TRAPV */
+{ op_4e77_3, 0, 20087, 12, 2, 0 }, /* RTR */
+{ op_4e90_3, 0, 20112, 0, 2, 2 }, /* JSR */
+{ op_4ea8_3, 0, 20136, 2, 2, 2 }, /* JSR */
+{ op_4eb0_3, 0, 20144, 6, 2, 2 }, /* JSR */
+{ op_4eb8_3, 0, 20152, 2, 2, 2 }, /* JSR */
+{ op_4eb9_3, 0, 20153, 0, 3, 2 }, /* JSR */
+{ op_4eba_3, 0, 20154, 2, 2, 2 }, /* JSR */
+{ op_4ebb_3, 0, 20155, 6, 2, 2 }, /* JSR */
+{ op_4ed0_3, 0, 20176, 0, 2, 0 }, /* JMP */
+{ op_4ee8_3, 0, 20200, 2, 2, 0 }, /* JMP */
+{ op_4ef0_3, 0, 20208, 2, 3, 0 }, /* JMP */
+{ op_4ef8_3, 0, 20216, 2, 2, 0 }, /* JMP */
+{ op_4ef9_3, 0, 20217, 0, 3, 0 }, /* JMP */
+{ op_4efa_3, 0, 20218, 2, 2, 0 }, /* JMP */
+{ op_4efb_3, 0, 20219, 2, 3, 0 }, /* JMP */
+{ op_5000_3, 0, 20480, 0, 1, 0 }, /* ADD */
+{ op_5010_3, 0, 20496, 0, 2, 1 }, /* ADD */
+{ op_5018_3, 0, 20504, 0, 2, 1 }, /* ADD */
+{ op_5020_3, 0, 20512, 2, 2, 1 }, /* ADD */
+{ op_5028_3, 0, 20520, 0, 3, 1 }, /* ADD */
+{ op_5030_3, 0, 20528, 2, 3, 1 }, /* ADD */
+{ op_5038_3, 0, 20536, 0, 3, 1 }, /* ADD */
+{ op_5039_3, 0, 20537, 0, 4, 1 }, /* ADD */
+{ op_5040_3, 0, 20544, 0, 1, 0 }, /* ADD */
+{ op_5048_3, 0, 20552, 4, 1, 0 }, /* ADDA */
+{ op_5050_3, 0, 20560, 0, 2, 1 }, /* ADD */
+{ op_5058_3, 0, 20568, 0, 2, 1 }, /* ADD */
+{ op_5060_3, 0, 20576, 2, 2, 1 }, /* ADD */
+{ op_5068_3, 0, 20584, 0, 3, 1 }, /* ADD */
+{ op_5070_3, 0, 20592, 2, 3, 1 }, /* ADD */
+{ op_5078_3, 0, 20600, 0, 3, 1 }, /* ADD */
+{ op_5079_3, 0, 20601, 0, 4, 1 }, /* ADD */
+{ op_5080_3, 0, 20608, 4, 1, 0 }, /* ADD */
+{ op_5088_3, 0, 20616, 4, 1, 0 }, /* ADDA */
+{ op_5090_3, 0, 20624, 0, 3, 2 }, /* ADD */
+{ op_5098_3, 0, 20632, 0, 3, 2 }, /* ADD */
+{ op_50a0_3, 0, 20640, 2, 3, 2 }, /* ADD */
+{ op_50a8_3, 0, 20648, 0, 4, 2 }, /* ADD */
+{ op_50b0_3, 0, 20656, 2, 4, 2 }, /* ADD */
+{ op_50b8_3, 0, 20664, 0, 4, 2 }, /* ADD */
+{ op_50b9_3, 0, 20665, 0, 5, 2 }, /* ADD */
+{ op_50c0_3, 0, 20672, 0, 1, 0 }, /* Scc */
+{ op_50c8_3, 0, 20680, 2, 2, 0 }, /* DBcc */
+{ op_50d0_3, 0, 20688, 0, 1, 1 }, /* Scc */
+{ op_50d8_3, 0, 20696, 0, 1, 1 }, /* Scc */
+{ op_50e0_3, 0, 20704, 2, 1, 1 }, /* Scc */
+{ op_50e8_3, 0, 20712, 0, 2, 1 }, /* Scc */
+{ op_50f0_3, 0, 20720, 2, 2, 1 }, /* Scc */
+{ op_50f8_3, 0, 20728, 0, 2, 1 }, /* Scc */
+{ op_50f9_3, 0, 20729, 0, 3, 1 }, /* Scc */
+{ op_5100_3, 0, 20736, 0, 1, 0 }, /* SUB */
+{ op_5110_3, 0, 20752, 0, 2, 1 }, /* SUB */
+{ op_5118_3, 0, 20760, 0, 2, 1 }, /* SUB */
+{ op_5120_3, 0, 20768, 2, 2, 1 }, /* SUB */
+{ op_5128_3, 0, 20776, 0, 3, 1 }, /* SUB */
+{ op_5130_3, 0, 20784, 2, 3, 1 }, /* SUB */
+{ op_5138_3, 0, 20792, 0, 3, 1 }, /* SUB */
+{ op_5139_3, 0, 20793, 0, 4, 1 }, /* SUB */
+{ op_5140_3, 0, 20800, 0, 1, 0 }, /* SUB */
+{ op_5148_3, 0, 20808, 4, 1, 0 }, /* SUBA */
+{ op_5150_3, 0, 20816, 0, 2, 1 }, /* SUB */
+{ op_5158_3, 0, 20824, 0, 2, 1 }, /* SUB */
+{ op_5160_3, 0, 20832, 2, 2, 1 }, /* SUB */
+{ op_5168_3, 0, 20840, 0, 3, 1 }, /* SUB */
+{ op_5170_3, 0, 20848, 2, 3, 1 }, /* SUB */
+{ op_5178_3, 0, 20856, 0, 3, 1 }, /* SUB */
+{ op_5179_3, 0, 20857, 0, 4, 1 }, /* SUB */
+{ op_5180_3, 0, 20864, 4, 1, 0 }, /* SUB */
+{ op_5188_3, 0, 20872, 4, 1, 0 }, /* SUBA */
+{ op_5190_3, 0, 20880, 0, 3, 2 }, /* SUB */
+{ op_5198_3, 0, 20888, 0, 3, 2 }, /* SUB */
+{ op_51a0_3, 0, 20896, 2, 3, 2 }, /* SUB */
+{ op_51a8_3, 0, 20904, 0, 4, 2 }, /* SUB */
+{ op_51b0_3, 0, 20912, 2, 4, 2 }, /* SUB */
+{ op_51b8_3, 0, 20920, 0, 4, 2 }, /* SUB */
+{ op_51b9_3, 0, 20921, 0, 5, 2 }, /* SUB */
+{ op_51c0_3, 0, 20928, 0, 1, 0 }, /* Scc */
+{ op_51c8_3, 0, 20936, 2, 2, 0 }, /* DBcc */
+{ op_51d0_3, 0, 20944, 0, 1, 1 }, /* Scc */
+{ op_51d8_3, 0, 20952, 0, 1, 1 }, /* Scc */
+{ op_51e0_3, 0, 20960, 2, 1, 1 }, /* Scc */
+{ op_51e8_3, 0, 20968, 0, 2, 1 }, /* Scc */
+{ op_51f0_3, 0, 20976, 2, 2, 1 }, /* Scc */
+{ op_51f8_3, 0, 20984, 0, 2, 1 }, /* Scc */
+{ op_51f9_3, 0, 20985, 0, 3, 1 }, /* Scc */
+{ op_52c0_3, 0, 21184, 0, 1, 0 }, /* Scc */
+{ op_52c8_3, 0, 21192, 2, 2, 0 }, /* DBcc */
+{ op_52d0_3, 0, 21200, 0, 1, 1 }, /* Scc */
+{ op_52d8_3, 0, 21208, 0, 1, 1 }, /* Scc */
+{ op_52e0_3, 0, 21216, 2, 1, 1 }, /* Scc */
+{ op_52e8_3, 0, 21224, 0, 2, 1 }, /* Scc */
+{ op_52f0_3, 0, 21232, 2, 2, 1 }, /* Scc */
+{ op_52f8_3, 0, 21240, 0, 2, 1 }, /* Scc */
+{ op_52f9_3, 0, 21241, 0, 3, 1 }, /* Scc */
+{ op_53c0_3, 0, 21440, 0, 1, 0 }, /* Scc */
+{ op_53c8_3, 0, 21448, 2, 2, 0 }, /* DBcc */
+{ op_53d0_3, 0, 21456, 0, 1, 1 }, /* Scc */
+{ op_53d8_3, 0, 21464, 0, 1, 1 }, /* Scc */
+{ op_53e0_3, 0, 21472, 2, 1, 1 }, /* Scc */
+{ op_53e8_3, 0, 21480, 0, 2, 1 }, /* Scc */
+{ op_53f0_3, 0, 21488, 2, 2, 1 }, /* Scc */
+{ op_53f8_3, 0, 21496, 0, 2, 1 }, /* Scc */
+{ op_53f9_3, 0, 21497, 0, 3, 1 }, /* Scc */
+{ op_54c0_3, 0, 21696, 0, 1, 0 }, /* Scc */
+{ op_54c8_3, 0, 21704, 2, 2, 0 }, /* DBcc */
+{ op_54d0_3, 0, 21712, 0, 1, 1 }, /* Scc */
+{ op_54d8_3, 0, 21720, 0, 1, 1 }, /* Scc */
+{ op_54e0_3, 0, 21728, 2, 1, 1 }, /* Scc */
+{ op_54e8_3, 0, 21736, 0, 2, 1 }, /* Scc */
+{ op_54f0_3, 0, 21744, 2, 2, 1 }, /* Scc */
+{ op_54f8_3, 0, 21752, 0, 2, 1 }, /* Scc */
+{ op_54f9_3, 0, 21753, 0, 3, 1 }, /* Scc */
+{ op_55c0_3, 0, 21952, 0, 1, 0 }, /* Scc */
+{ op_55c8_3, 0, 21960, 2, 2, 0 }, /* DBcc */
+{ op_55d0_3, 0, 21968, 0, 1, 1 }, /* Scc */
+{ op_55d8_3, 0, 21976, 0, 1, 1 }, /* Scc */
+{ op_55e0_3, 0, 21984, 2, 1, 1 }, /* Scc */
+{ op_55e8_3, 0, 21992, 0, 2, 1 }, /* Scc */
+{ op_55f0_3, 0, 22000, 2, 2, 1 }, /* Scc */
+{ op_55f8_3, 0, 22008, 0, 2, 1 }, /* Scc */
+{ op_55f9_3, 0, 22009, 0, 3, 1 }, /* Scc */
+{ op_56c0_3, 0, 22208, 0, 1, 0 }, /* Scc */
+{ op_56c8_3, 0, 22216, 2, 2, 0 }, /* DBcc */
+{ op_56d0_3, 0, 22224, 0, 1, 1 }, /* Scc */
+{ op_56d8_3, 0, 22232, 0, 1, 1 }, /* Scc */
+{ op_56e0_3, 0, 22240, 2, 1, 1 }, /* Scc */
+{ op_56e8_3, 0, 22248, 0, 2, 1 }, /* Scc */
+{ op_56f0_3, 0, 22256, 2, 2, 1 }, /* Scc */
+{ op_56f8_3, 0, 22264, 0, 2, 1 }, /* Scc */
+{ op_56f9_3, 0, 22265, 0, 3, 1 }, /* Scc */
+{ op_57c0_3, 0, 22464, 0, 1, 0 }, /* Scc */
+{ op_57c8_3, 0, 22472, 2, 2, 0 }, /* DBcc */
+{ op_57d0_3, 0, 22480, 0, 1, 1 }, /* Scc */
+{ op_57d8_3, 0, 22488, 0, 1, 1 }, /* Scc */
+{ op_57e0_3, 0, 22496, 2, 1, 1 }, /* Scc */
+{ op_57e8_3, 0, 22504, 0, 2, 1 }, /* Scc */
+{ op_57f0_3, 0, 22512, 2, 2, 1 }, /* Scc */
+{ op_57f8_3, 0, 22520, 0, 2, 1 }, /* Scc */
+{ op_57f9_3, 0, 22521, 0, 3, 1 }, /* Scc */
+{ op_58c0_3, 0, 22720, 0, 1, 0 }, /* Scc */
+{ op_58c8_3, 0, 22728, 2, 2, 0 }, /* DBcc */
+{ op_58d0_3, 0, 22736, 0, 1, 1 }, /* Scc */
+{ op_58d8_3, 0, 22744, 0, 1, 1 }, /* Scc */
+{ op_58e0_3, 0, 22752, 2, 1, 1 }, /* Scc */
+{ op_58e8_3, 0, 22760, 0, 2, 1 }, /* Scc */
+{ op_58f0_3, 0, 22768, 2, 2, 1 }, /* Scc */
+{ op_58f8_3, 0, 22776, 0, 2, 1 }, /* Scc */
+{ op_58f9_3, 0, 22777, 0, 3, 1 }, /* Scc */
+{ op_59c0_3, 0, 22976, 0, 1, 0 }, /* Scc */
+{ op_59c8_3, 0, 22984, 2, 2, 0 }, /* DBcc */
+{ op_59d0_3, 0, 22992, 0, 1, 1 }, /* Scc */
+{ op_59d8_3, 0, 23000, 0, 1, 1 }, /* Scc */
+{ op_59e0_3, 0, 23008, 2, 1, 1 }, /* Scc */
+{ op_59e8_3, 0, 23016, 0, 2, 1 }, /* Scc */
+{ op_59f0_3, 0, 23024, 2, 2, 1 }, /* Scc */
+{ op_59f8_3, 0, 23032, 0, 2, 1 }, /* Scc */
+{ op_59f9_3, 0, 23033, 0, 3, 1 }, /* Scc */
+{ op_5ac0_3, 0, 23232, 0, 1, 0 }, /* Scc */
+{ op_5ac8_3, 0, 23240, 2, 2, 0 }, /* DBcc */
+{ op_5ad0_3, 0, 23248, 0, 1, 1 }, /* Scc */
+{ op_5ad8_3, 0, 23256, 0, 1, 1 }, /* Scc */
+{ op_5ae0_3, 0, 23264, 2, 1, 1 }, /* Scc */
+{ op_5ae8_3, 0, 23272, 0, 2, 1 }, /* Scc */
+{ op_5af0_3, 0, 23280, 2, 2, 1 }, /* Scc */
+{ op_5af8_3, 0, 23288, 0, 2, 1 }, /* Scc */
+{ op_5af9_3, 0, 23289, 0, 3, 1 }, /* Scc */
+{ op_5bc0_3, 0, 23488, 0, 1, 0 }, /* Scc */
+{ op_5bc8_3, 0, 23496, 2, 2, 0 }, /* DBcc */
+{ op_5bd0_3, 0, 23504, 0, 1, 1 }, /* Scc */
+{ op_5bd8_3, 0, 23512, 0, 1, 1 }, /* Scc */
+{ op_5be0_3, 0, 23520, 2, 1, 1 }, /* Scc */
+{ op_5be8_3, 0, 23528, 0, 2, 1 }, /* Scc */
+{ op_5bf0_3, 0, 23536, 2, 2, 1 }, /* Scc */
+{ op_5bf8_3, 0, 23544, 0, 2, 1 }, /* Scc */
+{ op_5bf9_3, 0, 23545, 0, 3, 1 }, /* Scc */
+{ op_5cc0_3, 0, 23744, 0, 1, 0 }, /* Scc */
+{ op_5cc8_3, 0, 23752, 2, 2, 0 }, /* DBcc */
+{ op_5cd0_3, 0, 23760, 0, 1, 1 }, /* Scc */
+{ op_5cd8_3, 0, 23768, 0, 1, 1 }, /* Scc */
+{ op_5ce0_3, 0, 23776, 2, 1, 1 }, /* Scc */
+{ op_5ce8_3, 0, 23784, 0, 2, 1 }, /* Scc */
+{ op_5cf0_3, 0, 23792, 2, 2, 1 }, /* Scc */
+{ op_5cf8_3, 0, 23800, 0, 2, 1 }, /* Scc */
+{ op_5cf9_3, 0, 23801, 0, 3, 1 }, /* Scc */
+{ op_5dc0_3, 0, 24000, 0, 1, 0 }, /* Scc */
+{ op_5dc8_3, 0, 24008, 2, 2, 0 }, /* DBcc */
+{ op_5dd0_3, 0, 24016, 0, 1, 1 }, /* Scc */
+{ op_5dd8_3, 0, 24024, 0, 1, 1 }, /* Scc */
+{ op_5de0_3, 0, 24032, 2, 1, 1 }, /* Scc */
+{ op_5de8_3, 0, 24040, 0, 2, 1 }, /* Scc */
+{ op_5df0_3, 0, 24048, 2, 2, 1 }, /* Scc */
+{ op_5df8_3, 0, 24056, 0, 2, 1 }, /* Scc */
+{ op_5df9_3, 0, 24057, 0, 3, 1 }, /* Scc */
+{ op_5ec0_3, 0, 24256, 0, 1, 0 }, /* Scc */
+{ op_5ec8_3, 0, 24264, 2, 2, 0 }, /* DBcc */
+{ op_5ed0_3, 0, 24272, 0, 1, 1 }, /* Scc */
+{ op_5ed8_3, 0, 24280, 0, 1, 1 }, /* Scc */
+{ op_5ee0_3, 0, 24288, 2, 1, 1 }, /* Scc */
+{ op_5ee8_3, 0, 24296, 0, 2, 1 }, /* Scc */
+{ op_5ef0_3, 0, 24304, 2, 2, 1 }, /* Scc */
+{ op_5ef8_3, 0, 24312, 0, 2, 1 }, /* Scc */
+{ op_5ef9_3, 0, 24313, 0, 3, 1 }, /* Scc */
+{ op_5fc0_3, 0, 24512, 0, 1, 0 }, /* Scc */
+{ op_5fc8_3, 0, 24520, 2, 2, 0 }, /* DBcc */
+{ op_5fd0_3, 0, 24528, 0, 1, 1 }, /* Scc */
+{ op_5fd8_3, 0, 24536, 0, 1, 1 }, /* Scc */
+{ op_5fe0_3, 0, 24544, 2, 1, 1 }, /* Scc */
+{ op_5fe8_3, 0, 24552, 0, 2, 1 }, /* Scc */
+{ op_5ff0_3, 0, 24560, 2, 2, 1 }, /* Scc */
+{ op_5ff8_3, 0, 24568, 0, 2, 1 }, /* Scc */
+{ op_5ff9_3, 0, 24569, 0, 3, 1 }, /* Scc */
+{ op_6000_3, 0, 24576, 2, 255, 0 }, /* Bcc */
+{ op_6001_3, 0, 24577, 2, 255, 0 }, /* Bcc */
+{ op_60ff_3, 0, 24831, 2, 255, 0 }, /* Bcc */
+{ op_6100_3, 0, 24832, 2, 2, 2 }, /* BSR */
+{ op_6101_3, 0, 24833, 2, 2, 2 }, /* BSR */
+{ op_61ff_3, 0, 25087, 2, 2, 2 }, /* BSR */
+{ op_6200_3, 0, 25088, 2, 255, 0 }, /* Bcc */
+{ op_6201_3, 0, 25089, 2, 255, 0 }, /* Bcc */
+{ op_62ff_3, 0, 25343, 2, 255, 0 }, /* Bcc */
+{ op_6300_3, 0, 25344, 2, 255, 0 }, /* Bcc */
+{ op_6301_3, 0, 25345, 2, 255, 0 }, /* Bcc */
+{ op_63ff_3, 0, 25599, 2, 255, 0 }, /* Bcc */
+{ op_6400_3, 0, 25600, 2, 255, 0 }, /* Bcc */
+{ op_6401_3, 0, 25601, 2, 255, 0 }, /* Bcc */
+{ op_64ff_3, 0, 25855, 2, 255, 0 }, /* Bcc */
+{ op_6500_3, 0, 25856, 2, 255, 0 }, /* Bcc */
+{ op_6501_3, 0, 25857, 2, 255, 0 }, /* Bcc */
+{ op_65ff_3, 0, 26111, 2, 255, 0 }, /* Bcc */
+{ op_6600_3, 0, 26112, 2, 255, 0 }, /* Bcc */
+{ op_6601_3, 0, 26113, 2, 255, 0 }, /* Bcc */
+{ op_66ff_3, 0, 26367, 2, 255, 0 }, /* Bcc */
+{ op_6700_3, 0, 26368, 2, 255, 0 }, /* Bcc */
+{ op_6701_3, 0, 26369, 2, 255, 0 }, /* Bcc */
+{ op_67ff_3, 0, 26623, 2, 255, 0 }, /* Bcc */
+{ op_6800_3, 0, 26624, 2, 255, 0 }, /* Bcc */
+{ op_6801_3, 0, 26625, 2, 255, 0 }, /* Bcc */
+{ op_68ff_3, 0, 26879, 2, 255, 0 }, /* Bcc */
+{ op_6900_3, 0, 26880, 2, 255, 0 }, /* Bcc */
+{ op_6901_3, 0, 26881, 2, 255, 0 }, /* Bcc */
+{ op_69ff_3, 0, 27135, 2, 255, 0 }, /* Bcc */
+{ op_6a00_3, 0, 27136, 2, 255, 0 }, /* Bcc */
+{ op_6a01_3, 0, 27137, 2, 255, 0 }, /* Bcc */
+{ op_6aff_3, 0, 27391, 2, 255, 0 }, /* Bcc */
+{ op_6b00_3, 0, 27392, 2, 255, 0 }, /* Bcc */
+{ op_6b01_3, 0, 27393, 2, 255, 0 }, /* Bcc */
+{ op_6bff_3, 0, 27647, 2, 255, 0 }, /* Bcc */
+{ op_6c00_3, 0, 27648, 2, 255, 0 }, /* Bcc */
+{ op_6c01_3, 0, 27649, 2, 255, 0 }, /* Bcc */
+{ op_6cff_3, 0, 27903, 2, 255, 0 }, /* Bcc */
+{ op_6d00_3, 0, 27904, 2, 255, 0 }, /* Bcc */
+{ op_6d01_3, 0, 27905, 2, 255, 0 }, /* Bcc */
+{ op_6dff_3, 0, 28159, 2, 255, 0 }, /* Bcc */
+{ op_6e00_3, 0, 28160, 2, 255, 0 }, /* Bcc */
+{ op_6e01_3, 0, 28161, 2, 255, 0 }, /* Bcc */
+{ op_6eff_3, 0, 28415, 2, 255, 0 }, /* Bcc */
+{ op_6f00_3, 0, 28416, 2, 255, 0 }, /* Bcc */
+{ op_6f01_3, 0, 28417, 2, 255, 0 }, /* Bcc */
+{ op_6fff_3, 0, 28671, 2, 255, 0 }, /* Bcc */
+{ op_7000_3, 0, 28672, 0, 1, 0 }, /* MOVE */
+{ op_8000_3, 0, 32768, 0, 1, 0 }, /* OR */
+{ op_8010_3, 0, 32784, 0, 2, 0 }, /* OR */
+{ op_8018_3, 0, 32792, 0, 2, 0 }, /* OR */
+{ op_8020_3, 0, 32800, 2, 2, 0 }, /* OR */
+{ op_8028_3, 0, 32808, 0, 3, 0 }, /* OR */
+{ op_8030_3, 0, 32816, 2, 3, 0 }, /* OR */
+{ op_8038_3, 0, 32824, 0, 3, 0 }, /* OR */
+{ op_8039_3, 0, 32825, 0, 4, 0 }, /* OR */
+{ op_803a_3, 0, 32826, 0, 3, 0 }, /* OR */
+{ op_803b_3, 0, 32827, 2, 3, 0 }, /* OR */
+{ op_803c_3, 0, 32828, 0, 2, 0 }, /* OR */
+{ op_8040_3, 0, 32832, 0, 1, 0 }, /* OR */
+{ op_8050_3, 0, 32848, 0, 2, 0 }, /* OR */
+{ op_8058_3, 0, 32856, 0, 2, 0 }, /* OR */
+{ op_8060_3, 0, 32864, 2, 2, 0 }, /* OR */
+{ op_8068_3, 0, 32872, 0, 3, 0 }, /* OR */
+{ op_8070_3, 0, 32880, 2, 3, 0 }, /* OR */
+{ op_8078_3, 0, 32888, 0, 3, 0 }, /* OR */
+{ op_8079_3, 0, 32889, 0, 4, 0 }, /* OR */
+{ op_807a_3, 0, 32890, 0, 3, 0 }, /* OR */
+{ op_807b_3, 0, 32891, 2, 3, 0 }, /* OR */
+{ op_807c_3, 0, 32892, 0, 2, 0 }, /* OR */
+{ op_8080_3, 0, 32896, 2, 1, 0 }, /* OR */
+{ op_8090_3, 0, 32912, 2, 3, 0 }, /* OR */
+{ op_8098_3, 0, 32920, 2, 3, 0 }, /* OR */
+{ op_80a0_3, 0, 32928, 4, 3, 0 }, /* OR */
+{ op_80a8_3, 0, 32936, 2, 4, 0 }, /* OR */
+{ op_80b0_3, 0, 32944, 4, 4, 0 }, /* OR */
+{ op_80b8_3, 0, 32952, 2, 4, 0 }, /* OR */
+{ op_80b9_3, 0, 32953, 2, 5, 0 }, /* OR */
+{ op_80ba_3, 0, 32954, 2, 4, 0 }, /* OR */
+{ op_80bb_3, 0, 32955, 4, 4, 0 }, /* OR */
+{ op_80bc_3, 0, 32956, 2, 3, 0 }, /* OR */
+{ op_80c0_3, 0, 32960, 136, 1, 0 }, /* DIVU */
+{ op_80d0_3, 0, 32976, 136, 2, 0 }, /* DIVU */
+{ op_80d8_3, 0, 32984, 136, 2, 0 }, /* DIVU */
+{ op_80e0_3, 0, 32992, 138, 2, 0 }, /* DIVU */
+{ op_80e8_3, 0, 33000, 136, 3, 0 }, /* DIVU */
+{ op_80f0_3, 0, 33008, 138, 3, 0 }, /* DIVU */
+{ op_80f8_3, 0, 33016, 136, 3, 0 }, /* DIVU */
+{ op_80f9_3, 0, 33017, 136, 4, 0 }, /* DIVU */
+{ op_80fa_3, 0, 33018, 136, 3, 0 }, /* DIVU */
+{ op_80fb_3, 0, 33019, 138, 3, 0 }, /* DIVU */
+{ op_80fc_3, 0, 33020, 136, 2, 0 }, /* DIVU */
+{ op_8100_3, 0, 33024, 2, 1, 0 }, /* SBCD */
+{ op_8108_3, 0, 33032, 2, 3, 1 }, /* SBCD */
+{ op_8110_3, 0, 33040, 0, 2, 1 }, /* OR */
+{ op_8118_3, 0, 33048, 0, 2, 1 }, /* OR */
+{ op_8120_3, 0, 33056, 2, 2, 1 }, /* OR */
+{ op_8128_3, 0, 33064, 0, 3, 1 }, /* OR */
+{ op_8130_3, 0, 33072, 2, 3, 1 }, /* OR */
+{ op_8138_3, 0, 33080, 0, 3, 1 }, /* OR */
+{ op_8139_3, 0, 33081, 0, 4, 1 }, /* OR */
+{ op_8150_3, 0, 33104, 0, 2, 1 }, /* OR */
+{ op_8158_3, 0, 33112, 0, 2, 1 }, /* OR */
+{ op_8160_3, 0, 33120, 2, 2, 1 }, /* OR */
+{ op_8168_3, 0, 33128, 0, 3, 1 }, /* OR */
+{ op_8170_3, 0, 33136, 2, 3, 1 }, /* OR */
+{ op_8178_3, 0, 33144, 0, 3, 1 }, /* OR */
+{ op_8179_3, 0, 33145, 0, 4, 1 }, /* OR */
+{ op_8190_3, 0, 33168, 0, 3, 2 }, /* OR */
+{ op_8198_3, 0, 33176, 0, 3, 2 }, /* OR */
+{ op_81a0_3, 0, 33184, 2, 3, 2 }, /* OR */
+{ op_81a8_3, 0, 33192, 0, 4, 2 }, /* OR */
+{ op_81b0_3, 0, 33200, 2, 4, 2 }, /* OR */
+{ op_81b8_3, 0, 33208, 0, 4, 2 }, /* OR */
+{ op_81b9_3, 0, 33209, 0, 5, 2 }, /* OR */
+{ op_81c0_3, 0, 33216, 154, 1, 0 }, /* DIVS */
+{ op_81d0_3, 0, 33232, 154, 2, 0 }, /* DIVS */
+{ op_81d8_3, 0, 33240, 154, 2, 0 }, /* DIVS */
+{ op_81e0_3, 0, 33248, 156, 2, 0 }, /* DIVS */
+{ op_81e8_3, 0, 33256, 154, 3, 0 }, /* DIVS */
+{ op_81f0_3, 0, 33264, 156, 3, 0 }, /* DIVS */
+{ op_81f8_3, 0, 33272, 154, 3, 0 }, /* DIVS */
+{ op_81f9_3, 0, 33273, 154, 4, 0 }, /* DIVS */
+{ op_81fa_3, 0, 33274, 154, 3, 0 }, /* DIVS */
+{ op_81fb_3, 0, 33275, 156, 3, 0 }, /* DIVS */
+{ op_81fc_3, 0, 33276, 154, 2, 0 }, /* DIVS */
+{ op_9000_3, 0, 36864, 0, 1, 0 }, /* SUB */
+{ op_9010_3, 0, 36880, 0, 2, 0 }, /* SUB */
+{ op_9018_3, 0, 36888, 0, 2, 0 }, /* SUB */
+{ op_9020_3, 0, 36896, 2, 2, 0 }, /* SUB */
+{ op_9028_3, 0, 36904, 0, 3, 0 }, /* SUB */
+{ op_9030_3, 0, 36912, 2, 3, 0 }, /* SUB */
+{ op_9038_3, 0, 36920, 0, 3, 0 }, /* SUB */
+{ op_9039_3, 0, 36921, 0, 4, 0 }, /* SUB */
+{ op_903a_3, 0, 36922, 0, 3, 0 }, /* SUB */
+{ op_903b_3, 0, 36923, 2, 3, 0 }, /* SUB */
+{ op_903c_3, 0, 36924, 0, 2, 0 }, /* SUB */
+{ op_9040_3, 0, 36928, 0, 1, 0 }, /* SUB */
+{ op_9048_3, 0, 36936, 0, 1, 0 }, /* SUB */
+{ op_9050_3, 0, 36944, 0, 2, 0 }, /* SUB */
+{ op_9058_3, 0, 36952, 0, 2, 0 }, /* SUB */
+{ op_9060_3, 0, 36960, 2, 2, 0 }, /* SUB */
+{ op_9068_3, 0, 36968, 0, 3, 0 }, /* SUB */
+{ op_9070_3, 0, 36976, 2, 3, 0 }, /* SUB */
+{ op_9078_3, 0, 36984, 0, 3, 0 }, /* SUB */
+{ op_9079_3, 0, 36985, 0, 4, 0 }, /* SUB */
+{ op_907a_3, 0, 36986, 0, 3, 0 }, /* SUB */
+{ op_907b_3, 0, 36987, 2, 3, 0 }, /* SUB */
+{ op_907c_3, 0, 36988, 0, 2, 0 }, /* SUB */
+{ op_9080_3, 0, 36992, 4, 1, 0 }, /* SUB */
+{ op_9088_3, 0, 37000, 4, 1, 0 }, /* SUB */
+{ op_9090_3, 0, 37008, 2, 3, 0 }, /* SUB */
+{ op_9098_3, 0, 37016, 2, 3, 0 }, /* SUB */
+{ op_90a0_3, 0, 37024, 4, 3, 0 }, /* SUB */
+{ op_90a8_3, 0, 37032, 2, 4, 0 }, /* SUB */
+{ op_90b0_3, 0, 37040, 4, 4, 0 }, /* SUB */
+{ op_90b8_3, 0, 37048, 2, 4, 0 }, /* SUB */
+{ op_90b9_3, 0, 37049, 2, 5, 0 }, /* SUB */
+{ op_90ba_3, 0, 37050, 2, 4, 0 }, /* SUB */
+{ op_90bb_3, 0, 37051, 4, 4, 0 }, /* SUB */
+{ op_90bc_3, 0, 37052, 4, 3, 0 }, /* SUB */
+{ op_90c0_3, 0, 37056, 4, 1, 0 }, /* SUBA */
+{ op_90c8_3, 0, 37064, 4, 1, 0 }, /* SUBA */
+{ op_90d0_3, 0, 37072, 4, 2, 0 }, /* SUBA */
+{ op_90d8_3, 0, 37080, 4, 2, 0 }, /* SUBA */
+{ op_90e0_3, 0, 37088, 6, 2, 0 }, /* SUBA */
+{ op_90e8_3, 0, 37096, 4, 3, 0 }, /* SUBA */
+{ op_90f0_3, 0, 37104, 6, 3, 0 }, /* SUBA */
+{ op_90f8_3, 0, 37112, 4, 3, 0 }, /* SUBA */
+{ op_90f9_3, 0, 37113, 4, 4, 0 }, /* SUBA */
+{ op_90fa_3, 0, 37114, 4, 3, 0 }, /* SUBA */
+{ op_90fb_3, 0, 37115, 6, 3, 0 }, /* SUBA */
+{ op_90fc_3, 0, 37116, 4, 2, 0 }, /* SUBA */
+{ op_9100_3, 0, 37120, 0, 1, 0 }, /* SUBX */
+{ op_9108_3, 0, 37128, 2, 3, 1 }, /* SUBX */
+{ op_9110_3, 0, 37136, 0, 2, 1 }, /* SUB */
+{ op_9118_3, 0, 37144, 0, 2, 1 }, /* SUB */
+{ op_9120_3, 0, 37152, 2, 2, 1 }, /* SUB */
+{ op_9128_3, 0, 37160, 0, 3, 1 }, /* SUB */
+{ op_9130_3, 0, 37168, 2, 3, 1 }, /* SUB */
+{ op_9138_3, 0, 37176, 0, 3, 1 }, /* SUB */
+{ op_9139_3, 0, 37177, 0, 4, 1 }, /* SUB */
+{ op_9140_3, 0, 37184, 0, 1, 0 }, /* SUBX */
+{ op_9148_3, 0, 37192, 2, 3, 1 }, /* SUBX */
+{ op_9150_3, 0, 37200, 0, 2, 1 }, /* SUB */
+{ op_9158_3, 0, 37208, 0, 2, 1 }, /* SUB */
+{ op_9160_3, 0, 37216, 2, 2, 1 }, /* SUB */
+{ op_9168_3, 0, 37224, 0, 3, 1 }, /* SUB */
+{ op_9170_3, 0, 37232, 2, 3, 1 }, /* SUB */
+{ op_9178_3, 0, 37240, 0, 3, 1 }, /* SUB */
+{ op_9179_3, 0, 37241, 0, 4, 1 }, /* SUB */
+{ op_9180_3, 0, 37248, 4, 1, 0 }, /* SUBX */
+{ op_9188_3, 0, 37256, 2, 5, 2 }, /* SUBX */
+{ op_9190_3, 0, 37264, 0, 3, 2 }, /* SUB */
+{ op_9198_3, 0, 37272, 0, 3, 2 }, /* SUB */
+{ op_91a0_3, 0, 37280, 2, 3, 2 }, /* SUB */
+{ op_91a8_3, 0, 37288, 0, 4, 2 }, /* SUB */
+{ op_91b0_3, 0, 37296, 2, 4, 2 }, /* SUB */
+{ op_91b8_3, 0, 37304, 0, 4, 2 }, /* SUB */
+{ op_91b9_3, 0, 37305, 0, 5, 2 }, /* SUB */
+{ op_91c0_3, 0, 37312, 4, 1, 0 }, /* SUBA */
+{ op_91c8_3, 0, 37320, 4, 1, 0 }, /* SUBA */
+{ op_91d0_3, 0, 37328, 2, 3, 0 }, /* SUBA */
+{ op_91d8_3, 0, 37336, 2, 3, 0 }, /* SUBA */
+{ op_91e0_3, 0, 37344, 4, 3, 0 }, /* SUBA */
+{ op_91e8_3, 0, 37352, 2, 4, 0 }, /* SUBA */
+{ op_91f0_3, 0, 37360, 4, 4, 0 }, /* SUBA */
+{ op_91f8_3, 0, 37368, 2, 4, 0 }, /* SUBA */
+{ op_91f9_3, 0, 37369, 2, 5, 0 }, /* SUBA */
+{ op_91fa_3, 0, 37370, 2, 4, 0 }, /* SUBA */
+{ op_91fb_3, 0, 37371, 4, 4, 0 }, /* SUBA */
+{ op_91fc_3, 0, 37372, 4, 3, 0 }, /* SUBA */
+{ op_b000_3, 0, 45056, 0, 1, 0 }, /* CMP */
+{ op_b010_3, 0, 45072, 0, 2, 0 }, /* CMP */
+{ op_b018_3, 0, 45080, 0, 2, 0 }, /* CMP */
+{ op_b020_3, 0, 45088, 2, 2, 0 }, /* CMP */
+{ op_b028_3, 0, 45096, 0, 3, 0 }, /* CMP */
+{ op_b030_3, 0, 45104, 2, 3, 0 }, /* CMP */
+{ op_b038_3, 0, 45112, 0, 3, 0 }, /* CMP */
+{ op_b039_3, 0, 45113, 0, 4, 0 }, /* CMP */
+{ op_b03a_3, 0, 45114, 0, 3, 0 }, /* CMP */
+{ op_b03b_3, 0, 45115, 2, 3, 0 }, /* CMP */
+{ op_b03c_3, 0, 45116, 0, 2, 0 }, /* CMP */
+{ op_b040_3, 0, 45120, 0, 1, 0 }, /* CMP */
+{ op_b048_3, 0, 45128, 0, 1, 0 }, /* CMP */
+{ op_b050_3, 0, 45136, 0, 2, 0 }, /* CMP */
+{ op_b058_3, 0, 45144, 0, 2, 0 }, /* CMP */
+{ op_b060_3, 0, 45152, 2, 2, 0 }, /* CMP */
+{ op_b068_3, 0, 45160, 0, 3, 0 }, /* CMP */
+{ op_b070_3, 0, 45168, 2, 3, 0 }, /* CMP */
+{ op_b078_3, 0, 45176, 0, 3, 0 }, /* CMP */
+{ op_b079_3, 0, 45177, 0, 4, 0 }, /* CMP */
+{ op_b07a_3, 0, 45178, 0, 3, 0 }, /* CMP */
+{ op_b07b_3, 0, 45179, 2, 3, 0 }, /* CMP */
+{ op_b07c_3, 0, 45180, 0, 2, 0 }, /* CMP */
+{ op_b080_3, 0, 45184, 2, 1, 0 }, /* CMP */
+{ op_b088_3, 0, 45192, 2, 1, 0 }, /* CMP */
+{ op_b090_3, 0, 45200, 2, 3, 0 }, /* CMP */
+{ op_b098_3, 0, 45208, 2, 3, 0 }, /* CMP */
+{ op_b0a0_3, 0, 45216, 4, 3, 0 }, /* CMP */
+{ op_b0a8_3, 0, 45224, 2, 4, 0 }, /* CMP */
+{ op_b0b0_3, 0, 45232, 4, 4, 0 }, /* CMP */
+{ op_b0b8_3, 0, 45240, 2, 4, 0 }, /* CMP */
+{ op_b0b9_3, 0, 45241, 2, 5, 0 }, /* CMP */
+{ op_b0ba_3, 0, 45242, 2, 4, 0 }, /* CMP */
+{ op_b0bb_3, 0, 45243, 4, 4, 0 }, /* CMP */
+{ op_b0bc_3, 0, 45244, 2, 3, 0 }, /* CMP */
+{ op_b0c0_3, 0, 45248, 2, 1, 0 }, /* CMPA */
+{ op_b0c8_3, 0, 45256, 2, 1, 0 }, /* CMPA */
+{ op_b0d0_3, 0, 45264, 2, 2, 0 }, /* CMPA */
+{ op_b0d8_3, 0, 45272, 2, 2, 0 }, /* CMPA */
+{ op_b0e0_3, 0, 45280, 4, 2, 0 }, /* CMPA */
+{ op_b0e8_3, 0, 45288, 2, 3, 0 }, /* CMPA */
+{ op_b0f0_3, 0, 45296, 4, 3, 0 }, /* CMPA */
+{ op_b0f8_3, 0, 45304, 2, 3, 0 }, /* CMPA */
+{ op_b0f9_3, 0, 45305, 2, 4, 0 }, /* CMPA */
+{ op_b0fa_3, 0, 45306, 2, 3, 0 }, /* CMPA */
+{ op_b0fb_3, 0, 45307, 4, 3, 0 }, /* CMPA */
+{ op_b0fc_3, 0, 45308, 2, 2, 0 }, /* CMPA */
+{ op_b100_3, 0, 45312, 0, 1, 0 }, /* EOR */
+{ op_b108_3, 0, 45320, 0, 3, 0 }, /* CMPM */
+{ op_b110_3, 0, 45328, 0, 2, 1 }, /* EOR */
+{ op_b118_3, 0, 45336, 0, 2, 1 }, /* EOR */
+{ op_b120_3, 0, 45344, 2, 2, 1 }, /* EOR */
+{ op_b128_3, 0, 45352, 0, 3, 1 }, /* EOR */
+{ op_b130_3, 0, 45360, 2, 3, 1 }, /* EOR */
+{ op_b138_3, 0, 45368, 0, 3, 1 }, /* EOR */
+{ op_b139_3, 0, 45369, 0, 4, 1 }, /* EOR */
+{ op_b140_3, 0, 45376, 0, 1, 0 }, /* EOR */
+{ op_b148_3, 0, 45384, 0, 3, 0 }, /* CMPM */
+{ op_b150_3, 0, 45392, 0, 2, 1 }, /* EOR */
+{ op_b158_3, 0, 45400, 0, 2, 1 }, /* EOR */
+{ op_b160_3, 0, 45408, 2, 2, 1 }, /* EOR */
+{ op_b168_3, 0, 45416, 0, 3, 1 }, /* EOR */
+{ op_b170_3, 0, 45424, 2, 3, 1 }, /* EOR */
+{ op_b178_3, 0, 45432, 0, 3, 1 }, /* EOR */
+{ op_b179_3, 0, 45433, 0, 4, 1 }, /* EOR */
+{ op_b180_3, 0, 45440, 4, 1, 0 }, /* EOR */
+{ op_b188_3, 0, 45448, 0, 5, 0 }, /* CMPM */
+{ op_b190_3, 0, 45456, 0, 3, 2 }, /* EOR */
+{ op_b198_3, 0, 45464, 0, 3, 2 }, /* EOR */
+{ op_b1a0_3, 0, 45472, 2, 3, 2 }, /* EOR */
+{ op_b1a8_3, 0, 45480, 0, 4, 2 }, /* EOR */
+{ op_b1b0_3, 0, 45488, 2, 4, 2 }, /* EOR */
+{ op_b1b8_3, 0, 45496, 0, 4, 2 }, /* EOR */
+{ op_b1b9_3, 0, 45497, 0, 5, 2 }, /* EOR */
+{ op_b1c0_3, 0, 45504, 2, 1, 0 }, /* CMPA */
+{ op_b1c8_3, 0, 45512, 2, 1, 0 }, /* CMPA */
+{ op_b1d0_3, 0, 45520, 2, 3, 0 }, /* CMPA */
+{ op_b1d8_3, 0, 45528, 2, 3, 0 }, /* CMPA */
+{ op_b1e0_3, 0, 45536, 4, 3, 0 }, /* CMPA */
+{ op_b1e8_3, 0, 45544, 2, 4, 0 }, /* CMPA */
+{ op_b1f0_3, 0, 45552, 4, 4, 0 }, /* CMPA */
+{ op_b1f8_3, 0, 45560, 2, 4, 0 }, /* CMPA */
+{ op_b1f9_3, 0, 45561, 2, 5, 0 }, /* CMPA */
+{ op_b1fa_3, 0, 45562, 2, 4, 0 }, /* CMPA */
+{ op_b1fb_3, 0, 45563, 4, 4, 0 }, /* CMPA */
+{ op_b1fc_3, 0, 45564, 2, 3, 0 }, /* CMPA */
+{ op_c000_3, 0, 49152, 0, 1, 0 }, /* AND */
+{ op_c010_3, 0, 49168, 0, 2, 0 }, /* AND */
+{ op_c018_3, 0, 49176, 0, 2, 0 }, /* AND */
+{ op_c020_3, 0, 49184, 2, 2, 0 }, /* AND */
+{ op_c028_3, 0, 49192, 0, 3, 0 }, /* AND */
+{ op_c030_3, 0, 49200, 2, 3, 0 }, /* AND */
+{ op_c038_3, 0, 49208, 0, 3, 0 }, /* AND */
+{ op_c039_3, 0, 49209, 0, 4, 0 }, /* AND */
+{ op_c03a_3, 0, 49210, 0, 3, 0 }, /* AND */
+{ op_c03b_3, 0, 49211, 2, 3, 0 }, /* AND */
+{ op_c03c_3, 0, 49212, 0, 2, 0 }, /* AND */
+{ op_c040_3, 0, 49216, 0, 1, 0 }, /* AND */
+{ op_c050_3, 0, 49232, 0, 2, 0 }, /* AND */
+{ op_c058_3, 0, 49240, 0, 2, 0 }, /* AND */
+{ op_c060_3, 0, 49248, 2, 2, 0 }, /* AND */
+{ op_c068_3, 0, 49256, 0, 3, 0 }, /* AND */
+{ op_c070_3, 0, 49264, 2, 3, 0 }, /* AND */
+{ op_c078_3, 0, 49272, 0, 3, 0 }, /* AND */
+{ op_c079_3, 0, 49273, 0, 4, 0 }, /* AND */
+{ op_c07a_3, 0, 49274, 0, 3, 0 }, /* AND */
+{ op_c07b_3, 0, 49275, 2, 3, 0 }, /* AND */
+{ op_c07c_3, 0, 49276, 0, 2, 0 }, /* AND */
+{ op_c080_3, 0, 49280, 2, 1, 0 }, /* AND */
+{ op_c090_3, 0, 49296, 2, 3, 0 }, /* AND */
+{ op_c098_3, 0, 49304, 2, 3, 0 }, /* AND */
+{ op_c0a0_3, 0, 49312, 4, 3, 0 }, /* AND */
+{ op_c0a8_3, 0, 49320, 2, 4, 0 }, /* AND */
+{ op_c0b0_3, 0, 49328, 4, 4, 0 }, /* AND */
+{ op_c0b8_3, 0, 49336, 2, 4, 0 }, /* AND */
+{ op_c0b9_3, 0, 49337, 2, 5, 0 }, /* AND */
+{ op_c0ba_3, 0, 49338, 2, 4, 0 }, /* AND */
+{ op_c0bb_3, 0, 49339, 4, 4, 0 }, /* AND */
+{ op_c0bc_3, 0, 49340, 2, 3, 0 }, /* AND */
+{ op_c0c0_3, 0, 49344, 66, 1, 0 }, /* MULU */
+{ op_c0d0_3, 0, 49360, 66, 2, 0 }, /* MULU */
+{ op_c0d8_3, 0, 49368, 66, 2, 0 }, /* MULU */
+{ op_c0e0_3, 0, 49376, 68, 2, 0 }, /* MULU */
+{ op_c0e8_3, 0, 49384, 66, 3, 0 }, /* MULU */
+{ op_c0f0_3, 0, 49392, 68, 3, 0 }, /* MULU */
+{ op_c0f8_3, 0, 49400, 66, 3, 0 }, /* MULU */
+{ op_c0f9_3, 0, 49401, 66, 4, 0 }, /* MULU */
+{ op_c0fa_3, 0, 49402, 66, 3, 0 }, /* MULU */
+{ op_c0fb_3, 0, 49403, 68, 3, 0 }, /* MULU */
+{ op_c0fc_3, 0, 49404, 66, 2, 0 }, /* MULU */
+{ op_c100_3, 0, 49408, 2, 1, 0 }, /* ABCD */
+{ op_c108_3, 0, 49416, 2, 3, 1 }, /* ABCD */
+{ op_c110_3, 0, 49424, 0, 2, 1 }, /* AND */
+{ op_c118_3, 0, 49432, 0, 2, 1 }, /* AND */
+{ op_c120_3, 0, 49440, 2, 2, 1 }, /* AND */
+{ op_c128_3, 0, 49448, 0, 3, 1 }, /* AND */
+{ op_c130_3, 0, 49456, 2, 3, 1 }, /* AND */
+{ op_c138_3, 0, 49464, 0, 3, 1 }, /* AND */
+{ op_c139_3, 0, 49465, 0, 4, 1 }, /* AND */
+{ op_c140_3, 0, 49472, 2, 1, 0 }, /* EXG */
+{ op_c148_3, 0, 49480, 2, 1, 0 }, /* EXG */
+{ op_c150_3, 0, 49488, 0, 2, 1 }, /* AND */
+{ op_c158_3, 0, 49496, 0, 2, 1 }, /* AND */
+{ op_c160_3, 0, 49504, 2, 2, 1 }, /* AND */
+{ op_c168_3, 0, 49512, 0, 3, 1 }, /* AND */
+{ op_c170_3, 0, 49520, 2, 3, 1 }, /* AND */
+{ op_c178_3, 0, 49528, 0, 3, 1 }, /* AND */
+{ op_c179_3, 0, 49529, 0, 4, 1 }, /* AND */
+{ op_c188_3, 0, 49544, 2, 1, 0 }, /* EXG */
+{ op_c190_3, 0, 49552, 0, 3, 2 }, /* AND */
+{ op_c198_3, 0, 49560, 0, 3, 2 }, /* AND */
+{ op_c1a0_3, 0, 49568, 2, 3, 2 }, /* AND */
+{ op_c1a8_3, 0, 49576, 0, 4, 2 }, /* AND */
+{ op_c1b0_3, 0, 49584, 2, 4, 2 }, /* AND */
+{ op_c1b8_3, 0, 49592, 0, 4, 2 }, /* AND */
+{ op_c1b9_3, 0, 49593, 0, 5, 2 }, /* AND */
+{ op_c1c0_3, 0, 49600, 66, 1, 0 }, /* MULS */
+{ op_c1d0_3, 0, 49616, 66, 2, 0 }, /* MULS */
+{ op_c1d8_3, 0, 49624, 66, 2, 0 }, /* MULS */
+{ op_c1e0_3, 0, 49632, 68, 2, 0 }, /* MULS */
+{ op_c1e8_3, 0, 49640, 66, 3, 0 }, /* MULS */
+{ op_c1f0_3, 0, 49648, 68, 3, 0 }, /* MULS */
+{ op_c1f8_3, 0, 49656, 66, 3, 0 }, /* MULS */
+{ op_c1f9_3, 0, 49657, 66, 4, 0 }, /* MULS */
+{ op_c1fa_3, 0, 49658, 66, 3, 0 }, /* MULS */
+{ op_c1fb_3, 0, 49659, 68, 3, 0 }, /* MULS */
+{ op_c1fc_3, 0, 49660, 66, 2, 0 }, /* MULS */
+{ op_d000_3, 0, 53248, 0, 1, 0 }, /* ADD */
+{ op_d010_3, 0, 53264, 0, 2, 0 }, /* ADD */
+{ op_d018_3, 0, 53272, 0, 2, 0 }, /* ADD */
+{ op_d020_3, 0, 53280, 2, 2, 0 }, /* ADD */
+{ op_d028_3, 0, 53288, 0, 3, 0 }, /* ADD */
+{ op_d030_3, 0, 53296, 2, 3, 0 }, /* ADD */
+{ op_d038_3, 0, 53304, 0, 3, 0 }, /* ADD */
+{ op_d039_3, 0, 53305, 0, 4, 0 }, /* ADD */
+{ op_d03a_3, 0, 53306, 0, 3, 0 }, /* ADD */
+{ op_d03b_3, 0, 53307, 2, 3, 0 }, /* ADD */
+{ op_d03c_3, 0, 53308, 0, 2, 0 }, /* ADD */
+{ op_d040_3, 0, 53312, 0, 1, 0 }, /* ADD */
+{ op_d048_3, 0, 53320, 0, 1, 0 }, /* ADD */
+{ op_d050_3, 0, 53328, 0, 2, 0 }, /* ADD */
+{ op_d058_3, 0, 53336, 0, 2, 0 }, /* ADD */
+{ op_d060_3, 0, 53344, 2, 2, 0 }, /* ADD */
+{ op_d068_3, 0, 53352, 0, 3, 0 }, /* ADD */
+{ op_d070_3, 0, 53360, 2, 3, 0 }, /* ADD */
+{ op_d078_3, 0, 53368, 0, 3, 0 }, /* ADD */
+{ op_d079_3, 0, 53369, 0, 4, 0 }, /* ADD */
+{ op_d07a_3, 0, 53370, 0, 3, 0 }, /* ADD */
+{ op_d07b_3, 0, 53371, 2, 3, 0 }, /* ADD */
+{ op_d07c_3, 0, 53372, 0, 2, 0 }, /* ADD */
+{ op_d080_3, 0, 53376, 4, 1, 0 }, /* ADD */
+{ op_d088_3, 0, 53384, 4, 1, 0 }, /* ADD */
+{ op_d090_3, 0, 53392, 2, 3, 0 }, /* ADD */
+{ op_d098_3, 0, 53400, 2, 3, 0 }, /* ADD */
+{ op_d0a0_3, 0, 53408, 4, 3, 0 }, /* ADD */
+{ op_d0a8_3, 0, 53416, 2, 4, 0 }, /* ADD */
+{ op_d0b0_3, 0, 53424, 4, 4, 0 }, /* ADD */
+{ op_d0b8_3, 0, 53432, 2, 4, 0 }, /* ADD */
+{ op_d0b9_3, 0, 53433, 2, 5, 0 }, /* ADD */
+{ op_d0ba_3, 0, 53434, 2, 4, 0 }, /* ADD */
+{ op_d0bb_3, 0, 53435, 4, 4, 0 }, /* ADD */
+{ op_d0bc_3, 0, 53436, 4, 3, 0 }, /* ADD */
+{ op_d0c0_3, 0, 53440, 4, 1, 0 }, /* ADDA */
+{ op_d0c8_3, 0, 53448, 4, 1, 0 }, /* ADDA */
+{ op_d0d0_3, 0, 53456, 4, 2, 0 }, /* ADDA */
+{ op_d0d8_3, 0, 53464, 4, 2, 0 }, /* ADDA */
+{ op_d0e0_3, 0, 53472, 6, 2, 0 }, /* ADDA */
+{ op_d0e8_3, 0, 53480, 4, 3, 0 }, /* ADDA */
+{ op_d0f0_3, 0, 53488, 6, 3, 0 }, /* ADDA */
+{ op_d0f8_3, 0, 53496, 4, 3, 0 }, /* ADDA */
+{ op_d0f9_3, 0, 53497, 4, 4, 0 }, /* ADDA */
+{ op_d0fa_3, 0, 53498, 4, 3, 0 }, /* ADDA */
+{ op_d0fb_3, 0, 53499, 6, 3, 0 }, /* ADDA */
+{ op_d0fc_3, 0, 53500, 4, 2, 0 }, /* ADDA */
+{ op_d100_3, 0, 53504, 0, 1, 0 }, /* ADDX */
+{ op_d108_3, 0, 53512, 2, 3, 1 }, /* ADDX */
+{ op_d110_3, 0, 53520, 0, 2, 1 }, /* ADD */
+{ op_d118_3, 0, 53528, 0, 2, 1 }, /* ADD */
+{ op_d120_3, 0, 53536, 2, 2, 1 }, /* ADD */
+{ op_d128_3, 0, 53544, 0, 3, 1 }, /* ADD */
+{ op_d130_3, 0, 53552, 2, 3, 1 }, /* ADD */
+{ op_d138_3, 0, 53560, 0, 3, 1 }, /* ADD */
+{ op_d139_3, 0, 53561, 0, 4, 1 }, /* ADD */
+{ op_d140_3, 0, 53568, 0, 1, 0 }, /* ADDX */
+{ op_d148_3, 0, 53576, 2, 3, 1 }, /* ADDX */
+{ op_d150_3, 0, 53584, 0, 2, 1 }, /* ADD */
+{ op_d158_3, 0, 53592, 0, 2, 1 }, /* ADD */
+{ op_d160_3, 0, 53600, 2, 2, 1 }, /* ADD */
+{ op_d168_3, 0, 53608, 0, 3, 1 }, /* ADD */
+{ op_d170_3, 0, 53616, 2, 3, 1 }, /* ADD */
+{ op_d178_3, 0, 53624, 0, 3, 1 }, /* ADD */
+{ op_d179_3, 0, 53625, 0, 4, 1 }, /* ADD */
+{ op_d180_3, 0, 53632, 4, 1, 0 }, /* ADDX */
+{ op_d188_3, 0, 53640, 2, 5, 2 }, /* ADDX */
+{ op_d190_3, 0, 53648, 0, 3, 2 }, /* ADD */
+{ op_d198_3, 0, 53656, 0, 3, 2 }, /* ADD */
+{ op_d1a0_3, 0, 53664, 2, 3, 2 }, /* ADD */
+{ op_d1a8_3, 0, 53672, 0, 4, 2 }, /* ADD */
+{ op_d1b0_3, 0, 53680, 2, 4, 2 }, /* ADD */
+{ op_d1b8_3, 0, 53688, 0, 4, 2 }, /* ADD */
+{ op_d1b9_3, 0, 53689, 0, 5, 2 }, /* ADD */
+{ op_d1c0_3, 0, 53696, 4, 1, 0 }, /* ADDA */
+{ op_d1c8_3, 0, 53704, 4, 1, 0 }, /* ADDA */
+{ op_d1d0_3, 0, 53712, 2, 3, 0 }, /* ADDA */
+{ op_d1d8_3, 0, 53720, 2, 3, 0 }, /* ADDA */
+{ op_d1e0_3, 0, 53728, 4, 3, 0 }, /* ADDA */
+{ op_d1e8_3, 0, 53736, 2, 4, 0 }, /* ADDA */
+{ op_d1f0_3, 0, 53744, 4, 4, 0 }, /* ADDA */
+{ op_d1f8_3, 0, 53752, 2, 4, 0 }, /* ADDA */
+{ op_d1f9_3, 0, 53753, 2, 5, 0 }, /* ADDA */
+{ op_d1fa_3, 0, 53754, 2, 4, 0 }, /* ADDA */
+{ op_d1fb_3, 0, 53755, 4, 4, 0 }, /* ADDA */
+{ op_d1fc_3, 0, 53756, 4, 3, 0 }, /* ADDA */
+{ op_e000_3, 0, 57344, 2, 1, 0 }, /* ASR */
+{ op_e008_3, 0, 57352, 2, 1, 0 }, /* LSR */
+{ op_e010_3, 0, 57360, 2, 1, 0 }, /* ROXR */
+{ op_e018_3, 0, 57368, 2, 1, 0 }, /* ROR */
+{ op_e020_3, 0, 57376, 2, 1, 0 }, /* ASR */
+{ op_e028_3, 0, 57384, 2, 1, 0 }, /* LSR */
+{ op_e030_3, 0, 57392, 2, 1, 0 }, /* ROXR */
+{ op_e038_3, 0, 57400, 2, 1, 0 }, /* ROR */
+{ op_e040_3, 0, 57408, 2, 1, 0 }, /* ASR */
+{ op_e048_3, 0, 57416, 2, 1, 0 }, /* LSR */
+{ op_e050_3, 0, 57424, 2, 1, 0 }, /* ROXR */
+{ op_e058_3, 0, 57432, 2, 1, 0 }, /* ROR */
+{ op_e060_3, 0, 57440, 2, 1, 0 }, /* ASR */
+{ op_e068_3, 0, 57448, 2, 1, 0 }, /* LSR */
+{ op_e070_3, 0, 57456, 2, 1, 0 }, /* ROXR */
+{ op_e078_3, 0, 57464, 2, 1, 0 }, /* ROR */
+{ op_e080_3, 0, 57472, 4, 1, 0 }, /* ASR */
+{ op_e088_3, 0, 57480, 4, 1, 0 }, /* LSR */
+{ op_e090_3, 0, 57488, 4, 1, 0 }, /* ROXR */
+{ op_e098_3, 0, 57496, 4, 1, 0 }, /* ROR */
+{ op_e0a0_3, 0, 57504, 4, 1, 0 }, /* ASR */
+{ op_e0a8_3, 0, 57512, 4, 1, 0 }, /* LSR */
+{ op_e0b0_3, 0, 57520, 4, 1, 0 }, /* ROXR */
+{ op_e0b8_3, 0, 57528, 4, 1, 0 }, /* ROR */
+{ op_e0d0_3, 0, 57552, 0, 2, 1 }, /* ASRW */
+{ op_e0d8_3, 0, 57560, 0, 2, 1 }, /* ASRW */
+{ op_e0e0_3, 0, 57568, 2, 2, 1 }, /* ASRW */
+{ op_e0e8_3, 0, 57576, 0, 3, 1 }, /* ASRW */
+{ op_e0f0_3, 0, 57584, 2, 3, 1 }, /* ASRW */
+{ op_e0f8_3, 0, 57592, 0, 3, 1 }, /* ASRW */
+{ op_e0f9_3, 0, 57593, 0, 4, 1 }, /* ASRW */
+{ op_e100_3, 0, 57600, 2, 1, 0 }, /* ASL */
+{ op_e108_3, 0, 57608, 2, 1, 0 }, /* LSL */
+{ op_e110_3, 0, 57616, 2, 1, 0 }, /* ROXL */
+{ op_e118_3, 0, 57624, 2, 1, 0 }, /* ROL */
+{ op_e120_3, 0, 57632, 2, 1, 0 }, /* ASL */
+{ op_e128_3, 0, 57640, 2, 1, 0 }, /* LSL */
+{ op_e130_3, 0, 57648, 2, 1, 0 }, /* ROXL */
+{ op_e138_3, 0, 57656, 2, 1, 0 }, /* ROL */
+{ op_e140_3, 0, 57664, 2, 1, 0 }, /* ASL */
+{ op_e148_3, 0, 57672, 2, 1, 0 }, /* LSL */
+{ op_e150_3, 0, 57680, 2, 1, 0 }, /* ROXL */
+{ op_e158_3, 0, 57688, 2, 1, 0 }, /* ROL */
+{ op_e160_3, 0, 57696, 2, 1, 0 }, /* ASL */
+{ op_e168_3, 0, 57704, 2, 1, 0 }, /* LSL */
+{ op_e170_3, 0, 57712, 2, 1, 0 }, /* ROXL */
+{ op_e178_3, 0, 57720, 2, 1, 0 }, /* ROL */
+{ op_e180_3, 0, 57728, 4, 1, 0 }, /* ASL */
+{ op_e188_3, 0, 57736, 4, 1, 0 }, /* LSL */
+{ op_e190_3, 0, 57744, 4, 1, 0 }, /* ROXL */
+{ op_e198_3, 0, 57752, 4, 1, 0 }, /* ROL */
+{ op_e1a0_3, 0, 57760, 4, 1, 0 }, /* ASL */
+{ op_e1a8_3, 0, 57768, 4, 1, 0 }, /* LSL */
+{ op_e1b0_3, 0, 57776, 4, 1, 0 }, /* ROXL */
+{ op_e1b8_3, 0, 57784, 4, 1, 0 }, /* ROL */
+{ op_e1d0_3, 0, 57808, 0, 2, 1 }, /* ASLW */
+{ op_e1d8_3, 0, 57816, 0, 2, 1 }, /* ASLW */
+{ op_e1e0_3, 0, 57824, 2, 2, 1 }, /* ASLW */
+{ op_e1e8_3, 0, 57832, 0, 3, 1 }, /* ASLW */
+{ op_e1f0_3, 0, 57840, 2, 3, 1 }, /* ASLW */
+{ op_e1f8_3, 0, 57848, 0, 3, 1 }, /* ASLW */
+{ op_e1f9_3, 0, 57849, 0, 4, 1 }, /* ASLW */
+{ op_e2d0_3, 0, 58064, 0, 2, 1 }, /* LSRW */
+{ op_e2d8_3, 0, 58072, 0, 2, 1 }, /* LSRW */
+{ op_e2e0_3, 0, 58080, 2, 2, 1 }, /* LSRW */
+{ op_e2e8_3, 0, 58088, 0, 3, 1 }, /* LSRW */
+{ op_e2f0_3, 0, 58096, 2, 3, 1 }, /* LSRW */
+{ op_e2f8_3, 0, 58104, 0, 3, 1 }, /* LSRW */
+{ op_e2f9_3, 0, 58105, 0, 4, 1 }, /* LSRW */
+{ op_e3d0_3, 0, 58320, 0, 2, 1 }, /* LSLW */
+{ op_e3d8_3, 0, 58328, 0, 2, 1 }, /* LSLW */
+{ op_e3e0_3, 0, 58336, 2, 2, 1 }, /* LSLW */
+{ op_e3e8_3, 0, 58344, 0, 3, 1 }, /* LSLW */
+{ op_e3f0_3, 0, 58352, 2, 3, 1 }, /* LSLW */
+{ op_e3f8_3, 0, 58360, 0, 3, 1 }, /* LSLW */
+{ op_e3f9_3, 0, 58361, 0, 4, 1 }, /* LSLW */
+{ op_e4d0_3, 0, 58576, 0, 2, 1 }, /* ROXRW */
+{ op_e4d8_3, 0, 58584, 0, 2, 1 }, /* ROXRW */
+{ op_e4e0_3, 0, 58592, 2, 2, 1 }, /* ROXRW */
+{ op_e4e8_3, 0, 58600, 0, 3, 1 }, /* ROXRW */
+{ op_e4f0_3, 0, 58608, 2, 3, 1 }, /* ROXRW */
+{ op_e4f8_3, 0, 58616, 0, 3, 1 }, /* ROXRW */
+{ op_e4f9_3, 0, 58617, 0, 4, 1 }, /* ROXRW */
+{ op_e5d0_3, 0, 58832, 0, 2, 1 }, /* ROXLW */
+{ op_e5d8_3, 0, 58840, 0, 2, 1 }, /* ROXLW */
+{ op_e5e0_3, 0, 58848, 2, 2, 1 }, /* ROXLW */
+{ op_e5e8_3, 0, 58856, 0, 3, 1 }, /* ROXLW */
+{ op_e5f0_3, 0, 58864, 2, 3, 1 }, /* ROXLW */
+{ op_e5f8_3, 0, 58872, 0, 3, 1 }, /* ROXLW */
+{ op_e5f9_3, 0, 58873, 0, 4, 1 }, /* ROXLW */
+{ op_e6d0_3, 0, 59088, 0, 2, 1 }, /* RORW */
+{ op_e6d8_3, 0, 59096, 0, 2, 1 }, /* RORW */
+{ op_e6e0_3, 0, 59104, 2, 2, 1 }, /* RORW */
+{ op_e6e8_3, 0, 59112, 0, 3, 1 }, /* RORW */
+{ op_e6f0_3, 0, 59120, 2, 3, 1 }, /* RORW */
+{ op_e6f8_3, 0, 59128, 0, 3, 1 }, /* RORW */
+{ op_e6f9_3, 0, 59129, 0, 4, 1 }, /* RORW */
+{ op_e7d0_3, 0, 59344, 0, 2, 1 }, /* ROLW */
+{ op_e7d8_3, 0, 59352, 0, 2, 1 }, /* ROLW */
+{ op_e7e0_3, 0, 59360, 2, 2, 1 }, /* ROLW */
+{ op_e7e8_3, 0, 59368, 0, 3, 1 }, /* ROLW */
+{ op_e7f0_3, 0, 59376, 2, 3, 1 }, /* ROLW */
+{ op_e7f8_3, 0, 59384, 0, 3, 1 }, /* ROLW */
+{ op_e7f9_3, 0, 59385, 0, 4, 1 }, /* ROLW */
+{ 0, 0, 0 }};
diff --git a/SrcShared/UAE/cputbl.h b/SrcShared/UAE/cputbl.h
new file mode 100644
index 0000000..c13d061
--- /dev/null
+++ b/SrcShared/UAE/cputbl.h
@@ -0,0 +1,1584 @@
+extern cpuop_func op_0_3;
+extern cpuop_func op_10_3;
+extern cpuop_func op_18_3;
+extern cpuop_func op_20_3;
+extern cpuop_func op_28_3;
+extern cpuop_func op_30_3;
+extern cpuop_func op_38_3;
+extern cpuop_func op_39_3;
+extern cpuop_func op_3c_3;
+extern cpuop_func op_40_3;
+extern cpuop_func op_50_3;
+extern cpuop_func op_58_3;
+extern cpuop_func op_60_3;
+extern cpuop_func op_68_3;
+extern cpuop_func op_70_3;
+extern cpuop_func op_78_3;
+extern cpuop_func op_79_3;
+extern cpuop_func op_7c_3;
+extern cpuop_func op_80_3;
+extern cpuop_func op_90_3;
+extern cpuop_func op_98_3;
+extern cpuop_func op_a0_3;
+extern cpuop_func op_a8_3;
+extern cpuop_func op_b0_3;
+extern cpuop_func op_b8_3;
+extern cpuop_func op_b9_3;
+extern cpuop_func op_100_3;
+extern cpuop_func op_108_3;
+extern cpuop_func op_110_3;
+extern cpuop_func op_118_3;
+extern cpuop_func op_120_3;
+extern cpuop_func op_128_3;
+extern cpuop_func op_130_3;
+extern cpuop_func op_138_3;
+extern cpuop_func op_139_3;
+extern cpuop_func op_13a_3;
+extern cpuop_func op_13b_3;
+extern cpuop_func op_13c_3;
+extern cpuop_func op_140_3;
+extern cpuop_func op_148_3;
+extern cpuop_func op_150_3;
+extern cpuop_func op_158_3;
+extern cpuop_func op_160_3;
+extern cpuop_func op_168_3;
+extern cpuop_func op_170_3;
+extern cpuop_func op_178_3;
+extern cpuop_func op_179_3;
+extern cpuop_func op_17a_3;
+extern cpuop_func op_17b_3;
+extern cpuop_func op_180_3;
+extern cpuop_func op_188_3;
+extern cpuop_func op_190_3;
+extern cpuop_func op_198_3;
+extern cpuop_func op_1a0_3;
+extern cpuop_func op_1a8_3;
+extern cpuop_func op_1b0_3;
+extern cpuop_func op_1b8_3;
+extern cpuop_func op_1b9_3;
+extern cpuop_func op_1ba_3;
+extern cpuop_func op_1bb_3;
+extern cpuop_func op_1c0_3;
+extern cpuop_func op_1c8_3;
+extern cpuop_func op_1d0_3;
+extern cpuop_func op_1d8_3;
+extern cpuop_func op_1e0_3;
+extern cpuop_func op_1e8_3;
+extern cpuop_func op_1f0_3;
+extern cpuop_func op_1f8_3;
+extern cpuop_func op_1f9_3;
+extern cpuop_func op_1fa_3;
+extern cpuop_func op_1fb_3;
+extern cpuop_func op_200_3;
+extern cpuop_func op_210_3;
+extern cpuop_func op_218_3;
+extern cpuop_func op_220_3;
+extern cpuop_func op_228_3;
+extern cpuop_func op_230_3;
+extern cpuop_func op_238_3;
+extern cpuop_func op_239_3;
+extern cpuop_func op_23c_3;
+extern cpuop_func op_240_3;
+extern cpuop_func op_250_3;
+extern cpuop_func op_258_3;
+extern cpuop_func op_260_3;
+extern cpuop_func op_268_3;
+extern cpuop_func op_270_3;
+extern cpuop_func op_278_3;
+extern cpuop_func op_279_3;
+extern cpuop_func op_27c_3;
+extern cpuop_func op_280_3;
+extern cpuop_func op_290_3;
+extern cpuop_func op_298_3;
+extern cpuop_func op_2a0_3;
+extern cpuop_func op_2a8_3;
+extern cpuop_func op_2b0_3;
+extern cpuop_func op_2b8_3;
+extern cpuop_func op_2b9_3;
+extern cpuop_func op_400_3;
+extern cpuop_func op_410_3;
+extern cpuop_func op_418_3;
+extern cpuop_func op_420_3;
+extern cpuop_func op_428_3;
+extern cpuop_func op_430_3;
+extern cpuop_func op_438_3;
+extern cpuop_func op_439_3;
+extern cpuop_func op_440_3;
+extern cpuop_func op_450_3;
+extern cpuop_func op_458_3;
+extern cpuop_func op_460_3;
+extern cpuop_func op_468_3;
+extern cpuop_func op_470_3;
+extern cpuop_func op_478_3;
+extern cpuop_func op_479_3;
+extern cpuop_func op_480_3;
+extern cpuop_func op_490_3;
+extern cpuop_func op_498_3;
+extern cpuop_func op_4a0_3;
+extern cpuop_func op_4a8_3;
+extern cpuop_func op_4b0_3;
+extern cpuop_func op_4b8_3;
+extern cpuop_func op_4b9_3;
+extern cpuop_func op_600_3;
+extern cpuop_func op_610_3;
+extern cpuop_func op_618_3;
+extern cpuop_func op_620_3;
+extern cpuop_func op_628_3;
+extern cpuop_func op_630_3;
+extern cpuop_func op_638_3;
+extern cpuop_func op_639_3;
+extern cpuop_func op_640_3;
+extern cpuop_func op_650_3;
+extern cpuop_func op_658_3;
+extern cpuop_func op_660_3;
+extern cpuop_func op_668_3;
+extern cpuop_func op_670_3;
+extern cpuop_func op_678_3;
+extern cpuop_func op_679_3;
+extern cpuop_func op_680_3;
+extern cpuop_func op_690_3;
+extern cpuop_func op_698_3;
+extern cpuop_func op_6a0_3;
+extern cpuop_func op_6a8_3;
+extern cpuop_func op_6b0_3;
+extern cpuop_func op_6b8_3;
+extern cpuop_func op_6b9_3;
+extern cpuop_func op_800_3;
+extern cpuop_func op_810_3;
+extern cpuop_func op_818_3;
+extern cpuop_func op_820_3;
+extern cpuop_func op_828_3;
+extern cpuop_func op_830_3;
+extern cpuop_func op_838_3;
+extern cpuop_func op_839_3;
+extern cpuop_func op_83a_3;
+extern cpuop_func op_83b_3;
+extern cpuop_func op_83c_3;
+extern cpuop_func op_840_3;
+extern cpuop_func op_850_3;
+extern cpuop_func op_858_3;
+extern cpuop_func op_860_3;
+extern cpuop_func op_868_3;
+extern cpuop_func op_870_3;
+extern cpuop_func op_878_3;
+extern cpuop_func op_879_3;
+extern cpuop_func op_87a_3;
+extern cpuop_func op_87b_3;
+extern cpuop_func op_880_3;
+extern cpuop_func op_890_3;
+extern cpuop_func op_898_3;
+extern cpuop_func op_8a0_3;
+extern cpuop_func op_8a8_3;
+extern cpuop_func op_8b0_3;
+extern cpuop_func op_8b8_3;
+extern cpuop_func op_8b9_3;
+extern cpuop_func op_8ba_3;
+extern cpuop_func op_8bb_3;
+extern cpuop_func op_8c0_3;
+extern cpuop_func op_8d0_3;
+extern cpuop_func op_8d8_3;
+extern cpuop_func op_8e0_3;
+extern cpuop_func op_8e8_3;
+extern cpuop_func op_8f0_3;
+extern cpuop_func op_8f8_3;
+extern cpuop_func op_8f9_3;
+extern cpuop_func op_8fa_3;
+extern cpuop_func op_8fb_3;
+extern cpuop_func op_a00_3;
+extern cpuop_func op_a10_3;
+extern cpuop_func op_a18_3;
+extern cpuop_func op_a20_3;
+extern cpuop_func op_a28_3;
+extern cpuop_func op_a30_3;
+extern cpuop_func op_a38_3;
+extern cpuop_func op_a39_3;
+extern cpuop_func op_a3c_3;
+extern cpuop_func op_a40_3;
+extern cpuop_func op_a50_3;
+extern cpuop_func op_a58_3;
+extern cpuop_func op_a60_3;
+extern cpuop_func op_a68_3;
+extern cpuop_func op_a70_3;
+extern cpuop_func op_a78_3;
+extern cpuop_func op_a79_3;
+extern cpuop_func op_a7c_3;
+extern cpuop_func op_a80_3;
+extern cpuop_func op_a90_3;
+extern cpuop_func op_a98_3;
+extern cpuop_func op_aa0_3;
+extern cpuop_func op_aa8_3;
+extern cpuop_func op_ab0_3;
+extern cpuop_func op_ab8_3;
+extern cpuop_func op_ab9_3;
+extern cpuop_func op_c00_3;
+extern cpuop_func op_c10_3;
+extern cpuop_func op_c18_3;
+extern cpuop_func op_c20_3;
+extern cpuop_func op_c28_3;
+extern cpuop_func op_c30_3;
+extern cpuop_func op_c38_3;
+extern cpuop_func op_c39_3;
+extern cpuop_func op_c3a_3;
+extern cpuop_func op_c3b_3;
+extern cpuop_func op_c40_3;
+extern cpuop_func op_c50_3;
+extern cpuop_func op_c58_3;
+extern cpuop_func op_c60_3;
+extern cpuop_func op_c68_3;
+extern cpuop_func op_c70_3;
+extern cpuop_func op_c78_3;
+extern cpuop_func op_c79_3;
+extern cpuop_func op_c7a_3;
+extern cpuop_func op_c7b_3;
+extern cpuop_func op_c80_3;
+extern cpuop_func op_c90_3;
+extern cpuop_func op_c98_3;
+extern cpuop_func op_ca0_3;
+extern cpuop_func op_ca8_3;
+extern cpuop_func op_cb0_3;
+extern cpuop_func op_cb8_3;
+extern cpuop_func op_cb9_3;
+extern cpuop_func op_cba_3;
+extern cpuop_func op_cbb_3;
+extern cpuop_func op_1000_3;
+extern cpuop_func op_1010_3;
+extern cpuop_func op_1018_3;
+extern cpuop_func op_1020_3;
+extern cpuop_func op_1028_3;
+extern cpuop_func op_1030_3;
+extern cpuop_func op_1038_3;
+extern cpuop_func op_1039_3;
+extern cpuop_func op_103a_3;
+extern cpuop_func op_103b_3;
+extern cpuop_func op_103c_3;
+extern cpuop_func op_1080_3;
+extern cpuop_func op_1090_3;
+extern cpuop_func op_1098_3;
+extern cpuop_func op_10a0_3;
+extern cpuop_func op_10a8_3;
+extern cpuop_func op_10b0_3;
+extern cpuop_func op_10b8_3;
+extern cpuop_func op_10b9_3;
+extern cpuop_func op_10ba_3;
+extern cpuop_func op_10bb_3;
+extern cpuop_func op_10bc_3;
+extern cpuop_func op_10c0_3;
+extern cpuop_func op_10d0_3;
+extern cpuop_func op_10d8_3;
+extern cpuop_func op_10e0_3;
+extern cpuop_func op_10e8_3;
+extern cpuop_func op_10f0_3;
+extern cpuop_func op_10f8_3;
+extern cpuop_func op_10f9_3;
+extern cpuop_func op_10fa_3;
+extern cpuop_func op_10fb_3;
+extern cpuop_func op_10fc_3;
+extern cpuop_func op_1100_3;
+extern cpuop_func op_1110_3;
+extern cpuop_func op_1118_3;
+extern cpuop_func op_1120_3;
+extern cpuop_func op_1128_3;
+extern cpuop_func op_1130_3;
+extern cpuop_func op_1138_3;
+extern cpuop_func op_1139_3;
+extern cpuop_func op_113a_3;
+extern cpuop_func op_113b_3;
+extern cpuop_func op_113c_3;
+extern cpuop_func op_1140_3;
+extern cpuop_func op_1150_3;
+extern cpuop_func op_1158_3;
+extern cpuop_func op_1160_3;
+extern cpuop_func op_1168_3;
+extern cpuop_func op_1170_3;
+extern cpuop_func op_1178_3;
+extern cpuop_func op_1179_3;
+extern cpuop_func op_117a_3;
+extern cpuop_func op_117b_3;
+extern cpuop_func op_117c_3;
+extern cpuop_func op_1180_3;
+extern cpuop_func op_1190_3;
+extern cpuop_func op_1198_3;
+extern cpuop_func op_11a0_3;
+extern cpuop_func op_11a8_3;
+extern cpuop_func op_11b0_3;
+extern cpuop_func op_11b8_3;
+extern cpuop_func op_11b9_3;
+extern cpuop_func op_11ba_3;
+extern cpuop_func op_11bb_3;
+extern cpuop_func op_11bc_3;
+extern cpuop_func op_11c0_3;
+extern cpuop_func op_11d0_3;
+extern cpuop_func op_11d8_3;
+extern cpuop_func op_11e0_3;
+extern cpuop_func op_11e8_3;
+extern cpuop_func op_11f0_3;
+extern cpuop_func op_11f8_3;
+extern cpuop_func op_11f9_3;
+extern cpuop_func op_11fa_3;
+extern cpuop_func op_11fb_3;
+extern cpuop_func op_11fc_3;
+extern cpuop_func op_13c0_3;
+extern cpuop_func op_13d0_3;
+extern cpuop_func op_13d8_3;
+extern cpuop_func op_13e0_3;
+extern cpuop_func op_13e8_3;
+extern cpuop_func op_13f0_3;
+extern cpuop_func op_13f8_3;
+extern cpuop_func op_13f9_3;
+extern cpuop_func op_13fa_3;
+extern cpuop_func op_13fb_3;
+extern cpuop_func op_13fc_3;
+extern cpuop_func op_2000_3;
+extern cpuop_func op_2008_3;
+extern cpuop_func op_2010_3;
+extern cpuop_func op_2018_3;
+extern cpuop_func op_2020_3;
+extern cpuop_func op_2028_3;
+extern cpuop_func op_2030_3;
+extern cpuop_func op_2038_3;
+extern cpuop_func op_2039_3;
+extern cpuop_func op_203a_3;
+extern cpuop_func op_203b_3;
+extern cpuop_func op_203c_3;
+extern cpuop_func op_2040_3;
+extern cpuop_func op_2048_3;
+extern cpuop_func op_2050_3;
+extern cpuop_func op_2058_3;
+extern cpuop_func op_2060_3;
+extern cpuop_func op_2068_3;
+extern cpuop_func op_2070_3;
+extern cpuop_func op_2078_3;
+extern cpuop_func op_2079_3;
+extern cpuop_func op_207a_3;
+extern cpuop_func op_207b_3;
+extern cpuop_func op_207c_3;
+extern cpuop_func op_2080_3;
+extern cpuop_func op_2088_3;
+extern cpuop_func op_2090_3;
+extern cpuop_func op_2098_3;
+extern cpuop_func op_20a0_3;
+extern cpuop_func op_20a8_3;
+extern cpuop_func op_20b0_3;
+extern cpuop_func op_20b8_3;
+extern cpuop_func op_20b9_3;
+extern cpuop_func op_20ba_3;
+extern cpuop_func op_20bb_3;
+extern cpuop_func op_20bc_3;
+extern cpuop_func op_20c0_3;
+extern cpuop_func op_20c8_3;
+extern cpuop_func op_20d0_3;
+extern cpuop_func op_20d8_3;
+extern cpuop_func op_20e0_3;
+extern cpuop_func op_20e8_3;
+extern cpuop_func op_20f0_3;
+extern cpuop_func op_20f8_3;
+extern cpuop_func op_20f9_3;
+extern cpuop_func op_20fa_3;
+extern cpuop_func op_20fb_3;
+extern cpuop_func op_20fc_3;
+extern cpuop_func op_2100_3;
+extern cpuop_func op_2108_3;
+extern cpuop_func op_2110_3;
+extern cpuop_func op_2118_3;
+extern cpuop_func op_2120_3;
+extern cpuop_func op_2128_3;
+extern cpuop_func op_2130_3;
+extern cpuop_func op_2138_3;
+extern cpuop_func op_2139_3;
+extern cpuop_func op_213a_3;
+extern cpuop_func op_213b_3;
+extern cpuop_func op_213c_3;
+extern cpuop_func op_2140_3;
+extern cpuop_func op_2148_3;
+extern cpuop_func op_2150_3;
+extern cpuop_func op_2158_3;
+extern cpuop_func op_2160_3;
+extern cpuop_func op_2168_3;
+extern cpuop_func op_2170_3;
+extern cpuop_func op_2178_3;
+extern cpuop_func op_2179_3;
+extern cpuop_func op_217a_3;
+extern cpuop_func op_217b_3;
+extern cpuop_func op_217c_3;
+extern cpuop_func op_2180_3;
+extern cpuop_func op_2188_3;
+extern cpuop_func op_2190_3;
+extern cpuop_func op_2198_3;
+extern cpuop_func op_21a0_3;
+extern cpuop_func op_21a8_3;
+extern cpuop_func op_21b0_3;
+extern cpuop_func op_21b8_3;
+extern cpuop_func op_21b9_3;
+extern cpuop_func op_21ba_3;
+extern cpuop_func op_21bb_3;
+extern cpuop_func op_21bc_3;
+extern cpuop_func op_21c0_3;
+extern cpuop_func op_21c8_3;
+extern cpuop_func op_21d0_3;
+extern cpuop_func op_21d8_3;
+extern cpuop_func op_21e0_3;
+extern cpuop_func op_21e8_3;
+extern cpuop_func op_21f0_3;
+extern cpuop_func op_21f8_3;
+extern cpuop_func op_21f9_3;
+extern cpuop_func op_21fa_3;
+extern cpuop_func op_21fb_3;
+extern cpuop_func op_21fc_3;
+extern cpuop_func op_23c0_3;
+extern cpuop_func op_23c8_3;
+extern cpuop_func op_23d0_3;
+extern cpuop_func op_23d8_3;
+extern cpuop_func op_23e0_3;
+extern cpuop_func op_23e8_3;
+extern cpuop_func op_23f0_3;
+extern cpuop_func op_23f8_3;
+extern cpuop_func op_23f9_3;
+extern cpuop_func op_23fa_3;
+extern cpuop_func op_23fb_3;
+extern cpuop_func op_23fc_3;
+extern cpuop_func op_3000_3;
+extern cpuop_func op_3008_3;
+extern cpuop_func op_3010_3;
+extern cpuop_func op_3018_3;
+extern cpuop_func op_3020_3;
+extern cpuop_func op_3028_3;
+extern cpuop_func op_3030_3;
+extern cpuop_func op_3038_3;
+extern cpuop_func op_3039_3;
+extern cpuop_func op_303a_3;
+extern cpuop_func op_303b_3;
+extern cpuop_func op_303c_3;
+extern cpuop_func op_3040_3;
+extern cpuop_func op_3048_3;
+extern cpuop_func op_3050_3;
+extern cpuop_func op_3058_3;
+extern cpuop_func op_3060_3;
+extern cpuop_func op_3068_3;
+extern cpuop_func op_3070_3;
+extern cpuop_func op_3078_3;
+extern cpuop_func op_3079_3;
+extern cpuop_func op_307a_3;
+extern cpuop_func op_307b_3;
+extern cpuop_func op_307c_3;
+extern cpuop_func op_3080_3;
+extern cpuop_func op_3088_3;
+extern cpuop_func op_3090_3;
+extern cpuop_func op_3098_3;
+extern cpuop_func op_30a0_3;
+extern cpuop_func op_30a8_3;
+extern cpuop_func op_30b0_3;
+extern cpuop_func op_30b8_3;
+extern cpuop_func op_30b9_3;
+extern cpuop_func op_30ba_3;
+extern cpuop_func op_30bb_3;
+extern cpuop_func op_30bc_3;
+extern cpuop_func op_30c0_3;
+extern cpuop_func op_30c8_3;
+extern cpuop_func op_30d0_3;
+extern cpuop_func op_30d8_3;
+extern cpuop_func op_30e0_3;
+extern cpuop_func op_30e8_3;
+extern cpuop_func op_30f0_3;
+extern cpuop_func op_30f8_3;
+extern cpuop_func op_30f9_3;
+extern cpuop_func op_30fa_3;
+extern cpuop_func op_30fb_3;
+extern cpuop_func op_30fc_3;
+extern cpuop_func op_3100_3;
+extern cpuop_func op_3108_3;
+extern cpuop_func op_3110_3;
+extern cpuop_func op_3118_3;
+extern cpuop_func op_3120_3;
+extern cpuop_func op_3128_3;
+extern cpuop_func op_3130_3;
+extern cpuop_func op_3138_3;
+extern cpuop_func op_3139_3;
+extern cpuop_func op_313a_3;
+extern cpuop_func op_313b_3;
+extern cpuop_func op_313c_3;
+extern cpuop_func op_3140_3;
+extern cpuop_func op_3148_3;
+extern cpuop_func op_3150_3;
+extern cpuop_func op_3158_3;
+extern cpuop_func op_3160_3;
+extern cpuop_func op_3168_3;
+extern cpuop_func op_3170_3;
+extern cpuop_func op_3178_3;
+extern cpuop_func op_3179_3;
+extern cpuop_func op_317a_3;
+extern cpuop_func op_317b_3;
+extern cpuop_func op_317c_3;
+extern cpuop_func op_3180_3;
+extern cpuop_func op_3188_3;
+extern cpuop_func op_3190_3;
+extern cpuop_func op_3198_3;
+extern cpuop_func op_31a0_3;
+extern cpuop_func op_31a8_3;
+extern cpuop_func op_31b0_3;
+extern cpuop_func op_31b8_3;
+extern cpuop_func op_31b9_3;
+extern cpuop_func op_31ba_3;
+extern cpuop_func op_31bb_3;
+extern cpuop_func op_31bc_3;
+extern cpuop_func op_31c0_3;
+extern cpuop_func op_31c8_3;
+extern cpuop_func op_31d0_3;
+extern cpuop_func op_31d8_3;
+extern cpuop_func op_31e0_3;
+extern cpuop_func op_31e8_3;
+extern cpuop_func op_31f0_3;
+extern cpuop_func op_31f8_3;
+extern cpuop_func op_31f9_3;
+extern cpuop_func op_31fa_3;
+extern cpuop_func op_31fb_3;
+extern cpuop_func op_31fc_3;
+extern cpuop_func op_33c0_3;
+extern cpuop_func op_33c8_3;
+extern cpuop_func op_33d0_3;
+extern cpuop_func op_33d8_3;
+extern cpuop_func op_33e0_3;
+extern cpuop_func op_33e8_3;
+extern cpuop_func op_33f0_3;
+extern cpuop_func op_33f8_3;
+extern cpuop_func op_33f9_3;
+extern cpuop_func op_33fa_3;
+extern cpuop_func op_33fb_3;
+extern cpuop_func op_33fc_3;
+extern cpuop_func op_4000_3;
+extern cpuop_func op_4010_3;
+extern cpuop_func op_4018_3;
+extern cpuop_func op_4020_3;
+extern cpuop_func op_4028_3;
+extern cpuop_func op_4030_3;
+extern cpuop_func op_4038_3;
+extern cpuop_func op_4039_3;
+extern cpuop_func op_4040_3;
+extern cpuop_func op_4050_3;
+extern cpuop_func op_4058_3;
+extern cpuop_func op_4060_3;
+extern cpuop_func op_4068_3;
+extern cpuop_func op_4070_3;
+extern cpuop_func op_4078_3;
+extern cpuop_func op_4079_3;
+extern cpuop_func op_4080_3;
+extern cpuop_func op_4090_3;
+extern cpuop_func op_4098_3;
+extern cpuop_func op_40a0_3;
+extern cpuop_func op_40a8_3;
+extern cpuop_func op_40b0_3;
+extern cpuop_func op_40b8_3;
+extern cpuop_func op_40b9_3;
+extern cpuop_func op_40c0_3;
+extern cpuop_func op_40d0_3;
+extern cpuop_func op_40d8_3;
+extern cpuop_func op_40e0_3;
+extern cpuop_func op_40e8_3;
+extern cpuop_func op_40f0_3;
+extern cpuop_func op_40f8_3;
+extern cpuop_func op_40f9_3;
+extern cpuop_func op_4100_3;
+extern cpuop_func op_4110_3;
+extern cpuop_func op_4118_3;
+extern cpuop_func op_4120_3;
+extern cpuop_func op_4128_3;
+extern cpuop_func op_4130_3;
+extern cpuop_func op_4138_3;
+extern cpuop_func op_4139_3;
+extern cpuop_func op_413a_3;
+extern cpuop_func op_413b_3;
+extern cpuop_func op_413c_3;
+extern cpuop_func op_4180_3;
+extern cpuop_func op_4190_3;
+extern cpuop_func op_4198_3;
+extern cpuop_func op_41a0_3;
+extern cpuop_func op_41a8_3;
+extern cpuop_func op_41b0_3;
+extern cpuop_func op_41b8_3;
+extern cpuop_func op_41b9_3;
+extern cpuop_func op_41ba_3;
+extern cpuop_func op_41bb_3;
+extern cpuop_func op_41bc_3;
+extern cpuop_func op_41d0_3;
+extern cpuop_func op_41e8_3;
+extern cpuop_func op_41f0_3;
+extern cpuop_func op_41f8_3;
+extern cpuop_func op_41f9_3;
+extern cpuop_func op_41fa_3;
+extern cpuop_func op_41fb_3;
+extern cpuop_func op_4200_3;
+extern cpuop_func op_4210_3;
+extern cpuop_func op_4218_3;
+extern cpuop_func op_4220_3;
+extern cpuop_func op_4228_3;
+extern cpuop_func op_4230_3;
+extern cpuop_func op_4238_3;
+extern cpuop_func op_4239_3;
+extern cpuop_func op_4240_3;
+extern cpuop_func op_4250_3;
+extern cpuop_func op_4258_3;
+extern cpuop_func op_4260_3;
+extern cpuop_func op_4268_3;
+extern cpuop_func op_4270_3;
+extern cpuop_func op_4278_3;
+extern cpuop_func op_4279_3;
+extern cpuop_func op_4280_3;
+extern cpuop_func op_4290_3;
+extern cpuop_func op_4298_3;
+extern cpuop_func op_42a0_3;
+extern cpuop_func op_42a8_3;
+extern cpuop_func op_42b0_3;
+extern cpuop_func op_42b8_3;
+extern cpuop_func op_42b9_3;
+extern cpuop_func op_4400_3;
+extern cpuop_func op_4410_3;
+extern cpuop_func op_4418_3;
+extern cpuop_func op_4420_3;
+extern cpuop_func op_4428_3;
+extern cpuop_func op_4430_3;
+extern cpuop_func op_4438_3;
+extern cpuop_func op_4439_3;
+extern cpuop_func op_4440_3;
+extern cpuop_func op_4450_3;
+extern cpuop_func op_4458_3;
+extern cpuop_func op_4460_3;
+extern cpuop_func op_4468_3;
+extern cpuop_func op_4470_3;
+extern cpuop_func op_4478_3;
+extern cpuop_func op_4479_3;
+extern cpuop_func op_4480_3;
+extern cpuop_func op_4490_3;
+extern cpuop_func op_4498_3;
+extern cpuop_func op_44a0_3;
+extern cpuop_func op_44a8_3;
+extern cpuop_func op_44b0_3;
+extern cpuop_func op_44b8_3;
+extern cpuop_func op_44b9_3;
+extern cpuop_func op_44c0_3;
+extern cpuop_func op_44d0_3;
+extern cpuop_func op_44d8_3;
+extern cpuop_func op_44e0_3;
+extern cpuop_func op_44e8_3;
+extern cpuop_func op_44f0_3;
+extern cpuop_func op_44f8_3;
+extern cpuop_func op_44f9_3;
+extern cpuop_func op_44fa_3;
+extern cpuop_func op_44fb_3;
+extern cpuop_func op_44fc_3;
+extern cpuop_func op_4600_3;
+extern cpuop_func op_4610_3;
+extern cpuop_func op_4618_3;
+extern cpuop_func op_4620_3;
+extern cpuop_func op_4628_3;
+extern cpuop_func op_4630_3;
+extern cpuop_func op_4638_3;
+extern cpuop_func op_4639_3;
+extern cpuop_func op_4640_3;
+extern cpuop_func op_4650_3;
+extern cpuop_func op_4658_3;
+extern cpuop_func op_4660_3;
+extern cpuop_func op_4668_3;
+extern cpuop_func op_4670_3;
+extern cpuop_func op_4678_3;
+extern cpuop_func op_4679_3;
+extern cpuop_func op_4680_3;
+extern cpuop_func op_4690_3;
+extern cpuop_func op_4698_3;
+extern cpuop_func op_46a0_3;
+extern cpuop_func op_46a8_3;
+extern cpuop_func op_46b0_3;
+extern cpuop_func op_46b8_3;
+extern cpuop_func op_46b9_3;
+extern cpuop_func op_46c0_3;
+extern cpuop_func op_46d0_3;
+extern cpuop_func op_46d8_3;
+extern cpuop_func op_46e0_3;
+extern cpuop_func op_46e8_3;
+extern cpuop_func op_46f0_3;
+extern cpuop_func op_46f8_3;
+extern cpuop_func op_46f9_3;
+extern cpuop_func op_46fa_3;
+extern cpuop_func op_46fb_3;
+extern cpuop_func op_46fc_3;
+extern cpuop_func op_4800_3;
+extern cpuop_func op_4810_3;
+extern cpuop_func op_4818_3;
+extern cpuop_func op_4820_3;
+extern cpuop_func op_4828_3;
+extern cpuop_func op_4830_3;
+extern cpuop_func op_4838_3;
+extern cpuop_func op_4839_3;
+extern cpuop_func op_4840_3;
+extern cpuop_func op_4850_3;
+extern cpuop_func op_4868_3;
+extern cpuop_func op_4870_3;
+extern cpuop_func op_4878_3;
+extern cpuop_func op_4879_3;
+extern cpuop_func op_487a_3;
+extern cpuop_func op_487b_3;
+extern cpuop_func op_4880_3;
+extern cpuop_func op_4890_3;
+extern cpuop_func op_48a0_3;
+extern cpuop_func op_48a8_3;
+extern cpuop_func op_48b0_3;
+extern cpuop_func op_48b8_3;
+extern cpuop_func op_48b9_3;
+extern cpuop_func op_48c0_3;
+extern cpuop_func op_48d0_3;
+extern cpuop_func op_48e0_3;
+extern cpuop_func op_48e8_3;
+extern cpuop_func op_48f0_3;
+extern cpuop_func op_48f8_3;
+extern cpuop_func op_48f9_3;
+extern cpuop_func op_49c0_3;
+extern cpuop_func op_4a00_3;
+extern cpuop_func op_4a10_3;
+extern cpuop_func op_4a18_3;
+extern cpuop_func op_4a20_3;
+extern cpuop_func op_4a28_3;
+extern cpuop_func op_4a30_3;
+extern cpuop_func op_4a38_3;
+extern cpuop_func op_4a39_3;
+extern cpuop_func op_4a3a_3;
+extern cpuop_func op_4a3b_3;
+extern cpuop_func op_4a3c_3;
+extern cpuop_func op_4a40_3;
+extern cpuop_func op_4a48_3;
+extern cpuop_func op_4a50_3;
+extern cpuop_func op_4a58_3;
+extern cpuop_func op_4a60_3;
+extern cpuop_func op_4a68_3;
+extern cpuop_func op_4a70_3;
+extern cpuop_func op_4a78_3;
+extern cpuop_func op_4a79_3;
+extern cpuop_func op_4a7a_3;
+extern cpuop_func op_4a7b_3;
+extern cpuop_func op_4a7c_3;
+extern cpuop_func op_4a80_3;
+extern cpuop_func op_4a88_3;
+extern cpuop_func op_4a90_3;
+extern cpuop_func op_4a98_3;
+extern cpuop_func op_4aa0_3;
+extern cpuop_func op_4aa8_3;
+extern cpuop_func op_4ab0_3;
+extern cpuop_func op_4ab8_3;
+extern cpuop_func op_4ab9_3;
+extern cpuop_func op_4aba_3;
+extern cpuop_func op_4abb_3;
+extern cpuop_func op_4abc_3;
+extern cpuop_func op_4ac0_3;
+extern cpuop_func op_4ad0_3;
+extern cpuop_func op_4ad8_3;
+extern cpuop_func op_4ae0_3;
+extern cpuop_func op_4ae8_3;
+extern cpuop_func op_4af0_3;
+extern cpuop_func op_4af8_3;
+extern cpuop_func op_4af9_3;
+extern cpuop_func op_4c90_3;
+extern cpuop_func op_4c98_3;
+extern cpuop_func op_4ca8_3;
+extern cpuop_func op_4cb0_3;
+extern cpuop_func op_4cb8_3;
+extern cpuop_func op_4cb9_3;
+extern cpuop_func op_4cba_3;
+extern cpuop_func op_4cbb_3;
+extern cpuop_func op_4cd0_3;
+extern cpuop_func op_4cd8_3;
+extern cpuop_func op_4ce8_3;
+extern cpuop_func op_4cf0_3;
+extern cpuop_func op_4cf8_3;
+extern cpuop_func op_4cf9_3;
+extern cpuop_func op_4cfa_3;
+extern cpuop_func op_4cfb_3;
+extern cpuop_func op_4e40_3;
+extern cpuop_func op_4e50_3;
+extern cpuop_func op_4e58_3;
+extern cpuop_func op_4e60_3;
+extern cpuop_func op_4e68_3;
+extern cpuop_func op_4e70_3;
+extern cpuop_func op_4e71_3;
+extern cpuop_func op_4e72_3;
+extern cpuop_func op_4e73_3;
+extern cpuop_func op_4e74_3;
+extern cpuop_func op_4e75_3;
+extern cpuop_func op_4e76_3;
+extern cpuop_func op_4e77_3;
+extern cpuop_func op_4e90_3;
+extern cpuop_func op_4ea8_3;
+extern cpuop_func op_4eb0_3;
+extern cpuop_func op_4eb8_3;
+extern cpuop_func op_4eb9_3;
+extern cpuop_func op_4eba_3;
+extern cpuop_func op_4ebb_3;
+extern cpuop_func op_4ed0_3;
+extern cpuop_func op_4ee8_3;
+extern cpuop_func op_4ef0_3;
+extern cpuop_func op_4ef8_3;
+extern cpuop_func op_4ef9_3;
+extern cpuop_func op_4efa_3;
+extern cpuop_func op_4efb_3;
+extern cpuop_func op_5000_3;
+extern cpuop_func op_5010_3;
+extern cpuop_func op_5018_3;
+extern cpuop_func op_5020_3;
+extern cpuop_func op_5028_3;
+extern cpuop_func op_5030_3;
+extern cpuop_func op_5038_3;
+extern cpuop_func op_5039_3;
+extern cpuop_func op_5040_3;
+extern cpuop_func op_5048_3;
+extern cpuop_func op_5050_3;
+extern cpuop_func op_5058_3;
+extern cpuop_func op_5060_3;
+extern cpuop_func op_5068_3;
+extern cpuop_func op_5070_3;
+extern cpuop_func op_5078_3;
+extern cpuop_func op_5079_3;
+extern cpuop_func op_5080_3;
+extern cpuop_func op_5088_3;
+extern cpuop_func op_5090_3;
+extern cpuop_func op_5098_3;
+extern cpuop_func op_50a0_3;
+extern cpuop_func op_50a8_3;
+extern cpuop_func op_50b0_3;
+extern cpuop_func op_50b8_3;
+extern cpuop_func op_50b9_3;
+extern cpuop_func op_50c0_3;
+extern cpuop_func op_50c8_3;
+extern cpuop_func op_50d0_3;
+extern cpuop_func op_50d8_3;
+extern cpuop_func op_50e0_3;
+extern cpuop_func op_50e8_3;
+extern cpuop_func op_50f0_3;
+extern cpuop_func op_50f8_3;
+extern cpuop_func op_50f9_3;
+extern cpuop_func op_5100_3;
+extern cpuop_func op_5110_3;
+extern cpuop_func op_5118_3;
+extern cpuop_func op_5120_3;
+extern cpuop_func op_5128_3;
+extern cpuop_func op_5130_3;
+extern cpuop_func op_5138_3;
+extern cpuop_func op_5139_3;
+extern cpuop_func op_5140_3;
+extern cpuop_func op_5148_3;
+extern cpuop_func op_5150_3;
+extern cpuop_func op_5158_3;
+extern cpuop_func op_5160_3;
+extern cpuop_func op_5168_3;
+extern cpuop_func op_5170_3;
+extern cpuop_func op_5178_3;
+extern cpuop_func op_5179_3;
+extern cpuop_func op_5180_3;
+extern cpuop_func op_5188_3;
+extern cpuop_func op_5190_3;
+extern cpuop_func op_5198_3;
+extern cpuop_func op_51a0_3;
+extern cpuop_func op_51a8_3;
+extern cpuop_func op_51b0_3;
+extern cpuop_func op_51b8_3;
+extern cpuop_func op_51b9_3;
+extern cpuop_func op_51c0_3;
+extern cpuop_func op_51c8_3;
+extern cpuop_func op_51d0_3;
+extern cpuop_func op_51d8_3;
+extern cpuop_func op_51e0_3;
+extern cpuop_func op_51e8_3;
+extern cpuop_func op_51f0_3;
+extern cpuop_func op_51f8_3;
+extern cpuop_func op_51f9_3;
+extern cpuop_func op_52c0_3;
+extern cpuop_func op_52c8_3;
+extern cpuop_func op_52d0_3;
+extern cpuop_func op_52d8_3;
+extern cpuop_func op_52e0_3;
+extern cpuop_func op_52e8_3;
+extern cpuop_func op_52f0_3;
+extern cpuop_func op_52f8_3;
+extern cpuop_func op_52f9_3;
+extern cpuop_func op_53c0_3;
+extern cpuop_func op_53c8_3;
+extern cpuop_func op_53d0_3;
+extern cpuop_func op_53d8_3;
+extern cpuop_func op_53e0_3;
+extern cpuop_func op_53e8_3;
+extern cpuop_func op_53f0_3;
+extern cpuop_func op_53f8_3;
+extern cpuop_func op_53f9_3;
+extern cpuop_func op_54c0_3;
+extern cpuop_func op_54c8_3;
+extern cpuop_func op_54d0_3;
+extern cpuop_func op_54d8_3;
+extern cpuop_func op_54e0_3;
+extern cpuop_func op_54e8_3;
+extern cpuop_func op_54f0_3;
+extern cpuop_func op_54f8_3;
+extern cpuop_func op_54f9_3;
+extern cpuop_func op_55c0_3;
+extern cpuop_func op_55c8_3;
+extern cpuop_func op_55d0_3;
+extern cpuop_func op_55d8_3;
+extern cpuop_func op_55e0_3;
+extern cpuop_func op_55e8_3;
+extern cpuop_func op_55f0_3;
+extern cpuop_func op_55f8_3;
+extern cpuop_func op_55f9_3;
+extern cpuop_func op_56c0_3;
+extern cpuop_func op_56c8_3;
+extern cpuop_func op_56d0_3;
+extern cpuop_func op_56d8_3;
+extern cpuop_func op_56e0_3;
+extern cpuop_func op_56e8_3;
+extern cpuop_func op_56f0_3;
+extern cpuop_func op_56f8_3;
+extern cpuop_func op_56f9_3;
+extern cpuop_func op_57c0_3;
+extern cpuop_func op_57c8_3;
+extern cpuop_func op_57d0_3;
+extern cpuop_func op_57d8_3;
+extern cpuop_func op_57e0_3;
+extern cpuop_func op_57e8_3;
+extern cpuop_func op_57f0_3;
+extern cpuop_func op_57f8_3;
+extern cpuop_func op_57f9_3;
+extern cpuop_func op_58c0_3;
+extern cpuop_func op_58c8_3;
+extern cpuop_func op_58d0_3;
+extern cpuop_func op_58d8_3;
+extern cpuop_func op_58e0_3;
+extern cpuop_func op_58e8_3;
+extern cpuop_func op_58f0_3;
+extern cpuop_func op_58f8_3;
+extern cpuop_func op_58f9_3;
+extern cpuop_func op_59c0_3;
+extern cpuop_func op_59c8_3;
+extern cpuop_func op_59d0_3;
+extern cpuop_func op_59d8_3;
+extern cpuop_func op_59e0_3;
+extern cpuop_func op_59e8_3;
+extern cpuop_func op_59f0_3;
+extern cpuop_func op_59f8_3;
+extern cpuop_func op_59f9_3;
+extern cpuop_func op_5ac0_3;
+extern cpuop_func op_5ac8_3;
+extern cpuop_func op_5ad0_3;
+extern cpuop_func op_5ad8_3;
+extern cpuop_func op_5ae0_3;
+extern cpuop_func op_5ae8_3;
+extern cpuop_func op_5af0_3;
+extern cpuop_func op_5af8_3;
+extern cpuop_func op_5af9_3;
+extern cpuop_func op_5bc0_3;
+extern cpuop_func op_5bc8_3;
+extern cpuop_func op_5bd0_3;
+extern cpuop_func op_5bd8_3;
+extern cpuop_func op_5be0_3;
+extern cpuop_func op_5be8_3;
+extern cpuop_func op_5bf0_3;
+extern cpuop_func op_5bf8_3;
+extern cpuop_func op_5bf9_3;
+extern cpuop_func op_5cc0_3;
+extern cpuop_func op_5cc8_3;
+extern cpuop_func op_5cd0_3;
+extern cpuop_func op_5cd8_3;
+extern cpuop_func op_5ce0_3;
+extern cpuop_func op_5ce8_3;
+extern cpuop_func op_5cf0_3;
+extern cpuop_func op_5cf8_3;
+extern cpuop_func op_5cf9_3;
+extern cpuop_func op_5dc0_3;
+extern cpuop_func op_5dc8_3;
+extern cpuop_func op_5dd0_3;
+extern cpuop_func op_5dd8_3;
+extern cpuop_func op_5de0_3;
+extern cpuop_func op_5de8_3;
+extern cpuop_func op_5df0_3;
+extern cpuop_func op_5df8_3;
+extern cpuop_func op_5df9_3;
+extern cpuop_func op_5ec0_3;
+extern cpuop_func op_5ec8_3;
+extern cpuop_func op_5ed0_3;
+extern cpuop_func op_5ed8_3;
+extern cpuop_func op_5ee0_3;
+extern cpuop_func op_5ee8_3;
+extern cpuop_func op_5ef0_3;
+extern cpuop_func op_5ef8_3;
+extern cpuop_func op_5ef9_3;
+extern cpuop_func op_5fc0_3;
+extern cpuop_func op_5fc8_3;
+extern cpuop_func op_5fd0_3;
+extern cpuop_func op_5fd8_3;
+extern cpuop_func op_5fe0_3;
+extern cpuop_func op_5fe8_3;
+extern cpuop_func op_5ff0_3;
+extern cpuop_func op_5ff8_3;
+extern cpuop_func op_5ff9_3;
+extern cpuop_func op_6000_3;
+extern cpuop_func op_6001_3;
+extern cpuop_func op_60ff_3;
+extern cpuop_func op_6100_3;
+extern cpuop_func op_6101_3;
+extern cpuop_func op_61ff_3;
+extern cpuop_func op_6200_3;
+extern cpuop_func op_6201_3;
+extern cpuop_func op_62ff_3;
+extern cpuop_func op_6300_3;
+extern cpuop_func op_6301_3;
+extern cpuop_func op_63ff_3;
+extern cpuop_func op_6400_3;
+extern cpuop_func op_6401_3;
+extern cpuop_func op_64ff_3;
+extern cpuop_func op_6500_3;
+extern cpuop_func op_6501_3;
+extern cpuop_func op_65ff_3;
+extern cpuop_func op_6600_3;
+extern cpuop_func op_6601_3;
+extern cpuop_func op_66ff_3;
+extern cpuop_func op_6700_3;
+extern cpuop_func op_6701_3;
+extern cpuop_func op_67ff_3;
+extern cpuop_func op_6800_3;
+extern cpuop_func op_6801_3;
+extern cpuop_func op_68ff_3;
+extern cpuop_func op_6900_3;
+extern cpuop_func op_6901_3;
+extern cpuop_func op_69ff_3;
+extern cpuop_func op_6a00_3;
+extern cpuop_func op_6a01_3;
+extern cpuop_func op_6aff_3;
+extern cpuop_func op_6b00_3;
+extern cpuop_func op_6b01_3;
+extern cpuop_func op_6bff_3;
+extern cpuop_func op_6c00_3;
+extern cpuop_func op_6c01_3;
+extern cpuop_func op_6cff_3;
+extern cpuop_func op_6d00_3;
+extern cpuop_func op_6d01_3;
+extern cpuop_func op_6dff_3;
+extern cpuop_func op_6e00_3;
+extern cpuop_func op_6e01_3;
+extern cpuop_func op_6eff_3;
+extern cpuop_func op_6f00_3;
+extern cpuop_func op_6f01_3;
+extern cpuop_func op_6fff_3;
+extern cpuop_func op_7000_3;
+extern cpuop_func op_8000_3;
+extern cpuop_func op_8010_3;
+extern cpuop_func op_8018_3;
+extern cpuop_func op_8020_3;
+extern cpuop_func op_8028_3;
+extern cpuop_func op_8030_3;
+extern cpuop_func op_8038_3;
+extern cpuop_func op_8039_3;
+extern cpuop_func op_803a_3;
+extern cpuop_func op_803b_3;
+extern cpuop_func op_803c_3;
+extern cpuop_func op_8040_3;
+extern cpuop_func op_8050_3;
+extern cpuop_func op_8058_3;
+extern cpuop_func op_8060_3;
+extern cpuop_func op_8068_3;
+extern cpuop_func op_8070_3;
+extern cpuop_func op_8078_3;
+extern cpuop_func op_8079_3;
+extern cpuop_func op_807a_3;
+extern cpuop_func op_807b_3;
+extern cpuop_func op_807c_3;
+extern cpuop_func op_8080_3;
+extern cpuop_func op_8090_3;
+extern cpuop_func op_8098_3;
+extern cpuop_func op_80a0_3;
+extern cpuop_func op_80a8_3;
+extern cpuop_func op_80b0_3;
+extern cpuop_func op_80b8_3;
+extern cpuop_func op_80b9_3;
+extern cpuop_func op_80ba_3;
+extern cpuop_func op_80bb_3;
+extern cpuop_func op_80bc_3;
+extern cpuop_func op_80c0_3;
+extern cpuop_func op_80d0_3;
+extern cpuop_func op_80d8_3;
+extern cpuop_func op_80e0_3;
+extern cpuop_func op_80e8_3;
+extern cpuop_func op_80f0_3;
+extern cpuop_func op_80f8_3;
+extern cpuop_func op_80f9_3;
+extern cpuop_func op_80fa_3;
+extern cpuop_func op_80fb_3;
+extern cpuop_func op_80fc_3;
+extern cpuop_func op_8100_3;
+extern cpuop_func op_8108_3;
+extern cpuop_func op_8110_3;
+extern cpuop_func op_8118_3;
+extern cpuop_func op_8120_3;
+extern cpuop_func op_8128_3;
+extern cpuop_func op_8130_3;
+extern cpuop_func op_8138_3;
+extern cpuop_func op_8139_3;
+extern cpuop_func op_8150_3;
+extern cpuop_func op_8158_3;
+extern cpuop_func op_8160_3;
+extern cpuop_func op_8168_3;
+extern cpuop_func op_8170_3;
+extern cpuop_func op_8178_3;
+extern cpuop_func op_8179_3;
+extern cpuop_func op_8190_3;
+extern cpuop_func op_8198_3;
+extern cpuop_func op_81a0_3;
+extern cpuop_func op_81a8_3;
+extern cpuop_func op_81b0_3;
+extern cpuop_func op_81b8_3;
+extern cpuop_func op_81b9_3;
+extern cpuop_func op_81c0_3;
+extern cpuop_func op_81d0_3;
+extern cpuop_func op_81d8_3;
+extern cpuop_func op_81e0_3;
+extern cpuop_func op_81e8_3;
+extern cpuop_func op_81f0_3;
+extern cpuop_func op_81f8_3;
+extern cpuop_func op_81f9_3;
+extern cpuop_func op_81fa_3;
+extern cpuop_func op_81fb_3;
+extern cpuop_func op_81fc_3;
+extern cpuop_func op_9000_3;
+extern cpuop_func op_9010_3;
+extern cpuop_func op_9018_3;
+extern cpuop_func op_9020_3;
+extern cpuop_func op_9028_3;
+extern cpuop_func op_9030_3;
+extern cpuop_func op_9038_3;
+extern cpuop_func op_9039_3;
+extern cpuop_func op_903a_3;
+extern cpuop_func op_903b_3;
+extern cpuop_func op_903c_3;
+extern cpuop_func op_9040_3;
+extern cpuop_func op_9048_3;
+extern cpuop_func op_9050_3;
+extern cpuop_func op_9058_3;
+extern cpuop_func op_9060_3;
+extern cpuop_func op_9068_3;
+extern cpuop_func op_9070_3;
+extern cpuop_func op_9078_3;
+extern cpuop_func op_9079_3;
+extern cpuop_func op_907a_3;
+extern cpuop_func op_907b_3;
+extern cpuop_func op_907c_3;
+extern cpuop_func op_9080_3;
+extern cpuop_func op_9088_3;
+extern cpuop_func op_9090_3;
+extern cpuop_func op_9098_3;
+extern cpuop_func op_90a0_3;
+extern cpuop_func op_90a8_3;
+extern cpuop_func op_90b0_3;
+extern cpuop_func op_90b8_3;
+extern cpuop_func op_90b9_3;
+extern cpuop_func op_90ba_3;
+extern cpuop_func op_90bb_3;
+extern cpuop_func op_90bc_3;
+extern cpuop_func op_90c0_3;
+extern cpuop_func op_90c8_3;
+extern cpuop_func op_90d0_3;
+extern cpuop_func op_90d8_3;
+extern cpuop_func op_90e0_3;
+extern cpuop_func op_90e8_3;
+extern cpuop_func op_90f0_3;
+extern cpuop_func op_90f8_3;
+extern cpuop_func op_90f9_3;
+extern cpuop_func op_90fa_3;
+extern cpuop_func op_90fb_3;
+extern cpuop_func op_90fc_3;
+extern cpuop_func op_9100_3;
+extern cpuop_func op_9108_3;
+extern cpuop_func op_9110_3;
+extern cpuop_func op_9118_3;
+extern cpuop_func op_9120_3;
+extern cpuop_func op_9128_3;
+extern cpuop_func op_9130_3;
+extern cpuop_func op_9138_3;
+extern cpuop_func op_9139_3;
+extern cpuop_func op_9140_3;
+extern cpuop_func op_9148_3;
+extern cpuop_func op_9150_3;
+extern cpuop_func op_9158_3;
+extern cpuop_func op_9160_3;
+extern cpuop_func op_9168_3;
+extern cpuop_func op_9170_3;
+extern cpuop_func op_9178_3;
+extern cpuop_func op_9179_3;
+extern cpuop_func op_9180_3;
+extern cpuop_func op_9188_3;
+extern cpuop_func op_9190_3;
+extern cpuop_func op_9198_3;
+extern cpuop_func op_91a0_3;
+extern cpuop_func op_91a8_3;
+extern cpuop_func op_91b0_3;
+extern cpuop_func op_91b8_3;
+extern cpuop_func op_91b9_3;
+extern cpuop_func op_91c0_3;
+extern cpuop_func op_91c8_3;
+extern cpuop_func op_91d0_3;
+extern cpuop_func op_91d8_3;
+extern cpuop_func op_91e0_3;
+extern cpuop_func op_91e8_3;
+extern cpuop_func op_91f0_3;
+extern cpuop_func op_91f8_3;
+extern cpuop_func op_91f9_3;
+extern cpuop_func op_91fa_3;
+extern cpuop_func op_91fb_3;
+extern cpuop_func op_91fc_3;
+extern cpuop_func op_b000_3;
+extern cpuop_func op_b010_3;
+extern cpuop_func op_b018_3;
+extern cpuop_func op_b020_3;
+extern cpuop_func op_b028_3;
+extern cpuop_func op_b030_3;
+extern cpuop_func op_b038_3;
+extern cpuop_func op_b039_3;
+extern cpuop_func op_b03a_3;
+extern cpuop_func op_b03b_3;
+extern cpuop_func op_b03c_3;
+extern cpuop_func op_b040_3;
+extern cpuop_func op_b048_3;
+extern cpuop_func op_b050_3;
+extern cpuop_func op_b058_3;
+extern cpuop_func op_b060_3;
+extern cpuop_func op_b068_3;
+extern cpuop_func op_b070_3;
+extern cpuop_func op_b078_3;
+extern cpuop_func op_b079_3;
+extern cpuop_func op_b07a_3;
+extern cpuop_func op_b07b_3;
+extern cpuop_func op_b07c_3;
+extern cpuop_func op_b080_3;
+extern cpuop_func op_b088_3;
+extern cpuop_func op_b090_3;
+extern cpuop_func op_b098_3;
+extern cpuop_func op_b0a0_3;
+extern cpuop_func op_b0a8_3;
+extern cpuop_func op_b0b0_3;
+extern cpuop_func op_b0b8_3;
+extern cpuop_func op_b0b9_3;
+extern cpuop_func op_b0ba_3;
+extern cpuop_func op_b0bb_3;
+extern cpuop_func op_b0bc_3;
+extern cpuop_func op_b0c0_3;
+extern cpuop_func op_b0c8_3;
+extern cpuop_func op_b0d0_3;
+extern cpuop_func op_b0d8_3;
+extern cpuop_func op_b0e0_3;
+extern cpuop_func op_b0e8_3;
+extern cpuop_func op_b0f0_3;
+extern cpuop_func op_b0f8_3;
+extern cpuop_func op_b0f9_3;
+extern cpuop_func op_b0fa_3;
+extern cpuop_func op_b0fb_3;
+extern cpuop_func op_b0fc_3;
+extern cpuop_func op_b100_3;
+extern cpuop_func op_b108_3;
+extern cpuop_func op_b110_3;
+extern cpuop_func op_b118_3;
+extern cpuop_func op_b120_3;
+extern cpuop_func op_b128_3;
+extern cpuop_func op_b130_3;
+extern cpuop_func op_b138_3;
+extern cpuop_func op_b139_3;
+extern cpuop_func op_b140_3;
+extern cpuop_func op_b148_3;
+extern cpuop_func op_b150_3;
+extern cpuop_func op_b158_3;
+extern cpuop_func op_b160_3;
+extern cpuop_func op_b168_3;
+extern cpuop_func op_b170_3;
+extern cpuop_func op_b178_3;
+extern cpuop_func op_b179_3;
+extern cpuop_func op_b180_3;
+extern cpuop_func op_b188_3;
+extern cpuop_func op_b190_3;
+extern cpuop_func op_b198_3;
+extern cpuop_func op_b1a0_3;
+extern cpuop_func op_b1a8_3;
+extern cpuop_func op_b1b0_3;
+extern cpuop_func op_b1b8_3;
+extern cpuop_func op_b1b9_3;
+extern cpuop_func op_b1c0_3;
+extern cpuop_func op_b1c8_3;
+extern cpuop_func op_b1d0_3;
+extern cpuop_func op_b1d8_3;
+extern cpuop_func op_b1e0_3;
+extern cpuop_func op_b1e8_3;
+extern cpuop_func op_b1f0_3;
+extern cpuop_func op_b1f8_3;
+extern cpuop_func op_b1f9_3;
+extern cpuop_func op_b1fa_3;
+extern cpuop_func op_b1fb_3;
+extern cpuop_func op_b1fc_3;
+extern cpuop_func op_c000_3;
+extern cpuop_func op_c010_3;
+extern cpuop_func op_c018_3;
+extern cpuop_func op_c020_3;
+extern cpuop_func op_c028_3;
+extern cpuop_func op_c030_3;
+extern cpuop_func op_c038_3;
+extern cpuop_func op_c039_3;
+extern cpuop_func op_c03a_3;
+extern cpuop_func op_c03b_3;
+extern cpuop_func op_c03c_3;
+extern cpuop_func op_c040_3;
+extern cpuop_func op_c050_3;
+extern cpuop_func op_c058_3;
+extern cpuop_func op_c060_3;
+extern cpuop_func op_c068_3;
+extern cpuop_func op_c070_3;
+extern cpuop_func op_c078_3;
+extern cpuop_func op_c079_3;
+extern cpuop_func op_c07a_3;
+extern cpuop_func op_c07b_3;
+extern cpuop_func op_c07c_3;
+extern cpuop_func op_c080_3;
+extern cpuop_func op_c090_3;
+extern cpuop_func op_c098_3;
+extern cpuop_func op_c0a0_3;
+extern cpuop_func op_c0a8_3;
+extern cpuop_func op_c0b0_3;
+extern cpuop_func op_c0b8_3;
+extern cpuop_func op_c0b9_3;
+extern cpuop_func op_c0ba_3;
+extern cpuop_func op_c0bb_3;
+extern cpuop_func op_c0bc_3;
+extern cpuop_func op_c0c0_3;
+extern cpuop_func op_c0d0_3;
+extern cpuop_func op_c0d8_3;
+extern cpuop_func op_c0e0_3;
+extern cpuop_func op_c0e8_3;
+extern cpuop_func op_c0f0_3;
+extern cpuop_func op_c0f8_3;
+extern cpuop_func op_c0f9_3;
+extern cpuop_func op_c0fa_3;
+extern cpuop_func op_c0fb_3;
+extern cpuop_func op_c0fc_3;
+extern cpuop_func op_c100_3;
+extern cpuop_func op_c108_3;
+extern cpuop_func op_c110_3;
+extern cpuop_func op_c118_3;
+extern cpuop_func op_c120_3;
+extern cpuop_func op_c128_3;
+extern cpuop_func op_c130_3;
+extern cpuop_func op_c138_3;
+extern cpuop_func op_c139_3;
+extern cpuop_func op_c140_3;
+extern cpuop_func op_c148_3;
+extern cpuop_func op_c150_3;
+extern cpuop_func op_c158_3;
+extern cpuop_func op_c160_3;
+extern cpuop_func op_c168_3;
+extern cpuop_func op_c170_3;
+extern cpuop_func op_c178_3;
+extern cpuop_func op_c179_3;
+extern cpuop_func op_c188_3;
+extern cpuop_func op_c190_3;
+extern cpuop_func op_c198_3;
+extern cpuop_func op_c1a0_3;
+extern cpuop_func op_c1a8_3;
+extern cpuop_func op_c1b0_3;
+extern cpuop_func op_c1b8_3;
+extern cpuop_func op_c1b9_3;
+extern cpuop_func op_c1c0_3;
+extern cpuop_func op_c1d0_3;
+extern cpuop_func op_c1d8_3;
+extern cpuop_func op_c1e0_3;
+extern cpuop_func op_c1e8_3;
+extern cpuop_func op_c1f0_3;
+extern cpuop_func op_c1f8_3;
+extern cpuop_func op_c1f9_3;
+extern cpuop_func op_c1fa_3;
+extern cpuop_func op_c1fb_3;
+extern cpuop_func op_c1fc_3;
+extern cpuop_func op_d000_3;
+extern cpuop_func op_d010_3;
+extern cpuop_func op_d018_3;
+extern cpuop_func op_d020_3;
+extern cpuop_func op_d028_3;
+extern cpuop_func op_d030_3;
+extern cpuop_func op_d038_3;
+extern cpuop_func op_d039_3;
+extern cpuop_func op_d03a_3;
+extern cpuop_func op_d03b_3;
+extern cpuop_func op_d03c_3;
+extern cpuop_func op_d040_3;
+extern cpuop_func op_d048_3;
+extern cpuop_func op_d050_3;
+extern cpuop_func op_d058_3;
+extern cpuop_func op_d060_3;
+extern cpuop_func op_d068_3;
+extern cpuop_func op_d070_3;
+extern cpuop_func op_d078_3;
+extern cpuop_func op_d079_3;
+extern cpuop_func op_d07a_3;
+extern cpuop_func op_d07b_3;
+extern cpuop_func op_d07c_3;
+extern cpuop_func op_d080_3;
+extern cpuop_func op_d088_3;
+extern cpuop_func op_d090_3;
+extern cpuop_func op_d098_3;
+extern cpuop_func op_d0a0_3;
+extern cpuop_func op_d0a8_3;
+extern cpuop_func op_d0b0_3;
+extern cpuop_func op_d0b8_3;
+extern cpuop_func op_d0b9_3;
+extern cpuop_func op_d0ba_3;
+extern cpuop_func op_d0bb_3;
+extern cpuop_func op_d0bc_3;
+extern cpuop_func op_d0c0_3;
+extern cpuop_func op_d0c8_3;
+extern cpuop_func op_d0d0_3;
+extern cpuop_func op_d0d8_3;
+extern cpuop_func op_d0e0_3;
+extern cpuop_func op_d0e8_3;
+extern cpuop_func op_d0f0_3;
+extern cpuop_func op_d0f8_3;
+extern cpuop_func op_d0f9_3;
+extern cpuop_func op_d0fa_3;
+extern cpuop_func op_d0fb_3;
+extern cpuop_func op_d0fc_3;
+extern cpuop_func op_d100_3;
+extern cpuop_func op_d108_3;
+extern cpuop_func op_d110_3;
+extern cpuop_func op_d118_3;
+extern cpuop_func op_d120_3;
+extern cpuop_func op_d128_3;
+extern cpuop_func op_d130_3;
+extern cpuop_func op_d138_3;
+extern cpuop_func op_d139_3;
+extern cpuop_func op_d140_3;
+extern cpuop_func op_d148_3;
+extern cpuop_func op_d150_3;
+extern cpuop_func op_d158_3;
+extern cpuop_func op_d160_3;
+extern cpuop_func op_d168_3;
+extern cpuop_func op_d170_3;
+extern cpuop_func op_d178_3;
+extern cpuop_func op_d179_3;
+extern cpuop_func op_d180_3;
+extern cpuop_func op_d188_3;
+extern cpuop_func op_d190_3;
+extern cpuop_func op_d198_3;
+extern cpuop_func op_d1a0_3;
+extern cpuop_func op_d1a8_3;
+extern cpuop_func op_d1b0_3;
+extern cpuop_func op_d1b8_3;
+extern cpuop_func op_d1b9_3;
+extern cpuop_func op_d1c0_3;
+extern cpuop_func op_d1c8_3;
+extern cpuop_func op_d1d0_3;
+extern cpuop_func op_d1d8_3;
+extern cpuop_func op_d1e0_3;
+extern cpuop_func op_d1e8_3;
+extern cpuop_func op_d1f0_3;
+extern cpuop_func op_d1f8_3;
+extern cpuop_func op_d1f9_3;
+extern cpuop_func op_d1fa_3;
+extern cpuop_func op_d1fb_3;
+extern cpuop_func op_d1fc_3;
+extern cpuop_func op_e000_3;
+extern cpuop_func op_e008_3;
+extern cpuop_func op_e010_3;
+extern cpuop_func op_e018_3;
+extern cpuop_func op_e020_3;
+extern cpuop_func op_e028_3;
+extern cpuop_func op_e030_3;
+extern cpuop_func op_e038_3;
+extern cpuop_func op_e040_3;
+extern cpuop_func op_e048_3;
+extern cpuop_func op_e050_3;
+extern cpuop_func op_e058_3;
+extern cpuop_func op_e060_3;
+extern cpuop_func op_e068_3;
+extern cpuop_func op_e070_3;
+extern cpuop_func op_e078_3;
+extern cpuop_func op_e080_3;
+extern cpuop_func op_e088_3;
+extern cpuop_func op_e090_3;
+extern cpuop_func op_e098_3;
+extern cpuop_func op_e0a0_3;
+extern cpuop_func op_e0a8_3;
+extern cpuop_func op_e0b0_3;
+extern cpuop_func op_e0b8_3;
+extern cpuop_func op_e0d0_3;
+extern cpuop_func op_e0d8_3;
+extern cpuop_func op_e0e0_3;
+extern cpuop_func op_e0e8_3;
+extern cpuop_func op_e0f0_3;
+extern cpuop_func op_e0f8_3;
+extern cpuop_func op_e0f9_3;
+extern cpuop_func op_e100_3;
+extern cpuop_func op_e108_3;
+extern cpuop_func op_e110_3;
+extern cpuop_func op_e118_3;
+extern cpuop_func op_e120_3;
+extern cpuop_func op_e128_3;
+extern cpuop_func op_e130_3;
+extern cpuop_func op_e138_3;
+extern cpuop_func op_e140_3;
+extern cpuop_func op_e148_3;
+extern cpuop_func op_e150_3;
+extern cpuop_func op_e158_3;
+extern cpuop_func op_e160_3;
+extern cpuop_func op_e168_3;
+extern cpuop_func op_e170_3;
+extern cpuop_func op_e178_3;
+extern cpuop_func op_e180_3;
+extern cpuop_func op_e188_3;
+extern cpuop_func op_e190_3;
+extern cpuop_func op_e198_3;
+extern cpuop_func op_e1a0_3;
+extern cpuop_func op_e1a8_3;
+extern cpuop_func op_e1b0_3;
+extern cpuop_func op_e1b8_3;
+extern cpuop_func op_e1d0_3;
+extern cpuop_func op_e1d8_3;
+extern cpuop_func op_e1e0_3;
+extern cpuop_func op_e1e8_3;
+extern cpuop_func op_e1f0_3;
+extern cpuop_func op_e1f8_3;
+extern cpuop_func op_e1f9_3;
+extern cpuop_func op_e2d0_3;
+extern cpuop_func op_e2d8_3;
+extern cpuop_func op_e2e0_3;
+extern cpuop_func op_e2e8_3;
+extern cpuop_func op_e2f0_3;
+extern cpuop_func op_e2f8_3;
+extern cpuop_func op_e2f9_3;
+extern cpuop_func op_e3d0_3;
+extern cpuop_func op_e3d8_3;
+extern cpuop_func op_e3e0_3;
+extern cpuop_func op_e3e8_3;
+extern cpuop_func op_e3f0_3;
+extern cpuop_func op_e3f8_3;
+extern cpuop_func op_e3f9_3;
+extern cpuop_func op_e4d0_3;
+extern cpuop_func op_e4d8_3;
+extern cpuop_func op_e4e0_3;
+extern cpuop_func op_e4e8_3;
+extern cpuop_func op_e4f0_3;
+extern cpuop_func op_e4f8_3;
+extern cpuop_func op_e4f9_3;
+extern cpuop_func op_e5d0_3;
+extern cpuop_func op_e5d8_3;
+extern cpuop_func op_e5e0_3;
+extern cpuop_func op_e5e8_3;
+extern cpuop_func op_e5f0_3;
+extern cpuop_func op_e5f8_3;
+extern cpuop_func op_e5f9_3;
+extern cpuop_func op_e6d0_3;
+extern cpuop_func op_e6d8_3;
+extern cpuop_func op_e6e0_3;
+extern cpuop_func op_e6e8_3;
+extern cpuop_func op_e6f0_3;
+extern cpuop_func op_e6f8_3;
+extern cpuop_func op_e6f9_3;
+extern cpuop_func op_e7d0_3;
+extern cpuop_func op_e7d8_3;
+extern cpuop_func op_e7e0_3;
+extern cpuop_func op_e7e8_3;
+extern cpuop_func op_e7f0_3;
+extern cpuop_func op_e7f8_3;
+extern cpuop_func op_e7f9_3;
diff --git a/SrcShared/UAE/custom.h b/SrcShared/UAE/custom.h
new file mode 100644
index 0000000..7b5241b
--- /dev/null
+++ b/SrcShared/UAE/custom.h
@@ -0,0 +1,30 @@
+ /*
+ * UAE - The Un*x Amiga Emulator
+ *
+ * custom chip support
+ *
+ * (c) 1995 Bernd Schmidt
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern void customreset (void);
+
+#define SPCFLAG_STOP 2
+#define SPCFLAG_DISK 4
+#define SPCFLAG_INT 8
+#define SPCFLAG_BRK 16
+#define SPCFLAG_EXTRA_CYCLES 32
+#define SPCFLAG_TRACE 64
+#define SPCFLAG_DOTRACE 128
+#define SPCFLAG_DOINT 256
+#define SPCFLAG_BLTNASTY 512
+#define SPCFLAG_EXEC 1024
+#define SPCFLAG_MODE_CHANGE 8192
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/SrcShared/UAE/gencpu.c b/SrcShared/UAE/gencpu.c
new file mode 100644
index 0000000..b7004a4
--- /dev/null
+++ b/SrcShared/UAE/gencpu.c
@@ -0,0 +1,3346 @@
+/*
+ * UAE - The Un*x Amiga Emulator
+ *
+ * MC68000 emulation generator
+ *
+ * This is a fairly stupid program that generates a lot of case labels that
+ * can be #included in a switch statement.
+ * As an alternative, it can generate functions that handle specific
+ * MC68000 instructions, plus a prototype header file and a function pointer
+ * array to look up the function for an opcode.
+ * Error checking is bad, an illegal table68k file will cause the program to
+ * call abort().
+ * The generated code is sometimes sub-optimal, an optimizing compiler should
+ * take care of this.
+ *
+ * Copyright 1995, 1996 Bernd Schmidt
+ */
+
+#include "sysconfig.h"
+#include "sysdeps.h"
+#include <ctype.h>
+
+#include "config.h"
+#include "options.h"
+#include "readcpu.h"
+
+#define BOOL_TYPE "int"
+
+static FILE *headerfile;
+static FILE *stblfile;
+
+static int using_prefetch;
+static int using_exception_3;
+static int cpu_level;
+
+#define PALM_PERF 1 // Changes made to profile Palm applications
+#define PALM_STACK 1 // Changes made to track stack overflows
+#define PALM_MIN 1 // Changes made to minimize size of cpuemu.c
+#define PALM_CODEGEN_BUG 1 // Changes made to workaround code generation bugs
+#define PALM_HEADERS 1 // Changes made to accounts for Poser's header structures
+#define PALM_BUG_FIX 1 // Changes made to fix UAE bugs.
+#define PALM_SYSTEM_CALL 1 // Changes made to track system calls
+
+#if PALM_STACK
+int adda_hack = 0;
+int suba_hack = 0;
+int lea_hack = 0;
+#endif // PALM_STACK
+
+#if PALM_PERF
+static int extraCycles; // number of clock cycles to do reads+writes+op
+static int readCycles; // number of read cycles to do something
+static int writeCycles; // number of write cycles to do something
+
+static int *opcode_last_extra;
+static int *opcode_last_read;
+static int *opcode_last_write;
+
+//#define PERF_COMMENT(x) printf("\t// perf" x)
+#define PERF_COMMENT(x) ((void*)0)
+#endif // PALM_PERF
+
+/* For the current opcode, the next lower level that will have different code.
+ * Initialized to -1 for each opcode. If it remains unchanged, indicates we
+ * are done with that opcode. */
+static int next_cpu_level;
+
+void write_log (const char *s, ...)
+{
+ fprintf (stderr, "%s", s);
+}
+
+static int *opcode_map;
+static int *opcode_next_clev;
+static int *opcode_last_postfix;
+static unsigned long *counts;
+
+static void read_counts (void)
+{
+ FILE *file;
+ unsigned long opcode, count, total;
+ char name[20];
+ int nr = 0;
+ memset (counts, 0, 65536 * sizeof *counts);
+
+ file = fopen ("frequent.68k", "r");
+ if (file) {
+ fscanf (file, "Total: %lu\n", &total);
+ while (fscanf (file, "%lx: %lu %s\n", &opcode, &count, name) == 3) {
+ opcode_next_clev[nr] = 3;
+ opcode_last_postfix[nr] = -1;
+ opcode_map[nr++] = opcode;
+ counts[opcode] = count;
+ }
+ fclose (file);
+ }
+ if (nr == nr_cpuop_funcs)
+ return;
+ for (opcode = 0; opcode < 0x10000; opcode++) {
+ if (table68k[opcode].handler == -1 && table68k[opcode].mnemo != i_ILLG
+ && counts[opcode] == 0)
+ {
+ opcode_next_clev[nr] = 3;
+ opcode_last_postfix[nr] = -1;
+ opcode_map[nr++] = opcode;
+ counts[opcode] = count;
+ }
+ }
+ if (nr != nr_cpuop_funcs)
+ abort ();
+}
+
+static char endlabelstr[80];
+static int endlabelno = 0;
+static int need_endlabel;
+
+static int n_braces = 0;
+static int m68k_pc_offset = 0;
+static int insn_n_cycles;
+
+static void start_brace (void)
+{
+ n_braces++;
+ printf ("{");
+}
+
+static void close_brace (void)
+{
+ assert (n_braces > 0);
+ n_braces--;
+ printf ("}");
+}
+
+static void finish_braces (void)
+{
+ while (n_braces > 0)
+ close_brace ();
+}
+
+static void pop_braces (int to)
+{
+ while (n_braces > to)
+ close_brace ();
+}
+
+static int bit_size (int size)
+{
+ switch (size) {
+ case sz_byte: return 8;
+ case sz_word: return 16;
+ case sz_long: return 32;
+ default: abort ();
+ }
+ return 0;
+}
+
+static const char *bit_mask (int size)
+{
+ switch (size) {
+ case sz_byte: return "0xff";
+ case sz_word: return "0xffff";
+ case sz_long: return "0xffffffff";
+ default: abort ();
+ }
+ return 0;
+}
+
+static const char *gen_nextilong (void)
+{
+ static char buffer[80];
+ int r = m68k_pc_offset;
+ m68k_pc_offset += 4;
+
+ insn_n_cycles += 4;
+
+ if (using_prefetch)
+ sprintf (buffer, "get_ilong_prefetch(%d)", r);
+ else
+ sprintf (buffer, "get_ilong(%d)", r);
+ return buffer;
+}
+
+static const char *gen_nextiword (void)
+{
+ static char buffer[80];
+ int r = m68k_pc_offset;
+ m68k_pc_offset += 2;
+
+ insn_n_cycles += 2;
+
+ if (using_prefetch)
+ sprintf (buffer, "get_iword_prefetch(%d)", r);
+ else
+ sprintf (buffer, "get_iword(%d)", r);
+ return buffer;
+}
+
+static const char *gen_nextibyte (void)
+{
+ static char buffer[80];
+ int r = m68k_pc_offset;
+ m68k_pc_offset += 2;
+
+ insn_n_cycles += 2;
+
+ if (using_prefetch)
+ sprintf (buffer, "get_ibyte_prefetch(%d)", r);
+ else
+ sprintf (buffer, "get_ibyte(%d)", r);
+ return buffer;
+}
+
+static void fill_prefetch_0 (void)
+{
+ if (using_prefetch)
+ printf ("fill_prefetch_0 ();\n");
+}
+
+static void fill_prefetch_2 (void)
+{
+ if (using_prefetch)
+ printf ("fill_prefetch_2 ();\n");
+}
+
+static void sync_m68k_pc (void)
+{
+ if (m68k_pc_offset == 0)
+ return;
+ printf ("m68k_incpc(%d);\n", m68k_pc_offset);
+ switch (m68k_pc_offset) {
+ case 0:
+ /*fprintf (stderr, "refilling prefetch at 0\n"); */
+ break;
+ case 2:
+ fill_prefetch_2 ();
+ break;
+ default:
+ fill_prefetch_0 ();
+ break;
+ }
+ m68k_pc_offset = 0;
+}
+
+/* getv == 1: fetch data; getv != 0: check for odd address. If movem != 0,
+ * the calling routine handles Apdi and Aipi modes. */
+static void genamode (amodes mode, char *reg, wordsizes size, char *name, int getv, int movem)
+{
+ start_brace ();
+ switch (mode) {
+ case Dreg:
+ if (movem)
+ abort ();
+ if (getv == 1)
+#if PALM_PERF
+ {
+#endif // PALM_PERF
+ switch (size) {
+ case sz_byte:
+#if defined(AMIGA) && !defined(WARPUP)
+ /* sam: I don't know why gcc.2.7.2.1 produces a code worse */
+ /* if it is not done like that: */
+ printf ("\tuae_s8 %s = ((uae_u8*)&m68k_dreg(regs, %s))[3];\n", name, reg);
+#else
+ printf ("\tuae_s8 %s = m68k_dreg(regs, %s);\n", name, reg);
+#endif
+ break;
+ case sz_word:
+#if defined(AMIGA) && !defined(WARPUP)
+ printf ("\tuae_s16 %s = ((uae_s16*)&m68k_dreg(regs, %s))[1];\n", name, reg);
+#else
+ printf ("\tuae_s16 %s = m68k_dreg(regs, %s);\n", name, reg);
+#endif
+ break;
+ case sz_long:
+ printf ("\tuae_s32 %s = m68k_dreg(regs, %s);\n", name, reg);
+ break;
+ default:
+ abort ();
+ }
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 0; PERF_COMMENT("read: Dn 0(0/0)\n");}
+ }
+#endif // PALM_PERF
+ return;
+ case Areg:
+ if (movem)
+ abort ();
+ if (getv == 1)
+#if PALM_PERF
+ {
+#endif // PALM_PERF
+ switch (size) {
+ case sz_word:
+ printf ("\tuae_s16 %s = m68k_areg(regs, %s);\n", name, reg);
+ break;
+ case sz_long:
+ printf ("\tuae_s32 %s = m68k_areg(regs, %s);\n", name, reg);
+ break;
+ default:
+ abort ();
+ }
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 0; PERF_COMMENT("read: An 0(0/0)\n");}
+ }
+#endif // PALM_PERF
+ return;
+ case Aind:
+ printf ("\tuaecptr %sa = m68k_areg(regs, %s);\n", name, reg);
+ break;
+ case Aipi:
+ printf ("\tuaecptr %sa = m68k_areg(regs, %s);\n", name, reg);
+ break;
+ case Apdi:
+#if PALM_PERF
+ if (getv) {extraCycles += 2; readCycles += 0; PERF_COMMENT("read: -(An) x 6(1/0)\n");}
+#endif // PALM_PERF
+ switch (size) {
+ case sz_byte:
+ if (movem)
+ printf ("\tuaecptr %sa = m68k_areg(regs, %s);\n", name, reg);
+ else
+ printf ("\tuaecptr %sa = m68k_areg(regs, %s) - areg_byteinc[%s];\n", name, reg, reg);
+ break;
+ case sz_word:
+ printf ("\tuaecptr %sa = m68k_areg(regs, %s) - %d;\n", name, reg, movem ? 0 : 2);
+ break;
+ case sz_long:
+ printf ("\tuaecptr %sa = m68k_areg(regs, %s) - %d;\n", name, reg, movem ? 0 : 4);
+ break;
+ default:
+ abort ();
+ }
+ break;
+ case Ad16:
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; PERF_COMMENT("eff addr: (d16, An) 4(1/0)\n");}
+#endif // PALM_PERF
+ printf ("\tuaecptr %sa = m68k_areg(regs, %s) + (uae_s32)(uae_s16)%s;\n", name, reg, gen_nextiword ());
+ break;
+ case Ad8r:
+ if (cpu_level > 1) {
+ if (next_cpu_level < 1)
+ next_cpu_level = 1;
+ sync_m68k_pc ();
+ start_brace ();
+ printf ("\tuaecptr %sa = get_disp_ea_020(m68k_areg(regs, %s), next_iword());\n", name, reg);
+ } else
+#if PALM_PERF
+ {
+#endif // PALM_PERF
+ printf ("\tuaecptr %sa = get_disp_ea_000(m68k_areg(regs, %s), %s);\n", name, reg, gen_nextiword ());
+
+#if PALM_PERF
+ {extraCycles += 2; readCycles += 1; PERF_COMMENT("eff addr: (d8, An, Xn) 6(1/0)\n");}
+ }
+#endif // PALM_PERF
+ break;
+ case PC16:
+ printf ("\tuaecptr %sa = m68k_getpc () + %d;\n", name, m68k_pc_offset);
+ printf ("\t%sa += (uae_s32)(uae_s16)%s;\n", name, gen_nextiword ());
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; PERF_COMMENT("eff addr: (d16, PC) 4(1/0)\n");}
+#endif // PALM_PERF
+ break;
+ case PC8r:
+ if (cpu_level > 1) {
+ if (next_cpu_level < 1)
+ next_cpu_level = 1;
+ sync_m68k_pc ();
+ start_brace ();
+ printf ("\tuaecptr tmppc = m68k_getpc();\n");
+ printf ("\tuaecptr %sa = get_disp_ea_020(tmppc, next_iword());\n", name);
+ } else {
+ printf ("\tuaecptr tmppc = m68k_getpc() + %d;\n", m68k_pc_offset);
+ printf ("\tuaecptr %sa = get_disp_ea_000(tmppc, %s);\n", name, gen_nextiword ());
+#if PALM_PERF
+ {extraCycles += 2; readCycles += 1; PERF_COMMENT("eff addr: (d8, PC, Xn) B 6(1/0)\n");}
+#endif // PALM_PERF
+ }
+
+ break;
+ case absw:
+ printf ("\tuaecptr %sa = (uae_s32)(uae_s16)%s;\n", name, gen_nextiword ());
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; PERF_COMMENT(" eff addr: (xxx).W 4(1/0)\n");}
+#endif // PALM_PERF
+ break;
+ case absl:
+ printf ("\tuaecptr %sa = %s;\n", name, gen_nextilong ());
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 2; PERF_COMMENT(" eff addr: (xxx).L 8(2/0)\n");}
+#endif // PALM_PERF
+ break;
+ case imm:
+ if (getv != 1)
+ abort ();
+ switch (size) {
+ case sz_byte:
+ printf ("\tuae_s8 %s = %s;\n", name, gen_nextibyte ());
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; PERF_COMMENT("read: #<data> B 4(1/0)\n");}
+#endif // PALM_PERF
+ break;
+ case sz_word:
+ printf ("\tuae_s16 %s = %s;\n", name, gen_nextiword ());
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; PERF_COMMENT("read: #<data> W 4(1/0)\n");}
+#endif // PALM_PERF
+ break;
+ case sz_long:
+ printf ("\tuae_s32 %s = %s;\n", name, gen_nextilong ());
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 2; PERF_COMMENT("read: #<data> L 8(2/0)\n");}
+#endif // PALM_PERF
+ break;
+ default:
+ abort ();
+ }
+ return;
+ case imm0:
+ if (getv != 1)
+ abort ();
+ printf ("\tuae_s8 %s = %s;\n", name, gen_nextibyte ());
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; PERF_COMMENT("read: imm0 #<data> B 4(1/0)\n");}
+#endif // PALM_PERF
+ return;
+ case imm1:
+ if (getv != 1)
+ abort ();
+ printf ("\tuae_s16 %s = %s;\n", name, gen_nextiword ());
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; PERF_COMMENT("read: imm1 #<data> W 4(1/0)\n");}
+#endif // PALM_PERF
+ return;
+ case imm2:
+ if (getv != 1)
+ abort ();
+ printf ("\tuae_s32 %s = %s;\n", name, gen_nextilong ());
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 2; PERF_COMMENT("read: imm2 #<data> L 8(2/0)\n");}
+#endif // PALM_PERF
+ return;
+ case immi:
+ if (getv != 1)
+ abort ();
+ printf ("\tuae_u32 %s = %s;\n", name, reg);
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 0; PERF_COMMENT("read: immi #<data> L 0(0/0)\n");}
+#endif // PALM_PERF
+ return;
+ default:
+ abort ();
+ }
+
+ /* We get here for all non-reg non-immediate addressing modes to
+ * actually fetch the value. */
+
+ if (using_exception_3 && getv != 0 && size != sz_byte) {
+ printf ("\tif ((%sa & 1) != 0) {\n", name);
+ printf ("\t\tlast_fault_for_exception_3 = %sa;\n", name);
+ printf ("\t\tlast_op_for_exception_3 = opcode;\n");
+ printf ("\t\tlast_addr_for_exception_3 = m68k_getpc() + %d;\n", m68k_pc_offset);
+ printf ("\t\tException(3, 0);\n");
+ printf ("\t\tgoto %s;\n", endlabelstr);
+ printf ("\t}\n");
+ need_endlabel = 1;
+ start_brace ();
+ }
+
+ if (getv == 1) {
+#if PALM_PERF
+ switch(size)
+ {
+ case sz_byte:
+ {extraCycles += 0; readCycles += 1; PERF_COMMENT("read: ??? B 4(1/0)\n");}
+ break;
+ case sz_word:
+ {extraCycles += 0; readCycles += 1; PERF_COMMENT("read: ??? W 4(1/0)\n");}
+ break;
+ case sz_long:
+ {extraCycles += 0; readCycles += 2; PERF_COMMENT("read: ??? L 8(2/0)\n");}
+ break;
+ default:
+ abort();
+ }
+#endif // PALM_PERF
+ switch (size) {
+ case sz_byte: insn_n_cycles += 2; break;
+ case sz_word: insn_n_cycles += 2; break;
+ case sz_long: insn_n_cycles += 4; break;
+ default: abort ();
+ }
+ start_brace ();
+ switch (size) {
+ case sz_byte: printf ("\tuae_s8 %s = get_byte(%sa);\n", name, name); break;
+ case sz_word: printf ("\tuae_s16 %s = get_word(%sa);\n", name, name); break;
+ case sz_long: printf ("\tuae_s32 %s = get_long(%sa);\n", name, name); break;
+ default: abort ();
+ }
+ }
+
+ /* We now might have to fix up the register for pre-dec or post-inc
+ * addressing modes. */
+ if (!movem)
+ switch (mode) {
+ case Aipi:
+ switch (size) {
+ case sz_byte:
+ printf ("\tm68k_areg(regs, %s) += areg_byteinc[%s];\n", reg, reg);
+ break;
+ case sz_word:
+ printf ("\tm68k_areg(regs, %s) += 2;\n", reg);
+ break;
+ case sz_long:
+ printf ("\tm68k_areg(regs, %s) += 4;\n", reg);
+ break;
+ default:
+ abort ();
+ }
+ break;
+ case Apdi:
+ printf ("\tm68k_areg (regs, %s) = %sa;\n", reg, name);
+#if PALM_STACK
+ printf ("\tif (%s == 7) CHECK_STACK_POINTER_DECREMENT ();\n",
+ reg, name, name);
+#endif // PALM_STACK
+ break;
+ default:
+ break;
+ }
+}
+
+static void genastore (char *from, amodes mode, char *reg, wordsizes size, char *to)
+{
+ switch (mode) {
+ case Dreg:
+ switch (size) {
+ case sz_byte:
+ printf ("\tm68k_dreg(regs, %s) = (m68k_dreg(regs, %s) & ~0xff) | ((%s) & 0xff);\n", reg, reg, from);
+ break;
+ case sz_word:
+ printf ("\tm68k_dreg(regs, %s) = (m68k_dreg(regs, %s) & ~0xffff) | ((%s) & 0xffff);\n", reg, reg, from);
+ break;
+ case sz_long:
+ printf ("\tm68k_dreg(regs, %s) = (%s);\n", reg, from);
+ break;
+ default:
+ abort ();
+ }
+#if PALM_PERF
+ extraCycles += 0; writeCycles += 0; PERF_COMMENT("write: Dn 0(0/0)\n");
+#endif // PALM_PERF
+ break;
+ case Areg:
+ switch (size) {
+ case sz_word:
+ fprintf (stderr, "Foo\n");
+ printf ("\tm68k_areg(regs, %s) = (uae_s32)(uae_s16)(%s);\n", reg, from);
+ break;
+ case sz_long:
+#if PALM_STACK
+ if (lea_hack)
+ {
+ start_brace ();
+ printf ("\tuaecptr prev_%s = m68k_areg(regs, %s);\n", reg, reg);
+ }
+#endif // PALM_STACK
+ printf ("\tm68k_areg(regs, %s) = (%s);\n", reg, from);
+#if PALM_STACK
+ if (adda_hack)
+ printf ("\tif (%s == 7) CHECK_STACK_POINTER_INCREMENT ();\n",
+ reg, reg, from);
+ else if (suba_hack)
+ printf ("\tif (%s == 7) CHECK_STACK_POINTER_DECREMENT ();\n",
+ reg, reg, from);
+ else if (lea_hack)
+ {
+ printf ("\tif (dstreg == 7) {\n");
+ printf ("\t\tif (srcreg == 7) {\n");
+ printf ("\t\t\tif (prev_dstreg < (%s)) CHECK_STACK_POINTER_INCREMENT ();\n", from);
+ printf ("\t\t\tif (prev_dstreg > (%s)) CHECK_STACK_POINTER_DECREMENT ();\n", from);
+ printf ("\t\t} else {\n");
+ printf ("\t\t\tCHECK_STACK_POINTER_ASSIGNMENT ();\n", from);
+ printf ("\t\t}\n");
+ printf ("\t}\n");
+ }
+ else
+ printf ("\tif (%s == 7) CHECK_STACK_POINTER_ASSIGNMENT ();\n",
+ reg, reg, from, reg);
+#endif // PALM_STACK
+ break;
+ default:
+ abort ();
+ }
+#if PALM_PERF
+ extraCycles += 0; writeCycles += 0; PERF_COMMENT("write: An 0(0/0)\n");
+#endif // PALM_PERF
+ break;
+ case Aind:
+ case Aipi:
+ case Apdi:
+ case Ad16:
+ case Ad8r:
+ case absw:
+ case absl:
+ case PC16:
+ case PC8r:
+ if (using_prefetch)
+ sync_m68k_pc ();
+ switch (size) {
+ case sz_byte:
+ insn_n_cycles += 2;
+ printf ("\tput_byte(%sa,%s);\n", to, from);
+#if PALM_PERF
+ extraCycles += 0; writeCycles += 1; PERF_COMMENT("write: to, from B 4(0/1)\n");
+#endif // PALM_PERF
+ break;
+ case sz_word:
+ insn_n_cycles += 2;
+ if (cpu_level < 2 && (mode == PC16 || mode == PC8r))
+ abort ();
+ printf ("\tput_word(%sa,%s);\n", to, from);
+#if PALM_PERF
+ extraCycles += 0; writeCycles += 1; PERF_COMMENT("write: to, from W 4(0/1)\n");
+#endif // PALM_PERF
+ break;
+ case sz_long:
+ insn_n_cycles += 4;
+ if (cpu_level < 2 && (mode == PC16 || mode == PC8r))
+ abort ();
+ printf ("\tput_long(%sa,%s);\n", to, from);
+#if PALM_PERF
+ extraCycles += 0; writeCycles += 2; PERF_COMMENT("write: to, from L 8(0/2)\n");
+#endif // PALM_PERF
+ break;
+ default:
+ abort ();
+ }
+ break;
+ case imm:
+ case imm0:
+ case imm1:
+ case imm2:
+ case immi:
+ abort ();
+ break;
+ default:
+ abort ();
+ }
+}
+
+static void genmovemel (uae_u16 opcode)
+{
+ char getcode[100];
+ int size = table68k[opcode].size == sz_long ? 4 : 2;
+
+ if (table68k[opcode].size == sz_long) {
+ strcpy (getcode, "get_long(srca)");
+ } else {
+ strcpy (getcode, "(uae_s32)(uae_s16)get_word(srca)");
+ }
+
+ printf ("\tuae_u16 mask = %s;\n", gen_nextiword ());
+ printf ("\tunsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;\n");
+ genamode (table68k[opcode].dmode, "dstreg", table68k[opcode].size, "src", 2, 1);
+ start_brace ();
+#if PALM_STACK
+ // Might want to add a check here. But it's not likely for A7 to get messed
+ // up during this operation. First, the stack (if that's what's being used
+ // as the source here) is being incremented, not decremented, so there's no
+ // chance of an overflow. Second, the chance that A7 is in the destination
+ // set of registers is very unlikely, so we don't need to check for that, either.
+ // I suppose A7 *could* be in the dest set if MOVEM is used for a task switch.
+ // Something to think about...
+#endif // PALM_STACK
+ printf ("\twhile (dmask) { m68k_dreg(regs, movem_index1[dmask]) = %s; srca += %d; dmask = movem_next[dmask]; }\n",
+ getcode, size);
+ printf ("\twhile (amask) { m68k_areg(regs, movem_index1[amask]) = %s; srca += %d; amask = movem_next[amask]; }\n",
+ getcode, size);
+
+ if (table68k[opcode].dmode == Aipi)
+ printf ("\tm68k_areg(regs, dstreg) = srca;\n");
+#if PALM_PERF
+ {extraCycles += 0; readCycles = 0xFF; writeCycles += 0; PERF_COMMENT("MOVEM M, R 12+4n(3+n/0) + eff addr\n");}
+ // ¥¥¥ DOLATER this doesnt quite generate the right number of reads, I dont know what the extra is for!
+#endif // PALM_PERF
+}
+
+static void genmovemle (uae_u16 opcode)
+{
+ char putcode[100];
+ int size = table68k[opcode].size == sz_long ? 4 : 2;
+ if (table68k[opcode].size == sz_long) {
+ strcpy (putcode, "put_long(srca,");
+ } else {
+ strcpy (putcode, "put_word(srca,");
+ }
+
+ printf ("\tuae_u16 mask = %s;\n", gen_nextiword ());
+ genamode (table68k[opcode].dmode, "dstreg", table68k[opcode].size, "src", 2, 1);
+ if (using_prefetch)
+ sync_m68k_pc ();
+
+ start_brace ();
+ if (table68k[opcode].dmode == Apdi) {
+ printf ("\tuae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff;\n");
+#if PALM_STACK
+ // Pre-decrement the dest pointer by the maximum amount it could possibly
+ // move. Doing this prevents our "did they access the area below the stack
+ // pointer" sniffer from going off in the middle of this opcode.
+ printf ("\tm68k_areg (regs, dstreg) -= 16 * %d;\n", size);
+#endif // PALM_STACK
+ printf ("\twhile (amask) { srca -= %d; %s m68k_areg(regs, movem_index2[amask])); amask = movem_next[amask]; }\n",
+ size, putcode);
+ printf ("\twhile (dmask) { srca -= %d; %s m68k_dreg(regs, movem_index2[dmask])); dmask = movem_next[dmask]; }\n",
+ size, putcode);
+ printf ("\tm68k_areg(regs, dstreg) = srca;\n");
+#if PALM_STACK
+ printf ("\tCHECK_STACK_POINTER_DECREMENT ();\n");
+#endif // PALM_STACK
+ } else {
+ printf ("\tuae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;\n");
+ printf ("\twhile (dmask) { %s m68k_dreg(regs, movem_index1[dmask])); srca += %d; dmask = movem_next[dmask]; }\n",
+ putcode, size);
+ printf ("\twhile (amask) { %s m68k_areg(regs, movem_index1[amask])); srca += %d; amask = movem_next[amask]; }\n",
+ putcode, size);
+ }
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 2; writeCycles = 0xFF; PERF_COMMENT("MOVEM R, M 8+4n(2/n) + eff addr\n");}
+#endif // PALM_PERF
+}
+
+static void duplicate_carry (void)
+{
+ printf ("\tCOPY_CARRY;\n");
+}
+
+typedef enum {
+ flag_logical_noclobber, flag_logical, flag_add, flag_sub, flag_cmp, flag_addx, flag_subx, flag_zn,
+ flag_av, flag_sv
+} flagtypes;
+
+static void genflags_normal (flagtypes type, wordsizes size, char *value, char *src, char *dst)
+{
+ char vstr[100], sstr[100], dstr[100];
+ char usstr[100], udstr[100];
+ char unsstr[100], undstr[100];
+
+ switch (size) {
+ case sz_byte:
+ strcpy (vstr, "((uae_s8)(");
+ strcpy (usstr, "((uae_u8)(");
+ break;
+ case sz_word:
+ strcpy (vstr, "((uae_s16)(");
+ strcpy (usstr, "((uae_u16)(");
+ break;
+ case sz_long:
+ strcpy (vstr, "((uae_s32)(");
+ strcpy (usstr, "((uae_u32)(");
+ break;
+ default:
+ abort ();
+ }
+ strcpy (unsstr, usstr);
+
+ strcpy (sstr, vstr);
+ strcpy (dstr, vstr);
+ strcat (vstr, value);
+ strcat (vstr, "))");
+ strcat (dstr, dst);
+ strcat (dstr, "))");
+ strcat (sstr, src);
+ strcat (sstr, "))");
+
+ strcpy (udstr, usstr);
+ strcat (udstr, dst);
+ strcat (udstr, "))");
+ strcat (usstr, src);
+ strcat (usstr, "))");
+
+ strcpy (undstr, unsstr);
+ strcat (unsstr, "-");
+ strcat (undstr, "~");
+ strcat (undstr, dst);
+ strcat (undstr, "))");
+ strcat (unsstr, src);
+ strcat (unsstr, "))");
+
+ switch (type) {
+ case flag_logical_noclobber:
+ case flag_logical:
+ case flag_zn:
+ case flag_av:
+ case flag_sv:
+ case flag_addx:
+ case flag_subx:
+ break;
+
+ case flag_add:
+ start_brace ();
+ printf ("uae_u32 %s = %s + %s;\n", value, dstr, sstr);
+ break;
+ case flag_sub:
+ case flag_cmp:
+ start_brace ();
+ printf ("uae_u32 %s = %s - %s;\n", value, dstr, sstr);
+ break;
+ }
+
+ switch (type) {
+ case flag_logical_noclobber:
+ case flag_logical:
+ case flag_zn:
+ break;
+
+ case flag_add:
+ case flag_sub:
+ case flag_addx:
+ case flag_subx:
+ case flag_cmp:
+ case flag_av:
+ case flag_sv:
+ start_brace ();
+ printf ("\t" BOOL_TYPE " flgs = %s < 0;\n", sstr);
+ printf ("\t" BOOL_TYPE " flgo = %s < 0;\n", dstr);
+ printf ("\t" BOOL_TYPE " flgn = %s < 0;\n", vstr);
+ break;
+ }
+
+ switch (type) {
+ case flag_logical:
+ printf ("\tCLEAR_CZNV;\n");
+ printf ("\tSET_ZFLG (%s == 0);\n", vstr);
+ printf ("\tSET_NFLG (%s < 0);\n", vstr);
+ break;
+ case flag_logical_noclobber:
+ printf ("\tSET_ZFLG (%s == 0);\n", vstr);
+ printf ("\tSET_NFLG (%s < 0);\n", vstr);
+ break;
+ case flag_av:
+ printf ("\tSET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));\n");
+ break;
+ case flag_sv:
+ printf ("\tSET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));\n");
+ break;
+ case flag_zn:
+ printf ("\tSET_ZFLG (GET_ZFLG & (%s == 0));\n", vstr);
+ printf ("\tSET_NFLG (%s < 0);\n", vstr);
+ break;
+ case flag_add:
+ printf ("\tSET_ZFLG (%s == 0);\n", vstr);
+ printf ("\tSET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));\n");
+ printf ("\tSET_CFLG (%s < %s);\n", undstr, usstr);
+ duplicate_carry ();
+ printf ("\tSET_NFLG (flgn != 0);\n");
+ break;
+ case flag_sub:
+ printf ("\tSET_ZFLG (%s == 0);\n", vstr);
+ printf ("\tSET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));\n");
+ printf ("\tSET_CFLG (%s > %s);\n", usstr, udstr);
+ duplicate_carry ();
+ printf ("\tSET_NFLG (flgn != 0);\n");
+ break;
+ case flag_addx:
+ printf ("\tSET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));\n"); /* minterm SON: 0x42 */
+ printf ("\tSET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn)));\n"); /* minterm SON: 0xD4 */
+ duplicate_carry ();
+ break;
+ case flag_subx:
+ printf ("\tSET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));\n"); /* minterm SON: 0x24 */
+ printf ("\tSET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));\n"); /* minterm SON: 0xB2 */
+ duplicate_carry ();
+ break;
+ case flag_cmp:
+ printf ("\tSET_ZFLG (%s == 0);\n", vstr);
+ printf ("\tSET_VFLG ((flgs != flgo) && (flgn != flgo));\n");
+ printf ("\tSET_CFLG (%s > %s);\n", usstr, udstr);
+ printf ("\tSET_NFLG (flgn != 0);\n");
+ break;
+ }
+}
+
+static void genflags (flagtypes type, wordsizes size, char *value, char *src, char *dst)
+{
+#ifdef X86_ASSEMBLY
+ switch (type) {
+ case flag_add:
+ case flag_sub:
+ start_brace ();
+ printf ("\tuae_u32 %s;\n", value);
+ break;
+
+ default:
+ break;
+ }
+
+ /* At least some of those casts are fairly important! */
+ switch (type) {
+ case flag_logical_noclobber:
+ printf ("\t{uae_u32 oldcznv = regflags.cznv & ~0xC0;\n");
+ if (strcmp (value, "0") == 0) {
+ printf ("\tregflags.cznv = olcznv | 64;\n");
+ } else {
+ switch (size) {
+ case sz_byte: printf ("\tx86_flag_testb ((uae_s8)(%s));\n", value); break;
+ case sz_word: printf ("\tx86_flag_testw ((uae_s16)(%s));\n", value); break;
+ case sz_long: printf ("\tx86_flag_testl ((uae_s32)(%s));\n", value); break;
+ }
+ printf ("\tregflags.cznv |= oldcznv;\n");
+ }
+ printf ("\t}\n");
+ return;
+ case flag_logical:
+ if (strcmp (value, "0") == 0) {
+ printf ("\tregflags.cznv = 64;\n");
+ } else {
+ switch (size) {
+ case sz_byte: printf ("\tx86_flag_testb ((uae_s8)(%s));\n", value); break;
+ case sz_word: printf ("\tx86_flag_testw ((uae_s16)(%s));\n", value); break;
+ case sz_long: printf ("\tx86_flag_testl ((uae_s32)(%s));\n", value); break;
+ }
+ }
+ return;
+
+ case flag_add:
+ switch (size) {
+ case sz_byte: printf ("\tx86_flag_addb (%s, (uae_s8)(%s), (uae_s8)(%s));\n", value, src, dst); break;
+ case sz_word: printf ("\tx86_flag_addw (%s, (uae_s16)(%s), (uae_s16)(%s));\n", value, src, dst); break;
+ case sz_long: printf ("\tx86_flag_addl (%s, (uae_s32)(%s), (uae_s32)(%s));\n", value, src, dst); break;
+ }
+ return;
+
+ case flag_sub:
+ switch (size) {
+ case sz_byte: printf ("\tx86_flag_subb (%s, (uae_s8)(%s), (uae_s8)(%s));\n", value, src, dst); break;
+ case sz_word: printf ("\tx86_flag_subw (%s, (uae_s16)(%s), (uae_s16)(%s));\n", value, src, dst); break;
+ case sz_long: printf ("\tx86_flag_subl (%s, (uae_s32)(%s), (uae_s32)(%s));\n", value, src, dst); break;
+ }
+ return;
+
+ case flag_cmp:
+ switch (size) {
+ case sz_byte: printf ("\tx86_flag_cmpb ((uae_s8)(%s), (uae_s8)(%s));\n", src, dst); break;
+ case sz_word: printf ("\tx86_flag_cmpw ((uae_s16)(%s), (uae_s16)(%s));\n", src, dst); break;
+ case sz_long: printf ("\tx86_flag_cmpl ((uae_s32)(%s), (uae_s32)(%s));\n", src, dst); break;
+ }
+ return;
+
+ default:
+ break;
+ }
+#elif defined(M68K_FLAG_OPT)
+ /* sam: here I'm cloning what X86_ASSEMBLY does */
+#define EXT(size) (size==sz_byte?"b":(size==sz_word?"w":"l"))
+#define CAST(size) (size==sz_byte?"uae_s8":(size==sz_word?"uae_s16":"uae_s32"))
+ switch (type) {
+ case flag_add:
+ case flag_sub:
+ start_brace ();
+ printf ("\tuae_u32 %s;\n", value);
+ break;
+
+ default:
+ break;
+ }
+
+ switch (type) {
+ case flag_logical:
+ if (strcmp (value, "0") == 0) {
+ printf ("\t*(uae_u16 *)&regflags = 4;\n"); /* Z = 1 */
+ } else {
+ printf ("\tm68k_flag_tst (%s, (%s)(%s));\n",
+ EXT (size), CAST (size), value);
+ }
+ return;
+
+ case flag_add:
+ printf ("\t{uae_u16 ccr;\n");
+ printf ("\tm68k_flag_add (%s, (%s)%s, (%s)(%s), (%s)(%s));\n",
+ EXT (size), CAST (size), value, CAST (size), src, CAST (size), dst);
+ printf ("\t((uae_u16*)&regflags)[1]=((uae_u16*)&regflags)[0]=ccr;}\n");
+ return;
+
+ case flag_sub:
+ printf ("\t{uae_u16 ccr;\n");
+ printf ("\tm68k_flag_sub (%s, (%s)%s, (%s)(%s), (%s)(%s));\n",
+ EXT (size), CAST (size), value, CAST (size), src, CAST (size), dst);
+ printf ("\t((uae_u16*)&regflags)[1]=((uae_u16*)&regflags)[0]=ccr;}\n");
+ return;
+
+ case flag_cmp:
+ printf ("\tm68k_flag_cmp (%s, (%s)(%s), (%s)(%s));\n",
+ EXT (size), CAST (size), src, CAST (size), dst);
+ return;
+
+ default:
+ break;
+ }
+#elif defined(ACORN_FLAG_OPT) && defined(__GNUC_MINOR__)
+/*
+ * This is new. Might be quite buggy.
+ */
+ switch (type) {
+ case flag_av:
+ case flag_sv:
+ case flag_zn:
+ case flag_addx:
+ case flag_subx:
+ break;
+
+ case flag_logical:
+ if (strcmp (value, "0") == 0) {
+ /* v=c=n=0 z=1 */
+ printf ("\t*(ULONG*)&regflags = 0x40000000;\n");
+ return;
+ } else {
+ start_brace ();
+ switch (size) {
+ case sz_byte:
+ printf ("\tUBYTE ccr;\n");
+ printf ("\tULONG shift;\n");
+ printf ("\t__asm__(\"mov %%2,%%1,lsl#24\n\ttst %%2,%%2\n\tmov %%0,r15,lsr#24\n\tbic %%0,%%0,#0x30\"\n"
+ "\t: \"=r\" (ccr) : \"r\" (%s), \"r\" (shift) : \"cc\" );\n", value);
+ printf ("\t*((UBYTE*)&regflags+3) = ccr;\n");
+ return;
+ case sz_word:
+ printf ("\tUBYTE ccr;\n");
+ printf ("\tULONG shift;\n");
+ printf ("\t__asm__(\"mov %%2,%%1,lsl#16\n\ttst %%2,%%2\n\tmov %%0,r15,lsr#24\n\tbic %%0,%%0,#0x30\"\n"
+ "\t: \"=r\" (ccr) : \"r\" ((WORD)%s), \"r\" (shift) : \"cc\" );\n", value);
+ printf ("\t*((UBYTE*)&regflags+3) = ccr;\n");
+ return;
+ case sz_long:
+ printf ("\tUBYTE ccr;\n");
+ printf ("\t__asm__(\"tst %%1,%%1\n\tmov %%0,r15,lsr#24\n\tbic %%0,%%0,#0x30\"\n"
+ "\t: \"=r\" (ccr) : \"r\" ((LONG)%s) : \"cc\" );\n", value);
+ printf ("\t*((UBYTE*)&regflags+3) = ccr;\n");
+ return;
+ }
+ }
+ break;
+ case flag_add:
+ if (strcmp (dst, "0") == 0) {
+ printf ("/* Error! Hier muss Peter noch was machen !!! (ADD-Flags) */");
+ } else {
+ start_brace ();
+ switch (size) {
+ case sz_byte:
+ printf ("\tULONG ccr, shift, %s;\n", value);
+ printf ("\t__asm__(\"mov %%4,%%3,lsl#24\n\tadds %%0,%%4,%%2,lsl#24\n\tmov %%0,%%0,asr#24\n\tmov %%1,r15\n\torr %%1,%%1,%%1,lsr#29\"\n"
+ "\t: \"=r\" (%s), \"=r\" (ccr) : \"r\" (%s), \"r\" (%s), \"r\" (shift) : \"cc\" );\n", value, src, dst);
+ printf ("\t*(ULONG*)&regflags = ccr;\n");
+ return;
+ case sz_word:
+ printf ("\tULONG ccr, shift, %s;\n", value);
+ printf ("\t__asm__(\"mov %%4,%%3,lsl#16\n\tadds %%0,%%4,%%2,lsl#16\n\tmov %%0,%%0,asr#16\n\tmov %%1,r15\n\torr %%1,%%1,%%1,lsr#29\"\n"
+ "\t: \"=r\" (%s), \"=r\" (ccr) : \"r\" ((WORD)%s), \"r\" ((WORD)%s), \"r\" (shift) : \"cc\" );\n", value, src, dst);
+ printf ("\t*(ULONG*)&regflags = ccr;\n");
+ return;
+ case sz_long:
+ printf ("\tULONG ccr, %s;\n", value);
+ printf ("\t__asm__(\"adds %%0,%%3,%%2\n\tmov %%1,r15\n\torr %%1,%%1,%%1,lsr#29\"\n"
+ "\t: \"=r\" (%s), \"=r\" (ccr) : \"r\" ((LONG)%s), \"r\" ((LONG)%s) : \"cc\" );\n", value, src, dst);
+ printf ("\t*(ULONG*)&regflags = ccr;\n");
+ return;
+ }
+ }
+ break;
+ case flag_sub:
+ if (strcmp (dst, "0") == 0) {
+ printf ("/* Error! Hier muss Peter noch was machen !!! (SUB-Flags) */");
+ } else {
+ start_brace ();
+ switch (size) {
+ case sz_byte:
+ printf ("\tULONG ccr, shift, %s;\n", value);
+ printf ("\t__asm__(\"mov %%4,%%3,lsl#24\n\tsubs %%0,%%4,%%2,lsl#24\n\tmov %%0,%%0,asr#24\n\tmov %%1,r15\n\teor %%1,%%1,#0x20000000\n\torr %%1,%%1,%%1,lsr#29\"\n"
+ "\t: \"=r\" (%s), \"=r\" (ccr) : \"r\" (%s), \"r\" (%s), \"r\" (shift) : \"cc\" );\n", value, src, dst);
+ printf ("\t*(ULONG*)&regflags = ccr;\n");
+ return;
+ case sz_word:
+ printf ("\tULONG ccr, shift, %s;\n", value);
+ printf ("\t__asm__(\"mov %%4,%%3,lsl#16\n\tsubs %%0,%%4,%%2,lsl#16\n\tmov %%0,%%0,asr#16\n\tmov %%1,r15\n\teor %%1,%%1,#0x20000000\n\torr %%1,%%1,%%1,lsr#29\"\n"
+ "\t: \"=r\" (%s), \"=r\" (ccr) : \"r\" ((WORD)%s), \"r\" ((WORD)%s), \"r\" (shift) : \"cc\" );\n", value, src, dst);
+ printf ("\t*(ULONG*)&regflags = ccr;\n");
+ return;
+ case sz_long:
+ printf ("\tULONG ccr, %s;\n", value);
+ printf ("\t__asm__(\"subs %%0,%%3,%%2\n\tmov %%1,r15\n\teor %%1,%%1,#0x20000000\n\torr %%1,%%1,%%1,lsr#29\"\n"
+ "\t: \"=r\" (%s), \"=r\" (ccr) : \"r\" ((LONG)%s), \"r\" ((LONG)%s) : \"cc\" );\n", value, src, dst);
+ printf ("\t*(ULONG*)&regflags = ccr;\n");
+ return;
+ }
+ }
+ break;
+ case flag_cmp:
+ if (strcmp (dst, "0") == 0) {
+ printf ("/*Error! Hier muss Peter noch was machen !!! (CMP-Flags)*/");
+ } else {
+ start_brace ();
+ switch (size) {
+ case sz_byte:
+ printf ("\tULONG shift, ccr;\n");
+ printf ("\t__asm__(\"mov %%3,%%2,lsl#24\n\tcmp %%3,%%1,lsl#24\n\tmov %%0,r15,lsr#24\n\teor %%0,%%0,#0x20\"\n"
+ "\t: \"=r\" (ccr) : \"r\" (%s), \"r\" (%s), \"r\" (shift) : \"cc\" );\n", src, dst);
+ printf ("\t*((UBYTE*)&regflags+3) = ccr;\n");
+ return;
+ case sz_word:
+ printf ("\tULONG shift, ccr;\n");
+ printf ("\t__asm__(\"mov %%3,%%2,lsl#16\n\tcmp %%3,%%1,lsl#16\n\tmov %%0,r15,lsr#24\n\teor %%0,%%0,#0x20\"\n"
+ "\t: \"=r\" (ccr) : \"r\" ((WORD)%s), \"r\" ((WORD)%s), \"r\" (shift) : \"cc\" );\n", src, dst);
+ printf ("\t*((UBYTE*)&regflags+3) = ccr;\n");
+ return;
+ case sz_long:
+ printf ("\tULONG ccr;\n");
+ printf ("\t__asm__(\"cmp %%2,%%1\n\tmov %%0,r15,lsr#24\n\teor %%0,%%0,#0x20\"\n"
+ "\t: \"=r\" (ccr) : \"r\" ((LONG)%s), \"r\" ((LONG)%s) : \"cc\" );\n", src, dst);
+ printf ("\t*((UBYTE*)&regflags+3) = ccr;\n");
+ /*printf ("\tprintf (\"%%08x %%08x %%08x\\n\", %s, %s, *((ULONG*)&regflags));\n", src, dst); */
+ return;
+ }
+ }
+ break;
+ }
+#endif
+ genflags_normal (type, size, value, src, dst);
+}
+
+static void force_range_for_rox (const char *var, wordsizes size)
+{
+ /* Could do a modulo operation here... which one is faster? */
+ switch (size) {
+ case sz_long:
+ printf ("\tif (%s >= 33) %s -= 33;\n", var, var);
+ break;
+ case sz_word:
+ printf ("\tif (%s >= 34) %s -= 34;\n", var, var);
+ printf ("\tif (%s >= 17) %s -= 17;\n", var, var);
+ break;
+ case sz_byte:
+ printf ("\tif (%s >= 36) %s -= 36;\n", var, var);
+ printf ("\tif (%s >= 18) %s -= 18;\n", var, var);
+ printf ("\tif (%s >= 9) %s -= 9;\n", var, var);
+ break;
+ }
+}
+
+static const char *cmask (wordsizes size)
+{
+ switch (size) {
+ case sz_byte: return "0x80";
+ case sz_word: return "0x8000";
+ case sz_long: return "0x80000000";
+ default: abort ();
+ }
+}
+
+static int source_is_imm1_8 (struct instr *i)
+{
+ return i->stype == 3;
+}
+
+static void gen_opcode (unsigned long int opcode)
+{
+ struct instr *curi = table68k + opcode;
+#if PALM_PERF
+ extraCycles = readCycles = writeCycles = 0;
+#endif // PALM_PERF
+ insn_n_cycles = 2;
+
+ start_brace ();
+#if 0
+ printf ("uae_u8 *m68k_pc = regs.pc_p;\n");
+#endif
+ m68k_pc_offset = 2;
+ switch (curi->plev) {
+ case 0: /* not privileged */
+ break;
+ case 1: /* unprivileged only on 68000 */
+ if (cpu_level == 0)
+ break;
+ if (next_cpu_level < 0)
+ next_cpu_level = 0;
+
+ /* fall through */
+ case 2: /* priviledged */
+ printf ("if (!regs.s) { Exception(8,0); goto %s; }\n", endlabelstr);
+ need_endlabel = 1;
+ start_brace ();
+ break;
+ case 3: /* privileged if size == word */
+ if (curi->size == sz_byte)
+ break;
+ printf ("if (!regs.s) { Exception(8,0); goto %s; }\n", endlabelstr);
+ need_endlabel = 1;
+ start_brace ();
+ break;
+ }
+ switch (curi->mnemo) {
+ case i_OR:
+ case i_AND:
+ case i_EOR:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "dst", 1, 0);
+ printf ("\tsrc %c= dst;\n", curi->mnemo == i_OR ? '|' : curi->mnemo == i_AND ? '&' : '^');
+ genflags (flag_logical, curi->size, "src", "", "");
+ genastore ("src", curi->dmode, "dstreg", curi->size, "dst");
+#if PALM_PERF
+ if (curi->mnemo == i_OR)
+ {
+ if (curi->size <= sz_word)
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("OR.B/W M, Dn 4(1/0)+ Dn, M 8(1/1)+\n");}
+ else
+ if (curi->dmode == Dreg)
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("OR.L <ea>, Dn 6(1/0)+**\n");}
+ else
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("OR.L Dn, M 12(1/2)+**\n");}
+ }
+ else if (curi->mnemo == i_AND)
+ {
+ if (curi->size <= sz_word)
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("AND.B/W M, Dn 4(1/0)+ Dn, M 8(1/1)+\n");}
+ else
+ if (curi->dmode == Dreg)
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("AND.L <ea>, Dn 6(1/0)+**\n");}
+ else
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("AND.L Dn, M 12(1/2)+**\n");}
+ }
+ else
+ {
+ if (curi->size <= sz_word)
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("EOR.B/W M, Dn 4(1/0)+, Dn, M 8(1/1)+\n");}
+ else
+ if (curi->dmode == Dreg)
+ {extraCycles += 4; readCycles += 1; writeCycles += 0; PERF_COMMENT("EOR.L M, Dn 8(1/0)+\n");}
+ else
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("EOR.L Dn, M 12(1/2)+\n");}
+ }
+#endif // PALM_PERF
+ break;
+ case i_ORSR:
+ case i_EORSR:
+ printf ("\tMakeSR();\n");
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ if (curi->size == sz_byte) {
+ printf ("\tsrc &= 0xFF;\n");
+ }
+ printf ("\tregs.sr %c= src;\n", curi->mnemo == i_EORSR ? '^' : '|');
+ printf ("\tMakeFromSR();\n");
+#if PALM_PERF
+ if (curi->mnemo == i_EORSR)
+ {
+ if (curi->size <= sz_word)
+ {extraCycles += 8; readCycles += 3; writeCycles += 0; PERF_COMMENT("EORSR.B/W 20(3/0)\n");}
+ }
+ else
+ {
+ if (curi->size <= sz_word)
+ {extraCycles += 8; readCycles += 3; writeCycles += 0; PERF_COMMENT("ORSR.B/W 20(3/0)\n");}
+ }
+#endif // PALM_PERF
+ break;
+ case i_ANDSR:
+ printf ("\tMakeSR();\n");
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ if (curi->size == sz_byte) {
+ printf ("\tsrc |= 0xFF00;\n");
+ }
+ printf ("\tregs.sr &= src;\n");
+ printf ("\tMakeFromSR();\n");
+#if PALM_PERF
+ if (curi->size <= sz_word)
+ {extraCycles += 8; readCycles += 3; writeCycles += 0; PERF_COMMENT("ANDSR.B/W 20(3/0)\n");}
+#endif // PALM_PERF
+ break;
+ case i_SUB:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "dst", 1, 0);
+ start_brace ();
+ genflags (flag_sub, curi->size, "newv", "src", "dst");
+ genastore ("newv", curi->dmode, "dstreg", curi->size, "dst");
+#if PALM_PERF
+ if (curi->size <= sz_word)
+ if (curi->dmode == Areg)
+ {extraCycles += 4; readCycles += 1; writeCycles += 0; PERF_COMMENT("SUB.B/W, An 8(1/0)\n");}
+ else
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("SUB.B/W Dn 4(1/0), <M> 8(1/1)\n");}
+ else
+ if (curi->dmode <= Areg)
+ if (curi->smode <= Areg || curi->smode >= imm)
+ {extraCycles += 4; readCycles += 1; writeCycles += 0; PERF_COMMENT("SUB.L {An, Dn, imm}, {An, Dn} 8(1/0)+\n");}
+ else
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("SUB.L <M>, {An, Dn} 6(1/0)+\n");}
+ else
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("SUB.L Dn, <M> 12(1/2)+\n");}
+#endif // PALM_PERF
+ break;
+ case i_SUBA:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ genamode (curi->dmode, "dstreg", sz_long, "dst", 1, 0);
+ start_brace ();
+ printf ("\tuae_u32 newv = dst - src;\n");
+#if PALM_STACK
+ suba_hack = 1;
+#endif // PALM_STACK
+ genastore ("newv", curi->dmode, "dstreg", sz_long, "dst");
+#if PALM_STACK
+ suba_hack = 0;
+#endif // PALM_STACK
+#if PALM_PERF
+ if (curi->size <= sz_word)
+ {extraCycles += 4; readCycles += 1; writeCycles += 0; PERF_COMMENT("SUBA.W, An 8(1/0)\n");}
+ else
+ if (curi->smode <= Areg || curi->smode >= imm)
+ {extraCycles += 4; readCycles += 1; writeCycles += 0; PERF_COMMENT("SUBA.L {An, Dn, imm}, {An, Dn} 8(1/0)+\n");}
+ else
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("SUBA.L <M>, {An, Dn} 6(1/0)+\n");}
+#endif // PALM_PERF
+ break;
+ case i_SUBX:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "dst", 1, 0);
+ start_brace ();
+ printf ("\tuae_u32 newv = dst - src - (GET_XFLG ? 1 : 0);\n");
+ genflags (flag_subx, curi->size, "newv", "src", "dst");
+ genflags (flag_zn, curi->size, "newv", "", "");
+ genastore ("newv", curi->dmode, "dstreg", curi->size, "dst");
+#if PALM_PERF
+ if (curi->size <= sz_word)
+ if (curi->smode == Dreg)
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("SUBX.B/W Dn, Dn 4(1/0)\n");}
+ else
+ {extraCycles += -2; readCycles += 1; writeCycles += 0; PERF_COMMENT("SUBX.B/W -(Ax), -(Ay) 18(3/1)\n");}
+ else // sz_long
+ if (curi->smode == Dreg)
+ {extraCycles += 4; readCycles += 1; writeCycles += 0; PERF_COMMENT("SUBX.L Dn, Dn 8(1/0)\n");}
+ else
+ {extraCycles += -2; readCycles += 1; writeCycles += 0; PERF_COMMENT("SUBX.L -(Ax), -(Ay) 30(5/2)\n");}
+#endif // PALM_PERF
+ break;
+ case i_SBCD:
+ /* Let's hope this works... */
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "dst", 1, 0);
+ start_brace ();
+ printf ("\tuae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG ? 1 : 0);\n");
+ printf ("\tuae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0);\n");
+ printf ("\tuae_u16 newv;\n");
+ printf ("\tint cflg;\n");
+ printf ("\tif (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; }\n");
+ printf ("\tnewv = newv_hi + (newv_lo & 0xF);");
+ printf ("\tSET_CFLG (cflg = (newv_hi & 0x1F0) > 0x90);\n");
+ duplicate_carry ();
+ printf ("\tif (cflg) newv -= 0x60;\n");
+ genflags (flag_zn, curi->size, "newv", "", "");
+ genflags (flag_sv, curi->size, "newv", "src", "dst");
+ genastore ("newv", curi->dmode, "dstreg", curi->size, "dst");
+#if PALM_PERF
+ if (curi->size == sz_byte)
+ if (curi->smode == Dreg)
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("SBCD.B Dn, Dn 6(1/0)\n");}
+ else
+ {extraCycles += -2; readCycles += 1; writeCycles += 0; PERF_COMMENT("SBCD.B -(Ax), -(Ay) 18(3/1)\n");}
+#endif // PALM_PERF
+ break;
+ case i_ADD:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "dst", 1, 0);
+ start_brace ();
+ genflags (flag_add, curi->size, "newv", "src", "dst");
+ genastore ("newv", curi->dmode, "dstreg", curi->size, "dst");
+#if PALM_PERF
+ if (curi->size <= sz_word)
+ if (curi->dmode == Areg)
+ {extraCycles += 4; readCycles += 1; writeCycles += 0; PERF_COMMENT("ADD.W 8(1/0)+\n");}
+ else
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("ADD.B/W <ea>, Dn 4(1/0)+, <M> 8(1/1)+\n");}
+ else // sz_long
+ if (curi->dmode <= Areg)
+ if (curi->smode <= Areg || curi->smode >= imm)
+ {extraCycles += 4; readCycles += 1; writeCycles += 0; PERF_COMMENT("ADD.L {Rn, imm}, Rn 8(1/0)+\n");}
+ else
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("ADD.L <M>, Rn 6(1/0)+\n");}
+ else
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("ADD.L Dn, <M> 12(1/2)+\n");}
+#endif // PALM_PERF
+ break;
+ case i_ADDA:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ genamode (curi->dmode, "dstreg", sz_long, "dst", 1, 0);
+ start_brace ();
+ printf ("\tuae_u32 newv = dst + src;\n");
+#if PALM_STACK
+ adda_hack = 1;
+#endif // PALM_STACK
+ genastore ("newv", curi->dmode, "dstreg", sz_long, "dst");
+#if PALM_STACK
+ adda_hack = 0;
+#endif // PALM_STACK
+#if PALM_PERF
+ if (curi->size <= sz_word)
+ {extraCycles += 4; readCycles += 1; writeCycles += 0; PERF_COMMENT("ADD.W, An 8(1/0)\n");}
+ else
+ if (curi->smode <= Areg || curi->smode >= imm)
+ {extraCycles += 4; readCycles += 1; writeCycles += 0; PERF_COMMENT("ADD.L {An, Dn, imm}, {An, Dn} 8(1/0)+\n");}
+ else
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("ADD.L <M>, {An, Dn} 6(1/0)+\n");}
+#endif // PALM_PERF
+ break;
+ case i_ADDX:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "dst", 1, 0);
+ start_brace ();
+ printf ("\tuae_u32 newv = dst + src + (GET_XFLG ? 1 : 0);\n");
+ genflags (flag_addx, curi->size, "newv", "src", "dst");
+ genflags (flag_zn, curi->size, "newv", "", "");
+ genastore ("newv", curi->dmode, "dstreg", curi->size, "dst");
+#if PALM_PERF
+ if (curi->size <= sz_word)
+ if (curi->smode == Dreg)
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("ADDX.B/W Dn, Dn 4(1/0)\n");}
+ else
+ {extraCycles += -2; readCycles += 1; writeCycles += 0; PERF_COMMENT("ADDX.B/W -(Ax), -(Ay) 18(3/1)\n");}
+ else // sz_long
+ if (curi->smode == Dreg)
+ {extraCycles += 4; readCycles += 1; writeCycles += 0; PERF_COMMENT("ADDX.L Dn, Dn 8(1/0)\n");}
+ else
+ {extraCycles += -2; readCycles += 1; writeCycles += 0; PERF_COMMENT("ADDX.L -(Ax), -(Ay) 30(5/2)\n");}
+#endif // PALM_PERF
+ break;
+ case i_ABCD:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "dst", 1, 0);
+ start_brace ();
+ printf ("\tuae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG ? 1 : 0);\n");
+ printf ("\tuae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0);\n");
+ printf ("\tuae_u16 newv;\n");
+ printf ("\tint cflg;\n");
+ printf ("\tif (newv_lo > 9) { newv_lo +=6; }\n");
+ printf ("\tnewv = newv_hi + newv_lo;");
+ printf ("\tSET_CFLG (cflg = (newv & 0x1F0) > 0x90);\n");
+ duplicate_carry ();
+ printf ("\tif (cflg) newv += 0x60;\n");
+ genflags (flag_zn, curi->size, "newv", "", "");
+ genflags (flag_sv, curi->size, "newv", "src", "dst");
+ genastore ("newv", curi->dmode, "dstreg", curi->size, "dst");
+#if PALM_PERF
+ if (curi->size == sz_byte)
+ if (curi->smode == Dreg)
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("ABCD.B Dn, Dn 6(1/0)\n");}
+ else
+ {extraCycles += -2; readCycles += 1; writeCycles += 0; PERF_COMMENT("ABCD.B -(Ax), -(Ay) 18(3/1)\n");}
+#endif // PALM_PERF
+ break;
+ case i_NEG:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ start_brace ();
+ genflags (flag_sub, curi->size, "dst", "src", "0");
+ genastore ("dst", curi->smode, "srcreg", curi->size, "src");
+#if PALM_PERF
+ if (curi->size <= sz_word)
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("NEG.B/W Rn 4(1/0) M 8(1/1)+\n");}
+ else // sz_word, sz_long
+ if (curi->smode <= Areg)
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("NEG.L Rn 6(1/0)\n");}
+ else
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("NEG.B/W M 12(1/2)+\n");}
+#endif // PALM_PERF
+ break;
+ case i_NEGX:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ start_brace ();
+ printf ("\tuae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);\n");
+ genflags (flag_subx, curi->size, "newv", "src", "0");
+ genflags (flag_zn, curi->size, "newv", "", "");
+ genastore ("newv", curi->smode, "srcreg", curi->size, "src");
+#if PALM_PERF
+ if (curi->size <= sz_word)
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("NEGX.B/W Rn 4(1/0) M 8(1/1)+\n");}
+ else // sz_word, sz_long
+ if (curi->smode <= Areg)
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("NEGX.L Rn 6(1/0)\n");}
+ else
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("NEGX.L M 12(1/2)+\n");}
+#endif // PALM_PERF
+ break;
+ case i_NBCD:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ start_brace ();
+ printf ("\tuae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);\n");
+ printf ("\tuae_u16 newv_hi = - (src & 0xF0);\n");
+ printf ("\tuae_u16 newv;\n");
+ printf ("\tint cflg;\n");
+ printf ("\tif (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; }\n");
+ printf ("\tnewv = newv_hi + (newv_lo & 0xF);");
+ printf ("\tSET_CFLG (cflg = (newv_hi & 0x1F0) > 0x90);\n");
+ duplicate_carry();
+ printf ("\tif (cflg) newv -= 0x60;\n");
+ genflags (flag_zn, curi->size, "newv", "", "");
+ genastore ("newv", curi->smode, "srcreg", curi->size, "src");
+#if PALM_PERF
+ // !!! Does the call to genflags need to be moved below this?
+ if (curi->smode <= Areg)
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("NBCD.B Rn 6(1/0)\n");}
+ else
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("NBCD.B <M> 8(1/1)+\n");}
+#endif // PALM_PERF
+ break;
+ case i_CLR:
+ genamode (curi->smode, "srcreg", curi->size, "src", 2, 0);
+ genflags (flag_logical, curi->size, "0", "", "");
+ genastore ("0", curi->smode, "srcreg", curi->size, "src");
+#if PALM_PERF
+ if (curi->size <= sz_word)
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("CLR.B/W Rn 4(1/0) M 8(1/1)+\n");}
+ else // sz_long
+ if (curi->smode <= Areg)
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("CLR.L Rn 6(1/0)\n");}
+ else
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("CLR.L M 12(1/2)+\n");}
+#endif // PALM_PERF
+ break;
+ case i_NOT:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ start_brace ();
+ printf ("\tuae_u32 dst = ~src;\n");
+ genflags (flag_logical, curi->size, "dst", "", "");
+ genastore ("dst", curi->smode, "srcreg", curi->size, "src");
+#if PALM_PERF
+ if (curi->size <= sz_word)
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("NOT.B/W Rn 4(1/0) M 8(1/1)+\n");}
+ else // sz_long
+ if (curi->smode <= Areg)
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("NOT.L Rn 6(1/0)\n");}
+ else
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("NOT.L M 12(1/2)+\n");}
+#endif // PALM_PERF
+ break;
+ case i_TST:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ genflags (flag_logical, curi->size, "src", "", "");
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("TST Rn 4(1/0) M 4(1/0)+\n");}
+#endif // PALM_PERF
+ break;
+ case i_BTST:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "dst", 1, 0);
+ if (curi->size == sz_byte)
+ printf ("\tsrc &= 7;\n");
+ else
+ printf ("\tsrc &= 31;\n");
+ printf ("\tSET_ZFLG (1 ^ ((dst >> src) & 1));\n");
+#if PALM_PERF
+ if (curi->size <= sz_byte)
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("BTST.B M Dyn 4(1/0)+ Stat 8(2/0)+\n");}
+ else // sz_long
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("BTST.L Dn Dyn 6(1/0) Stat 10(2/0)\n");}
+#endif // PALM_PERF
+ break;
+ case i_BCHG:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "dst", 1, 0);
+ if (curi->size == sz_byte)
+ printf ("\tsrc &= 7;\n");
+ else
+ printf ("\tsrc &= 31;\n");
+ printf ("\tdst ^= (1 << src);\n");
+#if PALM_BUG_FIX
+ printf ("\tSET_ZFLG ((dst >> src) & 1);\n");
+#else // PALM_BUG_FIX
+ printf ("\tSET_ZFLG ((dst & (1 << src)) >> src);\n");
+#endif // PALM_BUG_FIX
+ genastore ("dst", curi->dmode, "dstreg", curi->size, "dst");
+#if PALM_PERF
+ if (curi->size <= sz_byte)
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("BCHG.B M Dyn 8(1/1)+ Stat 12(2/1)+\n");}
+ else // sz_long
+ {extraCycles += 4; readCycles += 1; writeCycles += 0; PERF_COMMENT("BCHG.L Dn Dyn 8(1/0)* Stat 12(2/0)*\n");}
+#endif // PALM_PERF
+ break;
+ case i_BCLR:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "dst", 1, 0);
+ if (curi->size == sz_byte)
+ printf ("\tsrc &= 7;\n");
+ else
+ printf ("\tsrc &= 31;\n");
+ printf ("\tSET_ZFLG (1 ^ ((dst >> src) & 1));\n");
+ printf ("\tdst &= ~(1 << src);\n");
+ genastore ("dst", curi->dmode, "dstreg", curi->size, "dst");
+#if PALM_PERF
+ if (curi->size <= sz_byte)
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("BCLR.B M Dyn 8(1/1)+ Stat 12(2/1)+\n");}
+ else // sz_long
+ {extraCycles += 6; readCycles += 1; writeCycles += 0; PERF_COMMENT("BCLR.L Dn Dyn 10(1/0)* Stat 14(2/0)*\n");}
+#endif // PALM_PERF
+ break;
+ case i_BSET:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "dst", 1, 0);
+ if (curi->size == sz_byte)
+ printf ("\tsrc &= 7;\n");
+ else
+ printf ("\tsrc &= 31;\n");
+ printf ("\tSET_ZFLG (1 ^ ((dst >> src) & 1));\n");
+ printf ("\tdst |= (1 << src);\n");
+ genastore ("dst", curi->dmode, "dstreg", curi->size, "dst");
+#if PALM_PERF
+ if (curi->size <= sz_byte)
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("BSET.B M Dyn 8(1/1)+ Stat 12(2/1)+\n");}
+ else // sz_long
+ {extraCycles += 4; readCycles += 1; writeCycles += 0; PERF_COMMENT("BSET.L Dn Dyn 8(1/0)* Stat 12(2/0)*\n");}
+#endif // PALM_PERF
+ break;
+ case i_CMPM:
+ case i_CMP:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "dst", 1, 0);
+ start_brace ();
+ genflags (flag_cmp, curi->size, "newv", "src", "dst");
+#if PALM_PERF
+ if (curi->dmode == Areg)
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("CMP <ea>, An 6(1/0)+\n");}
+ else if (curi->dmode == Dreg)
+ if (curi->size <= sz_word)
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("CMP.B/W <ea>, Dn 4(1/0)+\n");}
+ else // sz_long
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("CMP.L <ea>, Dn 6(1/0)+\n");}
+ else if (curi->smode >= imm)
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("CMPI #, M B/W 8(2/0)+, L 12(3/0)+\n");}
+ else
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("CMPM M, M B/W 12(3/0), L 20(5/0)\n");}
+#endif // PALM_PERF
+ break;
+ case i_CMPA:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ genamode (curi->dmode, "dstreg", sz_long, "dst", 1, 0);
+ start_brace ();
+ genflags (flag_cmp, sz_long, "newv", "src", "dst");
+#if PALM_PERF
+ if (curi->dmode == Areg)
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("CMPA <ea>, An 6(1/0)+\n");}
+ else if (curi->dmode == Dreg)
+ if (curi->size <= sz_word)
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("CMPA.B/W <ea>, Dn 4(1/0)+\n");}
+ else // sz_long
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("CMPA.L <ea>, Dn 6(1/0)+\n");}
+#endif // PALM_PERF
+ break;
+ /* The next two are coded a little unconventional, but they are doing
+ * weird things... */
+ case i_MVPRM:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+
+ printf ("\tuaecptr memp = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)%s;\n", gen_nextiword ());
+ if (curi->size == sz_word) {
+ printf ("\tput_byte(memp, src >> 8); put_byte(memp + 2, src);\n");
+ } else {
+ printf ("\tput_byte(memp, src >> 24); put_byte(memp + 2, src >> 16);\n");
+ printf ("\tput_byte(memp + 4, src >> 8); put_byte(memp + 6, src);\n");
+ }
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("read: (d16, Ay) 4(1/0)\n");}
+ if (curi->size == sz_word) {
+ {extraCycles += 0; readCycles += 0; writeCycles += 2; PERF_COMMENT("writes: 8(0/2)\n");}
+ } else {
+ {extraCycles += 0; readCycles += 0; writeCycles += 4; PERF_COMMENT("writes: 16(0/4)\n");}
+ }
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("MOVEP Rn, M W 16(2/2) L 24(2/4)\n");}
+#endif // PALM_PERF
+ break;
+ case i_MVPMR:
+ printf ("\tuaecptr memp = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)%s;\n", gen_nextiword ());
+ genamode (curi->dmode, "dstreg", curi->size, "dst", 2, 0);
+ if (curi->size == sz_word) {
+ printf ("\tuae_u16 val = (get_byte(memp) << 8) + get_byte(memp + 2);\n");
+ } else {
+ printf ("\tuae_u32 val = (get_byte(memp) << 24) + (get_byte(memp + 2) << 16)\n");
+ printf (" + (get_byte(memp + 4) << 8) + get_byte(memp + 6);\n");
+ }
+ genastore ("val", curi->dmode, "dstreg", curi->size, "dst");
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("read: (d16, Ay) 4(1/0)\n");}
+ if (curi->size == sz_word) {
+ {extraCycles += 0; readCycles += 2; writeCycles += 0; PERF_COMMENT("reads: 8(2/0)\n");}
+ } else {
+ {extraCycles += 0; readCycles += 4; writeCycles += 0; PERF_COMMENT("reads: 16(4/0)\n");}
+ }
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("MOVEP M, Rn W 16(4/0) L 24(6/0)\n");}
+#endif // PALM_PERF
+ break;
+ case i_MOVE:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "dst", 2, 0);
+ genflags (flag_logical, curi->size, "src", "", "");
+ genastore ("src", curi->dmode, "dstreg", curi->size, "dst");
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("MOVE 4(1/0)+\n");}
+#endif // PALM_PERF
+ break;
+ case i_MOVEA:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "dst", 2, 0);
+ if (curi->size == sz_word) {
+ printf ("\tuae_u32 val = (uae_s32)(uae_s16)src;\n");
+ } else {
+ printf ("\tuae_u32 val = src;\n");
+ }
+ genastore ("val", curi->dmode, "dstreg", sz_long, "dst");
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("MOVEA 4(1/0)+\n");}
+#endif // PALM_PERF
+ break;
+ case i_MVSR2:
+ genamode (curi->smode, "srcreg", sz_word, "src", 2, 0);
+ printf ("\tMakeSR();\n");
+ if (curi->size == sz_byte)
+ genastore ("regs.sr & 0xff", curi->smode, "srcreg", sz_word, "src");
+ else
+ genastore ("regs.sr", curi->smode, "srcreg", sz_word, "src");
+#if PALM_PERF
+ if (curi->smode <= Areg)
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("MOVE SR, Rn 6(1/0)\n");}
+ else
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("MOVE SR, M 8(1/1)+\n");}
+#endif // PALM_PERF
+ break;
+ case i_MV2SR:
+ genamode (curi->smode, "srcreg", sz_word, "src", 1, 0);
+ if (curi->size == sz_byte)
+ printf ("\tMakeSR();\n\tregs.sr &= 0xFF00;\n\tregs.sr |= src & 0xFF;\n");
+ else {
+ printf ("\tregs.sr = src;\n");
+ }
+ printf ("\tMakeFromSR();\n");
+#if PALM_PERF
+ {extraCycles += 4; readCycles += 2; writeCycles += 0; PERF_COMMENT("MOVE <ea>, SR 12(2/0)+\n");}
+#endif // PALM_PERF
+ break;
+ case i_SWAP:
+ genamode (curi->smode, "srcreg", sz_long, "src", 1, 0);
+ start_brace ();
+ printf ("\tuae_u32 dst = ((src >> 16)&0xFFFF) | ((src&0xFFFF)<<16);\n");
+ genflags (flag_logical, sz_long, "dst", "", "");
+ genastore ("dst", curi->smode, "srcreg", sz_long, "src");
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("SWAP 4(1/0)\n");}
+#endif // PALM_PERF
+ break;
+ case i_EXG:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "dst", 1, 0);
+ genastore ("dst", curi->smode, "srcreg", curi->size, "src");
+ genastore ("src", curi->dmode, "dstreg", curi->size, "dst");
+#if PALM_PERF
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("EXG 6(1/0)\n");}
+#endif // PALM_PERF
+ break;
+ case i_EXT:
+ genamode (curi->smode, "srcreg", sz_long, "src", 1, 0);
+ start_brace ();
+ switch (curi->size) {
+ case sz_byte: printf ("\tuae_u32 dst = (uae_s32)(uae_s8)src;\n"); break;
+ case sz_word: printf ("\tuae_u16 dst = (uae_s16)(uae_s8)src;\n"); break;
+ case sz_long: printf ("\tuae_u32 dst = (uae_s32)(uae_s16)src;\n"); break;
+ default: abort ();
+ }
+ genflags (flag_logical,
+ curi->size == sz_word ? sz_word : sz_long, "dst", "", "");
+ genastore ("dst", curi->smode, "srcreg",
+ curi->size == sz_word ? sz_word : sz_long, "src");
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("EXT 4(1/0)\n");}
+#endif // PALM_PERF
+ break;
+ case i_MVMEL:
+ genmovemel (opcode);
+ break;
+ case i_MVMLE:
+ genmovemle (opcode);
+ break;
+ case i_TRAP:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ sync_m68k_pc ();
+ printf ("\tException(src+32,0);\n");
+ m68k_pc_offset = 0;
+#if PALM_PERF
+ {extraCycles += 6; readCycles = 0xFF; writeCycles = 0xFF; PERF_COMMENT("TRAP 34(4/3)\n");}
+#endif // PALM_PERF
+ break;
+ case i_MVR2USP:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ printf ("\tregs.usp = src;\n");
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("MOVE to USP 4(1/0)\n");}
+#endif // PALM_PERF
+ break;
+ case i_MVUSP2R:
+ genamode (curi->smode, "srcreg", curi->size, "src", 2, 0);
+ genastore ("regs.usp", curi->smode, "srcreg", curi->size, "src");
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("MOVE from USP 4(1/0)\n");}
+#endif // PALM_PERF
+ break;
+ case i_RESET:
+ printf ("\tcustomreset();\n");
+#if PALM_PERF
+ {extraCycles += 128; readCycles += 1; writeCycles += 0; PERF_COMMENT("RESET 132(1/0)\n");}
+#endif // PALM_PERF
+ break;
+ case i_NOP:
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("NOP 4(1/0)\n");}
+#endif // PALM_PERF
+ break;
+ case i_STOP:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ printf ("\tregs.sr = src;\n");
+ printf ("\tMakeFromSR();\n");
+ printf ("\tm68k_setstopped(1);\n");
+#if PALM_PERF
+ {extraCycles += 4; readCycles += 0; writeCycles += 0; PERF_COMMENT("STOP 4(0/0)\n");}
+#endif // PALM_PERF
+ break;
+ case i_RTE:
+ if (cpu_level == 0) {
+ genamode (Aipi, "7", sz_word, "sr", 1, 0);
+ genamode (Aipi, "7", sz_long, "pc", 1, 0);
+#if PALM_PERF
+ printf ("\tregs.sr = sr; m68k_do_rte(pc);\n");
+#else // PALM_PERF
+ printf ("\tregs.sr = sr; m68k_setpc_rte(pc);\n");
+#endif // PALM_PERF
+ fill_prefetch_0 ();
+ printf ("\tMakeFromSR();\n");
+ } else {
+ int old_brace_level = n_braces;
+ if (next_cpu_level < 0)
+ next_cpu_level = 0;
+ printf ("\tuae_u16 newsr; uae_u32 newpc; for (;;) {\n");
+ genamode (Aipi, "7", sz_word, "sr", 1, 0);
+ genamode (Aipi, "7", sz_long, "pc", 1, 0);
+ genamode (Aipi, "7", sz_word, "format", 1, 0);
+ printf ("\tnewsr = sr; newpc = pc;\n");
+ printf ("\tif ((format & 0xF000) == 0x0000) { break; }\n");
+ printf ("\telse if ((format & 0xF000) == 0x1000) { ; }\n");
+ printf ("\telse if ((format & 0xF000) == 0x2000) { m68k_areg(regs, 7) += 4; break; }\n");
+ printf ("\telse if ((format & 0xF000) == 0x8000) { m68k_areg(regs, 7) += 50; break; }\n");
+ printf ("\telse if ((format & 0xF000) == 0x9000) { m68k_areg(regs, 7) += 12; break; }\n");
+ printf ("\telse if ((format & 0xF000) == 0xa000) { m68k_areg(regs, 7) += 24; break; }\n");
+ printf ("\telse if ((format & 0xF000) == 0xb000) { m68k_areg(regs, 7) += 84; break; }\n");
+ printf ("\telse { Exception(14,0); goto %s; }\n", endlabelstr);
+ printf ("\tregs.sr = newsr; MakeFromSR();\n}\n");
+ pop_braces (old_brace_level);
+ printf ("\tregs.sr = newsr; MakeFromSR();\n");
+ printf ("\tm68k_setpc_rte(newpc);\n");
+ fill_prefetch_0 ();
+ need_endlabel = 1;
+ }
+ /* PC is set and prefetch filled. */
+ m68k_pc_offset = 0;
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 2; writeCycles += 0; PERF_COMMENT("RTE 20(5/0)\n");}
+#endif // PALM_PERF
+ break;
+ case i_RTD:
+ printf ("\tcompiler_flush_jsr_stack();\n");
+ genamode (Aipi, "7", sz_long, "pc", 1, 0);
+ genamode (curi->smode, "srcreg", curi->size, "offs", 1, 0);
+ printf ("\tm68k_areg(regs, 7) += offs;\n");
+#if PALM_STACK
+ printf ("\tCHECK_STACK_POINTER_INCREMENT ();\n");
+#endif // PALM_STACK
+ printf ("\tm68k_setpc_rte(pc);\n");
+ fill_prefetch_0 ();
+ /* PC is set and prefetch filled. */
+ m68k_pc_offset = 0;
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 0; writeCycles += 0; PERF_COMMENT("RTD ?(?/?)\n");}
+#endif // PALM_PERF
+ break;
+ case i_LINK:
+ genamode (Apdi, "7", sz_long, "old", 2, 0);
+ genamode (curi->smode, "srcreg", sz_long, "src", 1, 0);
+ genastore ("src", Apdi, "7", sz_long, "old");
+ genastore ("m68k_areg(regs, 7)", curi->smode, "srcreg", sz_long, "src");
+ genamode (curi->dmode, "dstreg", curi->size, "offs", 1, 0);
+ printf ("\tm68k_areg(regs, 7) += offs;\n");
+#if PALM_STACK
+ printf ("\tCHECK_STACK_POINTER_DECREMENT ();\n");
+#endif // PALM_STACK
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("LINK 16(2/2)\n");}
+#endif // PALM_PERF
+ break;
+ case i_UNLK:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ printf ("\tm68k_areg(regs, 7) = src;\n");
+#if PALM_STACK
+ printf ("\tCHECK_STACK_POINTER_INCREMENT ();\n");
+#endif // PALM_STACK
+ genamode (Aipi, "7", sz_long, "old", 1, 0);
+ genastore ("old", curi->smode, "srcreg", curi->size, "src");
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("UNLK 12(3/0)\n");}
+#endif // PALM_PERF
+ break;
+ case i_RTS:
+ printf ("\tm68k_do_rts();\n");
+ fill_prefetch_0 ();
+ m68k_pc_offset = 0;
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 4; writeCycles += 0; PERF_COMMENT("RTS 16(4/0)\n");}
+#endif // PALM_PERF
+ break;
+ case i_TRAPV:
+ sync_m68k_pc ();
+ printf ("\tif (GET_VFLG) { Exception(7,m68k_getpc()); goto %s; }\n", endlabelstr);
+ need_endlabel = 1;
+#if PALM_PERF
+ {extraCycles += 0; readCycles = 0xFF; writeCycles = 0xFF; PERF_COMMENT("TRAPV 4(1/0) OR 34(5/3)\n");}
+#endif // PALM_PERF
+ break;
+ case i_RTR:
+ printf ("\tcompiler_flush_jsr_stack();\n");
+ printf ("\tMakeSR();\n");
+ genamode (Aipi, "7", sz_word, "sr", 1, 0);
+ genamode (Aipi, "7", sz_long, "pc", 1, 0);
+ printf ("\tregs.sr &= 0xFF00; sr &= 0xFF;\n");
+ printf ("\tregs.sr |= sr; m68k_setpc(pc);\n");
+ fill_prefetch_0 ();
+ printf ("\tMakeFromSR();\n");
+ m68k_pc_offset = 0;
+#if PALM_PERF
+ {extraCycles += 12; readCycles += -1; writeCycles += 0; PERF_COMMENT("RTR 20(2/0)\n");}
+#endif // PALM_PERF
+ break;
+ case i_JSR:
+ genamode (curi->smode, "srcreg", curi->size, "src", 0, 0);
+#if PALM_SYSTEM_CALL
+ if (curi->smode == Aind)
+ printf ("if (!Software_ProcessJSR_Ind (m68k_getpc(), srca))\n");
+#endif // PALM_SYSTEM_CALL
+ printf ("\tm68k_do_jsr(m68k_getpc() + %d, srca);\n", m68k_pc_offset);
+ fill_prefetch_0 ();
+ m68k_pc_offset = 0;
+#if PALM_PERF
+ switch (curi->smode) {
+ case Ad16:
+ case absw:
+ case PC16:
+ {extraCycles = 2; readCycles = 2; writeCycles = 2; PERF_COMMENT("JSR {(d16, An), (xxx).W, (d16 PC)} 18(2/2)\n");}
+ break;
+ case Aind:
+ {extraCycles = 0; readCycles = 2; writeCycles = 2; PERF_COMMENT("JSR (An) 16(2/2)\n");}
+ break;
+ case Ad8r:
+ case PC8r:
+ {extraCycles = 6; readCycles = 2; writeCycles = 2; PERF_COMMENT("JSR {(d8,An,Xn)+, (d8,PC,Xn)} 22(2/2)\n");}
+ break;
+ case absl:
+ {extraCycles = 0; readCycles = 3; writeCycles = 2; PERF_COMMENT("JSR (xxx).L 20(3/2)\n");}
+ break;
+ }
+#endif // PALM_PERF
+ break;
+ case i_JMP:
+ genamode (curi->smode, "srcreg", curi->size, "src", 0, 0);
+ printf ("\tm68k_setpc(srca);\n");
+ fill_prefetch_0 ();
+ m68k_pc_offset = 0;
+#if PALM_PERF
+ if (curi->smode == absl)
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("JMP (xxx).L 12(3/0)\n");}
+ else if (curi->smode == Ad16 || curi->smode == absw || curi->smode == PC16)
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("JMP {(d16, An), (xxx).W, (d16 PC)} 10(2/0)\n");}
+ else
+ {extraCycles += 0; readCycles += 2; writeCycles += 0; PERF_COMMENT("JMP (An) 8(2/0) (d8,An,Xn) 14(3/0), (d8,PC,Xn) 14(3/0)\n");}
+#endif // PALM_PERF
+ break;
+ case i_BSR:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ printf ("\tuae_s32 s = (uae_s32)src + 2;\n");
+ if (using_exception_3) {
+ printf ("\tif (src & 1) {\n");
+ printf ("\tlast_addr_for_exception_3 = m68k_getpc() + 2;\n");
+ printf ("\t\tlast_fault_for_exception_3 = m68k_getpc() + s;\n");
+ printf ("\t\tlast_op_for_exception_3 = opcode; Exception(3,0); goto %s;\n", endlabelstr);
+ printf ("\t}\n");
+ need_endlabel = 1;
+ }
+ printf ("\tm68k_do_bsr(m68k_getpc() + %d, s);\n", m68k_pc_offset);
+ fill_prefetch_0 ();
+ m68k_pc_offset = 0;
+#if PALM_PERF
+ {extraCycles = 2; readCycles = 2; writeCycles = 2; PERF_COMMENT("BSR 18(2/2)\n");}
+#endif // PALM_PERF
+ break;
+ case i_Bcc:
+ if (curi->size == sz_long) {
+ if (cpu_level < 2) {
+ printf ("\tm68k_incpc(2);\n");
+ printf ("\tif (!cctrue(%d)) goto %s;\n", curi->cc, endlabelstr);
+ printf ("\t\tlast_addr_for_exception_3 = m68k_getpc() + 2;\n");
+ printf ("\t\tlast_fault_for_exception_3 = m68k_getpc() + 1;\n");
+ printf ("\t\tlast_op_for_exception_3 = opcode; Exception(3,0); goto %s;\n", endlabelstr);
+ need_endlabel = 1;
+ } else {
+ if (next_cpu_level < 1)
+ next_cpu_level = 1;
+ }
+ }
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ printf ("\tif (!cctrue(%d)) goto didnt_jump;\n", curi->cc);
+ if (using_exception_3) {
+ printf ("\tif (src & 1) {\n");
+ printf ("\t\tlast_addr_for_exception_3 = m68k_getpc() + 2;\n");
+ printf ("\t\tlast_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;\n");
+ printf ("\t\tlast_op_for_exception_3 = opcode; Exception(3,0); goto %s;\n", endlabelstr);
+ printf ("\t}\n");
+ need_endlabel = 1;
+ }
+#ifdef USE_COMPILER
+ printf ("\tm68k_setpc_bcc(m68k_getpc() + 2 + (uae_s32)src);\n");
+#else
+ printf ("\tm68k_incpc ((uae_s32)src + 2);\n");
+#endif
+ fill_prefetch_0 ();
+#if PALM_PERF
+ printf ("#if HAS_PROFILING\n");
+ printf (" if (gProfilingEnabled)\n");
+ printf (" ProfileIncrementClock(2);\n");
+ printf ("#endif\n");
+#endif // PALM_PERF
+ printf ("\tgoto %s;\n", endlabelstr);
+ printf ("didnt_jump:;\n");
+ need_endlabel = 1;
+#if PALM_PERF
+ // ¥¥¥Êstill missing a read cycle sometimes. Weird. Don't know the address read from, so can't compute waits...
+ // ¥¥¥ readcycles should be 2, setting to 0xFF to disable breaking
+ if (curi->size == sz_byte)
+ {extraCycles += 2; readCycles = 0xFF; writeCycles += 0; PERF_COMMENT("Bcc.B 10(2/0) if taken, 8(1/0) if not\n");}
+ else
+ {extraCycles += 2; readCycles = 0xFF; writeCycles += 0; PERF_COMMENT("Bcc.W 10(2/0) if taken, 12(2/0) if not\n");}
+#endif // PALM_PERF
+ break;
+ case i_LEA:
+ genamode (curi->smode, "srcreg", curi->size, "src", 0, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "dst", 2, 0);
+#if PALM_STACK
+ if (curi->smode == Areg ||
+ curi->smode == Aind ||
+ curi->smode == Aipi ||
+ curi->smode == Apdi ||
+ curi->smode == Ad16 ||
+ curi->smode == Ad8r)
+ lea_hack = 1;
+#endif // PALM_STACK
+ genastore ("srca", curi->dmode, "dstreg", curi->size, "dst");
+#if PALM_STACK
+ lea_hack = 0;
+#endif // PALM_STACK
+#if PALM_PERF
+ if (curi->smode == Ad8r || curi->smode == PC8r)
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("LEA {(d8,An,Xn)+,(d8,PC,Xn)} 12(2/0) \n");}
+ else
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("LEA (An) 4(1/0) {(d16,An), (xxx).W, (d16,PC)} 8(2/0) (xxx).L 12(3/0)\n");}
+#endif // PALM_PERF
+ break;
+ case i_PEA:
+ genamode (curi->smode, "srcreg", curi->size, "src", 0, 0);
+ genamode (Apdi, "7", sz_long, "dst", 2, 0);
+ genastore ("srca", Apdi, "7", sz_long, "dst");
+#if PALM_PERF
+ if (curi->smode == Ad8r || curi->smode == PC8r)
+ {extraCycles += 1; readCycles += 1; writeCycles += 0; PERF_COMMENT("PEA(d8,An,Xn)+, (d8,PC,Xn) 20(2/2)\n");}
+ else
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("PEA (An) 12(1/2) {(d16,An), (xxx).W, (d16,PC)} 16(2/2) (xxx).L 20(3/2)\n");}
+#endif // PALM_PERF
+ break;
+ case i_DBcc:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "offs", 1, 0);
+
+ printf ("\tif (!cctrue(%d)) {\n", curi->cc);
+ genastore ("(src-1)", curi->smode, "srcreg", curi->size, "src");
+
+ printf ("\t\tif (src) {\n");
+ if (using_exception_3) {
+ printf ("\t\t\tif (offs & 1) {\n");
+ printf ("\t\t\tlast_addr_for_exception_3 = m68k_getpc() + 2;\n");
+ printf ("\t\t\tlast_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2;\n");
+ printf ("\t\t\tlast_op_for_exception_3 = opcode; Exception(3,0); goto %s;\n", endlabelstr);
+ printf ("\t\t}\n");
+ need_endlabel = 1;
+ }
+#ifdef USE_COMPILER
+ printf ("\t\t\tm68k_setpc_bcc(m68k_getpc() + (uae_s32)offs + 2);\n");
+#else
+ printf ("\t\t\tm68k_incpc((uae_s32)offs + 2);\n");
+#endif
+ fill_prefetch_0 ();
+#if PALM_PERF
+ printf ("#if HAS_PROFILING\n");
+ printf (" if (gProfilingEnabled)\n");
+ printf (" ProfileIncrementClock(2);\n");
+ printf ("#endif\n");
+#endif // PALM_PERF
+ printf ("\t\tgoto %s;\n", endlabelstr);
+ printf ("\t\t}\n");
+ printf ("\t}\n");
+ need_endlabel = 1;
+#if PALM_PERF
+ // ¥¥¥Êstill missing a read cycle somewhere, when counter expires
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("DBcc 12(2/0) if cc, 10(2/0) if not -1, 14(3/0) if -1\n");}
+#endif // PALM_PERF
+ break;
+ case i_Scc:
+ genamode (curi->smode, "srcreg", curi->size, "src", 2, 0);
+ start_brace ();
+ printf ("\tint val = cctrue(%d) ? 0xff : 0;\n", curi->cc);
+#if PALM_PERF
+ if (curi->smode <= Areg)
+ {
+ printf ("#if HAS_PROFILING\n");
+ printf (" if (gProfilingEnabled)\n");
+ printf (" ProfileIncrementClock(2);\n");
+ printf ("#endif\n");
+ }
+#endif // PALM_PERF
+ genastore ("val", curi->smode, "srcreg", curi->size, "src");
+#if PALM_PERF
+ if (curi->smode > Areg)
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("Scc <M> 8(1/1)+\n");}
+ else
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("Scc Rn 4(1/0) if false, 6(1/0) if true\n");}
+#endif // PALM_PERF
+ break;
+ case i_DIVU:
+ printf ("\tuaecptr oldpc = m68k_getpc();\n");
+ genamode (curi->smode, "srcreg", sz_word, "src", 1, 0);
+ genamode (curi->dmode, "dstreg", sz_long, "dst", 1, 0);
+ printf ("\tif(src == 0) { Exception(5,oldpc); goto %s; } else {\n", endlabelstr);
+ printf ("\tuae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;\n");
+ printf ("\tuae_u32 rem = (uae_u32)dst %% (uae_u32)(uae_u16)src;\n");
+ /* The N flag appears to be set each time there is an overflow.
+ * Weird. */
+ printf ("\tif (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else\n\t{\n");
+ genflags (flag_logical, sz_word, "newv", "", "");
+ printf ("\tnewv = (newv & 0xffff) | ((uae_u32)rem << 16);\n");
+ genastore ("newv", curi->dmode, "dstreg", sz_long, "dst");
+ printf ("\t}\n");
+ printf ("\t}\n");
+ insn_n_cycles += 68;
+ need_endlabel = 1;
+#if PALM_PERF
+ // ¥¥¥ DOLATER less than 10% diff between best/worst times, this is worst
+ {extraCycles += 136; readCycles += 1; writeCycles += 0; PERF_COMMENT("DIVU 140(1/0)+*\n");}
+#endif // PALM_PERF
+ break;
+ case i_DIVS:
+ printf ("\tuaecptr oldpc = m68k_getpc();\n");
+ genamode (curi->smode, "srcreg", sz_word, "src", 1, 0);
+ genamode (curi->dmode, "dstreg", sz_long, "dst", 1, 0);
+ printf ("\tif(src == 0) { Exception(5,oldpc); goto %s; } else {\n", endlabelstr);
+ printf ("\tuae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;\n");
+ printf ("\tuae_u16 rem = (uae_s32)dst %% (uae_s32)(uae_s16)src;\n");
+ printf ("\tif ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else\n\t{\n");
+ printf ("\tif (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;\n");
+ genflags (flag_logical, sz_word, "newv", "", "");
+ printf ("\tnewv = (newv & 0xffff) | ((uae_u32)rem << 16);\n");
+ genastore ("newv", curi->dmode, "dstreg", sz_long, "dst");
+ printf ("\t}\n");
+ printf ("\t}\n");
+ insn_n_cycles += 72;
+ need_endlabel = 1;
+#if PALM_PERF
+ // ¥¥¥ DOLATER less than 10% diff between best/worst times, this is worst
+ {extraCycles += 154; readCycles += 1; writeCycles += 0; PERF_COMMENT("DIVS 158(1/0)+*\n");}
+#endif // PALM_PERF
+ break;
+ case i_MULU:
+ genamode (curi->smode, "srcreg", sz_word, "src", 1, 0);
+ genamode (curi->dmode, "dstreg", sz_word, "dst", 1, 0);
+ start_brace ();
+ printf ("\tuae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;\n");
+ genflags (flag_logical, sz_long, "newv", "", "");
+ genastore ("newv", curi->dmode, "dstreg", sz_long, "dst");
+ insn_n_cycles += 32;
+#if PALM_PERF
+ // ¥¥¥ DOLATER 38+2n extra cycles, where n = number of 1s in the <ea>
+ {extraCycles += 66; readCycles += 1; writeCycles += 0; PERF_COMMENT("MULU 70(1/0)+*\n");}
+#endif // PALM_PERF
+ break;
+ case i_MULS:
+ genamode (curi->smode, "srcreg", sz_word, "src", 1, 0);
+ genamode (curi->dmode, "dstreg", sz_word, "dst", 1, 0);
+ start_brace ();
+ printf ("\tuae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;\n");
+ genflags (flag_logical, sz_long, "newv", "", "");
+ genastore ("newv", curi->dmode, "dstreg", sz_long, "dst");
+ insn_n_cycles += 32;
+#if PALM_PERF
+ // ¥¥¥ DOLATER 38+2n extra cycles, where n = number of 01 or 10 patterns in <ea>w/0 at end. $5555 is worst case
+ {extraCycles += 66; readCycles += 1; writeCycles += 0; PERF_COMMENT("MULS 70(1/0)+*\n");}
+#endif // PALM_PERF
+ break;
+ case i_CHK:
+ printf ("\tuaecptr oldpc = m68k_getpc();\n");
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "dst", 1, 0);
+ printf ("\tif ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto %s; }\n", endlabelstr);
+ printf ("\telse if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto %s; }\n", endlabelstr);
+ need_endlabel = 1;
+#if PALM_PERF
+ // ¥¥¥ DOLATER handle extra work if exception happens
+ {extraCycles += 6; readCycles += 1; writeCycles += 0; PERF_COMMENT("CHK 10(1/0)+ if no trap, 40(4/3)+ if trap\n");}
+#endif // PALM_PERF
+ break;
+
+ case i_CHK2:
+ printf ("\tuaecptr oldpc = m68k_getpc();\n");
+ genamode (curi->smode, "srcreg", curi->size, "extra", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "dst", 2, 0);
+ printf ("\t{uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15];\n");
+ switch (curi->size) {
+ case sz_byte:
+ printf ("\tlower=(uae_s32)(uae_s8)get_byte(dsta); upper = (uae_s32)(uae_s8)get_byte(dsta+1);\n");
+ printf ("\tif ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg;\n");
+ break;
+ case sz_word:
+ printf ("\tlower=(uae_s32)(uae_s16)get_word(dsta); upper = (uae_s32)(uae_s16)get_word(dsta+2);\n");
+ printf ("\tif ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg;\n");
+ break;
+ case sz_long:
+ printf ("\tlower=get_long(dsta); upper = get_long(dsta+4);\n");
+ break;
+ default:
+ abort ();
+ }
+ printf ("\tSET_ZFLG (upper == reg || lower == reg);\n");
+ printf ("\tSET_CFLG (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower);\n");
+ printf ("\tif ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto %s; }\n}\n", endlabelstr);
+ need_endlabel = 1;
+#if PALM_PERF
+ // ¥¥¥ DOLATER handle extra work if exception happens
+ {extraCycles += 6; readCycles += 1; writeCycles += 0; PERF_COMMENT("CHK2 10(1/0)+ if no trap, 40(4/3)+ if trap\n");}
+#endif // PALM_PERF
+ break;
+
+ case i_ASR:
+ genamode (curi->smode, "srcreg", curi->size, "cnt", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "data", 1, 0);
+ start_brace ();
+ switch (curi->size) {
+ case sz_byte: printf ("\tuae_u32 val = (uae_u8)data;\n"); break;
+ case sz_word: printf ("\tuae_u32 val = (uae_u16)data;\n"); break;
+ case sz_long: printf ("\tuae_u32 val = data;\n"); break;
+ default: abort ();
+ }
+ printf ("\tuae_u32 sign = (%s & val) >> %d;\n", cmask (curi->size), bit_size (curi->size) - 1);
+ printf ("\tcnt &= 63;\n");
+ printf ("\tCLEAR_CZNV;\n");
+ printf ("\tif (cnt >= %d) {\n", bit_size (curi->size));
+ printf ("\t\tval = %s & (uae_u32)-sign;\n", bit_mask (curi->size));
+ printf ("\t\tSET_CFLG (sign);\n");
+ duplicate_carry ();
+ if (source_is_imm1_8 (curi))
+ printf ("\t} else {\n");
+ else
+ printf ("\t} else if (cnt > 0) {\n");
+ printf ("\t\tval >>= cnt - 1;\n");
+ printf ("\t\tSET_CFLG (val & 1);\n");
+ duplicate_carry ();
+ printf ("\t\tval >>= 1;\n");
+ printf ("\t\tval |= (%s << (%d - cnt)) & (uae_u32)-sign;\n",
+ bit_mask (curi->size),
+ bit_size (curi->size));
+ printf ("\t\tval &= %s;\n", bit_mask (curi->size));
+ printf ("\t}\n");
+ genflags (flag_logical_noclobber, curi->size, "val", "", "");
+ genastore ("val", curi->dmode, "dstreg", curi->size, "data");
+#if PALM_PERF
+ printf ("#if HAS_PROFILING\n");
+ printf (" if (gProfilingEnabled)\n");
+ printf (" ProfileIncrementClock(2*cnt);\n");
+ printf ("#endif\n");
+#endif // PALM_PERF
+#if PALM_PERF
+ if (curi->dmode < Areg)
+ if (curi->size <= sz_word)
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("ASR 6+2n(1/0), n=shifts\n");}
+ else
+ {extraCycles += 4; readCycles += 1; writeCycles += 0; PERF_COMMENT("ASR 6+2n(1/0), n=shifts\n");}
+ else
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("ASR M 8(1/1)\n");}
+#endif // PALM_PERF
+ break;
+ case i_ASL:
+ genamode (curi->smode, "srcreg", curi->size, "cnt", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "data", 1, 0);
+ start_brace ();
+ switch (curi->size) {
+ case sz_byte: printf ("\tuae_u32 val = (uae_u8)data;\n"); break;
+ case sz_word: printf ("\tuae_u32 val = (uae_u16)data;\n"); break;
+ case sz_long: printf ("\tuae_u32 val = data;\n"); break;
+ default: abort ();
+ }
+ printf ("\tcnt &= 63;\n");
+ printf ("\tCLEAR_CZNV;\n");
+ printf ("\tif (cnt >= %d) {\n", bit_size (curi->size));
+ printf ("\t\tSET_VFLG (val != 0);\n");
+ printf ("\t\tSET_CFLG (cnt == %d ? val & 1 : 0);\n",
+ bit_size (curi->size));
+ duplicate_carry ();
+ printf ("\t\tval = 0;\n");
+ if (source_is_imm1_8 (curi))
+ printf ("\t} else {\n");
+ else
+ printf ("\t} else if (cnt > 0) {\n");
+ printf ("\t\tuae_u32 mask = (%s << (%d - cnt)) & %s;\n",
+ bit_mask (curi->size),
+ bit_size (curi->size) - 1,
+ bit_mask (curi->size));
+ printf ("\t\tSET_VFLG ((val & mask) != mask && (val & mask) != 0);\n");
+ printf ("\t\tval <<= cnt - 1;\n");
+ printf ("\t\tSET_CFLG ((val & %s) >> %d);\n", cmask (curi->size), bit_size (curi->size) - 1);
+ duplicate_carry ();
+ printf ("\t\tval <<= 1;\n");
+ printf ("\t\tval &= %s;\n", bit_mask (curi->size));
+ printf ("\t}\n");
+ genflags (flag_logical_noclobber, curi->size, "val", "", "");
+ genastore ("val", curi->dmode, "dstreg", curi->size, "data");
+#if PALM_PERF
+ printf ("#if HAS_PROFILING\n");
+ printf (" if (gProfilingEnabled)\n");
+ printf (" ProfileIncrementClock(2*cnt);\n");
+ printf ("#endif\n");
+#endif // PALM_PERF
+#if PALM_PERF
+ if (curi->dmode < Areg)
+ if (curi->size <= sz_word)
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("ASL 6+2n(1/0), n=shifts\n");}
+ else
+ {extraCycles += 4; readCycles += 1; writeCycles += 0; PERF_COMMENT("ASL 6+2n(1/0), n=shifts\n");}
+ else
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("ASL M 8(1/1)\n");}
+#endif // PALM_PERF
+ break;
+ case i_LSR:
+ genamode (curi->smode, "srcreg", curi->size, "cnt", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "data", 1, 0);
+ start_brace ();
+ switch (curi->size) {
+ case sz_byte: printf ("\tuae_u32 val = (uae_u8)data;\n"); break;
+ case sz_word: printf ("\tuae_u32 val = (uae_u16)data;\n"); break;
+ case sz_long: printf ("\tuae_u32 val = data;\n"); break;
+ default: abort ();
+ }
+ printf ("\tcnt &= 63;\n");
+ printf ("\tCLEAR_CZNV;\n");
+ printf ("\tif (cnt >= %d) {\n", bit_size (curi->size));
+ printf ("\t\tSET_CFLG ((cnt == %d) & (val >> %d));\n",
+ bit_size (curi->size), bit_size (curi->size) - 1);
+ duplicate_carry ();
+ printf ("\t\tval = 0;\n");
+ if (source_is_imm1_8 (curi))
+ printf ("\t} else {\n");
+ else
+ printf ("\t} else if (cnt > 0) {\n");
+ printf ("\t\tval >>= cnt - 1;\n");
+ printf ("\t\tSET_CFLG (val & 1);\n");
+ duplicate_carry ();
+ printf ("\t\tval >>= 1;\n");
+ printf ("\t}\n");
+ genflags (flag_logical_noclobber, curi->size, "val", "", "");
+ genastore ("val", curi->dmode, "dstreg", curi->size, "data");
+#if PALM_PERF
+ printf ("#if HAS_PROFILING\n");
+ printf (" if (gProfilingEnabled)\n");
+ printf (" ProfileIncrementClock(2*cnt);\n");
+ printf ("#endif\n");
+#endif // PALM_PERF
+#if PALM_PERF
+ if (curi->dmode < Areg)
+ if (curi->size <= sz_word)
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("LSR 6+2n(1/0), n=shifts\n");}
+ else
+ {extraCycles += 4; readCycles += 1; writeCycles += 0; PERF_COMMENT("LSR 6+2n(1/0), n=shifts\n");}
+ else
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("LSR M 8(1/1)\n");}
+#endif // PALM_PERF
+ break;
+ case i_LSL:
+ genamode (curi->smode, "srcreg", curi->size, "cnt", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "data", 1, 0);
+ start_brace ();
+ switch (curi->size) {
+ case sz_byte: printf ("\tuae_u32 val = (uae_u8)data;\n"); break;
+ case sz_word: printf ("\tuae_u32 val = (uae_u16)data;\n"); break;
+ case sz_long: printf ("\tuae_u32 val = data;\n"); break;
+ default: abort ();
+ }
+ printf ("\tcnt &= 63;\n");
+ printf ("\tCLEAR_CZNV;\n");
+ printf ("\tif (cnt >= %d) {\n", bit_size (curi->size));
+ printf ("\t\tSET_CFLG (cnt == %d ? val & 1 : 0);\n",
+ bit_size (curi->size));
+ duplicate_carry ();
+ printf ("\t\tval = 0;\n");
+ if (source_is_imm1_8 (curi))
+ printf ("\t} else {\n");
+ else
+ printf ("\t} else if (cnt > 0) {\n");
+ printf ("\t\tval <<= (cnt - 1);\n");
+ printf ("\t\tSET_CFLG ((val & %s) >> %d);\n", cmask (curi->size), bit_size (curi->size) - 1);
+ duplicate_carry ();
+ printf ("\t\tval <<= 1;\n");
+ printf ("\tval &= %s;\n", bit_mask (curi->size));
+ printf ("\t}\n");
+ genflags (flag_logical_noclobber, curi->size, "val", "", "");
+ genastore ("val", curi->dmode, "dstreg", curi->size, "data");
+#if PALM_PERF
+ printf ("#if HAS_PROFILING\n");
+ printf (" if (gProfilingEnabled)\n");
+ printf (" ProfileIncrementClock(2*cnt);\n");
+ printf ("#endif\n");
+#endif // PALM_PERF
+#if PALM_PERF
+ if (curi->dmode < Areg)
+ if (curi->size <= sz_word)
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("LSL 6+2n(1/0), n=shifts\n");}
+ else
+ {extraCycles += 4; readCycles += 1; writeCycles += 0; PERF_COMMENT("LSL 6+2n(1/0), n=shifts\n");}
+ else
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("LSL M 8(1/1)\n");}
+#endif // PALM_PERF
+ break;
+ case i_ROL:
+ genamode (curi->smode, "srcreg", curi->size, "cnt", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "data", 1, 0);
+ start_brace ();
+ switch (curi->size) {
+ case sz_byte: printf ("\tuae_u32 val = (uae_u8)data;\n"); break;
+ case sz_word: printf ("\tuae_u32 val = (uae_u16)data;\n"); break;
+ case sz_long: printf ("\tuae_u32 val = data;\n"); break;
+ default: abort ();
+ }
+ printf ("\tcnt &= 63;\n");
+ printf ("\tCLEAR_CZNV;\n");
+ if (source_is_imm1_8 (curi))
+ printf ("{");
+ else
+ printf ("\tif (cnt > 0) {\n");
+ printf ("\tuae_u32 loval;\n");
+ printf ("\tcnt &= %d;\n", bit_size (curi->size) - 1);
+ printf ("\tloval = val >> (%d - cnt);\n", bit_size (curi->size));
+ printf ("\tval <<= cnt;\n");
+ printf ("\tval |= loval;\n");
+ printf ("\tval &= %s;\n", bit_mask (curi->size));
+ printf ("\tSET_CFLG (val & 1);\n");
+ printf ("}\n");
+ genflags (flag_logical_noclobber, curi->size, "val", "", "");
+ genastore ("val", curi->dmode, "dstreg", curi->size, "data");
+#if PALM_PERF
+ printf ("#if HAS_PROFILING\n");
+ printf (" if (gProfilingEnabled)\n");
+ printf (" ProfileIncrementClock(2*cnt);\n");
+ printf ("#endif\n");
+#endif // PALM_PERF
+#if PALM_PERF
+ if (curi->dmode < Areg)
+ if (curi->size <= sz_word)
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("ROL 6+2n(1/0), n=shifts\n");}
+ else
+ {extraCycles += 4; readCycles += 1; writeCycles += 0; PERF_COMMENT("ROL 6+2n(1/0), n=shifts\n");}
+ else
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("ROL M 8(1/1)\n");}
+#endif // PALM_PERF
+ break;
+ case i_ROR:
+#if PALM_CODEGEN_BUG
+ genamode (curi->smode, "srcreg", curi->size, "cnt", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "data", 1, 0);
+ start_brace ();
+ switch (curi->size) {
+ case sz_byte: printf ("\tuae_u8 val = data;\n"); break;
+ case sz_word: printf ("\tuae_u16 val = data;\n"); break;
+ case sz_long: printf ("\tuae_u32 val = data;\n"); break;
+ default: abort ();
+ }
+ switch (curi->size) {
+ case sz_byte: printf ("\tuae_u32 cmask = 0x80;\n"); break;
+ case sz_word: printf ("\tuae_u32 cmask = 0x8000;\n"); break;
+ case sz_long: printf ("\tuae_u32 cmask = 0x80000000;\n"); break;
+ default: abort ();
+ }
+ printf ("\tcnt &= 63;\n");
+ printf ("\tif (!cnt) { CFLG = 0; } else {");
+ printf ("\tuae_u32 carry;\n");
+ printf ("\tfor(;cnt;--cnt){\n");
+ printf ("\tcarry=val&1; val = val >> 1;\n");
+ printf ("\tif(carry) val |= cmask;\n");
+ printf ("\t}\n");
+ printf ("\tSET_CFLG (carry);\n}\n");
+ printf ("\tSET_NFLG ((val & cmask) != 0); SET_ZFLG (val == 0); SET_VFLG (0);\n");
+#else // PALM_CODEGEN_BUG -- Doing it this way runs afoul of a codegen bug in MWPPC 2.3.1 (in CW 5.2)
+ genamode (curi->smode, "srcreg", curi->size, "cnt", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "data", 1, 0);
+ start_brace ();
+ switch (curi->size) {
+ case sz_byte: printf ("\tuae_u32 val = (uae_u8)data;\n"); break;
+ case sz_word: printf ("\tuae_u32 val = (uae_u16)data;\n"); break;
+ case sz_long: printf ("\tuae_u32 val = data;\n"); break;
+ default: abort ();
+ }
+ printf ("\tcnt &= 63;\n");
+ printf ("\tCLEAR_CZNV;\n");
+ if (source_is_imm1_8 (curi))
+ printf ("{");
+ else
+ printf ("\tif (cnt > 0) {");
+ printf ("\tuae_u32 hival;\n");
+ printf ("\tcnt &= %d;\n", bit_size (curi->size) - 1);
+ printf ("\thival = val << (%d - cnt);\n", bit_size (curi->size));
+ printf ("\tval >>= cnt;\n");
+ printf ("\tval |= hival;\n");
+ printf ("\tval &= %s;\n", bit_mask (curi->size));
+ printf ("\tSET_CFLG ((val & %s) >> %d);\n", cmask (curi->size), bit_size (curi->size) - 1);
+ printf ("\t}\n");
+ genflags (flag_logical_noclobber, curi->size, "val", "", "");
+#endif // PALM_CODEGEN_BUG
+ genastore ("val", curi->dmode, "dstreg", curi->size, "data");
+#if PALM_PERF
+ printf ("#if HAS_PROFILING\n");
+ printf (" if (gProfilingEnabled)\n");
+ printf (" ProfileIncrementClock(2*cnt);\n");
+ printf ("#endif\n");
+#endif // PALM_PERF
+#if PALM_PERF
+ if (curi->dmode < Areg)
+ if (curi->size <= sz_word)
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("ROR 6+2n(1/0), n=shifts\n");}
+ else
+ {extraCycles += 4; readCycles += 1; writeCycles += 0; PERF_COMMENT("ROR 6+2n(1/0), n=shifts\n");}
+ else
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("ROR M 8(1/1)\n");}
+#endif // PALM_PERF
+ break;
+ case i_ROXL:
+ genamode (curi->smode, "srcreg", curi->size, "cnt", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "data", 1, 0);
+ start_brace ();
+ switch (curi->size) {
+ case sz_byte: printf ("\tuae_u32 val = (uae_u8)data;\n"); break;
+ case sz_word: printf ("\tuae_u32 val = (uae_u16)data;\n"); break;
+ case sz_long: printf ("\tuae_u32 val = data;\n"); break;
+ default: abort ();
+ }
+ printf ("\tcnt &= 63;\n");
+ printf ("\tCLEAR_CZNV;\n");
+ if (! source_is_imm1_8 (curi))
+ force_range_for_rox ("cnt", curi->size);
+ if (source_is_imm1_8 (curi))
+ printf ("{");
+ else
+ printf ("\tif (cnt > 0) {\n");
+ printf ("\tcnt--;\n");
+ printf ("\t{\n\tuae_u32 carry;\n");
+ printf ("\tuae_u32 loval = val >> (%d - cnt);\n", bit_size (curi->size) - 1);
+ printf ("\tcarry = loval & 1;\n");
+ printf ("\tval = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1);\n");
+ printf ("\tSET_XFLG (carry);\n");
+ printf ("\tval &= %s;\n", bit_mask (curi->size));
+ printf ("\t} }\n");
+ printf ("\tSET_CFLG (GET_XFLG);\n");
+ genflags (flag_logical_noclobber, curi->size, "val", "", "");
+ genastore ("val", curi->dmode, "dstreg", curi->size, "data");
+#if PALM_PERF
+ printf ("#if HAS_PROFILING\n");
+ printf (" if (gProfilingEnabled)\n");
+ printf (" ProfileIncrementClock(2*cnt);\n");
+ printf ("#endif\n");
+#endif // PALM_PERF
+#if PALM_PERF
+ if (curi->dmode < Areg)
+ if (curi->size <= sz_word)
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("ROXL 6+2n(1/0), n=shifts\n");}
+ else
+ {extraCycles += 4; readCycles += 1; writeCycles += 0; PERF_COMMENT("ROXL 6+2n(1/0), n=shifts\n");}
+ else
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("ROXL M 8(1/1)\n");}
+#endif // PALM_PERF
+ break;
+ case i_ROXR:
+ genamode (curi->smode, "srcreg", curi->size, "cnt", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "data", 1, 0);
+ start_brace ();
+ switch (curi->size) {
+ case sz_byte: printf ("\tuae_u32 val = (uae_u8)data;\n"); break;
+ case sz_word: printf ("\tuae_u32 val = (uae_u16)data;\n"); break;
+ case sz_long: printf ("\tuae_u32 val = data;\n"); break;
+ default: abort ();
+ }
+ printf ("\tcnt &= 63;\n");
+ printf ("\tCLEAR_CZNV;\n");
+ if (! source_is_imm1_8 (curi))
+ force_range_for_rox ("cnt", curi->size);
+ if (source_is_imm1_8 (curi))
+ printf ("{");
+ else
+ printf ("\tif (cnt > 0) {\n");
+ printf ("\tcnt--;\n");
+ printf ("\t{\n\tuae_u32 carry;\n");
+ printf ("\tuae_u32 hival = (val << 1) | GET_XFLG;\n");
+ printf ("\thival <<= (%d - cnt);\n", bit_size (curi->size) - 1);
+ printf ("\tval >>= cnt;\n");
+ printf ("\tcarry = val & 1;\n");
+ printf ("\tval >>= 1;\n");
+ printf ("\tval |= hival;\n");
+ printf ("\tSET_XFLG (carry);\n");
+ printf ("\tval &= %s;\n", bit_mask (curi->size));
+ printf ("\t} }\n");
+ printf ("\tSET_CFLG (GET_XFLG);\n");
+ genflags (flag_logical_noclobber, curi->size, "val", "", "");
+ genastore ("val", curi->dmode, "dstreg", curi->size, "data");
+#if PALM_PERF
+ printf ("#if HAS_PROFILING\n");
+ printf (" if (gProfilingEnabled)\n");
+ printf (" ProfileIncrementClock(2*cnt);\n");
+ printf ("#endif\n");
+#endif // PALM_PERF
+#if PALM_PERF
+ if (curi->dmode < Areg)
+ if (curi->size <= sz_word)
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("ROXR 6+2n(1/0), n=shifts\n");}
+ else
+ {extraCycles += 4; readCycles += 1; writeCycles += 0; PERF_COMMENT("ROXR 6+2n(1/0), n=shifts\n");}
+ else
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("ROXR M 8(1/1)\n");}
+#endif // PALM_PERF
+ break;
+ case i_ASRW:
+ genamode (curi->smode, "srcreg", curi->size, "data", 1, 0);
+ start_brace ();
+ switch (curi->size) {
+ case sz_byte: printf ("\tuae_u32 val = (uae_u8)data;\n"); break;
+ case sz_word: printf ("\tuae_u32 val = (uae_u16)data;\n"); break;
+ case sz_long: printf ("\tuae_u32 val = data;\n"); break;
+ default: abort ();
+ }
+ printf ("\tuae_u32 sign = %s & val;\n", cmask (curi->size));
+ printf ("\tuae_u32 cflg = val & 1;\n");
+ printf ("\tval = (val >> 1) | sign;\n");
+ genflags (flag_logical, curi->size, "val", "", "");
+ printf ("\tSET_CFLG (cflg);\n");
+ duplicate_carry ();
+ genastore ("val", curi->smode, "srcreg", curi->size, "data");
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("ASR M 8(1/1)+\n");}
+#endif // PALM_PERF
+ break;
+ case i_ASLW:
+ genamode (curi->smode, "srcreg", curi->size, "data", 1, 0);
+ start_brace ();
+ switch (curi->size) {
+ case sz_byte: printf ("\tuae_u32 val = (uae_u8)data;\n"); break;
+ case sz_word: printf ("\tuae_u32 val = (uae_u16)data;\n"); break;
+ case sz_long: printf ("\tuae_u32 val = data;\n"); break;
+ default: abort ();
+ }
+ printf ("\tuae_u32 sign = %s & val;\n", cmask (curi->size));
+ printf ("\tuae_u32 sign2;\n");
+ printf ("\tval <<= 1;\n");
+ genflags (flag_logical, curi->size, "val", "", "");
+ printf ("\tsign2 = %s & val;\n", cmask (curi->size));
+ printf ("\tSET_CFLG (sign != 0);\n");
+ duplicate_carry ();
+
+ printf ("\tSET_VFLG (GET_VFLG | (sign2 != sign));\n");
+ genastore ("val", curi->smode, "srcreg", curi->size, "data");
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("ASL M 8(1/1)+\n");}
+#endif // PALM_PERF
+ break;
+ case i_LSRW:
+ genamode (curi->smode, "srcreg", curi->size, "data", 1, 0);
+ start_brace ();
+ switch (curi->size) {
+ case sz_byte: printf ("\tuae_u32 val = (uae_u8)data;\n"); break;
+ case sz_word: printf ("\tuae_u32 val = (uae_u16)data;\n"); break;
+ case sz_long: printf ("\tuae_u32 val = data;\n"); break;
+ default: abort ();
+ }
+ printf ("\tuae_u32 carry = val & 1;\n");
+ printf ("\tval >>= 1;\n");
+ genflags (flag_logical, curi->size, "val", "", "");
+ printf ("SET_CFLG (carry);\n");
+ duplicate_carry ();
+ genastore ("val", curi->smode, "srcreg", curi->size, "data");
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("LSR M 8(1/1)+\n");}
+#endif // PALM_PERF
+ break;
+ case i_LSLW:
+ genamode (curi->smode, "srcreg", curi->size, "data", 1, 0);
+ start_brace ();
+ switch (curi->size) {
+ case sz_byte: printf ("\tuae_u8 val = data;\n"); break;
+ case sz_word: printf ("\tuae_u16 val = data;\n"); break;
+ case sz_long: printf ("\tuae_u32 val = data;\n"); break;
+ default: abort ();
+ }
+ printf ("\tuae_u32 carry = val & %s;\n", cmask (curi->size));
+ printf ("\tval <<= 1;\n");
+ genflags (flag_logical, curi->size, "val", "", "");
+ printf ("SET_CFLG (carry >> %d);\n", bit_size (curi->size) - 1);
+ duplicate_carry ();
+ genastore ("val", curi->smode, "srcreg", curi->size, "data");
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("LSL M 8(1/1)+\n");}
+#endif // PALM_PERF
+ break;
+ case i_ROLW:
+ genamode (curi->smode, "srcreg", curi->size, "data", 1, 0);
+ start_brace ();
+ switch (curi->size) {
+ case sz_byte: printf ("\tuae_u8 val = data;\n"); break;
+ case sz_word: printf ("\tuae_u16 val = data;\n"); break;
+ case sz_long: printf ("\tuae_u32 val = data;\n"); break;
+ default: abort ();
+ }
+ printf ("\tuae_u32 carry = val & %s;\n", cmask (curi->size));
+ printf ("\tval <<= 1;\n");
+ printf ("\tif (carry) val |= 1;\n");
+ genflags (flag_logical, curi->size, "val", "", "");
+ printf ("SET_CFLG (carry >> %d);\n", bit_size (curi->size) - 1);
+ genastore ("val", curi->smode, "srcreg", curi->size, "data");
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("ROL M 8(1/1)+\n");}
+#endif // PALM_PERF
+ break;
+ case i_RORW:
+ genamode (curi->smode, "srcreg", curi->size, "data", 1, 0);
+ start_brace ();
+ switch (curi->size) {
+ case sz_byte: printf ("\tuae_u8 val = data;\n"); break;
+ case sz_word: printf ("\tuae_u16 val = data;\n"); break;
+ case sz_long: printf ("\tuae_u32 val = data;\n"); break;
+ default: abort ();
+ }
+ printf ("\tuae_u32 carry = val & 1;\n");
+ printf ("\tval >>= 1;\n");
+ printf ("\tif (carry) val |= %s;\n", cmask (curi->size));
+ genflags (flag_logical, curi->size, "val", "", "");
+ printf ("SET_CFLG (carry);\n");
+ genastore ("val", curi->smode, "srcreg", curi->size, "data");
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("ROR M 8(1/1)+\n");}
+#endif // PALM_PERF
+ break;
+ case i_ROXLW:
+ genamode (curi->smode, "srcreg", curi->size, "data", 1, 0);
+ start_brace ();
+ switch (curi->size) {
+ case sz_byte: printf ("\tuae_u8 val = data;\n"); break;
+ case sz_word: printf ("\tuae_u16 val = data;\n"); break;
+ case sz_long: printf ("\tuae_u32 val = data;\n"); break;
+ default: abort ();
+ }
+ printf ("\tuae_u32 carry = val & %s;\n", cmask (curi->size));
+ printf ("\tval <<= 1;\n");
+ printf ("\tif (GET_XFLG) val |= 1;\n");
+ genflags (flag_logical, curi->size, "val", "", "");
+ printf ("SET_CFLG (carry >> %d);\n", bit_size (curi->size) - 1);
+ duplicate_carry ();
+ genastore ("val", curi->smode, "srcreg", curi->size, "data");
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("ROXL M 8(1/1)+\n");}
+#endif // PALM_PERF
+ break;
+ case i_ROXRW:
+ genamode (curi->smode, "srcreg", curi->size, "data", 1, 0);
+ start_brace ();
+ switch (curi->size) {
+ case sz_byte: printf ("\tuae_u8 val = data;\n"); break;
+ case sz_word: printf ("\tuae_u16 val = data;\n"); break;
+ case sz_long: printf ("\tuae_u32 val = data;\n"); break;
+ default: abort ();
+ }
+ printf ("\tuae_u32 carry = val & 1;\n");
+ printf ("\tval >>= 1;\n");
+ printf ("\tif (GET_XFLG) val |= %s;\n", cmask (curi->size));
+ genflags (flag_logical, curi->size, "val", "", "");
+ printf ("SET_CFLG (carry);\n");
+ duplicate_carry ();
+ genastore ("val", curi->smode, "srcreg", curi->size, "data");
+#if PALM_PERF
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("ROXR M 8(1/1)+\n");}
+#endif // PALM_PERF
+ break;
+ case i_MOVEC2:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ start_brace ();
+ printf ("\tint regno = (src >> 12) & 15;\n");
+ printf ("\tuae_u32 *regp = regs.regs + regno;\n");
+ printf ("\tm68k_movec2(src & 0xFFF, regp);\n");
+ break;
+ case i_MOVE2C:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ start_brace ();
+ printf ("\tint regno = (src >> 12) & 15;\n");
+ printf ("\tuae_u32 *regp = regs.regs + regno;\n");
+ printf ("\tm68k_move2c(src & 0xFFF, regp);\n");
+ break;
+ case i_CAS:
+ {
+ int old_brace_level;
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "dst", 1, 0);
+ start_brace ();
+ printf ("\tint ru = (src >> 6) & 7;\n");
+ printf ("\tint rc = src & 7;\n");
+ genflags (flag_cmp, curi->size, "newv", "m68k_dreg(regs, rc)", "dst");
+ printf ("\tif (GET_ZFLG)");
+ old_brace_level = n_braces;
+ start_brace ();
+ genastore ("(m68k_dreg(regs, ru))", curi->dmode, "dstreg", curi->size, "dst");
+ pop_braces (old_brace_level);
+ printf ("else");
+ start_brace ();
+ printf ("m68k_dreg(regs, rc) = dst;\n");
+ pop_braces (old_brace_level);
+ }
+ break;
+ case i_CAS2:
+ genamode (curi->smode, "srcreg", curi->size, "extra", 1, 0);
+ printf ("\tuae_u32 rn1 = regs.regs[(extra >> 28) & 15];\n");
+ printf ("\tuae_u32 rn2 = regs.regs[(extra >> 12) & 15];\n");
+ if (curi->size == sz_word) {
+ int old_brace_level = n_braces;
+ printf ("\tuae_u16 dst1 = get_word(rn1), dst2 = get_word(rn2);\n");
+ genflags (flag_cmp, curi->size, "newv", "m68k_dreg(regs, (extra >> 16) & 7)", "dst1");
+ printf ("\tif (GET_ZFLG) {\n");
+ genflags (flag_cmp, curi->size, "newv", "m68k_dreg(regs, extra & 7)", "dst2");
+ printf ("\tif (GET_ZFLG) {\n");
+ printf ("\tput_word(rn1, m68k_dreg(regs, (extra >> 22) & 7));\n");
+ printf ("\tput_word(rn1, m68k_dreg(regs, (extra >> 6) & 7));\n");
+ printf ("\t}}\n");
+ pop_braces (old_brace_level);
+ printf ("\tif (! GET_ZFLG) {\n");
+ printf ("\tm68k_dreg(regs, (extra >> 22) & 7) = (m68k_dreg(regs, (extra >> 22) & 7) & ~0xffff) | (dst1 & 0xffff);\n");
+ printf ("\tm68k_dreg(regs, (extra >> 6) & 7) = (m68k_dreg(regs, (extra >> 6) & 7) & ~0xffff) | (dst2 & 0xffff);\n");
+ printf ("\t}\n");
+ } else {
+ int old_brace_level = n_braces;
+ printf ("\tuae_u32 dst1 = get_long(rn1), dst2 = get_long(rn2);\n");
+ genflags (flag_cmp, curi->size, "newv", "m68k_dreg(regs, (extra >> 16) & 7)", "dst1");
+ printf ("\tif (GET_ZFLG) {\n");
+ genflags (flag_cmp, curi->size, "newv", "m68k_dreg(regs, extra & 7)", "dst2");
+ printf ("\tif (GET_ZFLG) {\n");
+ printf ("\tput_long(rn1, m68k_dreg(regs, (extra >> 22) & 7));\n");
+ printf ("\tput_long(rn1, m68k_dreg(regs, (extra >> 6) & 7));\n");
+ printf ("\t}}\n");
+ pop_braces (old_brace_level);
+ printf ("\tif (! GET_ZFLG) {\n");
+ printf ("\tm68k_dreg(regs, (extra >> 22) & 7) = dst1;\n");
+ printf ("\tm68k_dreg(regs, (extra >> 6) & 7) = dst2;\n");
+ printf ("\t}\n");
+ }
+ break;
+ case i_MOVES: /* ignore DFC and SFC because we have no MMU */
+ {
+ int old_brace_level;
+ genamode (curi->smode, "srcreg", curi->size, "extra", 1, 0);
+ printf ("\tif (extra & 0x800)\n");
+ old_brace_level = n_braces;
+ start_brace ();
+ printf ("\tuae_u32 src = regs.regs[(extra >> 12) & 15];\n");
+ genamode (curi->dmode, "dstreg", curi->size, "dst", 2, 0);
+ genastore ("src", curi->dmode, "dstreg", curi->size, "dst");
+ pop_braces (old_brace_level);
+ printf ("else");
+ start_brace ();
+ genamode (curi->dmode, "dstreg", curi->size, "src", 1, 0);
+ printf ("\tif (extra & 0x8000) {\n");
+ switch (curi->size) {
+ case sz_byte: printf ("\tm68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src;\n"); break;
+ case sz_word: printf ("\tm68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src;\n"); break;
+ case sz_long: printf ("\tm68k_areg(regs, (extra >> 12) & 7) = src;\n"); break;
+ default: abort ();
+ }
+ printf ("\t} else {\n");
+ genastore ("src", Dreg, "(extra >> 12) & 7", curi->size, "");
+ printf ("\t}\n");
+ pop_braces (old_brace_level);
+ }
+ break;
+ case i_BKPT: /* only needed for hardware emulators */
+ sync_m68k_pc ();
+ printf ("\top_illg(opcode);\n");
+ break;
+ case i_CALLM: /* not present in 68030 */
+ sync_m68k_pc ();
+ printf ("\top_illg(opcode);\n");
+ break;
+ case i_RTM: /* not present in 68030 */
+ sync_m68k_pc ();
+ printf ("\top_illg(opcode);\n");
+ break;
+ case i_TRAPcc:
+ if (curi->smode != am_unknown && curi->smode != am_illg)
+ genamode (curi->smode, "srcreg", curi->size, "dummy", 1, 0);
+ printf ("\tif (cctrue(%d)) { Exception(7,m68k_getpc()); goto %s; }\n", curi->cc, endlabelstr);
+ need_endlabel = 1;
+ break;
+ case i_DIVL:
+ sync_m68k_pc ();
+ start_brace ();
+ printf ("\tuaecptr oldpc = m68k_getpc();\n");
+ genamode (curi->smode, "srcreg", curi->size, "extra", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "dst", 1, 0);
+ sync_m68k_pc ();
+ printf ("\tm68k_divl(opcode, dst, extra, oldpc);\n");
+ break;
+ case i_MULL:
+ genamode (curi->smode, "srcreg", curi->size, "extra", 1, 0);
+ genamode (curi->dmode, "dstreg", curi->size, "dst", 1, 0);
+ sync_m68k_pc ();
+ printf ("\tm68k_mull(opcode, dst, extra);\n");
+ break;
+ case i_BFTST:
+ case i_BFEXTU:
+ case i_BFCHG:
+ case i_BFEXTS:
+ case i_BFCLR:
+ case i_BFFFO:
+ case i_BFSET:
+ case i_BFINS:
+ genamode (curi->smode, "srcreg", curi->size, "extra", 1, 0);
+ genamode (curi->dmode, "dstreg", sz_long, "dst", 2, 0);
+ start_brace ();
+ printf ("\tuae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;\n");
+ printf ("\tint width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;\n");
+ if (curi->dmode == Dreg) {
+ printf ("\tuae_u32 tmp = m68k_dreg(regs, dstreg) << (offset & 0x1f);\n");
+ } else {
+ printf ("\tuae_u32 tmp,bf0,bf1;\n");
+ printf ("\tdsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);\n");
+ printf ("\tbf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;\n");
+ printf ("\ttmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));\n");
+ }
+ printf ("\ttmp >>= (32 - width);\n");
+ printf ("\tSET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);\n");
+ printf ("\tSET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);\n");
+ switch (curi->mnemo) {
+ case i_BFTST:
+ break;
+ case i_BFEXTU:
+ printf ("\tm68k_dreg(regs, (extra >> 12) & 7) = tmp;\n");
+ break;
+ case i_BFCHG:
+ printf ("\ttmp = ~tmp;\n");
+ break;
+ case i_BFEXTS:
+ printf ("\tif (GET_NFLG) tmp |= width == 32 ? 0 : (-1 << width);\n");
+ printf ("\tm68k_dreg(regs, (extra >> 12) & 7) = tmp;\n");
+ break;
+ case i_BFCLR:
+ printf ("\ttmp = 0;\n");
+ break;
+ case i_BFFFO:
+ printf ("\t{ uae_u32 mask = 1 << (width-1);\n");
+ printf ("\twhile (mask) { if (tmp & mask) break; mask >>= 1; offset++; }}\n");
+ printf ("\tm68k_dreg(regs, (extra >> 12) & 7) = offset;\n");
+ break;
+ case i_BFSET:
+ printf ("\ttmp = 0xffffffff;\n");
+ break;
+ case i_BFINS:
+ printf ("\ttmp = m68k_dreg(regs, (extra >> 12) & 7);\n");
+ break;
+ default:
+ break;
+ }
+ if (curi->mnemo == i_BFCHG
+ || curi->mnemo == i_BFCLR
+ || curi->mnemo == i_BFSET
+ || curi->mnemo == i_BFINS)
+ {
+ printf ("\ttmp <<= (32 - width);\n");
+ if (curi->dmode == Dreg) {
+ printf ("\tm68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ((offset & 0x1f) == 0 ? 0 :\n");
+ printf ("\t\t(0xffffffff << (32 - (offset & 0x1f))))) |\n");
+ printf ("\t\t(tmp >> (offset & 0x1f)) |\n");
+ printf ("\t\t(((offset & 0x1f) + width) >= 32 ? 0 :\n");
+ printf (" (m68k_dreg(regs, dstreg) & ((uae_u32)0xffffffff >> ((offset & 0x1f) + width))));\n");
+ } else {
+ printf ("\tbf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) |\n");
+ printf ("\t\t(tmp >> (offset & 7)) |\n");
+ printf ("\t\t(((offset & 7) + width) >= 32 ? 0 :\n");
+ printf ("\t\t (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width))));\n");
+ printf ("\tput_long(dsta,bf0 );\n");
+ printf ("\tif (((offset & 7) + width) > 32) {\n");
+ printf ("\t\tbf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) |\n");
+ printf ("\t\t\t(tmp << (8 - (offset & 7)));\n");
+ printf ("\t\tput_byte(dsta+4,bf1);\n");
+ printf ("\t}\n");
+ }
+ }
+ break;
+ case i_PACK:
+ if (curi->smode == Dreg) {
+ printf ("\tuae_u16 val = m68k_dreg(regs, srcreg) + %s;\n", gen_nextiword ());
+ printf ("\tm68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & 0xffffff00) | ((val >> 4) & 0xf0) | (val & 0xf);\n");
+ } else {
+ printf ("\tuae_u16 val;\n");
+ printf ("\tm68k_areg(regs, srcreg) -= areg_byteinc[srcreg];\n");
+ printf ("\tval = (uae_u16)get_byte(m68k_areg(regs, srcreg));\n");
+ printf ("\tm68k_areg(regs, srcreg) -= areg_byteinc[srcreg];\n");
+ printf ("\tval = (val | ((uae_u16)get_byte(m68k_areg(regs, srcreg)) << 8)) + %s;\n", gen_nextiword ());
+ printf ("\tm68k_areg(regs, dstreg) -= areg_byteinc[dstreg];\n");
+ printf ("\tput_byte(m68k_areg(regs, dstreg),((val >> 4) & 0xf0) | (val & 0xf));\n");
+ }
+ break;
+ case i_UNPK:
+ if (curi->smode == Dreg) {
+ printf ("\tuae_u16 val = m68k_dreg(regs, srcreg);\n");
+ printf ("\tval = (((val << 4) & 0xf00) | (val & 0xf)) + %s;\n", gen_nextiword ());
+ printf ("\tm68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & 0xffff0000) | (val & 0xffff);\n");
+ } else {
+ printf ("\tuae_u16 val;\n");
+ printf ("\tm68k_areg(regs, srcreg) -= areg_byteinc[srcreg];\n");
+ printf ("\tval = (uae_u16)get_byte(m68k_areg(regs, srcreg));\n");
+ printf ("\tval = (((val << 4) & 0xf00) | (val & 0xf)) + %s;\n", gen_nextiword ());
+ printf ("\tm68k_areg(regs, dstreg) -= areg_byteinc[dstreg];\n");
+ printf ("\tput_byte(m68k_areg(regs, dstreg),val);\n");
+ printf ("\tm68k_areg(regs, dstreg) -= areg_byteinc[dstreg];\n");
+ printf ("\tput_byte(m68k_areg(regs, dstreg),val >> 8);\n");
+ }
+ break;
+ case i_TAS:
+ genamode (curi->smode, "srcreg", curi->size, "src", 1, 0);
+ genflags (flag_logical, curi->size, "src", "", "");
+ printf ("\tsrc |= 0x80;\n");
+ genastore ("src", curi->smode, "srcreg", curi->size, "src");
+#if PALM_PERF
+ if (curi->smode <= Areg)
+ {extraCycles += 0; readCycles += 1; writeCycles += 0; PERF_COMMENT("TAS R 4(1/0)\n");}
+ else
+ {extraCycles += 2; readCycles += 1; writeCycles += 0; PERF_COMMENT("TAS M 14(2/1)+\n");}
+#endif // PALM_PERF
+ break;
+ case i_FPP:
+ genamode (curi->smode, "srcreg", curi->size, "extra", 1, 0);
+ sync_m68k_pc ();
+ printf ("\tfpp_opp(opcode,extra);\n");
+ break;
+ case i_FDBcc:
+ genamode (curi->smode, "srcreg", curi->size, "extra", 1, 0);
+ sync_m68k_pc ();
+ printf ("\tfdbcc_opp(opcode,extra);\n");
+ break;
+ case i_FScc:
+ genamode (curi->smode, "srcreg", curi->size, "extra", 1, 0);
+ sync_m68k_pc ();
+ printf ("\tfscc_opp(opcode,extra);\n");
+ break;
+ case i_FTRAPcc:
+ sync_m68k_pc ();
+ start_brace ();
+ printf ("\tuaecptr oldpc = m68k_getpc();\n");
+ if (curi->smode != am_unknown && curi->smode != am_illg)
+ genamode (curi->smode, "srcreg", curi->size, "dummy", 1, 0);
+ sync_m68k_pc ();
+ printf ("\tftrapcc_opp(opcode,oldpc);\n");
+ break;
+ case i_FBcc:
+ sync_m68k_pc ();
+ start_brace ();
+ printf ("\tuaecptr pc = m68k_getpc();\n");
+ genamode (curi->dmode, "srcreg", curi->size, "extra", 1, 0);
+ sync_m68k_pc ();
+ printf ("\tfbcc_opp(opcode,pc,extra);\n");
+ break;
+ case i_FSAVE:
+ sync_m68k_pc ();
+ printf ("\tfsave_opp(opcode);\n");
+ break;
+ case i_FRESTORE:
+ sync_m68k_pc ();
+ printf ("\tfrestore_opp(opcode);\n");
+ break;
+ case i_MMUOP:
+ genamode (curi->smode, "srcreg", curi->size, "extra", 1, 0);
+ sync_m68k_pc ();
+ printf ("\tmmu_op(opcode,extra);\n");
+ break;
+ default:
+ abort ();
+ break;
+ }
+ finish_braces ();
+ sync_m68k_pc ();
+}
+
+static void generate_includes (FILE * f)
+{
+#if PALM_HEADERS
+ fprintf (f, "#include \"UAE.h\"\n");
+ fprintf (f, "#if HAS_PROFILING\n");
+ fprintf (f, "#include \"Profiling.h\"\n");
+ fprintf (f, "#endif\n");
+#else // PALM_HEADERS
+ fprintf (f, "#include \"sysconfig.h\"\n");
+ fprintf (f, "#include \"sysdeps.h\"\n");
+ fprintf (f, "#include \"config.h\"\n");
+ fprintf (f, "#include \"options.h\"\n");
+ fprintf (f, "#include \"memory.h\"\n");
+ fprintf (f, "#include \"custom.h\"\n");
+ fprintf (f, "#include \"readcpu.h\"\n");
+ fprintf (f, "#include \"newcpu.h\"\n");
+ fprintf (f, "#include \"compiler.h\"\n");
+ fprintf (f, "#include \"cputbl.h\"\n");
+#endif // PALM_HEADERS
+}
+
+static int postfix;
+
+static void generate_one_opcode (int rp)
+{
+ int i;
+ uae_u16 smsk, dmsk;
+ long int opcode = opcode_map[rp];
+
+ if (table68k[opcode].mnemo == i_ILLG
+ || table68k[opcode].clev > cpu_level)
+ return;
+
+ for (i = 0; lookuptab[i].name[0]; i++) {
+ if (table68k[opcode].mnemo == lookuptab[i].mnemo)
+ break;
+ }
+
+ if (table68k[opcode].handler != -1)
+ return;
+
+#if PALM_PERF
+ if (opcode_next_clev[rp] != cpu_level) {
+ fprintf (stblfile, "{ op_%lx_%d, 0, %ld, %d, %d, %d }, /* %s */\n", opcode, opcode_last_postfix[rp],
+ opcode, opcode_last_extra[rp], opcode_last_read[rp], opcode_last_write[rp], lookuptab[i].name);
+ return;
+ }
+#else // PALM_PERF
+ if (opcode_next_clev[rp] != cpu_level) {
+ fprintf (stblfile, "{ op_%lx_%d, 0, %ld }, /* %s */\n", opcode, opcode_last_postfix[rp],
+ opcode, lookuptab[i].name);
+ return;
+ }
+ fprintf (stblfile, "{ op_%lx_%d, 0, %ld }, /* %s */\n", opcode, postfix, opcode, lookuptab[i].name);
+#endif // PALM_PERF
+ fprintf (headerfile, "extern cpuop_func op_%lx_%d;\n", opcode, postfix);
+ printf ("unsigned long REGPARAM2 op_%lx_%d(uae_u32 opcode) /* %s */\n{\n", opcode, postfix, lookuptab[i].name);
+
+ switch (table68k[opcode].stype) {
+ case 0: smsk = 7; break;
+ case 1: smsk = 255; break;
+ case 2: smsk = 15; break;
+ case 3: smsk = 7; break;
+ case 4: smsk = 7; break;
+ case 5: smsk = 63; break;
+ default: abort ();
+ }
+ dmsk = 7;
+
+ next_cpu_level = -1;
+ if (table68k[opcode].suse
+ && table68k[opcode].smode != imm && table68k[opcode].smode != imm0
+ && table68k[opcode].smode != imm1 && table68k[opcode].smode != imm2
+ && table68k[opcode].smode != absw && table68k[opcode].smode != absl
+ && table68k[opcode].smode != PC8r && table68k[opcode].smode != PC16)
+ {
+ if (table68k[opcode].spos == -1) {
+ if (((int) table68k[opcode].sreg) >= 128)
+ printf ("\tuae_u32 srcreg = (uae_s32)(uae_s8)%d;\n", (int) table68k[opcode].sreg);
+ else
+ printf ("\tuae_u32 srcreg = %d;\n", (int) table68k[opcode].sreg);
+ } else {
+ char source[100];
+ int pos = table68k[opcode].spos;
+
+#if 0
+ /* Check that we can do the little endian optimization safely. */
+ if (pos < 8 && (smsk >> (8 - pos)) != 0)
+ abort ();
+#endif
+ if (pos)
+ sprintf (source, "((opcode >> %d) & %d)", pos, smsk);
+ else
+ sprintf (source, "(opcode & %d)", smsk);
+
+ if (table68k[opcode].stype == 3)
+ printf ("\tuae_u32 srcreg = imm8_table[%s];\n", source);
+ else if (table68k[opcode].stype == 1)
+ printf ("\tuae_u32 srcreg = (uae_s32)(uae_s8)%s;\n", source);
+ else
+ printf ("\tuae_u32 srcreg = %s;\n", source);
+ }
+ }
+ if (table68k[opcode].duse
+ /* Yes, the dmode can be imm, in case of LINK or DBcc */
+ && table68k[opcode].dmode != imm && table68k[opcode].dmode != imm0
+ && table68k[opcode].dmode != imm1 && table68k[opcode].dmode != imm2
+ && table68k[opcode].dmode != absw && table68k[opcode].dmode != absl)
+ {
+ if (table68k[opcode].dpos == -1) {
+ if (((int) table68k[opcode].dreg) >= 128)
+ printf ("\tuae_u32 dstreg = (uae_s32)(uae_s8)%d;\n", (int) table68k[opcode].dreg);
+ else
+ printf ("\tuae_u32 dstreg = %d;\n", (int) table68k[opcode].dreg);
+ } else {
+ int pos = table68k[opcode].dpos;
+#if 0
+ /* Check that we can do the little endian optimization safely. */
+ if (pos < 8 && (dmsk >> (8 - pos)) != 0)
+ abort ();
+#endif
+ if (pos)
+ printf ("\tuae_u32 dstreg = (opcode >> %d) & %d;\n",
+ pos, dmsk);
+ else
+ printf ("\tuae_u32 dstreg = opcode & %d;\n", dmsk);
+ }
+ }
+ need_endlabel = 0;
+ endlabelno++;
+ sprintf (endlabelstr, "endlabel%d", endlabelno);
+ gen_opcode (opcode);
+ if (need_endlabel)
+ printf ("%s: ;\n", endlabelstr);
+ printf ("return %d;\n", insn_n_cycles);
+ printf ("}\n");
+ opcode_next_clev[rp] = next_cpu_level;
+ opcode_last_postfix[rp] = postfix;
+#if PALM_PERF
+ opcode_last_extra[rp] = extraCycles;
+ opcode_last_read[rp] = readCycles;
+ opcode_last_write[rp] = writeCycles;
+ fprintf (stblfile, "{ op_%lx_%d, 0, %ld, %d, %d, %d }, /* %s */\n",
+ opcode, postfix, opcode, extraCycles,
+ readCycles, writeCycles, lookuptab[i].name);
+#endif // PALM_PERF
+}
+
+static void generate_func (void)
+{
+ int i, j, rp;
+
+ using_prefetch = 0;
+ using_exception_3 = 0;
+#if PALM_MIN
+ {
+ i = 3;
+ cpu_level = 0;
+ for (rp = 0; rp < nr_cpuop_funcs; rp++)
+ opcode_next_clev[rp] = 0;
+#else // PALM_MIN
+ for (i = 0; i < 5; i++) {
+ cpu_level = 3 - i;
+ if (i == 4) {
+ cpu_level = 0;
+ using_prefetch = 1;
+ using_exception_3 = 1;
+ for (rp = 0; rp < nr_cpuop_funcs; rp++)
+ opcode_next_clev[rp] = 0;
+ }
+#endif // PALM_MIN
+ postfix = i;
+ fprintf (stblfile, "struct cputbl op_smalltbl_%d[] = {\n", postfix);
+
+ /* sam: this is for people with low memory (eg. me :)) */
+ printf ("\n"
+ "#if !defined(PART_1) && !defined(PART_2) && "
+ "!defined(PART_3) && !defined(PART_4) && "
+ "!defined(PART_5) && !defined(PART_6) && "
+ "!defined(PART_7) && !defined(PART_8)"
+ "\n"
+ "#define PART_1 1\n"
+ "#define PART_2 1\n"
+ "#define PART_3 1\n"
+ "#define PART_4 1\n"
+ "#define PART_5 1\n"
+ "#define PART_6 1\n"
+ "#define PART_7 1\n"
+ "#define PART_8 1\n"
+ "#endif\n\n");
+
+ rp = 0;
+ for(j=1;j<=8;++j) {
+ int k = (j*nr_cpuop_funcs)/8;
+ printf ("#ifdef PART_%d\n",j);
+ for (; rp < k; rp++)
+ generate_one_opcode (rp);
+ printf ("#endif\n\n");
+ }
+
+ fprintf (stblfile, "{ 0, 0, 0 }};\n");
+ }
+
+}
+
+int main (int argc, char **argv)
+{
+ read_table68k ();
+ do_merges ();
+
+ opcode_map = (int *) xmalloc (sizeof (int) * nr_cpuop_funcs);
+ opcode_last_postfix = (int *) xmalloc (sizeof (int) * nr_cpuop_funcs);
+#if PALM_PERF
+ opcode_last_extra = (int *) xmalloc (sizeof (int) * nr_cpuop_funcs);
+ opcode_last_read = (int *) xmalloc (sizeof (int) * nr_cpuop_funcs);
+ opcode_last_write = (int *) xmalloc (sizeof (int) * nr_cpuop_funcs);
+#endif // PALM_PERF
+ opcode_next_clev = (int *) xmalloc (sizeof (int) * nr_cpuop_funcs);
+ counts = (unsigned long *) xmalloc (65536 * sizeof (unsigned long));
+ read_counts ();
+
+ /* It would be a lot nicer to put all in one file (we'd also get rid of
+ * cputbl.h that way), but cpuopti can't cope. That could be fixed, but
+ * I don't dare to touch the 68k version. */
+
+ headerfile = fopen ("cputbl.h", "wb");
+ stblfile = fopen ("cpustbl.c", "wb");
+ freopen ("cpuemu.c", "wb", stdout);
+
+ generate_includes (stdout);
+ generate_includes (stblfile);
+
+ generate_func ();
+
+ free (table68k);
+ return 0;
+}
diff --git a/SrcShared/UAE/machdep_m68k.h b/SrcShared/UAE/machdep_m68k.h
new file mode 100644
index 0000000..15f740a
--- /dev/null
+++ b/SrcShared/UAE/machdep_m68k.h
@@ -0,0 +1,56 @@
+ /*
+ * UAE - The Un*x Amiga Emulator
+ *
+ * MC68000 emulation - machine dependent bits
+ *
+ * Copyright 1996 Bernd Schmidt
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct flag_struct {
+ unsigned int c;
+ unsigned int z;
+ unsigned int n;
+ unsigned int v;
+ unsigned int x;
+};
+
+extern struct flag_struct regflags;
+
+#define ZFLG (regflags.z)
+#define NFLG (regflags.n)
+#define CFLG (regflags.c)
+#define VFLG (regflags.v)
+#define XFLG (regflags.x)
+
+STATIC_INLINE int cctrue(const int cc)
+{
+ switch(cc){
+ case 0: return 1; /* T */
+ case 1: return 0; /* F */
+ case 2: return !CFLG && !ZFLG; /* HI */
+ case 3: return CFLG || ZFLG; /* LS */
+ case 4: return !CFLG; /* CC */
+ case 5: return CFLG; /* CS */
+ case 6: return !ZFLG; /* NE */
+ case 7: return ZFLG; /* EQ */
+ case 8: return !VFLG; /* VC */
+ case 9: return VFLG; /* VS */
+ case 10:return !NFLG; /* PL */
+ case 11:return NFLG; /* MI */
+ case 12:return NFLG == VFLG; /* GE */
+ case 13:return NFLG != VFLG; /* LT */
+ case 14:return !ZFLG && (NFLG == VFLG); /* GT */
+ case 15:return ZFLG || (NFLG != VFLG); /* LE */
+ }
+ abort();
+ return 0;
+}
+
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/SrcShared/UAE/machdep_maccess.h b/SrcShared/UAE/machdep_maccess.h
new file mode 100644
index 0000000..928abee
--- /dev/null
+++ b/SrcShared/UAE/machdep_maccess.h
@@ -0,0 +1,27 @@
+ /*
+ * UAE - The Un*x Amiga Emulator
+ *
+ * Memory access functions
+ *
+ * Copyright 1996 Bernd Schmidt
+ */
+
+#include "EmMemory.h"
+
+#define do_get_mem_long EmMemDoGet32
+#define do_get_mem_word EmMemDoGet16
+#define do_get_mem_byte EmMemDoGet8
+
+#define do_put_mem_long EmMemDoPut32
+#define do_put_mem_word EmMemDoPut16
+#define do_put_mem_byte EmMemDoPut8
+
+#define get_long EmMemGet32
+#define get_word EmMemGet16
+#define get_byte EmMemGet8
+
+#define put_long EmMemPut32
+#define put_word EmMemPut16
+#define put_byte EmMemPut8
+
+#define get_real_address EmMemGetRealAddress
diff --git a/SrcShared/UAE/memory_cpu.h b/SrcShared/UAE/memory_cpu.h
new file mode 100644
index 0000000..af2137e
--- /dev/null
+++ b/SrcShared/UAE/memory_cpu.h
@@ -0,0 +1,13 @@
+ /*
+ * UAE - The Un*x Amiga Emulator
+ *
+ * memory management
+ *
+ * Copyright 1995 Bernd Schmidt
+ */
+
+#include "machdep_maccess.h"
+
+typedef EmAddressBank addrbank;
+
+#define get_mem_bank EmMemGetBank
diff --git a/SrcShared/UAE/missing.c b/SrcShared/UAE/missing.c
new file mode 100644
index 0000000..9ebe4a5
--- /dev/null
+++ b/SrcShared/UAE/missing.c
@@ -0,0 +1,36 @@
+ /*
+ * UAE - The Un*x Amiga Emulator
+ *
+ * Various stuff missing in some OSes.
+ *
+ * Copyright 1997 Bernd Schmidt
+ */
+
+#include "sysconfig.h"
+#include "sysdeps.h"
+
+#include "config.h"
+#include "options.h"
+//#include "uae.h"
+
+#ifndef HAVE_STRDUP
+
+char *my_strdup (const char *s)
+{
+ /* The casts to char * are there to shut up the compiler on HPUX */
+ char *x = (char*)xmalloc(strlen((char *)s) + 1);
+ strcpy(x, (char *)s);
+ return x;
+}
+
+#endif
+
+void *xmalloc(size_t n)
+{
+ void *a = malloc (n);
+ if (a == NULL) {
+ fprintf (stderr, "virtual memory exhausted\n");
+ abort ();
+ }
+ return a;
+}
diff --git a/SrcShared/UAE/newcpu.h b/SrcShared/UAE/newcpu.h
new file mode 100644
index 0000000..25f8836
--- /dev/null
+++ b/SrcShared/UAE/newcpu.h
@@ -0,0 +1,230 @@
+ /*
+ * UAE - The Un*x Amiga Emulator
+ *
+ * MC68000 emulation
+ *
+ * Copyright 1995 Bernd Schmidt
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if HAS_PROFILING
+#include "Profiling.h"
+#endif
+
+//#include <machdep/m68k.h>
+
+#ifndef SET_CFLG
+
+#define SET_CFLG(x) (CFLG = (x))
+#define SET_NFLG(x) (NFLG = (x))
+#define SET_VFLG(x) (VFLG = (x))
+#define SET_ZFLG(x) (ZFLG = (x))
+#define SET_XFLG(x) (XFLG = (x))
+
+#define GET_CFLG CFLG
+#define GET_NFLG NFLG
+#define GET_VFLG VFLG
+#define GET_ZFLG ZFLG
+#define GET_XFLG XFLG
+
+#define CLEAR_CZNV do { \
+ SET_CFLG (0); \
+ SET_ZFLG (0); \
+ SET_NFLG (0); \
+ SET_VFLG (0); \
+} while (0)
+
+#define COPY_CARRY (SET_XFLG (GET_CFLG))
+#endif
+
+extern int areg_byteinc[];
+extern int imm8_table[];
+
+extern int movem_index1[256];
+extern int movem_index2[256];
+extern int movem_next[256];
+
+extern int fpp_movem_index1[256];
+extern int fpp_movem_index2[256];
+extern int fpp_movem_next[256];
+
+extern int broken_in;
+
+typedef unsigned long cpuop_func (uae_u32) REGPARAM;
+
+struct cputbl {
+ cpuop_func *handler;
+ int specific;
+ uae_u16 opcode;
+ struct perfRec perf;
+};
+
+extern unsigned long op_illg (uae_u32) REGPARAM;
+
+typedef char flagtype;
+
+typedef struct regstruct
+{
+ uae_u32 regs[16];
+ uaecptr usp,isp,msp;
+ uae_u16 sr;
+ flagtype t1;
+ flagtype t0;
+ flagtype s;
+ flagtype m;
+ flagtype x;
+ flagtype stopped;
+ int intmask;
+
+ uae_u32 pc;
+ uae_u8 *pc_p;
+ uae_u8 *pc_oldp;
+
+ uae_u8 *pc_meta_oldp;
+
+ uae_u32 vbr,sfc,dfc;
+
+ double fp[8];
+ uae_u32 fpcr,fpsr,fpiar;
+
+ uae_u32 spcflags;
+ uae_u32 kick_mask;
+
+ /* Fellow sources say this is 4 longwords. That's impossible. It needs
+ * to be at least a longword. The HRM has some cryptic comment about two
+ * instructions being on the same longword boundary.
+ * The way this is implemented now seems like a good compromise.
+ */
+ uae_u32 prefetch;
+} regstruct;
+
+#ifndef __ECM_DYNAMIC_PATCH
+
+extern regstruct regs;
+extern regstruct lastint_regs;
+
+#define gRegs regs
+#define gLastint_regs lastint_regs
+
+#else //__ECM_DYNAMIC_PATCH
+
+extern regstruct *gDynRegsP;
+
+#define gRegs (*gDynRegsP)
+
+#endif //__ECM_DYNAMIC_PATCH
+
+
+
+#define m68k_dreg(r,num) ((r).regs[(num)])
+#define m68k_areg(r,num) (((r).regs + 8)[(num)])
+
+ // If we're profiling, go through the real work so we can count
+ // read cycles. Note that we don't want to actually return the
+ // value returned by get_foo. That function doesn't always word-
+ // swap on little-endian machines (e.g., the DummyBank function).
+ // However, the rest of the emulator is positioned to always
+ // expect that opcode should be word-swapped on little-endian
+ // machines (e.g., ATrap::DoCall). Therefore, always fetch opcodes
+ // with do_get_mem_foo, which will do that swapping.
+
+#if HAS_PROFILING
+
+ #define M68K_GETPC() (regs.pc+((char*)regs.pc_p-(char*)regs.pc_oldp))
+
+ STATIC_INLINE uae_u8 get_ibyte (uae_s32 o) {
+ if (gProfilingEnabled) get_byte(M68K_GETPC());
+ return do_get_mem_byte((uae_u8 *)(regs.pc_p + (o) + 1)); }
+
+ STATIC_INLINE uae_u16 get_iword (uae_s32 o) {
+ if (gProfilingEnabled) get_word(M68K_GETPC());
+ return do_get_mem_word((uae_u16 *)(regs.pc_p + (o))); }
+
+ STATIC_INLINE uae_u32 get_ilong (uae_s32 o) {
+ if (gProfilingEnabled) get_long(M68K_GETPC());
+ return do_get_mem_long((uae_u32 *)(regs.pc_p + (o))); }
+
+#else
+
+ #define get_ibyte(o) do_get_mem_byte((uae_u8 *)(regs.pc_p + (o) + 1))
+ #define get_iword(o) do_get_mem_word((uae_u16 *)(regs.pc_p + (o)))
+ #define get_ilong(o) do_get_mem_long((uae_u32 *)(regs.pc_p + (o)))
+
+#endif
+
+
+#define m68k_incpc(o) (regs.pc_p += (o))
+
+extern void Software_CheckNewPC (uaecptr newPC);
+
+STATIC_INLINE void m68k_setpc (uaecptr newpc)
+{
+ Software_CheckNewPC (newpc);
+
+ {
+ addrbank* bank = &(get_mem_bank(newpc));
+ regs.pc_p = regs.pc_oldp = (bank->xlateaddr)(newpc);
+ regs.pc = newpc;
+ regs.pc_meta_oldp = (bank->xlatemetaaddr)(newpc);
+ }
+}
+
+STATIC_INLINE uaecptr m68k_getpc (void)
+{
+ return regs.pc + ((char *)regs.pc_p - (char *)regs.pc_oldp);
+}
+
+STATIC_INLINE uaecptr m68k_getpc_p (uae_u8 *p)
+{
+ return regs.pc + ((char *)p - (char *)regs.pc_oldp);
+}
+
+#define m68k_setpc_fast m68k_setpc
+#define m68k_setpc_bcc m68k_setpc
+#define m68k_setpc_rte m68k_setpc
+
+STATIC_INLINE void m68k_setstopped (int stop)
+{
+ regs.stopped = stop;
+ if (stop)
+ regs.spcflags |= SPCFLAG_STOP;
+}
+
+extern uae_u32 get_disp_ea_020 (uae_u32 base, uae_u32 dp);
+extern uae_u32 get_disp_ea_000 (uae_u32 base, uae_u32 dp);
+
+extern uae_s32 ShowEA (int reg, amodes mode, wordsizes size, char *buf);
+
+extern void MakeSR (void);
+extern void MakeFromSR (void);
+extern void Exception (int, uaecptr);
+
+/* Opcode of faulting instruction */
+extern uae_u16 last_op_for_exception_3;
+/* PC at fault time */
+extern uaecptr last_addr_for_exception_3;
+/* Address that generated the exception */
+extern uaecptr last_fault_for_exception_3;
+
+#define CPU_OP_NAME(a) op ## a
+
+/* 68020 + 68881 */
+extern struct cputbl op_smalltbl_0[];
+/* 68020 */
+extern struct cputbl op_smalltbl_1[];
+/* 68010 */
+extern struct cputbl op_smalltbl_2[];
+/* 68000 */
+extern struct cputbl op_smalltbl_3[];
+/* 68000 slow but compatible. */
+extern struct cputbl op_smalltbl_4[];
+
+extern cpuop_func *cpufunctbl[65536] ASM_SYM_FOR_FUNC ("cpufunctbl");
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/SrcShared/UAE/options.h b/SrcShared/UAE/options.h
new file mode 100644
index 0000000..be229fc
--- /dev/null
+++ b/SrcShared/UAE/options.h
@@ -0,0 +1,30 @@
+ /*
+ * UAE - The Un*x Amiga Emulator
+ *
+ * Stuff
+ *
+ * Copyright 1995, 1996 Ed Hanway
+ * Copyright 1995-98 Bernd Schmidt
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define UAEMAJOR 0
+#define UAEMINOR 8
+#define UAESUBREV 10
+
+
+/*
+ * You can specify numbers from 0 to 5 here. It is possible that higher
+ * numbers will make the CPU emulation slightly faster, but if the setting
+ * is too high, you will run out of memory while compiling.
+ * Best to leave this as it is.
+ */
+#define CPU_EMU_SIZE 0
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/SrcShared/UAE/readcpu.cpp b/SrcShared/UAE/readcpu.cpp
new file mode 100644
index 0000000..45949a4
--- /dev/null
+++ b/SrcShared/UAE/readcpu.cpp
@@ -0,0 +1,808 @@
+/*
+ * UAE - The Un*x Amiga Emulator
+ *
+ * Read 68000 CPU specs from file "table68k"
+ *
+ * Copyright 1995,1996 Bernd Schmidt
+ */
+
+#include "sysconfig.h"
+#include "sysdeps.h"
+#include <ctype.h>
+
+#include "config.h"
+#include "options.h"
+#include "readcpu.h"
+
+int nr_cpuop_funcs;
+
+struct mnemolookup lookuptab[] = {
+ { i_ILLG, "ILLEGAL" },
+ { i_OR, "OR" },
+ { i_CHK, "CHK" },
+ { i_CHK2, "CHK2" },
+ { i_AND, "AND" },
+ { i_EOR, "EOR" },
+ { i_ORSR, "ORSR" },
+ { i_ANDSR, "ANDSR" },
+ { i_EORSR, "EORSR" },
+ { i_SUB, "SUB" },
+ { i_SUBA, "SUBA" },
+ { i_SUBX, "SUBX" },
+ { i_SBCD, "SBCD" },
+ { i_ADD, "ADD" },
+ { i_ADDA, "ADDA" },
+ { i_ADDX, "ADDX" },
+ { i_ABCD, "ABCD" },
+ { i_NEG, "NEG" },
+ { i_NEGX, "NEGX" },
+ { i_NBCD, "NBCD" },
+ { i_CLR, "CLR" },
+ { i_NOT, "NOT" },
+ { i_TST, "TST" },
+ { i_BTST, "BTST" },
+ { i_BCHG, "BCHG" },
+ { i_BCLR, "BCLR" },
+ { i_BSET, "BSET" },
+ { i_CMP, "CMP" },
+ { i_CMPM, "CMPM" },
+ { i_CMPA, "CMPA" },
+ { i_MVPRM, "MVPRM" },
+ { i_MVPMR, "MVPMR" },
+ { i_MOVE, "MOVE" },
+ { i_MOVEA, "MOVEA" },
+ { i_MVSR2, "MVSR2" },
+ { i_MV2SR, "MV2SR" },
+ { i_SWAP, "SWAP" },
+ { i_EXG, "EXG" },
+ { i_EXT, "EXT" },
+ { i_MVMEL, "MVMEL" },
+ { i_MVMLE, "MVMLE" },
+ { i_TRAP, "TRAP" },
+ { i_MVR2USP, "MVR2USP" },
+ { i_MVUSP2R, "MVUSP2R" },
+ { i_NOP, "NOP" },
+ { i_RESET, "RESET" },
+ { i_RTE, "RTE" },
+ { i_RTD, "RTD" },
+ { i_LINK, "LINK" },
+ { i_UNLK, "UNLK" },
+ { i_RTS, "RTS" },
+ { i_STOP, "STOP" },
+ { i_TRAPV, "TRAPV" },
+ { i_RTR, "RTR" },
+ { i_JSR, "JSR" },
+ { i_JMP, "JMP" },
+ { i_BSR, "BSR" },
+ { i_Bcc, "Bcc" },
+ { i_LEA, "LEA" },
+ { i_PEA, "PEA" },
+ { i_DBcc, "DBcc" },
+ { i_Scc, "Scc" },
+ { i_DIVU, "DIVU" },
+ { i_DIVS, "DIVS" },
+ { i_MULU, "MULU" },
+ { i_MULS, "MULS" },
+ { i_ASR, "ASR" },
+ { i_ASL, "ASL" },
+ { i_LSR, "LSR" },
+ { i_LSL, "LSL" },
+ { i_ROL, "ROL" },
+ { i_ROR, "ROR" },
+ { i_ROXL, "ROXL" },
+ { i_ROXR, "ROXR" },
+ { i_ASRW, "ASRW" },
+ { i_ASLW, "ASLW" },
+ { i_LSRW, "LSRW" },
+ { i_LSLW, "LSLW" },
+ { i_ROLW, "ROLW" },
+ { i_RORW, "RORW" },
+ { i_ROXLW, "ROXLW" },
+ { i_ROXRW, "ROXRW" },
+
+ { i_MOVE2C, "MOVE2C" },
+ { i_MOVEC2, "MOVEC2" },
+ { i_CAS, "CAS" },
+ { i_CAS2, "CAS2" },
+ { i_MULL, "MULL" },
+ { i_DIVL, "DIVL" },
+ { i_BFTST, "BFTST" },
+ { i_BFEXTU, "BFEXTU" },
+ { i_BFCHG, "BFCHG" },
+ { i_BFEXTS, "BFEXTS" },
+ { i_BFCLR, "BFCLR" },
+ { i_BFFFO, "BFFFO" },
+ { i_BFSET, "BFSET" },
+ { i_BFINS, "BFINS" },
+ { i_PACK, "PACK" },
+ { i_UNPK, "UNPK" },
+ { i_TAS, "TAS" },
+ { i_BKPT, "BKPT" },
+ { i_CALLM, "CALLM" },
+ { i_RTM, "RTM" },
+ { i_TRAPcc, "TRAPcc" },
+ { i_MOVES, "MOVES" },
+ { i_FPP, "FPP" },
+ { i_FDBcc, "FDBcc" },
+ { i_FScc, "FScc" },
+ { i_FTRAPcc, "FTRAPcc" },
+ { i_FBcc, "FBcc" },
+ { i_FBcc, "FBcc" },
+ { i_FSAVE, "FSAVE" },
+ { i_FRESTORE, "FRESTORE" },
+ { i_MMUOP, "MMUOP" },
+ { i_ILLG, "" },
+};
+
+struct instr *table68k;
+
+STATIC_INLINE amodes mode_from_str (const char *str)
+{
+ if (strncmp (str, "Dreg", 4) == 0) return Dreg;
+ if (strncmp (str, "Areg", 4) == 0) return Areg;
+ if (strncmp (str, "Aind", 4) == 0) return Aind;
+ if (strncmp (str, "Apdi", 4) == 0) return Apdi;
+ if (strncmp (str, "Aipi", 4) == 0) return Aipi;
+ if (strncmp (str, "Ad16", 4) == 0) return Ad16;
+ if (strncmp (str, "Ad8r", 4) == 0) return Ad8r;
+ if (strncmp (str, "absw", 4) == 0) return absw;
+ if (strncmp (str, "absl", 4) == 0) return absl;
+ if (strncmp (str, "PC16", 4) == 0) return PC16;
+ if (strncmp (str, "PC8r", 4) == 0) return PC8r;
+ if (strncmp (str, "Immd", 4) == 0) return imm;
+ abort ();
+ return ((amodes) 0);
+}
+
+STATIC_INLINE amodes mode_from_mr (int mode, int reg)
+{
+ switch (mode) {
+ case 0: return Dreg;
+ case 1: return Areg;
+ case 2: return Aind;
+ case 3: return Aipi;
+ case 4: return Apdi;
+ case 5: return Ad16;
+ case 6: return Ad8r;
+ case 7:
+ switch (reg) {
+ case 0: return absw;
+ case 1: return absl;
+ case 2: return PC16;
+ case 3: return PC8r;
+ case 4: return imm;
+ case 5:
+ case 6:
+ case 7: return am_illg;
+ }
+ }
+ abort ();
+ return ((amodes) 0);
+}
+
+static void build_insn (int insn)
+{
+ int find = -1;
+ int variants;
+ struct instr_def id;
+ const char *opcstr;
+ int i;
+
+ int flaglive = 0, flagdead = 0;
+
+ id = defs68k[insn];
+
+ for (i = 0; i < 5; i++) {
+ switch (id.flaginfo[i].flagset){
+ case fa_unset: break;
+ case fa_isjmp: break;
+ case fa_zero: flagdead |= 1 << i; break;
+ case fa_one: flagdead |= 1 << i; break;
+ case fa_dontcare: flagdead |= 1 << i; break;
+ case fa_unknown: flagdead = -1; goto out1;
+ case fa_set: flagdead |= 1 << i; break;
+ }
+ }
+
+ out1:
+ for (i = 0; i < 5; i++) {
+ switch (id.flaginfo[i].flaguse) {
+ case fu_unused: break;
+ case fu_isjmp: flaglive |= 1 << i; break;
+ case fu_maybecc: flaglive |= 1 << i; break;
+ case fu_unknown: flaglive = -1; goto out2;
+ case fu_used: flaglive |= 1 << i; break;
+ }
+ }
+ out2:
+
+ opcstr = id.opcstr;
+ for (variants = 0; variants < (1 << id.n_variable); variants++) {
+ int bitcnt[lastbit];
+ int bitval[lastbit];
+ int bitpos[lastbit];
+ int i;
+ uae_u16 opc = id.bits;
+ uae_u16 msk, vmsk;
+ int pos = 0;
+ int mnp = 0;
+ int bitno = 0;
+ char mnemonic[10];
+
+ wordsizes sz = sz_long;
+ int srcgather = 0, dstgather = 0;
+ int usesrc = 0, usedst = 0;
+ int srctype = 0;
+ int srcpos = -1, dstpos = -1;
+
+ amodes srcmode = am_unknown, destmode = am_unknown;
+ int srcreg = -1, destreg = -1;
+
+ for (i = 0; i < lastbit; i++)
+ bitcnt[i] = bitval[i] = 0;
+
+ vmsk = 1 << id.n_variable;
+
+ for (i = 0, msk = 0x8000; i < 16; i++, msk >>= 1) {
+ if (!(msk & id.mask)) {
+ int currbit = id.bitpos[bitno++];
+ int bit_set;
+ vmsk >>= 1;
+ bit_set = variants & vmsk ? 1 : 0;
+ if (bit_set)
+ opc |= msk;
+ bitpos[currbit] = 15 - i;
+ bitcnt[currbit]++;
+ bitval[currbit] <<= 1;
+ bitval[currbit] |= bit_set;
+ }
+ }
+
+ if (bitval[bitj] == 0) bitval[bitj] = 8;
+ /* first check whether this one does not match after all */
+ if (bitval[bitz] == 3 || bitval[bitC] == 1)
+ continue;
+ if (bitcnt[bitI] && (bitval[bitI] == 0x00 || bitval[bitI] == 0xff))
+ continue;
+
+ /* bitI and bitC get copied to biti and bitc */
+ if (bitcnt[bitI]) {
+ bitval[biti] = bitval[bitI]; bitpos[biti] = bitpos[bitI];
+ }
+ if (bitcnt[bitC])
+ bitval[bitc] = bitval[bitC];
+
+ pos = 0;
+ while (opcstr[pos] && !isspace(opcstr[pos])) {
+ if (opcstr[pos] == '.') {
+ pos++;
+ switch (opcstr[pos]) {
+
+ case 'B': sz = sz_byte; break;
+ case 'W': sz = sz_word; break;
+ case 'L': sz = sz_long; break;
+ case 'z':
+ switch (bitval[bitz]) {
+ case 0: sz = sz_byte; break;
+ case 1: sz = sz_word; break;
+ case 2: sz = sz_long; break;
+ default: abort();
+ }
+ break;
+ default: abort();
+ }
+ } else {
+ mnemonic[mnp] = opcstr[pos];
+ if (mnemonic[mnp] == 'f') {
+ find = -1;
+ switch (bitval[bitf]) {
+ case 0: mnemonic[mnp] = 'R'; break;
+ case 1: mnemonic[mnp] = 'L'; break;
+ default: abort();
+ }
+ }
+ mnp++;
+ }
+ pos++;
+ }
+ mnemonic[mnp] = 0;
+
+ /* now, we have read the mnemonic and the size */
+ while (opcstr[pos] && isspace(opcstr[pos]))
+ pos++;
+
+ /* A goto a day keeps the D******a away. */
+ if (opcstr[pos] == 0)
+ goto endofline;
+
+ /* parse the source address */
+ usesrc = 1;
+ switch (opcstr[pos++]) {
+ case 'D':
+ srcmode = Dreg;
+ switch (opcstr[pos++]) {
+ case 'r': srcreg = bitval[bitr]; srcgather = 1; srcpos = bitpos[bitr]; break;
+ case 'R': srcreg = bitval[bitR]; srcgather = 1; srcpos = bitpos[bitR]; break;
+ default: abort();
+ }
+
+ break;
+ case 'A':
+ srcmode = Areg;
+ switch (opcstr[pos++]) {
+ case 'r': srcreg = bitval[bitr]; srcgather = 1; srcpos = bitpos[bitr]; break;
+ case 'R': srcreg = bitval[bitR]; srcgather = 1; srcpos = bitpos[bitR]; break;
+ default: abort();
+ }
+ switch (opcstr[pos]) {
+ case 'p': srcmode = Apdi; pos++; break;
+ case 'P': srcmode = Aipi; pos++; break;
+ }
+ break;
+ case '#':
+ switch (opcstr[pos++]) {
+ case 'z': srcmode = imm; break;
+ case '0': srcmode = imm0; break;
+ case '1': srcmode = imm1; break;
+ case '2': srcmode = imm2; break;
+ case 'i': srcmode = immi; srcreg = (uae_s32)(uae_s8)bitval[biti];
+ if (CPU_EMU_SIZE < 4) {
+ /* Used for branch instructions */
+ srctype = 1;
+ srcgather = 1;
+ srcpos = bitpos[biti];
+ }
+ break;
+ case 'j': srcmode = immi; srcreg = bitval[bitj];
+ if (CPU_EMU_SIZE < 3) {
+ /* 1..8 for ADDQ/SUBQ and rotshi insns */
+ srcgather = 1;
+ srctype = 3;
+ srcpos = bitpos[bitj];
+ }
+ break;
+ case 'J': srcmode = immi; srcreg = bitval[bitJ];
+ if (CPU_EMU_SIZE < 5) {
+ /* 0..15 */
+ srcgather = 1;
+ srctype = 2;
+ srcpos = bitpos[bitJ];
+ }
+ break;
+ case 'k': srcmode = immi; srcreg = bitval[bitk];
+ if (CPU_EMU_SIZE < 3) {
+ srcgather = 1;
+ srctype = 4;
+ srcpos = bitpos[bitk];
+ }
+ break;
+ case 'K': srcmode = immi; srcreg = bitval[bitK];
+ if (CPU_EMU_SIZE < 5) {
+ /* 0..15 */
+ srcgather = 1;
+ srctype = 5;
+ srcpos = bitpos[bitK];
+ }
+ break;
+ default: abort();
+ }
+ break;
+ case 'd':
+ srcreg = bitval[bitD];
+ srcmode = mode_from_mr(bitval[bitd],bitval[bitD]);
+ if (srcmode == am_illg)
+ continue;
+ if (CPU_EMU_SIZE < 2 &&
+ (srcmode == Areg || srcmode == Dreg || srcmode == Aind
+ || srcmode == Ad16 || srcmode == Ad8r || srcmode == Aipi
+ || srcmode == Apdi))
+ {
+ srcgather = 1; srcpos = bitpos[bitD];
+ }
+ if (opcstr[pos] == '[') {
+ pos++;
+ if (opcstr[pos] == '!') {
+ /* exclusion */
+ do {
+ pos++;
+ if (mode_from_str(opcstr+pos) == srcmode)
+ goto nomatch;
+ pos += 4;
+ } while (opcstr[pos] == ',');
+ pos++;
+ } else {
+ if (opcstr[pos+4] == '-') {
+ /* replacement */
+ if (mode_from_str(opcstr+pos) == srcmode)
+ srcmode = mode_from_str(opcstr+pos+5);
+ else
+ goto nomatch;
+ pos += 10;
+ } else {
+ /* normal */
+ while(mode_from_str(opcstr+pos) != srcmode) {
+ pos += 4;
+ if (opcstr[pos] == ']')
+ goto nomatch;
+ pos++;
+ }
+ while(opcstr[pos] != ']') pos++;
+ pos++;
+ break;
+ }
+ }
+ }
+ /* Some addressing modes are invalid as destination */
+ if (srcmode == imm || srcmode == PC16 || srcmode == PC8r)
+ goto nomatch;
+ break;
+ case 's':
+ srcreg = bitval[bitS];
+ srcmode = mode_from_mr(bitval[bits],bitval[bitS]);
+
+ if (srcmode == am_illg)
+ continue;
+ if (CPU_EMU_SIZE < 2 &&
+ (srcmode == Areg || srcmode == Dreg || srcmode == Aind
+ || srcmode == Ad16 || srcmode == Ad8r || srcmode == Aipi
+ || srcmode == Apdi))
+ {
+ srcgather = 1; srcpos = bitpos[bitS];
+ }
+ if (opcstr[pos] == '[') {
+ pos++;
+ if (opcstr[pos] == '!') {
+ /* exclusion */
+ do {
+ pos++;
+ if (mode_from_str(opcstr+pos) == srcmode)
+ goto nomatch;
+ pos += 4;
+ } while (opcstr[pos] == ',');
+ pos++;
+ } else {
+ if (opcstr[pos+4] == '-') {
+ /* replacement */
+ if (mode_from_str(opcstr+pos) == srcmode)
+ srcmode = mode_from_str(opcstr+pos+5);
+ else
+ goto nomatch;
+ pos += 10;
+ } else {
+ /* normal */
+ while(mode_from_str(opcstr+pos) != srcmode) {
+ pos += 4;
+ if (opcstr[pos] == ']')
+ goto nomatch;
+ pos++;
+ }
+ while(opcstr[pos] != ']') pos++;
+ pos++;
+ }
+ }
+ }
+ break;
+ default: abort();
+ }
+ /* safety check - might have changed */
+ if (srcmode != Areg && srcmode != Dreg && srcmode != Aind
+ && srcmode != Ad16 && srcmode != Ad8r && srcmode != Aipi
+ && srcmode != Apdi && srcmode != immi)
+ {
+ srcgather = 0;
+ }
+ if (srcmode == Areg && sz == sz_byte)
+ goto nomatch;
+
+ if (opcstr[pos] != ',')
+ goto endofline;
+ pos++;
+
+ /* parse the destination address */
+ usedst = 1;
+ switch (opcstr[pos++]) {
+ case 'D':
+ destmode = Dreg;
+ switch (opcstr[pos++]) {
+ case 'r': destreg = bitval[bitr]; dstgather = 1; dstpos = bitpos[bitr]; break;
+ case 'R': destreg = bitval[bitR]; dstgather = 1; dstpos = bitpos[bitR]; break;
+ default: abort();
+ }
+ break;
+ case 'A':
+ destmode = Areg;
+ switch (opcstr[pos++]) {
+ case 'r': destreg = bitval[bitr]; dstgather = 1; dstpos = bitpos[bitr]; break;
+ case 'R': destreg = bitval[bitR]; dstgather = 1; dstpos = bitpos[bitR]; break;
+ default: abort();
+ }
+ switch (opcstr[pos]) {
+ case 'p': destmode = Apdi; pos++; break;
+ case 'P': destmode = Aipi; pos++; break;
+ }
+ break;
+ case '#':
+ switch (opcstr[pos++]) {
+ case 'z': destmode = imm; break;
+ case '0': destmode = imm0; break;
+ case '1': destmode = imm1; break;
+ case '2': destmode = imm2; break;
+ case 'i': destmode = immi; destreg = (uae_s32)(uae_s8)bitval[biti]; break;
+ case 'j': destmode = immi; destreg = bitval[bitj]; break;
+ case 'J': destmode = immi; destreg = bitval[bitJ]; break;
+ case 'k': destmode = immi; destreg = bitval[bitk]; break;
+ case 'K': destmode = immi; destreg = bitval[bitK]; break;
+ default: abort();
+ }
+ break;
+ case 'd':
+ destreg = bitval[bitD];
+ destmode = mode_from_mr(bitval[bitd],bitval[bitD]);
+ if (destmode == am_illg)
+ continue;
+ if (CPU_EMU_SIZE < 1 &&
+ (destmode == Areg || destmode == Dreg || destmode == Aind
+ || destmode == Ad16 || destmode == Ad8r || destmode == Aipi
+ || destmode == Apdi))
+ {
+ dstgather = 1; dstpos = bitpos[bitD];
+ }
+
+ if (opcstr[pos] == '[') {
+ pos++;
+ if (opcstr[pos] == '!') {
+ /* exclusion */
+ do {
+ pos++;
+ if (mode_from_str(opcstr+pos) == destmode)
+ goto nomatch;
+ pos += 4;
+ } while (opcstr[pos] == ',');
+ pos++;
+ } else {
+ if (opcstr[pos+4] == '-') {
+ /* replacement */
+ if (mode_from_str(opcstr+pos) == destmode)
+ destmode = mode_from_str(opcstr+pos+5);
+ else
+ goto nomatch;
+ pos += 10;
+ } else {
+ /* normal */
+ while(mode_from_str(opcstr+pos) != destmode) {
+ pos += 4;
+ if (opcstr[pos] == ']')
+ goto nomatch;
+ pos++;
+ }
+ while(opcstr[pos] != ']') pos++;
+ pos++;
+ break;
+ }
+ }
+ }
+ /* Some addressing modes are invalid as destination */
+ if (destmode == imm || destmode == PC16 || destmode == PC8r)
+ goto nomatch;
+ break;
+ case 's':
+ destreg = bitval[bitS];
+ destmode = mode_from_mr(bitval[bits],bitval[bitS]);
+
+ if (destmode == am_illg)
+ continue;
+ if (CPU_EMU_SIZE < 1 &&
+ (destmode == Areg || destmode == Dreg || destmode == Aind
+ || destmode == Ad16 || destmode == Ad8r || destmode == Aipi
+ || destmode == Apdi))
+ {
+ dstgather = 1; dstpos = bitpos[bitS];
+ }
+
+ if (opcstr[pos] == '[') {
+ pos++;
+ if (opcstr[pos] == '!') {
+ /* exclusion */
+ do {
+ pos++;
+ if (mode_from_str(opcstr+pos) == destmode)
+ goto nomatch;
+ pos += 4;
+ } while (opcstr[pos] == ',');
+ pos++;
+ } else {
+ if (opcstr[pos+4] == '-') {
+ /* replacement */
+ if (mode_from_str(opcstr+pos) == destmode)
+ destmode = mode_from_str(opcstr+pos+5);
+ else
+ goto nomatch;
+ pos += 10;
+ } else {
+ /* normal */
+ while(mode_from_str(opcstr+pos) != destmode) {
+ pos += 4;
+ if (opcstr[pos] == ']')
+ goto nomatch;
+ pos++;
+ }
+ while(opcstr[pos] != ']') pos++;
+ pos++;
+ }
+ }
+ }
+ break;
+ default: abort();
+ }
+ /* safety check - might have changed */
+ if (destmode != Areg && destmode != Dreg && destmode != Aind
+ && destmode != Ad16 && destmode != Ad8r && destmode != Aipi
+ && destmode != Apdi)
+ {
+ dstgather = 0;
+ }
+
+ if (destmode == Areg && sz == sz_byte)
+ goto nomatch;
+#if 0
+ if (sz == sz_byte && (destmode == Aipi || destmode == Apdi)) {
+ dstgather = 0;
+ }
+#endif
+ endofline:
+ /* now, we have a match */
+ if (table68k[opc].mnemo != i_ILLG)
+ fprintf(stderr, "Double match: %x: %s\n", opc, opcstr);
+ if (find == -1) {
+ for (find = 0;; find++) {
+ if (strcmp(mnemonic, lookuptab[find].name) == 0) {
+ table68k[opc].mnemo = lookuptab[find].mnemo;
+ break;
+ }
+ if (strlen(lookuptab[find].name) == 0) abort();
+ }
+ }
+ else {
+ table68k[opc].mnemo = lookuptab[find].mnemo;
+ }
+ table68k[opc].cc = bitval[bitc];
+ if (table68k[opc].mnemo == i_BTST
+ || table68k[opc].mnemo == i_BSET
+ || table68k[opc].mnemo == i_BCLR
+ || table68k[opc].mnemo == i_BCHG)
+ {
+ sz = destmode == Dreg ? sz_long : sz_byte;
+ }
+ table68k[opc].size = sz;
+ table68k[opc].sreg = srcreg;
+ table68k[opc].dreg = destreg;
+ table68k[opc].smode = srcmode;
+ table68k[opc].dmode = destmode;
+ table68k[opc].spos = srcgather ? srcpos : -1;
+ table68k[opc].dpos = dstgather ? dstpos : -1;
+ table68k[opc].suse = usesrc;
+ table68k[opc].duse = usedst;
+ table68k[opc].stype = srctype;
+ table68k[opc].plev = id.plevel;
+ table68k[opc].clev = id.cpulevel;
+#if 0
+ for (i = 0; i < 5; i++) {
+ table68k[opc].flaginfo[i].flagset = id.flaginfo[i].flagset;
+ table68k[opc].flaginfo[i].flaguse = id.flaginfo[i].flaguse;
+ }
+#endif
+ table68k[opc].flagdead = flagdead;
+ table68k[opc].flaglive = flaglive;
+ nomatch:
+ /* FOO! */;
+ }
+}
+
+
+void read_table68k (void)
+{
+ int i;
+
+ table68k = (struct instr *)xmalloc (65536 * sizeof (struct instr));
+ for (i = 0; i < 65536; i++) {
+ table68k[i].mnemo = i_ILLG;
+ table68k[i].handler = -1;
+ }
+ for (i = 0; i < n_defs68k; i++) {
+ build_insn (i);
+ }
+}
+
+static int mismatch;
+
+static void handle_merges (long int opcode)
+{
+ uae_u16 smsk;
+ uae_u16 dmsk;
+ int sbitdst, dstend;
+ int srcreg, dstreg;
+
+ if (table68k[opcode].spos == -1) {
+ sbitdst = 1; smsk = 0;
+ } else {
+ switch (table68k[opcode].stype) {
+ case 0:
+ smsk = 7; sbitdst = 8; break;
+ case 1:
+ smsk = 255; sbitdst = 256; break;
+ case 2:
+ smsk = 15; sbitdst = 16; break;
+ case 3:
+ smsk = 7; sbitdst = 8; break;
+ case 4:
+ smsk = 7; sbitdst = 8; break;
+ case 5:
+ smsk = 63; sbitdst = 64; break;
+ default:
+ smsk = 0; sbitdst = 0;
+ abort();
+ break;
+ }
+ smsk <<= table68k[opcode].spos;
+ }
+ if (table68k[opcode].dpos == -1) {
+ dstend = 1; dmsk = 0;
+ } else {
+ dmsk = 7 << table68k[opcode].dpos;
+ dstend = 8;
+ }
+ for (srcreg=0; srcreg < sbitdst; srcreg++) {
+ for (dstreg=0; dstreg < dstend; dstreg++) {
+ uae_u16 code = opcode;
+
+ code = (code & ~smsk) | (srcreg << table68k[opcode].spos);
+ code = (code & ~dmsk) | (dstreg << table68k[opcode].dpos);
+
+ /* Check whether this is in fact the same instruction.
+ * The instructions should never differ, except for the
+ * Bcc.(BW) case. */
+ if (table68k[code].mnemo != table68k[opcode].mnemo
+ || table68k[code].size != table68k[opcode].size
+ || table68k[code].suse != table68k[opcode].suse
+ || table68k[code].duse != table68k[opcode].duse)
+ {
+ mismatch++; continue;
+ }
+ if (table68k[opcode].suse
+ && (table68k[opcode].spos != table68k[code].spos
+ || table68k[opcode].smode != table68k[code].smode
+ || table68k[opcode].stype != table68k[code].stype))
+ {
+ mismatch++; continue;
+ }
+ if (table68k[opcode].duse
+ && (table68k[opcode].dpos != table68k[code].dpos
+ || table68k[opcode].dmode != table68k[code].dmode))
+ {
+ mismatch++; continue;
+ }
+
+ if (code != opcode)
+ table68k[code].handler = opcode;
+ }
+ }
+}
+
+void do_merges (void)
+{
+ long int opcode;
+ int nr = 0;
+ mismatch = 0;
+ for (opcode = 0; opcode < 65536; opcode++) {
+ if (table68k[opcode].handler != -1 || table68k[opcode].mnemo == i_ILLG)
+ continue;
+ nr++;
+ handle_merges (opcode);
+ }
+ nr_cpuop_funcs = nr;
+}
+
+int get_no_mismatches (void)
+{
+ return mismatch;
+}
diff --git a/SrcShared/UAE/readcpu.h b/SrcShared/UAE/readcpu.h
new file mode 100644
index 0000000..f277187
--- /dev/null
+++ b/SrcShared/UAE/readcpu.h
@@ -0,0 +1,113 @@
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ENUMDECL {
+ Dreg, Areg, Aind, Aipi, Apdi, Ad16, Ad8r,
+ absw, absl, PC16, PC8r, imm, imm0, imm1, imm2, immi, am_unknown, am_illg
+} ENUMNAME (amodes);
+
+ENUMDECL {
+ i_ILLG,
+
+ i_OR, i_AND, i_EOR, i_ORSR, i_ANDSR, i_EORSR,
+ i_SUB, i_SUBA, i_SUBX, i_SBCD,
+ i_ADD, i_ADDA, i_ADDX, i_ABCD,
+ i_NEG, i_NEGX, i_NBCD, i_CLR, i_NOT, i_TST,
+ i_BTST, i_BCHG, i_BCLR, i_BSET,
+ i_CMP, i_CMPM, i_CMPA,
+ i_MVPRM, i_MVPMR, i_MOVE, i_MOVEA, i_MVSR2, i_MV2SR,
+ i_SWAP, i_EXG, i_EXT, i_MVMEL, i_MVMLE,
+ i_TRAP, i_MVR2USP, i_MVUSP2R, i_RESET, i_NOP, i_STOP, i_RTE, i_RTD,
+ i_LINK, i_UNLK,
+ i_RTS, i_TRAPV, i_RTR,
+ i_JSR, i_JMP, i_BSR, i_Bcc,
+ i_LEA, i_PEA, i_DBcc, i_Scc,
+ i_DIVU, i_DIVS, i_MULU, i_MULS,
+ i_ASR, i_ASL, i_LSR, i_LSL, i_ROL, i_ROR, i_ROXL, i_ROXR,
+ i_ASRW, i_ASLW, i_LSRW, i_LSLW, i_ROLW, i_RORW, i_ROXLW, i_ROXRW,
+ i_CHK,i_CHK2,
+ i_MOVEC2, i_MOVE2C, i_CAS, i_CAS2, i_DIVL, i_MULL,
+ i_BFTST,i_BFEXTU,i_BFCHG,i_BFEXTS,i_BFCLR,i_BFFFO,i_BFSET,i_BFINS,
+ i_PACK, i_UNPK, i_TAS, i_BKPT, i_CALLM, i_RTM, i_TRAPcc, i_MOVES,
+ i_FPP, i_FDBcc, i_FScc, i_FTRAPcc, i_FBcc, i_FSAVE, i_FRESTORE,
+ i_MMUOP
+} ENUMNAME (instrmnem);
+
+extern struct mnemolookup {
+ instrmnem mnemo;
+ const char *name;
+} lookuptab[];
+
+ENUMDECL {
+ sz_byte, sz_word, sz_long
+} ENUMNAME (wordsizes);
+
+ENUMDECL {
+ fa_set, fa_unset, fa_zero, fa_one, fa_dontcare, fa_unknown, fa_isjmp
+} ENUMNAME (flagaffect);
+
+ENUMDECL {
+ fu_used, fu_unused, fu_maybecc, fu_unknown, fu_isjmp
+} ENUMNAME (flaguse);
+
+ENUMDECL {
+ bit0, bit1, bitc, bitC, bitf, biti, bitI, bitj, bitJ, bitk, bitK,
+ bits, bitS, bitd, bitD, bitr, bitR, bitz, lastbit
+} ENUMNAME (bitvals);
+
+struct instr_def {
+ unsigned int bits;
+ int n_variable;
+ char bitpos[16];
+ unsigned int mask;
+ int cpulevel;
+ int plevel;
+ struct {
+ unsigned int flaguse:3;
+ unsigned int flagset:3;
+ } flaginfo[5];
+ unsigned char sduse;
+ const char *opcstr;
+};
+
+extern struct instr_def defs68k[];
+extern int n_defs68k;
+
+extern struct instr {
+ long int handler;
+ unsigned char dreg;
+ unsigned char sreg;
+ signed char dpos;
+ signed char spos;
+ unsigned char sduse;
+ int flagdead:8, flaglive:8;
+ unsigned int mnemo:8;
+ unsigned int cc:4;
+ unsigned int plev:2;
+ unsigned int size:2;
+ unsigned int smode:5;
+ unsigned int stype:3;
+ unsigned int dmode:5;
+ unsigned int suse:1;
+ unsigned int duse:1;
+ unsigned int unused1:1;
+ unsigned int clev:3;
+ unsigned int unused2:5;
+} *table68k;
+
+extern void read_table68k (void);
+extern void do_merges (void);
+extern int get_no_mismatches (void);
+extern int nr_cpuop_funcs;
+
+struct perfRec {
+ unsigned char extraCycles;
+ unsigned char readCycles;
+ unsigned char writeCycles;
+};
+
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/SrcShared/UAE/sysconfig.h b/SrcShared/UAE/sysconfig.h
new file mode 100644
index 0000000..17de33a
--- /dev/null
+++ b/SrcShared/UAE/sysconfig.h
@@ -0,0 +1,33 @@
+#define SIZEOF_CHAR 1
+#define SIZEOF_SHORT 2
+#define SIZEOF_INT 0 // Goofy, but it gets us what we want: shorts
+ // for 2-byte types and longs for 4-byte types
+#define SIZEOF_LONG 4
+
+#ifdef _MSC_VER
+ #define SIZEOF___INT64 8
+#else
+ #define SIZEOF_LONG_LONG 8
+#endif
+
+#define REGPARAM
+#define DONT_HAVE_REAL_POSIX
+#define EXEC_TYPES_H
+
+#include <string.h>
+
+#ifdef _MSC_VER
+ #pragma warning( disable : 4244 ) // warning C4244: initializing : conversion from unsigned long to unsigned short, possible loss of data
+ #pragma warning( disable : 4786 ) // warning C4786: '<foo>' : identifier was truncated to '255' characters in the browser information
+#endif
+
+
+#ifdef _MSC_VER
+ #define __inline__ __inline
+#else
+ #define __inline__ inline
+#endif
+
+#ifndef STATIC_INLINE
+#define STATIC_INLINE static __inline__
+#endif
diff --git a/SrcShared/UAE/sysdeps.h b/SrcShared/UAE/sysdeps.h
new file mode 100644
index 0000000..ab682fa
--- /dev/null
+++ b/SrcShared/UAE/sysdeps.h
@@ -0,0 +1,348 @@
+ /*
+ * UAE - The Un*x Amiga Emulator
+ *
+ * Try to include the right system headers and get other system-specific
+ * stuff right & other collected kludges.
+ *
+ * If you think about modifying this, think twice. Some systems rely on
+ * the exact order of the #include statements. That's also the reason
+ * why everything gets included unconditionally regardless of whether
+ * it's actually needed by the .c file.
+ *
+ * Copyright 1996, 1997 Bernd Schmidt
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <assert.h>
+#include <limits.h>
+
+#include "EmTypes.h" // int8, int16, etc.
+
+#ifndef __STDC__
+#define __STDC__ 1
+#endif
+#ifndef __STDC__
+#error "Your compiler is not ANSI. Get a real one."
+#endif
+
+#include <stdarg.h>
+
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+
+#ifdef HAVE_VALUES_H
+#include <values.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef HAVE_FCNTL_H
+#include <fcntl.h>
+#endif
+
+#ifdef HAVE_UTIME_H
+#include <utime.h>
+#endif
+
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# if HAVE_SYS_TIME_H
+# include <sys/time.h>
+# else
+# include <time.h>
+# endif
+#endif
+
+#if HAVE_DIRENT_H
+# include <dirent.h>
+#else
+# define dirent direct
+# if HAVE_SYS_NDIR_H
+# include <sys/ndir.h>
+# endif
+# if HAVE_SYS_DIR_H
+# include <sys/dir.h>
+# endif
+# if HAVE_NDIR_H
+# include <ndir.h>
+# endif
+#endif
+
+#ifdef HAVE_SYS_UTIME_H
+# include <sys/utime.h>
+#endif
+
+#include <errno.h>
+#include <assert.h>
+
+#if EEXIST == ENOTEMPTY
+#define BROKEN_OS_PROBABLY_AIX
+#endif
+
+#ifdef __NeXT__
+#define S_IRUSR S_IREAD
+#define S_IWUSR S_IWRITE
+#define S_IXUSR S_IEXEC
+#define S_ISDIR(val) (S_IFDIR & val)
+struct utimbuf
+{
+ time_t actime;
+ time_t modtime;
+};
+#endif
+
+#if defined(__GNUC__) && defined(AMIGA)
+/* gcc on the amiga need that __attribute((regparm)) must */
+/* be defined in function prototypes as well as in */
+/* function definitions ! */
+#define REGPARAM2 REGPARAM
+#else /* not(GCC & AMIGA) */
+#define REGPARAM2
+#endif
+
+/* sam: some definitions so that SAS/C can compile UAE */
+#if defined(__SASC) && defined(AMIGA)
+#define REGPARAM2
+#define REGPARAM
+#define S_IRUSR S_IREAD
+#define S_IWUSR S_IWRITE
+#define S_IXUSR S_IEXECUTE
+#define S_ISDIR(val) (S_IFDIR & val)
+#define mkdir(x,y) mkdir(x)
+#define truncate(x,y) 0
+#define creat(x,y) open("T:creat",O_CREAT|O_TEMP|O_RDWR) /* sam: for zfile.c */
+#define strcasecmp stricmp
+#define utime(file,time) 0
+struct utimbuf
+{
+ time_t actime;
+ time_t modtime;
+};
+#endif
+
+#if defined(WARPUP)
+#include "devices/timer.h"
+#include "osdep/posixemu.h"
+#define REGPARAM
+#define REGPARAM2
+#define RETSIGTYPE
+#define USE_ZFILE
+#define strcasecmp stricmp
+#define memcpy q_memcpy
+#define memset q_memset
+#define strdup my_strdup
+#define random rand
+#define creat(x,y) open("T:creat",O_CREAT|O_RDWR,777)
+extern void* q_memset(void*,int,size_t);
+extern void* q_memcpy(void*,const void*,size_t);
+#endif
+
+#ifdef __DOS__
+#include <pc.h>
+#include <io.h>
+#endif
+
+/* Acorn specific stuff */
+#ifdef ACORN
+
+#define S_IRUSR S_IREAD
+#define S_IWUSR S_IWRITE
+#define S_IXUSR S_IEXEC
+
+#define strcasecmp stricmp
+
+#endif
+
+#ifndef L_tmpnam
+#define L_tmpnam 128 /* ought to be safe */
+#endif
+
+/* If char has more then 8 bits, good night. */
+
+typedef int8 uae_s8;
+typedef int16 uae_s16;
+typedef int32 uae_s32;
+typedef int64 uae_s64;
+
+typedef uint8 uae_u8;
+typedef uint16 uae_u16;
+typedef uint32 uae_u32;
+typedef uint64 uae_u64;
+
+typedef emuptr uaecptr;
+
+
+#ifdef HAVE_STRDUP
+#define my_strdup strdup
+#else
+extern char *my_strdup (const char*s);
+#endif
+
+extern void *xmalloc(size_t);
+
+/* We can only rely on GNU C getting enums right. Mickeysoft VSC++ is known
+ * to have problems, and it's likely that other compilers choke too. */
+#ifdef __GNUC__
+#define ENUMDECL typedef enum
+#define ENUMNAME(name) name
+#else
+#define ENUMDECL enum
+#define ENUMNAME(name) ; typedef int name
+#endif
+
+/*
+ * Porters to weird systems, look! This is the preferred way to get
+ * filesys.c (and other stuff) running on your system. Define the
+ * appropriate macros and implement wrappers in a machine-specific file.
+ *
+ * I guess the Mac port could use this (Ernesto?)
+ */
+
+//#undef DONT_HAVE_POSIX
+//#undef DONT_HAVE_REAL_POSIX /* define if open+delete doesn't do what it should */
+//#undef DONT_HAVE_STDIO
+//#undef DONT_HAVE_MALLOC
+
+#if defined(WARPUP)
+#define DONT_HAVE_POSIX
+#endif
+
+#if defined _WIN32
+
+#if defined __WATCOMC__
+
+#define O_NDELAY 0
+#include <direct.h>
+#define dirent direct
+#define mkdir(a,b) mkdir(a)
+#define strcasecmp stricmp
+
+#elif defined __MINGW32__
+
+#define O_NDELAY 0
+#define mkdir(a,b) mkdir(a)
+
+#endif
+
+#endif /* _WIN32 */
+
+#ifdef DONT_HAVE_POSIX
+
+#define access posixemu_access
+extern int posixemu_access (const char *, int);
+#define open posixemu_open
+extern int posixemu_open (const char *, int, int);
+#define close posixemu_close
+extern void posixemu_close (int);
+#define read posixemu_read
+extern int posixemu_read (int, char *, int);
+#define write posixemu_write
+extern int posixemu_write (int, const char *, int);
+#undef lseek
+#define lseek posixemu_seek
+extern int posixemu_seek (int, int, int);
+#define stat(a,b) posixemu_stat ((a), (b))
+extern int posixemu_stat (const char *, STAT *);
+#define mkdir posixemu_mkdir
+extern int mkdir (const char *, int);
+#define rmdir posixemu_rmdir
+extern int posixemu_rmdir (const char *);
+#define unlink posixemu_unlink
+extern int posixemu_unlink (const char *);
+#define truncate posixemu_truncate
+extern int posixemu_truncate (const char *, long int);
+#define rename posixemu_rename
+extern int posixemu_rename (const char *, const char *);
+#define chmod posixemu_chmod
+extern int posixemu_chmod (const char *, int);
+#define tmpnam posixemu_tmpnam
+extern void posixemu_tmpnam (char *);
+#define utime posixemu_utime
+extern int posixemu_utime (const char *, struct utimbuf *);
+#define opendir posixemu_opendir
+extern DIR * posixemu_opendir (const char *);
+#define readdir posixemu_readdir
+extern struct dirent* readdir (DIR *);
+#define closedir posixemu_closedir
+extern void closedir (DIR *);
+
+/* This isn't the best place for this, but it fits reasonably well. The logic
+ * is that you probably don't have POSIX errnos if you don't have the above
+ * functions. */
+extern long dos_errno (void);
+
+#endif
+
+#ifdef DONT_HAVE_STDIO
+
+extern FILE *stdioemu_fopen (const char *, const char *);
+#define fopen(a,b) stdioemu_fopen(a, b)
+extern int stdioemu_fseek (FILE *, int, int);
+#define fseek(a,b,c) stdioemu_fseek(a, b, c)
+extern int stdioemu_fread (char *, int, int, FILE *);
+#define fread(a,b,c,d) stdioemu_fread(a, b, c, d)
+extern int stdioemu_fwrite (const char *, int, int, FILE *);
+#define fwrite(a,b,c,d) stdioemu_fwrite(a, b, c, d)
+extern int stdioemu_ftell (FILE *);
+#define ftell(a) stdioemu_ftell(a)
+extern int stdioemu_fclose (FILE *);
+#define fclose(a) stdioemu_fclose(a)
+
+#endif
+
+#ifdef DONT_HAVE_MALLOC
+
+#define malloc(a) mallocemu_malloc(a)
+extern void *mallocemu_malloc (int size);
+#define free(a) mallocemu_free(a)
+extern void mallocemu_free (void *ptr);
+
+#endif
+
+#ifdef X86_ASSEMBLY
+#define ASM_SYM_FOR_FUNC(a) __asm__(a)
+#else
+#define ASM_SYM_FOR_FUNC(a)
+#endif
+
+#if defined USE_COMPILER
+#undef NO_PREFETCH_BUFFER
+#undef NO_EXCEPTION_3
+#define NO_EXCEPTION_3
+#define NO_PREFETCH_BUFFER
+#endif
+
+#include "target.h"
+
+#ifndef O_BINARY
+#define O_BINARY 0
+#endif
+
+#ifndef STATIC_INLINE
+#define STATIC_INLINE static __inline__
+#endif
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/SrcShared/UAE/table68k b/SrcShared/UAE/table68k
new file mode 100644
index 0000000..0e8de35
--- /dev/null
+++ b/SrcShared/UAE/table68k
@@ -0,0 +1,242 @@
+% 0: bit 0
+% 1: bit 1
+% c: condition code
+% C: condition codes, except F
+% f: direction
+% i: immediate
+% I: immediate, except 00 and ff
+% j: immediate 1..8
+% J: immediate 0..15
+% k: immediate 0..7
+% K: immediate 0..63
+% s: source mode
+% S: source reg
+% d: dest mode
+% D: dest reg
+% r: reg
+% z: size
+%
+% Actually, a sssSSS may appear as a destination, and
+% vice versa. The only difference between sssSSS and
+% dddDDD are the valid addressing modes. There is
+% no match for immediate and pc-rel. addressing modes
+% in case of dddDDD.
+%
+% Arp: --> -(Ar)
+% ArP: --> (Ar)+
+%
+% Fields on a line:
+% 16 chars bitpattern :
+% CPU level / privildge level :
+% CPU level 0: 68000
+% 1: 68010
+% 2: 68020
+% privilege level 0: not privileged
+% 1: unprivileged only on 68000 (check regs.s)
+% 2: privileged (check regs.s)
+% 3: privileged if size == word (check regs.s)
+% Flags set by instruction: XNZVC :
+% Flags used by instruction: XNZVC :
+% - means flag unaffected / unused
+% 0 means flag reset
+% 1 means flag set
+% ? means programmer was too lazy to check or instruction may trap
+% + means instruction is conditional branch
+% everything else means flag set/used
+% / means instruction is unconditional branch/call
+% x means flag is unknown and well-behaved programs shouldn't check it
+% srcaddr status destaddr status :
+% bitmasks of
+% 1 means fetched
+% 2 means stored
+% 4 means jump offset
+% 8 means jump address
+% instruction
+%
+
+0000 0000 0011 1100:00:XNZVC:XNZVC:10: ORSR.B #1
+0000 0000 0111 1100:02:?????:?????:10: ORSR.W #1
+0000 0zz0 11ss sSSS:20:?????:?????:11: CHK2.z #1,s[!Dreg,Areg,Aipi,Apdi,Immd]
+0000 0000 zzdd dDDD:00:-NZ00:-----:13: OR.z #z,d[!Areg]
+0000 0010 0011 1100:00:XNZVC:XNZVC:10: ANDSR.B #1
+0000 0010 0111 1100:02:?????:?????:10: ANDSR.W #1
+0000 0010 zzdd dDDD:00:-NZ00:-----:13: AND.z #z,d[!Areg]
+0000 0100 zzdd dDDD:00:XNZVC:-----:13: SUB.z #z,d[!Areg]
+0000 0110 zzdd dDDD:00:XNZVC:-----:13: ADD.z #z,d[!Areg]
+0000 0110 11ss sSSS:20:?????:?????:10: CALLM s[!Dreg,Areg,Aipi,Apdi,Immd]
+0000 0110 11ss sSSS:20:?????:?????:10: RTM s[Dreg,Areg]
+0000 1000 00ss sSSS:00:--Z--:-----:11: BTST #1,s[!Areg]
+0000 1000 01ss sSSS:00:--Z--:-----:13: BCHG #1,s[!Areg,Immd]
+0000 1000 10ss sSSS:00:--Z--:-----:13: BCLR #1,s[!Areg,Immd]
+0000 1000 11ss sSSS:00:--Z--:-----:13: BSET #1,s[!Areg,Immd]
+0000 1010 0011 1100:00:XNZVC:XNZVC:10: EORSR.B #1
+0000 1010 0111 1100:02:?????:?????:10: EORSR.W #1
+0000 1010 zzdd dDDD:00:-NZ00:-----:13: EOR.z #z,d[!Areg]
+0000 1100 zzss sSSS:00:-NZVC:-----:11: CMP.z #z,s[!Areg,Immd]
+
+0000 1010 11ss sSSS:20:?????:?????:13: CAS.B #1,s[!Dreg,Areg,Immd,PC8r,PC16]
+0000 1100 11ss sSSS:20:?????:?????:13: CAS.W #1,s[!Dreg,Areg,Immd,PC8r,PC16]
+0000 1100 1111 1100:20:?????:?????:10: CAS2.W #2
+0000 1110 zzss sSSS:22:?????:?????:13: MOVES.z #1,s[!Dreg,Areg,Immd,PC8r,PC16]
+0000 1110 11ss sSSS:20:?????:?????:13: CAS.L #1,s[!Dreg,Areg,Immd,PC8r,PC16]
+0000 1110 1111 1100:20:?????:?????:10: CAS2.L #2
+
+0000 rrr1 00dd dDDD:00:-----:-----:12: MVPMR.W d[Areg-Ad16],Dr
+0000 rrr1 01dd dDDD:00:-----:-----:12: MVPMR.L d[Areg-Ad16],Dr
+0000 rrr1 10dd dDDD:00:-----:-----:12: MVPRM.W Dr,d[Areg-Ad16]
+0000 rrr1 11dd dDDD:00:-----:-----:12: MVPRM.L Dr,d[Areg-Ad16]
+0000 rrr1 00ss sSSS:00:--Z--:-----:11: BTST Dr,s[!Areg]
+0000 rrr1 01ss sSSS:00:--Z--:-----:13: BCHG Dr,s[!Areg,Immd]
+0000 rrr1 10ss sSSS:00:--Z--:-----:13: BCLR Dr,s[!Areg,Immd]
+0000 rrr1 11ss sSSS:00:--Z--:-----:13: BSET Dr,s[!Areg,Immd]
+
+0001 DDDd ddss sSSS:00:-NZ00:-----:12: MOVE.B s,d[!Areg]
+0010 DDDd ddss sSSS:00:-----:-----:12: MOVEA.L s,d[Areg]
+0010 DDDd ddss sSSS:00:-NZ00:-----:12: MOVE.L s,d[!Areg]
+0011 DDDd ddss sSSS:00:-----:-----:12: MOVEA.W s,d[Areg]
+0011 DDDd ddss sSSS:00:-NZ00:-----:12: MOVE.W s,d[!Areg]
+
+0100 0000 zzdd dDDD:00:XxZxC:-----:30: NEGX.z d[!Areg]
+0100 0000 11dd dDDD:01:?????:?????:10: MVSR2.W d[!Areg]
+0100 0010 zzdd dDDD:00:-0100:-----:20: CLR.z d[!Areg]
+0100 0010 11dd dDDD:10:?????:?????:10: MVSR2.B d[!Areg]
+0100 0100 zzdd dDDD:00:XNZVC:-----:30: NEG.z d[!Areg]
+0100 0100 11ss sSSS:00:XNZVC:-----:10: MV2SR.B s[!Areg]
+0100 0110 zzdd dDDD:00:-NZ00:-----:30: NOT.z d[!Areg]
+0100 0110 11ss sSSS:02:?????:?????:10: MV2SR.W s[!Areg]
+0100 1000 0000 1rrr:20:-----:-----:31: LINK.L Ar,#2
+0100 1000 00dd dDDD:00:X?Z?C:X-Z--:30: NBCD.B d[!Areg]
+0100 1000 0100 1kkk:20:?????:?????:10: BKPT #k
+0100 1000 01ss sSSS:00:-NZ00:-----:30: SWAP.W s[Dreg]
+0100 1000 01ss sSSS:00:-----:-----:00: PEA.L s[!Dreg,Areg,Aipi,Apdi,Immd]
+0100 1000 10dd dDDD:00:-NZ00:-----:30: EXT.W d[Dreg]
+0100 1000 10dd dDDD:00:-----:-----:02: MVMLE.W #1,d[!Dreg,Areg,Aipi]
+0100 1000 11dd dDDD:00:-NZ00:-----:30: EXT.L d[Dreg]
+0100 1000 11dd dDDD:00:-----:-----:02: MVMLE.L #1,d[!Dreg,Areg,Aipi]
+0100 1001 11dd dDDD:00:-NZ00:-----:30: EXT.B d[Dreg]
+0100 1010 zzss sSSS:00:-NZ00:-----:10: TST.z s
+0100 1010 11dd dDDD:00:?????:?????:30: TAS.B d[!Areg]
+0100 1010 1111 1100:00:?????:?????:00: ILLEGAL
+0100 1100 00ss sSSS:20:-NZVC:-----:13: MULL.L #1,s[!Areg]
+0100 1100 01ss sSSS:20:?????:?????:13: DIVL.L #1,s[!Areg]
+0100 1100 10ss sSSS:00:-----:-----:01: MVMEL.W #1,s[!Dreg,Areg,Apdi,Immd]
+0100 1100 11ss sSSS:00:-----:-----:01: MVMEL.L #1,s[!Dreg,Areg,Apdi,Immd]
+0100 1110 0100 JJJJ:00:-----:XNZVC:10: TRAP #J
+0100 1110 0101 0rrr:00:-----:-----:31: LINK.W Ar,#1
+0100 1110 0101 1rrr:00:-----:-----:30: UNLK.L Ar
+0100 1110 0110 0rrr:02:-----:-----:10: MVR2USP.L Ar
+0100 1110 0110 1rrr:02:-----:-----:20: MVUSP2R.L Ar
+0100 1110 0111 0000:02:-----:-----:00: RESET
+0100 1110 0111 0001:00:-----:-----:00: NOP
+0100 1110 0111 0010:02:XNZVC:-----:10: STOP #1
+0100 1110 0111 0011:02:XNZVC:-----:00: RTE
+0100 1110 0111 0100:00:?????:?????:10: RTD #1
+0100 1110 0111 0101:00:-----:-----:00: RTS
+0100 1110 0111 0110:00:-----:XNZVC:00: TRAPV
+0100 1110 0111 0111:00:XNZVC:-----:00: RTR
+0100 1110 0111 1010:12:?????:?????:10: MOVEC2 #1
+0100 1110 0111 1011:12:?????:?????:10: MOVE2C #1
+0100 1110 10ss sSSS:00://///://///:80: JSR.L s[!Dreg,Areg,Aipi,Apdi,Immd]
+0100 rrr1 00ss sSSS:00:?????:?????:11: CHK.L s[!Areg],Dr
+0100 rrr1 10ss sSSS:00:?????:?????:11: CHK.W s[!Areg],Dr
+0100 1110 11ss sSSS:00://///://///:80: JMP.L s[!Dreg,Areg,Aipi,Apdi,Immd]
+0100 rrr1 11ss sSSS:00:-----:-----:02: LEA.L s[!Dreg,Areg,Aipi,Apdi,Immd],Ar
+
+0101 jjj0 zzdd dDDD:00:-----:-----:13: ADDA.z #j,d[Areg]
+0101 jjj0 zzdd dDDD:00:XNZVC:-----:13: ADD.z #j,d[!Areg]
+0101 jjj1 zzdd dDDD:00:-----:-----:13: SUBA.z #j,d[Areg]
+0101 jjj1 zzdd dDDD:00:XNZVC:-----:13: SUB.z #j,d[!Areg]
+0101 cccc 1100 1rrr:00:-----:+++++:31: DBcc.W Dr,#1
+0101 cccc 11dd dDDD:00:-----:+++++:20: Scc.B d[!Areg]
+0101 cccc 1111 1010:20:?????:?????:10: TRAPcc #1
+0101 cccc 1111 1011:20:?????:?????:10: TRAPcc #2
+0101 cccc 1111 1100:20:?????:?????:00: TRAPcc
+
+% Bxx.L is 68020 only, but setting the CPU level to 2 would give illegal
+% instruction exceptions when compiling a 68000 only emulation, which isn't
+% what we want either.
+0110 0001 0000 0000:00://///://///:40: BSR.W #1
+0110 0001 IIII IIII:00://///://///:40: BSR.B #i
+0110 0001 1111 1111:00://///://///:40: BSR.L #2
+0110 CCCC 0000 0000:00:-----:+++++:40: Bcc.W #1
+0110 CCCC IIII IIII:00:-----:+++++:40: Bcc.B #i
+0110 CCCC 1111 1111:00:-----:+++++:40: Bcc.L #2
+
+0111 rrr0 iiii iiii:00:-NZ00:-----:12: MOVE.L #i,Dr
+
+1000 rrr0 zzss sSSS:00:-NZ00:-----:13: OR.z s[!Areg],Dr
+1000 rrr0 11ss sSSS:00:?????:?????:13: DIVU.W s[!Areg],Dr
+1000 rrr1 00dd dDDD:00:XxZxC:X-Z--:13: SBCD.B d[Dreg],Dr
+1000 rrr1 00dd dDDD:00:XxZxC:X-Z--:13: SBCD.B d[Areg-Apdi],Arp
+1000 rrr1 zzdd dDDD:00:-NZ00:-----:13: OR.z Dr,d[!Areg,Dreg]
+1000 rrr1 01dd dDDD:20:?????:?????:12: PACK d[Dreg],Dr
+1000 rrr1 01dd dDDD:20:?????:?????:12: PACK d[Areg-Apdi],Arp
+1000 rrr1 10dd dDDD:20:?????:?????:12: UNPK d[Dreg],Dr
+1000 rrr1 10dd dDDD:20:?????:?????:12: UNPK d[Areg-Apdi],Arp
+1000 rrr1 11ss sSSS:00:?????:?????:13: DIVS.W s[!Areg],Dr
+
+1001 rrr0 zzss sSSS:00:XNZVC:-----:13: SUB.z s,Dr
+1001 rrr0 11ss sSSS:00:-----:-----:13: SUBA.W s,Ar
+1001 rrr1 zzdd dDDD:00:XNZVC:X-Z--:13: SUBX.z d[Dreg],Dr
+1001 rrr1 zzdd dDDD:00:XNZVC:X-Z--:13: SUBX.z d[Areg-Apdi],Arp
+1001 rrr1 zzdd dDDD:00:XNZVC:-----:13: SUB.z Dr,d[!Areg,Dreg]
+1001 rrr1 11ss sSSS:00:-----:-----:13: SUBA.L s,Ar
+
+1011 rrr0 zzss sSSS:00:-NZVC:-----:11: CMP.z s,Dr
+1011 rrr0 11ss sSSS:00:-NZVC:-----:11: CMPA.W s,Ar
+1011 rrr1 11ss sSSS:00:-NZVC:-----:11: CMPA.L s,Ar
+1011 rrr1 zzdd dDDD:00:-NZVC:-----:11: CMPM.z d[Areg-Aipi],ArP
+1011 rrr1 zzdd dDDD:00:-NZ00:-----:13: EOR.z Dr,d[!Areg]
+
+1100 rrr0 zzss sSSS:00:-NZ00:-----:13: AND.z s[!Areg],Dr
+1100 rrr0 11ss sSSS:00:-NZ00:-----:13: MULU.W s[!Areg],Dr
+1100 rrr1 00dd dDDD:00:XxZxC:X-Z--:13: ABCD.B d[Dreg],Dr
+1100 rrr1 00dd dDDD:00:XxZxC:X-Z--:13: ABCD.B d[Areg-Apdi],Arp
+1100 rrr1 zzdd dDDD:00:-NZ00:-----:13: AND.z Dr,d[!Areg,Dreg]
+1100 rrr1 01dd dDDD:00:-----:-----:33: EXG.L Dr,d[Dreg]
+1100 rrr1 01dd dDDD:00:-----:-----:33: EXG.L Ar,d[Areg]
+1100 rrr1 10dd dDDD:00:-----:-----:33: EXG.L Dr,d[Areg]
+1100 rrr1 11ss sSSS:00:-NZ00:-----:13: MULS.W s[!Areg],Dr
+
+1101 rrr0 zzss sSSS:00:XNZVC:-----:13: ADD.z s,Dr
+1101 rrr0 11ss sSSS:00:-----:-----:13: ADDA.W s,Ar
+1101 rrr1 zzdd dDDD:00:XNZVC:X-Z--:13: ADDX.z d[Dreg],Dr
+1101 rrr1 zzdd dDDD:00:XNZVC:X-Z--:13: ADDX.z d[Areg-Apdi],Arp
+1101 rrr1 zzdd dDDD:00:XNZVC:-----:13: ADD.z Dr,d[!Areg,Dreg]
+1101 rrr1 11ss sSSS:00:-----:-----:13: ADDA.L s,Ar
+
+1110 jjjf zz00 0RRR:00:XNZVC:-----:13: ASf.z #j,DR
+1110 jjjf zz00 1RRR:00:XNZ0C:-----:13: LSf.z #j,DR
+1110 jjjf zz01 0RRR:00:XNZ0C:X----:13: ROXf.z #j,DR
+1110 jjjf zz01 1RRR:00:-NZ0C:-----:13: ROf.z #j,DR
+1110 rrrf zz10 0RRR:00:XNZVC:X----:13: ASf.z Dr,DR
+1110 rrrf zz10 1RRR:00:XNZ0C:X----:13: LSf.z Dr,DR
+1110 rrrf zz11 0RRR:00:XNZ0C:X----:13: ROXf.z Dr,DR
+1110 rrrf zz11 1RRR:00:-NZ0C:-----:13: ROf.z Dr,DR
+1110 000f 11dd dDDD:00:XNZVC:-----:13: ASfW.W d[!Dreg,Areg]
+1110 001f 11dd dDDD:00:XNZ0C:-----:13: LSfW.W d[!Dreg,Areg]
+1110 010f 11dd dDDD:00:XNZ0C:X----:13: ROXfW.W d[!Dreg,Areg]
+1110 011f 11dd dDDD:00:-NZ0C:-----:13: ROfW.W d[!Dreg,Areg]
+
+1110 1000 11ss sSSS:20:?????:?????:11: BFTST #1,s[!Areg,Apdi,Aipi,Immd]
+1110 1001 11ss sSSS:20:?????:?????:11: BFEXTU #1,s[!Areg,Apdi,Aipi,Immd]
+1110 1010 11ss sSSS:20:?????:?????:13: BFCHG #1,s[!Areg,Apdi,Aipi,Immd,PC8r,PC16]
+1110 1011 11ss sSSS:20:?????:?????:11: BFEXTS #1,s[!Areg,Apdi,Aipi,Immd]
+1110 1100 11ss sSSS:20:?????:?????:13: BFCLR #1,s[!Areg,Apdi,Aipi,Immd,PC8r,PC16]
+1110 1101 11ss sSSS:20:?????:?????:11: BFFFO #1,s[!Areg,Apdi,Aipi,Immd]
+1110 1110 11ss sSSS:20:?????:?????:13: BFSET #1,s[!Areg,Apdi,Aipi,Immd,PC8r,PC16]
+1110 1111 11ss sSSS:20:?????:?????:13: BFINS #1,s[!Areg,Apdi,Aipi,Immd,PC8r,PC16]
+
+% floating point co processor
+1111 0010 00ss sSSS:30:?????:?????:11: FPP #1,s
+1111 0010 01ss sSSS:30:?????:?????:11: FDBcc #1,s[Areg-Dreg]
+1111 0010 01ss sSSS:30:?????:?????:11: FScc #1,s[!Areg,Immd,PC8r,PC16]
+1111 0010 0111 1010:30:?????:?????:10: FTRAPcc #1
+1111 0010 0111 1011:30:?????:?????:10: FTRAPcc #2
+1111 0010 0111 1100:30:?????:?????:00: FTRAPcc
+1111 0010 10KK KKKK:30:?????:?????:11: FBcc #K,#1
+1111 0010 11KK KKKK:30:?????:?????:11: FBcc #K,#2
+1111 0011 00ss sSSS:32:?????:?????:20: FSAVE s[!Dreg,Areg,Aipi,Immd,PC8r,PC16]
+1111 0011 01ss sSSS:32:?????:?????:10: FRESTORE s[!Dreg,Areg,Apdi,Immd]
+
+1111 0000 00ss sSSS:40:?????:?????:11: MMUOP #1,s
diff --git a/SrcShared/UAE/target.h b/SrcShared/UAE/target.h
new file mode 100644
index 0000000..45c9ce2
--- /dev/null
+++ b/SrcShared/UAE/target.h
@@ -0,0 +1,4 @@
+#define OPTIONSFILENAME .uaerc
+#define UNSUPPORTED_OPTION_p
+#define UNSUPPORTED_OPTION_I
+